浏览代码

朗通后台产品申请接口完善

wangyu 6 年之前
父节点
当前提交
441239d604

+ 43 - 0
diagbotman-service/src/main/java/com/diagbot/entity/OrderDetailStatus.java

@@ -0,0 +1,43 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 订单表
+ * </p>
+ *
+ * @author gaodm
+ * @since 2018-09-18
+ */
+@Getter
+@Setter
+public class OrderDetailStatus implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 总条数
+     */
+    private Integer ct;
+
+    /**
+     * 不通过条数
+     */
+    private Integer notPass;
+
+    /**
+     * 通过条数
+     */
+    private Integer pass;
+
+    /**
+     * 待审核条数
+     */
+    private Integer notAudit;
+
+}

+ 4 - 1
diagbotman-service/src/main/java/com/diagbot/enums/AuditStatusEnum.java

@@ -10,7 +10,10 @@ import lombok.Setter;
  */
 public enum AuditStatusEnum implements KeyedNamed {
     Veto(0, "不通过"),
-    Adopt(1, "通过");
+    Adopt(1, "通过"),
+    NotAudit(2, "待审核"),
+    Adopt_Part(3, "部分通过"),
+    Audit_Part(4,"部分审核");
 
     @Setter
     private Integer key;

+ 28 - 20
diagbotman-service/src/main/java/com/diagbot/facade/OrderDetailsFacade.java

@@ -7,6 +7,7 @@ import com.diagbot.entity.LantoneProduct;
 import com.diagbot.entity.OpenedProducts;
 import com.diagbot.entity.OrderDetails;
 import com.diagbot.entity.OrderDetailsIndex;
+import com.diagbot.entity.ProductOrder;
 import com.diagbot.entity.ServiceInfo;
 import com.diagbot.entity.wrapper.OrderDetailsWapper;
 import com.diagbot.enums.AuditStatusEnum;
@@ -26,6 +27,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -46,6 +48,8 @@ public class OrderDetailsFacade extends OrderDetailsServiceImpl {
     private ProductServiceFacade productServiceFacade;
     @Autowired
     private UserServiceClient userServiceClient;
+    @Autowired
+    private ProductOrderFacade productOrderFacade;
 
 
     /**
@@ -56,6 +60,9 @@ public class OrderDetailsFacade extends OrderDetailsServiceImpl {
     @Transactional
     public Boolean updateAuditStatus(AuditStatusVO auditStatusVO) {
         OrderDetails orderDetails = this.getById(auditStatusVO.getId());
+        ProductOrder productOrder =new ProductOrder();
+        productOrder.setNum(orderDetails.getOrderNum());
+        productOrder =productOrderFacade.selctOrderTimeByOrderNum(productOrder);
         if (orderDetails == null) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
                     "订单明细不存在");
@@ -63,13 +70,13 @@ public class OrderDetailsFacade extends OrderDetailsServiceImpl {
         orderDetails.setGmtModified(DateUtil.now());
         orderDetails.setModifier(UserUtils.getCurrentPrincipleID());
         orderDetails.setAuditStatus(auditStatusVO.getAuditStatus());
-        //TODO  根据订单审核状态修改主表审核状态  审核失败设置失败原因   没有线上模式时不是抛异常而是不生成token
         if(auditStatusVO.getAuditStatus()== AuditStatusEnum.Veto.getKey()){
+            orderDetails.setRejectReason(auditStatusVO.getRejectReason());
             if(!this.updateById(orderDetails)){
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
                         "审核状态修改失败");
             }
-            return true;
+            return productOrderFacade.updateProductOrderStatus(orderDetails.getOrderNum());
         }
         if(!this.updateById(orderDetails)){
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
@@ -79,28 +86,31 @@ public class OrderDetailsFacade extends OrderDetailsServiceImpl {
         OpenedProducts openedProducts =new OpenedProducts();
         openedProducts.setGmtCreate(DateUtil.now());
         openedProducts.setCreator(UserUtils.getCurrentPrincipleID());
-        openedProducts.setProductId(1L);
+        openedProducts.setProductId(orderDetails.getProductId());
         openedProducts.setUserId(userId);
         openedProducts.setStartTime(auditStatusVO.getStartTime());
         openedProducts.setEndTime(auditStatusVO.getEndTime());
-        openedProducts.setOrderId(1L);
+        openedProducts.setOrderId(productOrder.getId());
         openedProductsFacade.save(openedProducts);
         LantoneProduct lantoneProduct =new LantoneProduct();
-        if(lantoneProductFacade.getById(lantoneProduct).getAccessType().indexOf(TokenTypeEnum.Online.getKey())==-1){
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-                    "该产品没有线上模式");
+        String accessType = lantoneProductFacade.getById(lantoneProduct).getAccessType();
+        List<String> list = Arrays.asList(accessType.split(","));
+        for (String s:list) {
+            if(s.equals(TokenTypeEnum.Online.getKey())){
+                ServiceSaveVO serviceSaveVO =new ServiceSaveVO();
+                serviceSaveVO.setDescription(lantoneProduct.getDecription());
+                serviceSaveVO.setName(lantoneProduct.getName());
+                serviceSaveVO.setType(TokenTypeEnum.Online.getKey());
+                ServiceInfo serviceInfo = serviceInfoFacade.createService(serviceSaveVO);
+                ProductServiceSaveVO productServiceSaveVO =new ProductServiceSaveVO();
+                productServiceSaveVO.setProductId(auditStatusVO.getId());
+                productServiceSaveVO.setServiceId(serviceInfo.getId());
+                productServiceSaveVO.setType(TokenTypeEnum.Online.getKey());
+                productServiceFacade.genProductService(productServiceSaveVO);
+                break;
+            }
         }
-        ServiceSaveVO serviceSaveVO =new ServiceSaveVO();
-        serviceSaveVO.setDescription(lantoneProduct.getDecription());
-        serviceSaveVO.setName(lantoneProduct.getName());
-        serviceSaveVO.setType(TokenTypeEnum.Online.getKey());
-        ServiceInfo serviceInfo = serviceInfoFacade.createService(serviceSaveVO);
-        ProductServiceSaveVO productServiceSaveVO =new ProductServiceSaveVO();
-        productServiceSaveVO.setProductId(auditStatusVO.getId());
-        productServiceSaveVO.setServiceId(serviceInfo.getId());
-        productServiceSaveVO.setType(TokenTypeEnum.Online.getKey());
-        productServiceFacade.genProductService(productServiceSaveVO);
-        return true;
+        return productOrderFacade.updateProductOrderStatus(orderDetails.getOrderNum());
     }
 
 
@@ -121,8 +131,6 @@ public class OrderDetailsFacade extends OrderDetailsServiceImpl {
         }
         BeanUtil.copyProperties(orderDetialsVO, orderDetailsIndex);
         orderDetailsIndex.setIndex((orderDetialsVO.getCurrent().longValue()-1)*orderDetialsVO.getSize().longValue());
-
-        orderDetailsIndex.setUserId(1L);
         List<OrderDetailsWapper> list =this.seleAllOrderDetials(orderDetailsIndex);
         List<Long> list1 =new ArrayList<>();
         for (OrderDetails orderDetails:list) {

+ 31 - 0
diagbotman-service/src/main/java/com/diagbot/facade/ProductOrderFacade.java

@@ -7,10 +7,12 @@ import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.dto.WaitExamOrderCouDTO;
 import com.diagbot.entity.LantoneProduct;
+import com.diagbot.entity.OrderDetailStatus;
 import com.diagbot.entity.OrderDetails;
 import com.diagbot.entity.ProductOrder;
 import com.diagbot.entity.ProductOrderIndex;
 import com.diagbot.entity.wrapper.ProductOrderWrapper;
+import com.diagbot.enums.AuditStatusEnum;
 import com.diagbot.enums.VisibleIdTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -188,6 +190,35 @@ public class ProductOrderFacade extends ProductOrderServiceImpl {
 		}
 		return list;
 	}
+
+
+	public Boolean updateProductOrderStatus(String orderNum){
+        OrderDetailStatus  orderDetailStatus = orderDetailsFacade.selectAllOrderDetialsByOrderNum(orderNum);
+        ProductOrder productOrder=new ProductOrder();
+        productOrder.setNum(orderNum);
+        productOrder= this.selctOrderTimeByOrderNum(productOrder);
+        int satus =0;
+        if(orderDetailStatus.getCt() == orderDetailStatus.getNotAudit()){
+            satus = AuditStatusEnum.NotAudit.getKey();
+            // ct == sh 待审核
+        }else if(orderDetailStatus.getCt() > orderDetailStatus.getNotAudit() &&orderDetailStatus.getNotAudit() != 0){
+            satus = AuditStatusEnum.Audit_Part.getKey();
+            // ct > sh && sh != 0 部分审核
+        }else if(orderDetailStatus.getCt() == orderDetailStatus.getPass()){
+            satus = AuditStatusEnum.Adopt.getKey();
+            // ct == pass 通过
+        }else if(orderDetailStatus.getCt() == orderDetailStatus.getNotPass()){
+            satus = AuditStatusEnum.Veto.getKey();
+            // ct == not_pass 不通过
+        }else {
+            satus = AuditStatusEnum.Adopt_Part.getKey();
+            // 其他 部分通过
+        }
+        productOrder.setAuditStatus(satus);
+        this.updateById(productOrder);
+        //TODO 更新状态值
+        return true;
+    }
 }
 
 

+ 8 - 0
diagbotman-service/src/main/java/com/diagbot/mapper/OrderDetailsMapper.java

@@ -1,6 +1,7 @@
 package com.diagbot.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.OrderDetailStatus;
 import com.diagbot.entity.OrderDetails;
 import com.diagbot.entity.OrderDetailsIndex;
 import com.diagbot.entity.wrapper.OrderDetailsWapper;
@@ -22,4 +23,11 @@ public interface OrderDetailsMapper extends BaseMapper<OrderDetails> {
      * @Date: 15:06 2018/9/21
      */
     public List<OrderDetailsWapper> seleAllOrderDetials(OrderDetailsIndex orderDetailsIndex);
+
+    /**
+     * 根据订单编号查询所有产品审核状态
+     * @param orderNum
+     * @return
+     */
+    public OrderDetailStatus selectAllOrderDetialsByOrderNum(String orderNum);
 }

+ 9 - 0
diagbotman-service/src/main/java/com/diagbot/service/OrderDetailsService.java

@@ -1,6 +1,7 @@
 package com.diagbot.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.OrderDetailStatus;
 import com.diagbot.entity.OrderDetails;
 import com.diagbot.entity.OrderDetailsIndex;
 import com.diagbot.entity.wrapper.OrderDetailsWapper;
@@ -22,4 +23,12 @@ public interface OrderDetailsService extends IService<OrderDetails> {
      * @Date: 15:06 2018/9/21
      */
     public List<OrderDetailsWapper> seleAllOrderDetials(OrderDetailsIndex orderDetailsIndex);
+
+    /**
+     * 根据订单编号查询所有订单明细审核状态
+     * 
+     * @param  orderNum
+     * @return
+     */
+    public OrderDetailStatus selectAllOrderDetialsByOrderNum(String orderNum );
 }

+ 14 - 0
diagbotman-service/src/main/java/com/diagbot/service/impl/OrderDetailsServiceImpl.java

@@ -1,6 +1,7 @@
 package com.diagbot.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.entity.OrderDetailStatus;
 import com.diagbot.entity.OrderDetails;
 import com.diagbot.entity.OrderDetailsIndex;
 import com.diagbot.entity.wrapper.OrderDetailsWapper;
@@ -29,4 +30,17 @@ public class OrderDetailsServiceImpl extends ServiceImpl<OrderDetailsMapper, Ord
     public List<OrderDetailsWapper> seleAllOrderDetials(OrderDetailsIndex orderDetailsIndex) {
         return baseMapper.seleAllOrderDetials(orderDetailsIndex);
     }
+    /**
+     *根据订单编号查询所有订单明细审核状态
+     *
+     * @param orderNum
+     * @return
+     */
+    @Override
+    public OrderDetailStatus selectAllOrderDetialsByOrderNum(String orderNum) {
+        return baseMapper.selectAllOrderDetialsByOrderNum(orderNum);
+    }
+
+
+
 }

+ 4 - 0
diagbotman-service/src/main/java/com/diagbot/vo/AuditStatusVO.java

@@ -26,4 +26,8 @@ public class AuditStatusVO {
      * 结束时间
      */
     private Date endTime;
+    /**
+     * 不通过原因
+     */
+    private String rejectReason;
 }

+ 4 - 0
diagbotman-service/src/main/java/com/diagbot/vo/OrderDetialsVO.java

@@ -19,4 +19,8 @@ public class OrderDetialsVO {
     private Long size;
     @NotBlank(message = "请输入订单状态(0.未付款1.已付款)!")
     private Integer status;
+    /**
+     * 用户id
+     */
+    private Long userId;
 }

+ 9 - 0
diagbotman-service/src/main/resources/mapper/OrderDetailsMapper.xml

@@ -55,4 +55,13 @@
         </if>
         LIMIT #{index},#{size}
     </select>
+
+    <select id="selectAllOrderDetialsByOrderNum" resultType="com.diagbot.entity.OrderDetailStatus">
+        select
+        (SELECT count(*) FROM `diag_order_details` where order_num = #{orderNum} and is_deleted = 'N') ct,
+        (SELECT count(*) FROM `diag_order_details` where order_num = #{orderNum} and audit_status = 0 and is_deleted = 'N') not_pass,
+        (SELECT count(*) FROM `diag_order_details` where order_num = #{orderNum} and audit_status = 1 and is_deleted = 'N') pass,
+        (SELECT count(*) FROM `diag_order_details` where order_num = #{orderNum} and audit_status is null and is_deleted = 'N') not_audit
+        from dual
+    </select>
 </mapper>