Selaa lähdekoodia

Merge branch 'feature/0406-degree' of http://git.dayaedu.com/yonge/mec into feature/0406-degree

liujc 2 vuotta sitten
vanhempi
commit
77937db2df

+ 46 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationActivityDto.java

@@ -1,24 +1,62 @@
 package com.ym.mec.biz.dal.dto;
 
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.DegreeRegistration;
+import com.ym.mec.auth.api.enums.CertificateTypeEnum;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.Map;
 
 @Data
-public class DegreeRegistrationActivityDto extends DegreeRegistration {
+public class DegreeRegistrationActivityDto {
+    @ApiModelProperty(value = "考级编号",required = true)
+    private Long degreeId;
+
+    @ApiModelProperty(value = "学员编号",required = true)
+    private Integer userId;
+
+    @ApiModelProperty(value = "名字",required = true)
+    private String name;
+
+    @ApiModelProperty(value = "性别",required = true)
+    private String gender;
+
+    @ApiModelProperty(value = "证件类型",required = true)
+    private CertificateTypeEnum certificateType;
+
+    @ApiModelProperty(value = "身份证号",required = true)
+    private String idcard;
+
+    @ApiModelProperty(value = "城市",required = true)
+    private String city;
+
+    @ApiModelProperty(value = "学校",required = true)
+    private String school;
+
+    @ApiModelProperty(value = "声部",required = true)
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "证书",required = true)
+    private String theoryCert;
+
+    @ApiModelProperty(value = "家长联系电话",required = true)
+    private String mobile;
+
+    @ApiModelProperty(value = "学员分部",required = true)
+    private Integer organId;
 
     @ApiModelProperty(value = "用户考级报名基本信息",required = true)
     private List<DegreeRegistrationDto> degreeRegistrationDtos;
 
-    @ApiModelProperty(value = "课程信息",required = true)
-    private Map<CourseSchedule.CourseScheduleType, Integer> additionCourseInfo;
-
+    @ApiModelProperty(value = "总金额",required = true)
     private BigDecimal price;
-    
+
+    @ApiModelProperty(value = "是否余额支付",required = true)
     private boolean isUseBalance;
+
+    @ApiModelProperty(value = "是否重新支付",required = false)
+    private Boolean isRepay = false;
+
+    private Integer tenantId = TenantContextHolder.getTenantId();
 }

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeRegistrationDto.java

@@ -18,9 +18,6 @@ public class DegreeRegistrationDto{
     @ApiModelProperty(value = "乐理级别证书",required = false)
     private String theoryCert;
 
-    @ApiModelProperty(value = "考级费用",required = false)
-    private BigDecimal money;
-
     @ApiModelProperty(value = "1乐器考级、2乐理考级",required = false)
     private DegreeTypeEnum type;
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.auth.api.enums.CertificateTypeEnum;
 import com.ym.mec.biz.dal.enums.DegreeTypeEnum;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.ApiModelProperty;
@@ -33,7 +34,7 @@ public class DegreeRegistration {
     private String gender;
 
     @ApiModelProperty(value = "证件类型",required = true)
-	private String certificateType;
+	private CertificateTypeEnum certificateType;
 
     @ApiModelProperty(value = "身份证号",required = true)
     private String idcard;
@@ -82,8 +83,6 @@ public class DegreeRegistration {
 
     private Integer organId;
 
-//    private String activityTag;
-
     private String vipTeacherName;
 
     private String normalTeacherName;

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/DegreeNewsWrapper.java

@@ -36,7 +36,7 @@ public class DegreeNewsWrapper {
         @ApiModelProperty("关键字匹配")
 		private String keyword;
 
-        private String organId;
+        private Integer organId;
 
         @ApiModelProperty("用户所在分部")
         private String defaultOrganId;

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeLevelFeeServiceImpl.java

@@ -140,6 +140,10 @@ public class DegreeLevelFeeServiceImpl extends ServiceImpl<DegreeLevelFeeMapper,
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void batchSave(List<DegreeLevelFeeNew> degreeLevelFees) {
+        long count = degreeLevelFees.stream().map(e -> e.getLevel()).count();
+        if(count > 1){
+            throw new BizException("请勿录入重复的报考级别");
+        }
         DegreeLevelFeeNew degreeLevelFeeNew = degreeLevelFees.get(0);
         String levels = degreeLevelFees.stream().map(e -> e.getLevel().toString()).collect(Collectors.joining(","));
         this.check(degreeLevelFeeNew.getSubjectId(),degreeLevelFeeNew.getDegreeType(),levels,null);

+ 16 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java

@@ -23,7 +23,6 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
@@ -85,7 +84,6 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         }
         Date nowDate = new Date();
         String orderNo = idGeneratorService.generatorId("payment") + "";
-        degreeRegistration.setOrderNo(orderNo);
         //获取收费项价格
         BigDecimal money = BigDecimal.ZERO;
         List<DegreeRegistrationDto> registrationDtos = degreeRegistration.getDegreeRegistrationDtos();
@@ -94,27 +92,34 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
             DegreeRegistration degree = new DegreeRegistration();
             BeanUtils.copyProperties(degreeRegistration,degree);
             String level = registrationDto.getLevel();
+            degree.setOrderNo(orderNo);
             degree.setLevel(level);
             degree.setDegreeId(registrationDto.getDegreeId());
-            degree.setMoney(registrationDto.getMoney());
             degree.setTheoryCert(registrationDto.getTheoryCert());
             degree.setType(registrationDto.getType());
             degree.setStatus(1);
-            DegreeLevelFeeNew one = degreeLevelFeeService.lambdaQuery()
-                    .eq(DegreeLevelFeeNew::getSubjectId, degreeRegistration.getSubjectId())
-                    .eq(DegreeLevelFeeNew::getDegreeType, degreeRegistration.getType())
-                    .eq(DegreeLevelFeeNew::getLevel, degreeRegistration.getLevel()).one();
+            DegreeLevelFeeNew one;
+            if(registrationDto.getType() == DegreeTypeEnum.THEORY){
+                one = degreeLevelFeeService.lambdaQuery()
+                        .eq(DegreeLevelFeeNew::getDegreeType, registrationDto.getType())
+                        .eq(DegreeLevelFeeNew::getLevel, registrationDto.getLevel()).one();
+            }else {
+                one = degreeLevelFeeService.lambdaQuery()
+                        .eq(DegreeLevelFeeNew::getSubjectId, degreeRegistration.getSubjectId())
+                        .eq(DegreeLevelFeeNew::getDegreeType, registrationDto.getType())
+                        .eq(DegreeLevelFeeNew::getLevel, registrationDto.getLevel()).one();
+            }
             if(Objects.isNull(one)){
                 throw new BizException("该级别已不可报名");
             }
             degree.setMoney(one.getFee());
+            money = money.add(one.getFee());
             degreeRegistrationList.add(degree);
         }
-        degreeRegistrationDao.batchInsert(degreeRegistrationList);
-
         if(money.compareTo(degreeRegistration.getPrice())!=0){
             throw new BizException("商品价格不符");
         }
+        degreeRegistrationDao.batchInsert(degreeRegistrationList);
 
         Integer userId = degreeRegistration.getUserId();
         String channelType = "";
@@ -124,7 +129,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
         studentPaymentOrder.setOrderNo(orderNo);
         studentPaymentOrder.setType(OrderTypeEnum.DEGREE_REGISTRATION);
         studentPaymentOrder.setExpectAmount(money);
-
+        
         if(degreeRegistration.isUseBalance()){
         	SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
             if (userCashAccount == null) {
@@ -149,11 +154,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
             studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
         }
         studentPaymentOrder.setStatus(DealStatusEnum.ING);
-        studentPaymentOrder.setClassGroupId(degreeRegistration.getId());
-        String collect = degreeRegistrationList.stream().map(e -> e.getDegreeId().toString()).collect(Collectors.joining(","));
-        if(StringUtils.isNotEmpty(collect)){
-            studentPaymentOrder.setMusicGroupId(collect);
-        }
+        studentPaymentOrder.setMusicGroupId(degreeRegistration.getDegreeId().toString());
         studentPaymentOrder.setOrganId(degreeRegistration.getOrganId());
         studentPaymentOrder.setRoutingOrganId(degreeRegistration.getOrganId());
         studentPaymentOrderService.insert(studentPaymentOrder);

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

@@ -16,10 +16,10 @@
 				AND dn.status_ = #{param.status}
 			</if>
 			<if test="param.organId != null">
-				AND (FIND_IN_SET(param.organId,dn.organ_ids_) OR dn.organ_ids_ IS NULL OR dn.organ_ids_ = '')
+				AND (FIND_IN_SET(#{param.organId},dn.organ_ids_) OR dn.organ_ids_ IS NULL OR dn.organ_ids_ = '')
 			</if>
 			<if test="param.organId == null and param.defaultOrganId != null and param.defaultOrganId != ''">
-				AND (INTE_ARRAY(param.defaultOrganId,dn.organ_ids_) OR dn.organ_ids_ IS NULL OR dn.organ_ids_ = '')
+				AND (INTE_ARRAY(#{param.defaultOrganId},dn.organ_ids_) OR dn.organ_ids_ IS NULL OR dn.organ_ids_ = '')
 			</if>
 		</where>
 		group by dn.id_

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

@@ -24,7 +24,7 @@
         <result column="create_time_" jdbcType="TIMESTAMP" property="createTime"/>
         <result column="update_time_" jdbcType="TIMESTAMP" property="updateTime"/>
         <result column="status_" jdbcType="TINYINT" property="status"/>
-        <result column="certificate_type_" property="certificateType"/>
+        <result column="certificate_type_" property="certificateType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="tenant_id_" property="tenantId" />
 		<result column="type_" property="type"  typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
@@ -149,7 +149,9 @@
         #{idcard,jdbcType=VARCHAR}, #{city,jdbcType=VARCHAR}, #{school,jdbcType=VARCHAR},
         #{subjectId},#{level,jdbcType=VARCHAR},
         #{theoryCert,jdbcType=VARCHAR},#{mobile,jdbcType=VARCHAR},#{money,jdbcType=DECIMAL}, #{memo,jdbcType=VARCHAR},
-        #{createTime}, #{updateTime}, #{status,jdbcType=TINYINT},#{certificateType},#{tenantId},#{type})
+        #{createTime}, #{updateTime}, #{status,jdbcType=TINYINT},
+                #{certificateType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                #{tenantId},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
     <insert id="batchInsert">
         INSERT INTO degree_registration (user_id_,degree_id_,organ_id_,order_no_, name_, gender_,
@@ -165,7 +167,8 @@
             #{degreeRegistration.subjectId},#{degreeRegistration.level,jdbcType=VARCHAR},
             #{degreeRegistration.theoryCert,jdbcType=VARCHAR},#{degreeRegistration.mobile,jdbcType=VARCHAR},#{degreeRegistration.money,jdbcType=DECIMAL}, #{degreeRegistration.memo,jdbcType=VARCHAR},
             #{degreeRegistration.createTime}, #{degreeRegistration.updateTime}, #{degreeRegistration.status,jdbcType=TINYINT},
-            #{degreeRegistration.certificateType},#{degreeRegistration.tenantId},#{degreeRegistration.type})
+            #{degreeRegistration.certificateType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            #{degreeRegistration.tenantId},#{degreeRegistration.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
         </foreach>
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.DegreeRegistration">
@@ -227,7 +230,7 @@
                 status_ = #{status,jdbcType=INTEGER},
             </if>
             <if test="certificateType != null">
-                certificate_type_ = #{certificateType},
+                certificate_type_ = #{certificateType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
                 update_time_ = NOW()
         </set>
@@ -293,7 +296,7 @@
                     status_ = #{degree.status,jdbcType=INTEGER},
                 </if>
 	            <if test="degree.certificateType != null">
-	                certificate_type_ = #{degree.certificateType},
+	                certificate_type_ = #{degree.certificateType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 	            </if>
                     update_time_ = NOW()
             </set>

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

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.entity.DegreeNews;
 import com.ym.mec.biz.dal.vo.DegreeNewsVo;
 import com.ym.mec.biz.dal.wrapper.DegreeNewsWrapper;
 import com.ym.mec.biz.service.DegreeNewsService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
@@ -30,22 +31,21 @@ public class DegreeNewsController extends BaseController {
 
     @Autowired
     private DegreeNewsService degreeNewsService;
+    @Autowired
+    private SysUserService sysUserService;
 
 	@ApiOperation(value = "详情", notes = "考级资讯表-根据详情ID查询单条, 传入id")
     @GetMapping("/detail/{id}")
     public HttpResponseResult<DegreeNews> detail(@PathVariable("id") Long id) {
-    
     	DegreeNews wrapper = degreeNewsService.detail(id);
-        
         return succeed(wrapper);
 	}
     
     @ApiOperation(value = "查询分页", notes = "考级资讯表- 传入 DegreeNewsWrapper.DegreeNewsQuery") 
     @PostMapping("/page")
     public HttpResponseResult<PageInfo<DegreeNewsVo>> page(@RequestBody DegreeNewsWrapper.DegreeNewsQuery query) {
-        
+        query.setOrganId(sysUserService.getUser().getOrganId());
         IPage<DegreeNewsVo> pages = degreeNewsService.selectPage(QueryInfo.getPage(query), query);
-
         return succeed(QueryInfo.pageInfo(pages));
 	}