Browse Source

修改添加回访记录

周箭河 4 years ago
parent
commit
88b84717e4

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPaymentOrderDetail.java

@@ -42,6 +42,9 @@ public class StudentPaymentOrderDetail {
 	//购买方式
 	private KitGroupPurchaseTypeEnum kitGroupPurchaseType;
 
+	//商品成本价
+	private String goodsPrices;
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -110,4 +113,12 @@ public class StudentPaymentOrderDetail {
 	public void setKitGroupPurchaseType(KitGroupPurchaseTypeEnum kitGroupPurchaseType) {
 		this.kitGroupPurchaseType = kitGroupPurchaseType;
 	}
+
+	public String getGoodsPrices() {
+		return goodsPrices;
+	}
+
+	public void setGoodsPrices(String goodsPrices) {
+		this.goodsPrices = goodsPrices;
+	}
 }

+ 38 - 151
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -408,9 +408,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         orderAmount = orderAmount.add(courseFee);
 
-        BigDecimal instrumentFee = BigDecimal.ZERO;
-        BigDecimal accessoriesFee = BigDecimal.ZERO;
-        BigDecimal otherFee = BigDecimal.ZERO;
         BigDecimal remitFee = BigDecimal.ZERO;
 
         //乐器及打包辅件
@@ -428,13 +425,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupSubjectGoodsGroup.setPrice(orderDetail.getPrice());
                 musicGroupSubjectGoodsGroup.setKitGroupPurchaseType(orderDetail.getKitGroupPurchaseType());
                 goodsGroups.add(musicGroupSubjectGoodsGroup);
-                if (musicGroupSubjectGoodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
-                    instrumentFee = instrumentFee.add(orderDetail.getPrice());
-                } else if (musicGroupSubjectGoodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
-                    accessoriesFee = accessoriesFee.add(orderDetail.getPrice());
-                } else {
-                    otherFee = otherFee.add(orderDetail.getPrice());
-                }
 
                 orderAmount = orderAmount.add(orderDetail.getPrice());
             }
@@ -449,13 +439,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     goodsGroup.setPrice(new BigDecimal(0));
                 }
                 orderAmount = orderAmount.add(goodsGroup.getPrice());
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
-                    instrumentFee = instrumentFee.add(goodsGroup.getPrice());
-                } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
-                    accessoriesFee = accessoriesFee.add(goodsGroup.getPrice());
-                } else {
-                    otherFee = otherFee.add(goodsGroup.getPrice());
-                }
                 //团购乐器减免课程费用
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && goodsGroup.getRemissionCourseFee() != null && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.GROUP)) {//团购
                     orderAmount = orderAmount.subtract(goodsGroup.getRemissionCourseFee());
@@ -468,37 +451,19 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
                 });
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
-                    if (!groupType.containsKey("GROUP")) {
-                        throw new BizException("乐器提供方式不存在");
+                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
+                    String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId());
+                    if (!groupType.containsKey(kitGroupPurchaseType)) {
+                        throw new BizException("乐器提供方式不存在,请核查");
                     }
-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.GROUP);
-                    remitFee = groupType.get("GROUP");
-                }
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
-                    if (!groupType.containsKey("LEASE")) {
-                        throw new BizException("乐器提供方式不存在");
+                    if (!kitGroupPurchaseType.equals("GROUP")) {
+                        goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee());
                     }
-                    goodsGroup.setPrice(goodsGroup.getDepositFee());
-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE);
-                    remitFee = groupType.get("LEASE");
-                }
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
-                    if (!groupType.containsKey("FREE")) {
-                        throw new BizException("乐器提供方式不存在");
-                    }
-                    goodsGroup.setPrice(new BigDecimal(0));
-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.FREE);
-                    remitFee = groupType.get("FREE");
-                }
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
-                    instrumentFee = instrumentFee.add(goodsGroup.getPrice());
-                } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
-                    accessoriesFee = accessoriesFee.add(goodsGroup.getPrice());
-                } else {
-                    otherFee = otherFee.add(goodsGroup.getPrice());
+                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
+                    remitFee = groupType.get(kitGroupPurchaseType);
                 }
                 orderAmount = orderAmount.add(goodsGroup.getPrice());
+                goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
             }
             orderAmount = orderAmount.subtract(remitFee);
         }
@@ -509,7 +474,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             goodsList = goodsService.findGoodsByIds(registerPayDto.getGoodsIds());
             for (Goods goods : goodsList) {
                 orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
-                accessoriesFee = accessoriesFee.add(goods.getGroupPurchasePrice());
             }
         }
 
@@ -519,7 +483,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             otherGoodsList = goodsService.findGoodsByIds(registerPayDto.getOtherGoodsIds());
             for (Goods goods : otherGoodsList) {
                 orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
-                otherFee = otherFee.add(goods.getGroupPurchasePrice());
             }
         }
         if (amount.compareTo(orderAmount) != 0) {
@@ -572,27 +535,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             return notifyMap;
         }
 
-        //分类费用 course,instrument,accessories,other
-        Map<String, BigDecimal> classFee = new HashMap<>();
-        classFee.put("course", courseFee);
-        classFee.put("instrument", instrumentFee);
-        classFee.put("accessories", accessoriesFee);
-        classFee.put("other", otherFee);
-        BigDecimal classFeeAmount = courseFee.add(instrumentFee).add(accessoriesFee).add(otherFee);
-
-        if (amount.compareTo(classFeeAmount) < 0) {
-            BigDecimal subAmount = classFeeAmount.subtract(amount);
-            for (Map.Entry<String, BigDecimal> feeEntry : classFee.entrySet()) {
-                if (subAmount.compareTo(feeEntry.getValue()) > 0) {
-                    classFee.put(feeEntry.getKey(), BigDecimal.ZERO);
-                    subAmount = subAmount.subtract(feeEntry.getValue());
-                } else {
-                    classFee.put(feeEntry.getKey(), feeEntry.getValue().subtract(subAmount));
-                    break;
-                }
-            }
-        }
-
         String orderSubject = "乐团报名";
         String receiver = "register";
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType().equals(CooperationOrgan.OwnershipType.COOPERATION)) {
@@ -646,9 +588,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         orderAmount = orderAmount.add(courseFee);
 
-        BigDecimal instrumentFee = BigDecimal.ZERO;
-        BigDecimal accessoriesFee = BigDecimal.ZERO;
-        BigDecimal otherFee = BigDecimal.ZERO;
         BigDecimal remitFee = BigDecimal.ZERO;
 
         //乐器及打包辅件
@@ -667,13 +606,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupSubjectGoodsGroup.setKitGroupPurchaseType(orderDetail.getKitGroupPurchaseType());
                 goodsGroups.add(musicGroupSubjectGoodsGroup);
 
-                if (musicGroupSubjectGoodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
-                    instrumentFee = instrumentFee.add(orderDetail.getPrice());
-                } else if (musicGroupSubjectGoodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
-                    accessoriesFee = accessoriesFee.add(orderDetail.getPrice());
-                } else {
-                    otherFee = otherFee.add(orderDetail.getPrice());
-                }
                 orderAmount = orderAmount.add(orderDetail.getPrice());
             }
         } else if (StringUtils.isNoneBlank(registerPayDto.getGoodsGroupIds())) {
@@ -685,15 +617,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.FREE)) {
                     goodsGroup.setPrice(new BigDecimal(0));
                 }
-
                 orderAmount = orderAmount.add(goodsGroup.getPrice());
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
-                    instrumentFee = instrumentFee.add(goodsGroup.getPrice());
-                } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
-                    accessoriesFee = accessoriesFee.add(goodsGroup.getPrice());
-                } else {
-                    otherFee = otherFee.add(goodsGroup.getPrice());
-                }
+
                 //团购乐器减免课程费用
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && goodsGroup.getRemissionCourseFee() != null && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.GROUP)) {//团购
                     orderAmount = orderAmount.subtract(goodsGroup.getRemissionCourseFee());
@@ -706,37 +631,19 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
                 });
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
-                    if (!groupType.containsKey("GROUP")) {
-                        throw new BizException("乐器提供方式不存在");
+                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
+                    String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId());
+                    if (!groupType.containsKey(kitGroupPurchaseType)) {
+                        throw new BizException("乐器提供方式不存在,请核查");
                     }
-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.GROUP);
-                    remitFee = groupType.get("GROUP");
-                }
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
-                    if (!groupType.containsKey("LEASE")) {
-                        throw new BizException("乐器提供方式不存在");
+                    if (!kitGroupPurchaseType.equals("GROUP")) {
+                        goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee());
                     }
-                    goodsGroup.setPrice(goodsGroup.getDepositFee());
-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE);
-                    remitFee = groupType.get("LEASE");
-                }
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
-                    if (!groupType.containsKey("FREE")) {
-                        throw new BizException("乐器提供方式不存在");
-                    }
-                    goodsGroup.setPrice(new BigDecimal(0));
-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.FREE);
-                    remitFee = groupType.get("FREE");
-                }
-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
-                    instrumentFee = instrumentFee.add(goodsGroup.getPrice());
-                } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
-                    accessoriesFee = accessoriesFee.add(goodsGroup.getPrice());
-                } else {
-                    otherFee = otherFee.add(goodsGroup.getPrice());
+                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
+                    remitFee = groupType.get(kitGroupPurchaseType);
                 }
                 orderAmount = orderAmount.add(goodsGroup.getPrice());
+                goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
             }
             orderAmount = orderAmount.subtract(remitFee);
         }
@@ -747,7 +654,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             goodsList = goodsService.findGoodsByIds(registerPayDto.getGoodsIds());
             for (Goods goods : goodsList) {
                 orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
-                accessoriesFee = accessoriesFee.add(goods.getGroupPurchasePrice());
             }
         }
 
@@ -757,7 +663,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             otherGoodsList = goodsService.findGoodsByIds(registerPayDto.getOtherGoodsIds());
             for (Goods goods : otherGoodsList) {
                 orderAmount = orderAmount.add(goods.getGroupPurchasePrice());
-                otherFee = otherFee.add(goods.getGroupPurchasePrice());
             }
         }
         if (amount.compareTo(orderAmount) != 0) {
@@ -811,26 +716,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             return notifyMap;
         }
 
-        //分类费用 course,instrument,accessories,other
-        Map<String, BigDecimal> classFee = new HashMap<>();
-        classFee.put("course", courseFee);
-        classFee.put("instrument", instrumentFee);
-        classFee.put("accessories", accessoriesFee);
-        classFee.put("other", otherFee);
-        BigDecimal classFeeAmount = courseFee.add(instrumentFee).add(accessoriesFee).add(otherFee);
-
-        if (amount.compareTo(classFeeAmount) < 0) {
-            BigDecimal subAmount = classFeeAmount.subtract(amount);
-            for (Map.Entry<String, BigDecimal> feeEntry : classFee.entrySet()) {
-                if (subAmount.compareTo(feeEntry.getValue()) > 0) {
-                    classFee.put(feeEntry.getKey(), BigDecimal.ZERO);
-                    subAmount = subAmount.subtract(feeEntry.getValue());
-                } else {
-                    classFee.put(feeEntry.getKey(), feeEntry.getValue().subtract(subAmount));
-                    break;
-                }
-            }
-        }
         String orderSubject = "乐团报名";
         String receiver = "register";
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType().equals(CooperationOrgan.OwnershipType.COOPERATION)) {
@@ -920,7 +805,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         updateExpectedNumDtos.forEach(e -> {
             MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.get(e.getMusicGroupSubjectPlanId());
             musicGroupSubjectPlan.setExpectedStudentNum(e.getExpectedStudentNum());
-            musicGroupSubjectPlanDao.update(musicGroupSubjectPlan);
+            if (musicGroupSubjectPlanDao.update(musicGroupSubjectPlan) <= 0) {
+                throw new BizException("更新失败,请重试");
+            }
         });
     }
 
@@ -1258,30 +1145,30 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
-	public boolean deleteMusicGroup(String musicGroupId) {
+    public boolean deleteMusicGroup(String musicGroupId) {
 
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        
-        if(musicGroup == null){
-        	throw new BizException("乐团不存在");
+
+        if (musicGroup == null) {
+            throw new BizException("乐团不存在");
         }
-        
-        if(musicGroup.getDelFlag() == true){
-        	throw new BizException("乐团已删除");
+
+        if (musicGroup.getDelFlag() == true) {
+            throw new BizException("乐团已删除");
         }
-        
+
         if (musicGroup.getStatus() != MusicGroupStatusEnum.CANCELED) {
             throw new BizException("乐团当前状态是{},不能删除", musicGroup.getStatus().getMsg());
         }
-        
+
         musicGroup.setUpdateTime(new Date());
         musicGroup.setDelFlag(true);
         musicGroupDao.update(musicGroup);
-        
-		return true;
-	}
 
-	@Override
+        return true;
+    }
+
+    @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public boolean pauseMusicGroup(String musicGroupId) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
@@ -1944,9 +1831,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupPageInfo = queryPage(queryInfo);
         }
         List<MusicGroup> musicGroupList = musicGroupPageInfo.getRows();
-        
-        if(musicGroupList == null || musicGroupList.size() == 0){
-        	return musicGroupPageInfo;
+
+        if (musicGroupList == null || musicGroupList.size() == 0) {
+            return musicGroupPageInfo;
         }
         // 获取学校编号列表
 //        Set<Integer> schoolIds = musicGroupList.stream().map(e -> e.getSchoolId()).collect(Collectors.toSet());

+ 45 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -105,7 +106,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         List<StudentApplyDetailDto> dataList = null;
         int count = studentRegistrationDao.queryStudentDetailCount(params);
-        if(queryInfo.getIsExport() && count > 50000){
+        if (queryInfo.getIsExport() && count > 50000) {
             throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
         }
         if (count > 0) {
@@ -301,6 +302,15 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         //乐器及打包辅件
         if (goodsGroups != null && goodsGroups.size() > 0) {
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
+                List<Map<String, Object>> goodsPrices = new ArrayList<>();
+                for (Goods goods : goodsGroup.getGoodsList()) {
+                    HashMap<String, Object> goodsPrice = new HashMap<>();
+                    goodsPrice.put("id", goods.getId());
+                    goodsPrice.put("discountPrice", goods.getDiscountPrice());
+                    goodsPrice.put("agreeCostPrice", goods.getAgreeCostPrice());
+                    goodsPrices.add(goodsPrice);
+                }
+
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
                 OrderDetailTypeEnum type = null;
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
@@ -310,6 +320,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 } else if (goodsGroup.getType().equals(GoodsType.OTHER)) {
                     type = OrderDetailTypeEnum.TEACHING;
                 }
+                studentPaymentOrderDetail4goodsGroup.setGoodsPrices(JSON.toJSONString(goodsPrices));
                 studentPaymentOrderDetail4goodsGroup.setType(type);
                 studentPaymentOrderDetail4goodsGroup.setPrice(goodsGroup.getPrice());
                 studentPaymentOrderDetail4goodsGroup.setGoodsIdList(goodsGroup.getGoodsIdList());
@@ -323,9 +334,17 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         //单独辅件
         if (goodsList != null && goodsList.size() > 0) {
+            List<Map<String, Object>> goodsPrices = new ArrayList<>();
             for (Goods goods : goodsList) {
+                HashMap<String, Object> goodsPrice = new HashMap<>();
+                goodsPrice.put("id", goods.getId());
+                goodsPrice.put("discountPrice", goods.getDiscountPrice());
+                goodsPrice.put("agreeCostPrice", goods.getAgreeCostPrice());
+                goodsPrices.add(goodsPrice);
+
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
                 OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
+                studentPaymentOrderDetail4goods.setGoodsPrices(JSON.toJSONString(goodsPrices));
                 studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
@@ -337,8 +356,17 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
         //单独教谱
         if (otherGoodsList != null && otherGoodsList.size() > 0) {
+            List<Map<String, Object>> goodsPrices = new ArrayList<>();
+
             for (Goods goods : otherGoodsList) {
+                HashMap<String, Object> goodsPrice = new HashMap<>();
+                goodsPrice.put("id", goods.getId());
+                goodsPrice.put("discountPrice", goods.getDiscountPrice());
+                goodsPrice.put("agreeCostPrice_", goods.getAgreeCostPrice());
+                goodsPrices.add(goodsPrice);
+
                 StudentPaymentOrderDetail studentPaymentOrderDetail4otherGoods = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetail4otherGoods.setGoodsPrices(JSON.toJSONString(goodsPrices));
                 studentPaymentOrderDetail4otherGoods.setType(OrderDetailTypeEnum.TEACHING);
                 studentPaymentOrderDetail4otherGoods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4otherGoods.setGoodsIdList(goods.getId().toString());
@@ -515,7 +543,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sysUser.setBirthdate(studentRegistration.getBirthdate());
                 teacherDao.addSysUser(sysUser);
                 userId = sysUser.getId();
-                studentDao.insert(new Student(userId,studentRegistration.getSubjectId().toString()));
+                studentDao.insert(new Student(userId, studentRegistration.getSubjectId().toString()));
                 //添加用户现金账户
                 sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
                 //添加用户电子签章账户
@@ -536,25 +564,25 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 teacherDao.updateUser(sysUser);
                 userId = sysUser.getId();
                 Student student = studentDao.get(userId);
-                if(student == null){
-                    studentDao.insert(new Student(userId,studentRegistration.getSubjectId().toString()));
-                }else if(StringUtils.isEmpty(student.getSubjectIdList())){
+                if (student == null) {
+                    studentDao.insert(new Student(userId, studentRegistration.getSubjectId().toString()));
+                } else if (StringUtils.isEmpty(student.getSubjectIdList())) {
                     student.setSubjectIdList(studentRegistration.getSubjectId().toString());
                     student.setUpdateTime(date);
                     studentDao.update(student);
-                }else if(StringUtils.isNotEmpty(student.getSubjectIdList())){
+                } else if (StringUtils.isNotEmpty(student.getSubjectIdList())) {
                     String[] split = student.getSubjectIdList().split(",");
                     List<String> list = new ArrayList<>(Arrays.asList(split));
-                    if(!list.contains(studentRegistration.getSubjectId())){
+                    if (!list.contains(studentRegistration.getSubjectId().toString())) {
                         list.add(studentRegistration.getSubjectId().toString());
-                        student.setSubjectIdList(StringUtils.join(list,","));
+                        student.setSubjectIdList(StringUtils.join(list, ","));
                         student.setUpdateTime(date);
                         studentDao.update(student);
                     }
                 }
             }
             MusicGroupStudentFee studentFeeDaoByUser = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
-            if(studentFeeDaoByUser != null){
+            if (studentFeeDaoByUser != null) {
                 throw new BizException("该学员已存在");
             }
             studentRegistration.setActualSubjectId(studentRegistration.getSubjectId());
@@ -625,8 +653,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee(musicGroupId,
                     userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
                     null, studentAddDto.getTemporaryCourseFee(), paymentStatus);
-            if(musicGroup.getFeeType() != null && musicGroup.getFeeType() != MusicGroupPaymentCalender.FeeType.OFFLINE && musicGroupStudentFee.getTemporaryCourseFee().doubleValue() * 100 == 0){
-            	musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
+            if (musicGroup.getFeeType() != null && musicGroup.getFeeType() != MusicGroupPaymentCalender.FeeType.OFFLINE && musicGroupStudentFee.getTemporaryCourseFee().doubleValue() * 100 == 0) {
+                musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
             }
             musicGroupStudentFeeDao.insert(musicGroupStudentFee);
 //            musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
@@ -764,7 +792,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         //成功报名状态变更
         StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId());
 
-        if(studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.YES)){
+        if (studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.YES)) {
             return studentPaymentOrder;
         }
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
@@ -772,7 +800,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
 
             MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
-            
+
             if (studentRegistration.getTemporaryCourseFee() != null) {
                 studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
             }
@@ -790,8 +818,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 musicGroupStudentFee.setLatestPaidTime(nowDate);
                 musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
                 musicGroupStudentFee.setTemporaryCourseFee(BigDecimal.ZERO);
-                if(musicGroup.getFeeType() != null && musicGroup.getFeeType() != MusicGroupPaymentCalender.FeeType.OFFLINE){
-                	musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
+                if (musicGroup.getFeeType() != null && musicGroup.getFeeType() != MusicGroupPaymentCalender.FeeType.OFFLINE) {
+                    musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
                 }
                 musicGroupStudentFee.setUpdateTime(nowDate);
                 musicGroupStudentFeeDao.update(musicGroupStudentFee);
@@ -857,8 +885,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 // 商品协议(租赁时候有)
                 StudentPaymentOrderDetail applyOrderMusical = studentPaymentOrderDetailService.findApplyOrderMusical(studentPaymentOrder.getId());
                 if (applyOrderMusical != null && applyOrderMusical.getKitGroupPurchaseType() != null && applyOrderMusical.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                        contractService.transferGoodsContract(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId(),
-                                applyOrderMusical.getGoodsIdList(), applyOrderMusical.getKitGroupPurchaseType());
+                    contractService.transferGoodsContract(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId(),
+                            applyOrderMusical.getGoodsIdList(), applyOrderMusical.getKitGroupPurchaseType());
                 }
             } catch (Exception e) {
                 LOGGER.error("协议生成失败", e);