Browse Source

feat:1212活动

Joburgess 4 years ago
parent
commit
6356830de4

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

@@ -18,4 +18,7 @@ public interface DegreeRegistrationDao extends BaseDAO<Integer, DegreeRegistrati
     DegreeRegistration getWithUserIdAndActivityTag(@Param("degree") DegreeRegistration degree);
 
     DegreeRegistration getWithLevel(@Param("degree") DegreeRegistration degree);
+
+    List<DegreeRegistration> getUserLevelDegrees(@Param("userId") Integer userId,
+                                                 @Param("activityTag") String activityTag);
 }

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

@@ -76,6 +76,17 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
     public HttpResponseResult pay(DegreeRegistrationActivityDto degreeRegistration) throws Exception {
         Student student = studentDao.getLocked(degreeRegistration.getUserId());
 
+        List<DegreeRegistration> userLevelDegrees = degreeRegistrationDao.getUserLevelDegrees(degreeRegistration.getUserId(), ACTIVITY_TAG);
+        long levelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getSporadicId())).count();
+        long theoryLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getTheoryLevel())).count();
+
+        if(Objects.nonNull(degreeRegistration.getSporadicId())&&levelNum>0){
+            throw new BizException("您已报考过选择的考级项目");
+        }
+        if(Objects.nonNull(degreeRegistration.getTheoryLevel())&&theoryLevelNum>0){
+            throw new BizException("您已报考过选择的考级项目");
+        }
+
         degreeRegistration.setActivityTag(ACTIVITY_TAG);
         DegreeRegistration degree = degreeRegistrationDao.getWithLevel(degreeRegistration);
 

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/DegreeRegistrationMapper.xml

@@ -248,4 +248,14 @@
             AND activity_tag_=#{degree.activityTag}
             AND (sporadic_id_ = #{degree.sporadicId} OR theory_level_ = #{degree.theoryLevel})
     </select>
+
+    <select id="getUserLevelDegrees" resultMap="DegreeRegistration">
+        select *
+            from degree_registration
+        where
+            user_id_ = #{userId}
+            AND activity_tag_=#{activityTag}
+            AND (sporadic_id_ IS NOT NULL OR IS NOT NULL)
+            AND status_=2
+    </select>
 </mapper>

+ 15 - 2
mec-student/src/main/java/com/ym/mec/student/controller/DegreeController.java

@@ -104,8 +104,14 @@ public class DegreeController extends BaseController {
         degreeRegistration.setUserId(user.getId());
         degreeRegistration.setActivityTag(DegreeRegistrationService.ACTIVITY_TAG);
         studentDao.getLocked(degreeRegistration.getUserId());
-        DegreeRegistration degree = degreeRegistrationDao.getWithLevel(degreeRegistration);
-        if(Objects.nonNull(degree) && degree.getStatus().equals(2)){
+        List<DegreeRegistration> userLevelDegrees = degreeRegistrationDao.getUserLevelDegrees(degreeRegistration.getUserId(), DegreeRegistrationService.ACTIVITY_TAG);
+        long levelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getSporadicId())).count();
+        long theoryLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getTheoryLevel())).count();
+
+        if(Objects.nonNull(degreeRegistration.getSporadicId())&&levelNum>0){
+            return failed(HttpStatus.CREATED, "您已报考过选择的考级项目");
+        }
+        if(Objects.nonNull(degreeRegistration.getTheoryLevel())&&theoryLevelNum>0){
             return failed(HttpStatus.CREATED, "您已报考过选择的考级项目");
         }
         return succeed();
@@ -147,6 +153,13 @@ public class DegreeController extends BaseController {
         result.put("organs", organizationDao.getActivityOrgans());
         result.put("sporadicChargeInfo", sporadicChargeInfoService.queryDetailPage(queryInfo));
 
+        List<DegreeRegistration> userLevelDegrees = degreeRegistrationDao.getUserLevelDegrees(user.getId(), DegreeRegistrationService.ACTIVITY_TAG);
+        long levelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getSporadicId())).count();
+        long theoryLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getTheoryLevel())).count();
+
+        result.put("levelApplied", levelNum>0?1:0);
+        result.put("theoryLevelApplied", theoryLevelNum>0?1:0);
+
         List<StudentPaymentOrderDetail> historyOrderDetails = studentPaymentOrderDetailDao.getWithUserAndOrderType(user.getId(), OrderTypeEnum.DEGREE_REGISTRATION);
         int historyVipNum = 0, historyPracticeNum = 0, historyHighNum = 0;
         for (StudentPaymentOrderDetail historyOrderDetail : historyOrderDetails) {