Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 4 years ago
parent
commit
3ef3340f69

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

@@ -177,7 +177,7 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
      * @param paymentOrderNo
      * @return
      */
-    List<Map<Long, BigDecimal>> queryActualAmount(@Param("paymentOrderNo") List<Long> paymentOrderNo);
+    List<Map<Long, BigDecimal>> queryExpectAmount(@Param("paymentOrderNo") List<Long> paymentOrderNo);
 
 
     List<StudentPaymentOrder> findFixOrder();

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java

@@ -105,8 +105,16 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
 
     /**
      * 获取购买乐器的方式
+     *
      * @param paymentOrderNo
      * @return
      */
     List<Map<Long, String>> queryPurchaseTypeMap(@Param("paymentOrderNo") List<Long> paymentOrderNo);
+
+    /**
+     * 获取订单的商品
+     * @param orderIds
+     * @return
+     */
+    List<StudentPaymentOrderDetail> getOrderGoodies(@Param("orderIds") List<Long> orderIds);
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicalListDetailDto.java

@@ -29,6 +29,10 @@ public class MusicalListDetailDto {
 
     private String subjectName;
 
+    private String musicalName;
+
+    private String accessoriesName;
+
     public Long getPaymentOrderId() {
         return paymentOrderId;
     }
@@ -124,4 +128,20 @@ public class MusicalListDetailDto {
     public void setSubjectName(String subjectName) {
         this.subjectName = subjectName;
     }
+
+    public String getMusicalName() {
+        return musicalName;
+    }
+
+    public void setMusicalName(String musicalName) {
+        this.musicalName = musicalName;
+    }
+
+    public String getAccessoriesName() {
+        return accessoriesName;
+    }
+
+    public void setAccessoriesName(String accessoriesName) {
+        this.accessoriesName = accessoriesName;
+    }
 }

+ 28 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderDetailServiceImpl.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -247,12 +248,13 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
         Organization organization = organizationDao.get(musicGroup.getOrganId());
         Map<Long, String> goodsNameMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsNames(paymentOrderNo));
         Map<Integer, String> usernameMap = MapUtil.convertIntegerMap(teacherDao.queryUsernameByIds(userIds));
-        Map<Long, BigDecimal> actualAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDao.queryActualAmount(paymentOrderNo));
+        Map<Long, BigDecimal> expectAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDao.queryExpectAmount(paymentOrderNo));
         Map<Long, BigDecimal> musicalAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "MUSICAL"));
         Map<Long, BigDecimal> accessoriesAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "ACCESSORIES"));
         Map<Long, BigDecimal> courseAmountMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryGoodsPrice(paymentOrderNo, "COURSE"));
         Map<Long, String> purchaseTypeMap = MapUtil.convertIntegerMap(studentPaymentOrderDetailDao.queryPurchaseTypeMap(paymentOrderNo));
         Map<Integer, String> userSubjectMap = subjectDao.getRegisterSubject(musicGroupId, userIds).stream().collect(Collectors.toMap(StudentRegistration::getUserId, StudentRegistration::getSubjectName));
+        List<StudentPaymentOrderDetail> details = studentPaymentOrderDetailDao.getOrderGoodies(paymentOrderNo);
 
         musicalListDetailDtos.forEach(e -> {
             e.setGoodsNames(goodsNameMap.get(e.getPaymentOrderId()));
@@ -261,34 +263,53 @@ public class StudentPaymentOrderDetailServiceImpl extends BaseServiceImpl<Long,
             e.setOrganName(organization.getName());
             e.setMusicalAmount(musicalAmountMap.get(e.getPaymentOrderId()));
             e.setAccessoriesAmount(accessoriesAmountMap.get(e.getPaymentOrderId()));
-            e.setOrderAmount(actualAmountMap.get(e.getPaymentOrderId()));
+            e.setOrderAmount(expectAmountMap.get(e.getPaymentOrderId()));
             e.setCourseAmount(courseAmountMap.get(e.getPaymentOrderId()));
             e.setSubjectName(userSubjectMap.get(e.getUserId()));
             String s = purchaseTypeMap.get(e.getPaymentOrderId());
             if (StringUtils.isNotEmpty(s)) {
                 e.setKitGroupPurchaseTypeEnum(KitGroupPurchaseTypeEnum.valueOf(purchaseTypeMap.get(e.getPaymentOrderId())));
             }
+            List<Goods> accessories = new ArrayList<>();
+            for (StudentPaymentOrderDetail detail : details) {
+                if (!e.getPaymentOrderId().equals(detail.getPaymentOrderId())) continue;
+                if (detail.getType().equals(OrderDetailTypeEnum.MUSICAL)) {
+                    e.setMusicalName(detail.getGoodsList().stream().map(Goods::getName).collect(Collectors.joining(",")));
+                } else {
+                    accessories.addAll(detail.getGoodsList());
+                }
+            }
+            accessories.sort(Comparator.comparing(Goods::getId));
+            e.setAccessoriesName(accessories.stream().map(Goods::getName).collect(Collectors.joining(",")));
         });
         List<SubjectChange> studentGoodies = subjectChangeDao.getStudentGoods(musicGroupId);
         if (studentGoodies.size() <= 0) {
             return musicalListDetailDtos;
         }
+        List<SubjectChange> margins = subjectChangeDao.getMargin(musicGroupId);
+
         for (MusicalListDetailDto musicalListDetailDto : musicalListDetailDtos) {
             for (SubjectChange studentGoods : studentGoodies) {
                 if (!musicalListDetailDto.getUserId().equals(studentGoods.getStudentId())) continue;
-                String goodsNames = "";
+                musicalListDetailDto.setMusicalName("");
                 if (studentGoods.getChangeMusicalGoods() != null) {
-                    goodsNames += studentGoods.getChangeMusicalGoods().getName();
+                    musicalListDetailDto.setMusicalName(studentGoods.getChangeMusicalGoods().getName());
                 }
+                musicalListDetailDto.setAccessoriesName("");
                 if (studentGoods.getChangeAccessoriesGoods() != null) {
-                    String accessoriesNames = studentGoods.getChangeAccessoriesGoods().stream().map(Goods::getName).collect(Collectors.joining(","));
-                    goodsNames += StringUtils.isNotBlank(goodsNames) ? "," + accessoriesNames : accessoriesNames;
+                    List<Goods> changeAccessoriesGoods = studentGoods.getChangeAccessoriesGoods();
+                    changeAccessoriesGoods.sort(Comparator.comparing(Goods::getId));
+                    String accessoriesNames = changeAccessoriesGoods.stream().map(Goods::getName).collect(Collectors.joining(","));
+                    musicalListDetailDto.setAccessoriesName(accessoriesNames);
                 }
-                musicalListDetailDto.setGoodsNames(goodsNames);
                 musicalListDetailDto.setMusicalAmount(studentGoods.getChangeMusicalPrice());
                 musicalListDetailDto.setAccessoriesAmount(studentGoods.getChangeAccessoriesPrice());
                 musicalListDetailDto.setCourseAmount(studentGoods.getChangeCourseFee());
             }
+            for (SubjectChange margin : margins) {
+                if (!musicalListDetailDto.getUserId().equals(margin.getStudentId())) continue;
+                musicalListDetailDto.setOrderAmount(musicalListDetailDto.getOrderAmount().add(margin.getGoodsMargin()));
+            }
         }
         return musicalListDetailDtos;
     }

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -144,12 +144,11 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             List<Integer> stuEducation = studentRepairDao.countStuEducation(studentId);
             if (stuEducation != null && stuEducation.size() == 1) {
                 //获取学员乐团关联的教务
+                MusicGroup musicGroup = musicGroupDao.getStuMusic(studentId);
                 studentGoodsSell.setTeacherId(stuEducation.get(0));
-            }
-            //获取学员乐团关联的教务
-            MusicGroup musicGroup = musicGroupDao.getStuMusic(studentId);
-            if (musicGroup != null) {
-                studentGoodsSell.setCooperationOrganId(musicGroup.getCooperationOrganId());
+                if (musicGroup != null) {
+                    studentGoodsSell.setCooperationOrganId(musicGroup.getCooperationOrganId());
+                }
             }
         } else if (studentGoodsSell.getCooperationOrganId() == null) {
             //获取教务老师,学员关联的乐团

+ 18 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -239,4 +239,22 @@
         </foreach>
         AND type_='MUSICAL'
     </select>
+
+    <select id="getOrderGoodies" resultMap="StudentPaymentOrderDetail">
+        SELECT spod.*,
+        g.id_   goods_id_,
+        g.name_ goods_name_,
+        g.group_purchase_price_,
+        g.discount_price_,
+        g.agree_cost_price_,
+        g.type_ goods_type_,
+        g.complement_goods_id_list_
+        FROM student_payment_order_detail spod
+        LEFT JOIN goods g ON FIND_IN_SET(g.id_, spod.goods_id_list_)
+        WHERE spod.payment_order_id_ IN
+        <foreach collection="orderIds" open="(" close=")" separator="," item="orderId">
+            #{orderId}
+        </foreach>
+        AND spod.goods_id_list_ IS NOT NULL
+    </select>
 </mapper>

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

@@ -446,8 +446,8 @@
             AND status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
     </select>
-    <select id="queryActualAmount" resultType="java.util.Map">
-        SELECT spo.actual_amount_ 'value',spo.id_ 'key'
+    <select id="queryExpectAmount" resultType="java.util.Map">
+        SELECT spo.expect_amount_ 'value',spo.id_ 'key'
         FROM student_payment_order spo
         WHERE spo.id_ IN
         <foreach collection="paymentOrderNo" open="(" close=")" separator="," item="item">

+ 12 - 8
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -153,14 +153,18 @@ public class MusicGroupController extends BaseController {
         if (studentRegistration.getPaymentStatus() != PaymentStatusEnum.OPEN) {
             return failed("乐团还未开启缴费,请等待通知");
         }
-        if(studentRegistration.getTemporaryCourseFee() == null &&
-                (musicGroup.getStatus() != MusicGroupStatusEnum.APPLY && musicGroup.getStatus() != MusicGroupStatusEnum.PAY)){
-            return failed("乐团在"+musicGroup.getStatus().getMsg()+",不能缴费");
-        }
-        Date now = new Date();
-        if (DateUtil.daysBetween(musicGroup.getPaymentExpireDate(), now) > 1) {
-            return failed("乐团缴费时间已截止");
-        }
+		if (studentRegistration.getTemporaryCourseFee() == null) {
+			if (musicGroup.getStatus() != MusicGroupStatusEnum.APPLY && musicGroup.getStatus() != MusicGroupStatusEnum.PAY) {
+				return failed("乐团在" + musicGroup.getStatus().getMsg() + ",不能缴费");
+			}
+
+			if(musicGroup.getStatus() == MusicGroupStatusEnum.PAY){
+				Date now = new Date();
+				if (DateUtil.daysBetween(musicGroup.getPaymentExpireDate(), now) > 1) {
+					return failed("乐团缴费时间已截止");
+				}
+			}
+		}
         studentRegistration.setOwnershipType(musicGroup.getOwnershipType());
         studentRegistration.setChargeTypeId(musicGroup.getChargeTypeId());
 

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

@@ -718,8 +718,8 @@ public class ExportController extends BaseController {
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "乐团", "学员编号", "学员姓名", "声部", "购买商品", "乐器采购方式", "乐器金额", "教辅金额", "课程金额", "订单总价"}, new String[]{
-                    "organName", "musicGroupName", "userId", "username", "subjectName", "goodsNames", "kitGroupPurchaseTypeEnum.msg", "musicalAmount", "accessoriesAmount", "courseAmount", "orderAmount"}, musicalList);
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "乐团", "学员编号", "学员姓名", "声部", "购买乐器", "乐器采购方式", "乐器金额", "购买教辅", "教辅金额", "课程金额", "订单总价"}, new String[]{
+                    "organName", "musicGroupName", "userId", "username", "subjectName", "musicalName", "kitGroupPurchaseTypeEnum.msg", "musicalAmount", "accessoriesName", "accessoriesAmount", "courseAmount", "orderAmount"}, musicalList);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();