Browse Source

Merge remote-tracking branch 'origin/feature/0406-degree' into feature/0406-degree

zouxuan 2 năm trước cách đây
mục cha
commit
f94d8b9287

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

@@ -39,5 +39,5 @@ public interface DegreeRegistrationDao extends BaseDAO<Integer, DegreeRegistrati
      *
      * @param degreeId 考级ID
      */
-    List<DegreeRegistration> selectByDegreeId(@Param("degreeId") Long degreeId);
+    List<DegreeRegistration> selectByDegreeId(@Param("degreeIds") List<Long> degreeId);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeRegistration.java

@@ -83,6 +83,8 @@ public class DegreeRegistration {
 
     private Integer organId;
 
+    private String organName;
+
     private String vipTeacherName;
 
     private String normalTeacherName;

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeWrapper.java

@@ -237,6 +237,9 @@ public class DegreeWrapper {
         @ApiModelProperty("考级城市分部")
         private List<DegreeCity> degreeCities;
 
+        @ApiModelProperty("倒计时开始天数")
+        private Integer startDays;
+
 
         public String jsonString() {
             return JSON.toJSONString(this);
@@ -245,6 +248,16 @@ public class DegreeWrapper {
         public static StudentDegreeInfo from(String json) {
             return JSON.parseObject(json, StudentDegreeInfo.class);
         }
+
+        public Integer getStartDays() {
+            if (Objects.nonNull(getStartTime()) && EDegreeStatus.NOT_START == getStatus()) {
+
+                DateTime now = DateTime.now().withHourOfDay(0).withMinuteOfHour(0).withSecondOfMinute(0).withMillisOfSecond(0);
+                // 计算与当前时间相差天数
+                return Days.daysBetween(now, new DateTime(getStartTime())).getDays();
+            }
+            return Optional.ofNullable(startDays).orElse(0);
+        }
     }
 
     @Data

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java

@@ -18,6 +18,7 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -59,6 +60,9 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
     @Autowired
     private SubjectService subjectService;
 
+    @Autowired
+    private OrganizationService organizationService;
+
     @Override
     public BaseDAO<Integer, DegreeRegistration> getDAO() {
         return degreeRegistrationDao;
@@ -254,6 +258,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
+
         List<DegreeRegistration> dataList = new ArrayList<>();
         int count = degreeRegistrationDao.queryCount(params);
 
@@ -285,6 +290,20 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
                 }
             }
 
+            // 设置分部
+            List<Integer> organIdSet = dataList.stream().map(o -> o.getOrganId()).filter(Objects::nonNull).collect(Collectors.toList());
+            Integer tenantId = TenantContextHolder.getTenantId();
+
+
+            List<Organization> organs = organizationService.findOrgans(organIdSet, tenantId);
+
+            if (!CollectionUtils.isEmpty(organs)) {
+                // id 分组
+                Map<Integer, String> organMap = organs.stream().collect(Collectors.toMap(Organization::getId, o -> o.getName(), (k1, k2) -> k1));
+                dataList.forEach(o -> o.setOrganName(organMap.get(o.getOrganId())));
+            }
+
+
 
             DegreeRegistration degree = degreeRegistrationDao.getTotalAmount(params);
             pageInfo.setApplyNum(degreeRegistrationDao.countApplyNum(params));

+ 34 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeServiceImpl.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.beust.jcommander.internal.Lists;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.ym.mec.biz.dal.dao.DegreeRegistrationDao;
 import com.ym.mec.biz.dal.dao.OrganizationDao;
@@ -29,10 +30,7 @@ import com.ym.mec.biz.service.DegreeService;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -103,6 +101,29 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
 
         List<Organization> organs = organizationService.findOrgans(organIds, tenantId);
 
+
+        // 考级ID集合
+        List<Long> degreeIds = degrees.stream().map(DegreeWrapper.Degree::getId).collect(Collectors.toList());
+
+        // 查询考级报名的订单
+        List<DegreeRegistration> registrations = degreeRegistrationDao.selectByDegreeId(degreeIds);
+
+        // 按考级ID分组
+        Map<Long, List<DegreeRegistration>> registrationMap = registrations.stream().collect(Collectors.groupingBy(DegreeRegistration::getDegreeId));
+
+        for (DegreeWrapper.Degree degree : degrees) {
+            List<DegreeRegistration> registrationList = registrationMap.get(degree.getId());
+            if (CollectionUtils.isEmpty(registrationList)) {
+                continue;
+            }
+            List<Integer> userIds = registrationList.stream().map(DegreeRegistration::getUserId).collect(Collectors.toList());
+
+            degree.setRegisterTotal(userIds.size());
+
+            degree.setRegisterNum(new HashSet<>(userIds).size());
+
+        }
+
         degrees.forEach(o -> {
             List<String> organNames = Arrays.stream(o.getOrganIds().split(","))
                     .filter(Objects::nonNull)
@@ -207,7 +228,7 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
         statistical.setRegisterNum(degree.getRegisterNum());
 
         // 查询考级报名的订单
-        List<DegreeRegistration> registrations = degreeRegistrationDao.selectByDegreeId(id);
+        List<DegreeRegistration> registrations = degreeRegistrationDao.selectByDegreeId(Lists.newArrayList(id));
 
         if (CollectionUtils.isEmpty(registrations)) {
             return statistical;
@@ -221,6 +242,14 @@ public class DegreeServiceImpl extends ServiceImpl<DegreeMapper, Degree> impleme
             return statistical;
         }
 
+        // 用户ID集合
+        List<Integer> userIds = registrations.stream().map(DegreeRegistration::getUserId).collect(Collectors.toList());
+        statistical.setRegisterTotal(userIds.size());
+
+        statistical.setRegisterNum(new HashSet<>(userIds).size());
+
+
+
         // 订单号集合
         List<String> orderNos = registrations.stream().map(DegreeRegistration::getOrderNo).collect(Collectors.toList());
 

+ 1 - 0
mec-biz/src/main/resources/config/mybatis/DegreeMapper.xml

@@ -26,6 +26,7 @@
                 AND t.status_ IN (<foreach collection="param.degreeStatuses" separator="," item="item">#{item}</foreach>)
             </if>
         </where>
+        order by t.id_ desc
 	</select>
 
     <update id="degreeStatusChange">

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

@@ -342,7 +342,10 @@
     <select id="selectByDegreeId" resultMap="DegreeRegistration">
         SELECT *
         FROM degree_registration
-        WHERE degree_id_ = #{degreeId}
-          AND status_ = 1
+        WHERE degree_id_ in
+        <foreach collection="degreeIds" item="degreeId" open="(" separator="," close=")">
+            #{degreeId}
+        </foreach>
+          AND status_ = 2
     </select>
 </mapper>

+ 4 - 4
mec-student/src/main/java/com/ym/mec/student/controller/degree/DegreeInfoController.java

@@ -59,16 +59,16 @@ public class DegreeInfoController extends BaseController {
         DegreeWrapper.StudentDegreeInfo wrapper = degreeService.studentDegreeInfoById(id);
 
         // 考级机构-暂未开放此活动
-        if (!user.getTenantId().equals(wrapper.getTenantId())) {
+        /*if (!user.getTenantId().equals(wrapper.getTenantId())) {
             throw new BizException("暂未开放此活动");
-        }
+        }*/
 
         // 考级城市-暂未开放此活动
-        boolean noneMatch = Arrays.stream(wrapper.getOrganIds().split(","))
+        /*boolean noneMatch = Arrays.stream(wrapper.getOrganIds().split(","))
                 .mapToInt(Integer::parseInt).noneMatch(x -> x == user.getOrganId());
         if (Objects.nonNull(user.getOrganId()) && noneMatch) {
             throw new BizException("暂未开放此活动");
-        }
+        }*/
 
         // 查询机构信息
         return succeed(wrapper);

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

@@ -1773,28 +1773,30 @@ public class ExportController extends BaseController {
             throw new BizException("没有可导出的记录");
         }
         Map<String, String> map = new HashMap<>(10);
-        map.put("一级", "1");
-        map.put("二级", "2");
-        map.put("三级", "3");
-        map.put("四级", "4");
-        map.put("五级", "5");
-        map.put("六级", "6");
-        map.put("七级", "7");
-        map.put("八级", "8");
-        map.put("九级", "9");
-        map.put("十级", "10");
+        map.put("1","一级");
+        map.put("2","二级");
+        map.put("3","三级");
+        map.put("4","四级");
+        map.put("5","五级");
+        map.put("6","六级");
+        map.put("7","七级");
+        map.put("8","八级");
+        map.put("9","九级");
+        map.put("10","十级");
         for (DegreeRegistration row : pageList.getRows()) {
 //            row.setActivityTag(map.get(row.getLevel()));
 //            if (row.getType() == DegreeTypeEnum.THEORY) {
 //                row.setSubject("乐理");
 //            }
             row.setGender("1".equals(row.getGender()) ? "男" : "女");
+            row.setLevel(map.get(row.getLevel()));
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            String[] header = {"姓名", "性别", "编号", "证件号码",  "VIP老师",  "声部课老师", "城市", "学校", "报考乐器", "报考级别", "级别", "乐理级别证书", "家长联系电话", "考级费用", "备注", "缴费状态", "订单编号", "商户订单号", "报名时间"};
-            String[] body = {"name", "gender", "id", "idcard",  "vipTeacherName",  "normalTeacherName", "city", "school", "subject", "level", "activityTag",
-                    "theoryCert", "mobile", "money", "memo", "status == 2?'已缴费':status == 3?'已退费':'未缴费'", "orderNo", "transNo", "createTime"};
+            String[] header = {"姓名", "性别", "用户编号", "证件号码", "所属城市", "学校", "报考专业", "报考信息", "证书", "联系电话", "备注", "缴费状态", "订单编号", "交易流水号", "报名时间"};
+            String[] body = {"name", "gender", "userId", "idcard",  "organName",  "school", "type.code =='GRADE'?'专业考级':'乐理考级'",
+                    "type.code =='GRADE'?subjectName+'/'+level+'/'+money +'元':level+'/'+money +'元'",
+                    "theoryCert", "mobile", "memo", "status == 2?'已缴费':status == 3?'已退费':'未缴费'", "orderNo", "transNo", "createTime"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList.getRows());
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");