|
@@ -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());
|