浏览代码

feat:六一活动排课

Joburgess 4 年之前
父节点
当前提交
dbffcedec5

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayDegreeInfoServiceImpl.java

@@ -1,19 +1,27 @@
 package com.ym.mec.biz.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.ChildrenDayDegreeDetailDao;
 import com.ym.mec.biz.dal.dao.ChildrenDayDegreeInfoDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.entity.ChildrenDayDegreeDetail;
 import com.ym.mec.biz.dal.entity.ChildrenDayDegreeInfo;
+import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.enums.ActivityCourseType;
 import com.ym.mec.biz.service.ChildrenDayDegreeInfoService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Objects;
 
 @Service
 public class ChildrenDayDegreeInfoServiceImpl extends BaseServiceImpl<Integer, ChildrenDayDegreeInfo> implements ChildrenDayDegreeInfoService {
@@ -21,6 +29,8 @@ public class ChildrenDayDegreeInfoServiceImpl extends BaseServiceImpl<Integer, C
     private ChildrenDayDegreeInfoDao childrenDayDegreeInfoDao;
     @Autowired
     private ChildrenDayDegreeDetailDao childrenDayDegreeDetailDao;
+    @Autowired
+    private StudentDao studentDao;
 
     @Override
     public BaseDAO<Integer, ChildrenDayDegreeInfo> getDAO() {
@@ -32,6 +42,14 @@ public class ChildrenDayDegreeInfoServiceImpl extends BaseServiceImpl<Integer, C
     public ChildrenDayDegreeInfo addInfo(Long orderId) {
         List<ChildrenDayDegreeDetail> details = childrenDayDegreeDetailDao.getByOrderId(orderId);
         ChildrenDayDegreeInfo childrenDayDegreeInfo = new ChildrenDayDegreeInfo();
+        Student student = null;
+        JSONObject courseDetail = new JSONObject();
+        if(!CollectionUtils.isEmpty(details)){
+            student = studentDao.get(details.get(0).getUserId());
+        }
+        if(Objects.nonNull(student)&& StringUtils.isNotBlank(student.getActivityCourseDetail())){
+            courseDetail = JSON.parseObject(student.getActivityCourseDetail());
+        }
         BigDecimal totalAmount = BigDecimal.ZERO;
         for (ChildrenDayDegreeDetail detail : details) {
             switch (detail.getType()) {
@@ -39,6 +57,9 @@ public class ChildrenDayDegreeInfoServiceImpl extends BaseServiceImpl<Integer, C
                     childrenDayDegreeInfo.setSubjectId(detail.getSubjectId());
                     childrenDayDegreeInfo.setGradeLevel(detail.getLevel());
                     childrenDayDegreeInfo.setGradePrice(detail.getPrice());
+                    if(detail.getPrice().compareTo(BigDecimal.ZERO)>0&&!courseDetail.containsKey(ActivityCourseType.FREE_VIP.getCode())){
+                        courseDetail.put(ActivityCourseType.FREE_VIP.getCode(), 1);
+                    }
                     break;
                 case 2:
                     childrenDayDegreeInfo.setTheoryLevel(detail.getLevel());
@@ -46,12 +67,22 @@ public class ChildrenDayDegreeInfoServiceImpl extends BaseServiceImpl<Integer, C
                     break;
                 case 3:
                     childrenDayDegreeInfo.setVip1v1Price(detail.getPrice());
+                    if(detail.getPrice().compareTo(BigDecimal.ZERO)>0&&!courseDetail.containsKey(ActivityCourseType.VIP1.getCode())){
+                        courseDetail.put(ActivityCourseType.VIP1.getCode(), 1);
+                    }
                     break;
                 case 4:
                     childrenDayDegreeInfo.setVip1v2Price(detail.getPrice());
+                    if(detail.getPrice().compareTo(BigDecimal.ZERO)>0&&!courseDetail.containsKey(ActivityCourseType.VIP2.getCode())){
+                        courseDetail.put(ActivityCourseType.VIP2.getCode(), 1);
+                    }
                     break;
                 case 5:
                     childrenDayDegreeInfo.setTheoryCoursePrice(detail.getPrice());
+                    if(detail.getPrice().compareTo(BigDecimal.ZERO)>0&&!courseDetail.containsKey(ActivityCourseType.MUSIC_THEORY.getCode())){
+                        courseDetail.put(ActivityCourseType.MUSIC_THEORY.getCode(), 1);
+                        courseDetail.put("music_theory_price", detail.getPrice());
+                    }
                     break;
                 default:
                     break;
@@ -65,6 +96,10 @@ public class ChildrenDayDegreeInfoServiceImpl extends BaseServiceImpl<Integer, C
         if (childrenDayDegreeInfoDao.insert(childrenDayDegreeInfo) <= 0) {
             throw new BizException("汇总信息插入失败");
         }
+        if(Objects.nonNull(student)){
+            student.setActivityCourseDetail(courseDetail.toJSONString());
+            studentDao.update(student);
+        }
         return childrenDayDegreeInfo;
     }
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -872,7 +872,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 			Map<Integer,String> studentIdStrMap = new HashMap<>(1);
 			studentIdList.forEach(id->studentIdStrMap.put(id, id.toString()));
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.CHILDREN_DAY_VIP_COURSE_STUDENT_PUSH, map, null, 0, "","STUDENT",
+			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.CHILDREN_DAY_VIP_COURSE_STUDENT_PUSH, studentIdStrMap, null, 0, "","STUDENT",
 					vipGroupApplyBaseInfoDto.getName());
 		} catch (Exception e) {
 			e.printStackTrace();