Kaynağa Gözat

产品审核优化

rgb 6 yıl önce
ebeveyn
işleme
6d768b4f46

+ 5 - 0
diagbotman-service/src/main/java/com/diagbot/dto/AuthDetailDTO.java

@@ -13,6 +13,11 @@ public class AuthDetailDTO implements Serializable{
 	 * 
 	 */
 	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * 订单号
+	 */
+	private String num;
 
 	/**
      * 产品名称

+ 19 - 9
diagbotman-service/src/main/java/com/diagbot/facade/ProductOrderFacade.java

@@ -1,6 +1,16 @@
 package com.diagbot.facade;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.diagbot.client.UserServiceClient;
+import com.diagbot.dto.AuthDetailDTO;
 import com.diagbot.dto.ProductAuthProgressDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.UserOrgDTO;
@@ -20,13 +30,6 @@ import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddOrderVO;
 import com.diagbot.vo.ProductOrderVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
 
 /**
  * 订单业务
@@ -60,12 +63,19 @@ public class ProductOrderFacade extends ProductOrderServiceImpl {
 		List<ProductAuthProgressDTO> retList = new ArrayList<ProductAuthProgressDTO>();
 		Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
 		List<ProductOrder> orderList = baseMapper.getUserProductOrder(userId);
+		List<String> nums = new ArrayList<>();
 		for(ProductOrder i : orderList){
+			nums.add(i.getNum());
+		}
+		List<AuthDetailDTO> detailList = baseMapper.getOrderDetailsByNums(nums);
+		Map<String, List<AuthDetailDTO>> detailMap = detailList.stream().collect(Collectors.groupingBy(AuthDetailDTO::getNum));
+		for(String num:detailMap.keySet()){
 			ProductAuthProgressDTO productAuthProgressDTO = new ProductAuthProgressDTO();
-			productAuthProgressDTO.setNum(i.getNum());
-			productAuthProgressDTO.setProducts(baseMapper.getOrderDetails(i.getNum()));
+			productAuthProgressDTO.setNum(num);
+			productAuthProgressDTO.setProducts(detailMap.get(num));
 			retList.add(productAuthProgressDTO);
 		}
+		
 
 		return retList;
 	}

+ 12 - 0
diagbotman-service/src/main/java/com/diagbot/mapper/ProductOrderMapper.java

@@ -24,7 +24,19 @@ public interface ProductOrderMapper extends BaseMapper<ProductOrder> {
 	 */
 	List<ProductOrder> getUserProductOrder(Long userId);
 
+	/**
+	 * 根据订单号查询详情
+	 * @param orderNum
+	 * @return
+	 */
 	List<AuthDetailDTO> getOrderDetails(String orderNum);
+	
+	/**
+	 * 根据订单号集合查询详情
+	 * @param nums
+	 * @return
+	 */
+	List<AuthDetailDTO> getOrderDetailsByNums(List<String> nums);
 
 	/**
 	 * @Description: 根据订单号查询订单信息

+ 15 - 0
diagbotman-service/src/main/resources/mapper/ProductOrderMapper.xml

@@ -46,6 +46,21 @@
 		where a.is_deleted = 'N' and  b.is_deleted = 'N' and  c.is_deleted = 'N'
 		and a.num=#{orderNum}
 	</select>
+	
+	<select id="getOrderDetailsByNums" parameterType="list" resultType="com.diagbot.dto.AuthDetailDTO">
+		select
+			a.num as num,
+			b.audit_status as auditStatus,
+			c.name as name,
+			b.reject_reason as rejectReason
+		from diag_product_order a join diag_order_details b on a.num=b.order_num
+		join diag_lantone_product c on b.product_id=c.id
+		where a.is_deleted = 'N' and  b.is_deleted = 'N' and  c.is_deleted = 'N'
+		and a.num in
+		<foreach collection="list" separator="," open="(" close=")" item="num">
+			#{num}
+		</foreach>
+	</select>
 
     <select id="selctOrderTimeByOrderNum" resultMap="BaseResultMap" parameterType="com.diagbot.entity.ProductOrder">
         SELECT * FROM diag_product_order d WHERE d.is_deleted='N'