yonge 2 年之前
父节点
当前提交
4841dd5616

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectChangeDao.java

@@ -91,4 +91,13 @@ public interface SubjectChangeDao extends BaseDAO<Integer, SubjectChange> {
      * @param musicGroupId
      * @return
      */
-    List<SubjectChange> queryWaitDeliveryList(@Param("musicGroupId") String musicGroupId);}
+    List<SubjectChange> queryWaitDeliveryList(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 查询当前乐团指定的发货批次的清单
+     * @param musicGroupId 乐团编号
+     * @param deliveryBatchNo 发货批次号
+     * @return
+     */
+    List<SubjectChange> queryByDeliveryBatchNo(@Param("musicGroupId") String musicGroupId, @Param("deliveryBatchNo") String deliveryBatchNo);
+}

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupDeliveryRecordService.java

@@ -1,9 +1,18 @@
 package com.ym.mec.biz.service;
 
+import java.util.List;
+
+import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.MusicGroupDeliveryRecord;
 import com.ym.mec.common.service.BaseService;
 
 public interface MusicGroupDeliveryRecordService extends BaseService<Long, MusicGroupDeliveryRecord> {
 
-	
+	/**
+	 * 查询已发货清单
+	 * @param musicGroupId
+	 * @param deliveryBatchNo
+	 * @return
+	 */
+	List<Goods> queryDeliveryList(String musicGroupId, String deliveryBatchNo);
 }

+ 79 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupDeliveryRecordServiceImpl.java

@@ -1,10 +1,25 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.MusicGroupDeliveryRecordDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
+import com.ym.mec.biz.dal.dao.SubjectChangeDao;
+import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.MusicGroupDeliveryRecord;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.SubjectChange;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.service.GoodsService;
 import com.ym.mec.biz.service.MusicGroupDeliveryRecordService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -14,10 +29,74 @@ public class MusicGroupDeliveryRecordServiceImpl extends BaseServiceImpl<Long, M
 	
 	@Autowired
 	private MusicGroupDeliveryRecordDao musicGroupDeliveryRecordDao;
+	
+	@Autowired
+	private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
+	
+	@Autowired
+	private SubjectChangeDao subjectChangeDao;
+	
+	@Autowired
+	private GoodsService goodsService;
 
 	@Override
 	public BaseDAO<Long, MusicGroupDeliveryRecord> getDAO() {
 		return musicGroupDeliveryRecordDao;
 	}
+
+	@Override
+	public List<Goods> queryDeliveryList(String musicGroupId, String deliveryBatchNo) {
+		
+		//查询subject_change
+		List<SubjectChange> subjectChangeList = subjectChangeDao.queryByDeliveryBatchNo(musicGroupId, deliveryBatchNo);
+		
+		List<Integer> changeUserIdList = null;
+        StringBuilder goodsIdsStr = new StringBuilder();
+		
+		if(subjectChangeList != null && subjectChangeList.size() > 0){
+			changeUserIdList = subjectChangeList.stream().distinct().map(t -> t.getStudentId()).collect(Collectors.toList());
+			
+			for(SubjectChange sc : subjectChangeList) {
+				if(StringUtils.isNotBlank(sc.getChangeAccessories())){
+					goodsIdsStr.append(sc.getChangeAccessories()).append(",");
+				}
+				if(sc.getChangeMusical() != null){
+					goodsIdsStr.append(sc.getChangeMusical()).append(",");
+				}
+			}
+		}
+		
+		//查询student_payment_order_detail,剔除有声部更换的用户
+		List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = studentPaymentOrderDetailDao.findUserApplyOrder(null, musicGroupId, DealStatusEnum.SUCCESS);
+		studentPaymentOrderDetailList = studentPaymentOrderDetailList.stream().filter(t -> StringUtils.isNotBlank(t.getGoodsIdList())).collect(Collectors.toList());
+		
+		if(changeUserIdList != null && changeUserIdList.size() > 0){
+			Iterator<StudentPaymentOrderDetail> iterator = studentPaymentOrderDetailList.iterator();
+			
+			while(iterator.hasNext()){
+				if(changeUserIdList.contains(iterator.next().getUserId())){
+					iterator.remove();
+				}
+			}
+		}
+		
+		for(StudentPaymentOrderDetail spod : studentPaymentOrderDetailList){
+			goodsIdsStr.append(spod.getGoodsIdList()).append(",");
+		}
+		
+		List<Goods> goodsList = goodsService.findGoodsByIds(goodsIdsStr.toString());
+		Map<Integer,Goods> goodsMap = new HashMap<Integer, Goods>();
+		
+		for (Goods g : goodsList) {
+			if (goodsMap.containsKey(g.getId())) {
+				g.setSellCount(goodsMap.get(g.getId()).getSellCount() + 1);
+			} else {
+				g.setSellCount(1);
+			}
+			goodsMap.put(g.getId(), g);
+		}
+		
+		return new ArrayList<Goods>(goodsMap.values());
+	}
 	
 }

+ 5 - 2
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -228,8 +228,11 @@
         SELECT spod.*
         FROM student_payment_order_detail spod
                  LEFT JOIN student_payment_order spo ON spo.id_ = spod.payment_order_id_
-        WHERE spo.user_id_ = #{userId}
-          AND spo.music_group_id_ = #{musicGroupId}
+        WHERE 
+          spo.music_group_id_ = #{musicGroupId}
+          <if test="userId != null">
+          AND	spo.user_id_ = #{userId}
+          </if>
           AND spo.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
           AND spo.type_ = 'APPLY'
     </select>

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/SubjectChangeMapper.xml

@@ -446,5 +446,16 @@
         WHERE music_group_id_ = #{musicGroupId}
           AND status_ = 2 and delivery_batch_no_ is NULL
     </select>
+
+    <select id="queryByDeliveryBatchNo" resultMap="SubjectChange">
+        SELECT sc.* FROM subject_change sc
+        WHERE sc.id_ IN (
+            SELECT MAX(id_)
+            FROM subject_change
+            WHERE music_group_id_ = #{musicGroupId} and delivery_batch_no_ = #{deliveryBatchNo}
+              AND status_ = 2
+            GROUP BY student_id_
+        )
+    </select>
     
 </mapper>

+ 3 - 2
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupDeliveryRecordController.java

@@ -27,7 +27,8 @@ public class MusicGroupDeliveryRecordController extends BaseController {
 	}
 	
 	@GetMapping("/queryGoodsDetail")
-	public Object queryGoodsDetail() {
-		return succeed();
+	public Object queryGoodsDetail(String musicGroupId, String deliveryBatchNo) {
+		
+		return succeed(musicGroupDeliveryRecordService.queryDeliveryList(musicGroupId, deliveryBatchNo));
 	}
 }