Browse Source

支付map加上类型

周箭河 5 năm trước cách đây
mục cha
commit
e0146f0f5e

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

@@ -101,7 +101,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @param musicGroupId
      * @return
      */
-    List<ClassGroupTeachersDto> findClassGroupByMusicGroupId(@Param("musicGroupId") Integer musicGroupId);
+    List<ClassGroupTeachersDto> findClassGroupByMusicGroupId(@Param("musicGroupId") String musicGroupId);
 
     /**
      * 获取学生所购买课程列表

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

@@ -14,5 +14,5 @@ public interface ClassGroupTeacherSalaryDao extends BaseDAO<Long, ClassGroupTeac
      * @param musicGroupId
      * @return
      */
-    List<ClassGroupTeacherSalary> findByMusicGroupId(@Param("musicGroupId") int musicGroupId);
+    List<ClassGroupTeacherSalary> findByMusicGroupId(@Param("musicGroupId") String musicGroupId);
 }

+ 23 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectPlan.java

@@ -36,7 +36,11 @@ public class MusicGroupSubjectPlan {
 	@ApiModelProperty(value = "报名学生数",required = false)
 	private Integer applyStudentNum;
 
-	/** 报名学生数 */
+	/** 已缴费学生数 */
+	@ApiModelProperty(value = "已缴费学生数",required = false)
+	private Integer paidStudentNum;
+
+	/** 未分班学生数 */
 	@ApiModelProperty(value = "未分班学生数",hidden = true)
 	private Integer noClassStudentNum;
 
@@ -58,6 +62,8 @@ public class MusicGroupSubjectPlan {
 	/**  */
 	private java.util.Date updateTime;
 
+	private Integer version;
+
 	public String getSubName() {
 		return subName;
 	}
@@ -153,6 +159,22 @@ public class MusicGroupSubjectPlan {
 	public void setNoClassStudentNum(Integer noClassStudentNum) {
 		this.noClassStudentNum = noClassStudentNum;
 	}
+
+	public Integer getPaidStudentNum() {
+		return paidStudentNum;
+	}
+
+	public void setPaidStudentNum(Integer paidStudentNum) {
+		this.paidStudentNum = paidStudentNum;
+	}
+
+	public Integer getVersion() {
+		return version;
+	}
+
+	public void setVersion(Integer version) {
+		this.version = version;
+	}
 			
 	@Override
 	public String toString() {

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -114,7 +114,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param musicGroupId
      * @return
      */
-    List<ClassGroupTeachersDto> getClassGroupAndTeachers(Integer musicGroupId);
+    List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId);
 
     /**
      * 获取乐团班级老师课酬
@@ -122,7 +122,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param musicGroupId
      * @return
      */
-    List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(Integer musicGroupId);
+    List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId);
 
 
     /**

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

@@ -14,6 +14,6 @@ public interface ClassGroupTeacherSalaryService extends BaseService<Long, ClassG
      * @param musicGroupId
      * @return
      */
-    List<ClassGroupTeacherSalary> findByMusicGroupId(int musicGroupId);
+    List<ClassGroupTeacherSalary> findByMusicGroupId(String musicGroupId);
 
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -95,6 +95,20 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 			List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId);
 
 	/**
+	 * 学生注册缴费重新下订单
+	 * @param userId
+	 * @param amount
+	 * @param courseFee
+	 * @param goodsGroups
+	 * @param goodsList
+	 * @return
+	 */
+	StudentPaymentOrder reAddOrder(
+			Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
+			List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList,
+			String musicGroupId,StudentPaymentOrder oldOrder);
+
+	/**
 	 * 查询用户指定乐团的报名信息
 	 * @param userId 用户编号
 	 * @param musicGroupId 乐团编号

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -263,7 +263,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<ClassGroupTeachersDto> getClassGroupAndTeachers(Integer musicGroupId) {
+    public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId) {
         List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId);
 
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
@@ -281,7 +281,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(Integer musicGroupId) {
+    public List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId) {
         //乐团班级及班级老师
         List<ClassGroupTeachersDto> classGroupAndTeachers = getClassGroupAndTeachers(musicGroupId);
         //乐团的课程计划

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

@@ -23,7 +23,7 @@ public class ClassGroupTeacherSalaryServiceImpl extends BaseServiceImpl<Long, Cl
 
 
     @Override
-    public List<ClassGroupTeacherSalary> findByMusicGroupId(int musicGroupId) {
+    public List<ClassGroupTeacherSalary> findByMusicGroupId(String musicGroupId) {
         return ClassGroupTeacherSalaryDao.findByMusicGroupId(musicGroupId);
     }
 }

+ 92 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -10,6 +10,8 @@ import java.util.Map;
 import javax.annotation.Resource;
 
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,11 +24,6 @@ import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDto;
 import com.ym.mec.biz.dal.dto.StudentInfo;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GoodsType;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
@@ -54,6 +51,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     private StudentPaymentOrderDetailService studentPaymentOrderDetailService;
     @Autowired
     private TeacherDao teacherDao;
+    @Autowired
+    private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -140,6 +139,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
         studentRegistration.setUserId(sysUser.getId());
         studentRegistrationDao.insert(studentRegistration);
+        //增加报名学生数
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
+        musicOneSubjectClassPlan.setApplyStudentNum(musicOneSubjectClassPlan.getApplyStudentNum()+1);
         return studentRegistration;
     }
 
@@ -227,10 +229,91 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         return studentPaymentOrder;
     }
 
-	@Override
-	public StudentRegistration queryByUserIdAndMusicGroupId(Integer userId, String musicGroupId) {
-		return studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-	}
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder) {
+        //关闭老订单
+        oldOrder.setStatus(DealStatusEnum.CLOSE);
+        studentPaymentOrderService.update(oldOrder);
+        Date date = new Date();
+        StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+        studentPaymentOrder.setUserId(userId);
+        studentPaymentOrder.setOrderNo(orderNo);
+        studentPaymentOrder.setType(OrderTypeEnum.APPLY);
+        studentPaymentOrder.setExpectAmount(amount);
+        studentPaymentOrder.setActualAmount(amount);
+        studentPaymentOrder.setStatus(DealStatusEnum.ING);
+        studentPaymentOrder.setPaymentChannel(paymentChannel);
+        studentPaymentOrder.setMusicGroupId(musicGroupId);
+        studentPaymentOrderService.insert(studentPaymentOrder);
+
+        ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
+        StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
+        studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
+        studentPaymentOrderDetail.setPrice(courseFee);
+        studentPaymentOrderDetail.setCreateTime(date);
+        studentPaymentOrderDetail.setUpdateTime(date);
+        studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+        studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
+        //乐器及打包辅件
+        if (goodsGroups != null) {
+            for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
+                StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
+                OrderDetailTypeEnum type = null;
+                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
+                    type = OrderDetailTypeEnum.MUSICAL;
+                } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
+                    type = OrderDetailTypeEnum.ACCESSORIES;
+                } else if (goodsGroup.getType().equals(GoodsType.OTHER)) {
+                    type = OrderDetailTypeEnum.TEACHING;
+                }
+                studentPaymentOrderDetail4goodsGroup.setType(type);
+                studentPaymentOrderDetail4goodsGroup.setPrice(goodsGroup.getPrice());
+                studentPaymentOrderDetail4goodsGroup.setGoodsIdList(goodsGroup.getGoodsIdList());
+                studentPaymentOrderDetail4goodsGroup.setCreateTime(date);
+                studentPaymentOrderDetail4goodsGroup.setUpdateTime(date);
+                studentPaymentOrderDetail4goodsGroup.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goodsGroup);
+            }
+        }
+
+        //单独辅件
+        if (goodsList != null) {
+            for (Goods goods : goodsList) {
+                StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetail4goods.setType(OrderDetailTypeEnum.ACCESSORIES);
+                studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
+                studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
+                studentPaymentOrderDetail4goods.setCreateTime(date);
+                studentPaymentOrderDetail4goods.setUpdateTime(date);
+                studentPaymentOrderDetail4goods.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goods);
+
+            }
+        }
+        //单独教谱
+        if (otherGoodsList != null) {
+            for (Goods goods : otherGoodsList) {
+                StudentPaymentOrderDetail studentPaymentOrderDetail4otherGoods = new StudentPaymentOrderDetail();
+                studentPaymentOrderDetail4otherGoods.setType(OrderDetailTypeEnum.TEACHING);
+                studentPaymentOrderDetail4otherGoods.setPrice(goods.getGroupPurchasePrice());
+                studentPaymentOrderDetail4otherGoods.setGoodsIdList(goods.getId().toString());
+                studentPaymentOrderDetail4otherGoods.setCreateTime(date);
+                studentPaymentOrderDetail4otherGoods.setUpdateTime(date);
+                studentPaymentOrderDetail4otherGoods.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetailList.add(studentPaymentOrderDetail4otherGoods);
+            }
+        }
+
+        studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
+
+        return studentPaymentOrder;
+    }
+
+    @Override
+    public StudentRegistration queryByUserIdAndMusicGroupId(Integer userId, String musicGroupId) {
+        return studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+    }
 
     @Override
     public StudentRegistration getByPhoneAndMusicGroupId(String musicGroupId, String parentsPhone) {

+ 6 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -12,12 +12,14 @@
         <result column="subject_id_" property="subjectId"/>
         <result column="expected_student_num_" property="expectedStudentNum"/>
         <result column="apply_student_num_" property="applyStudentNum"/>
+        <result column="paid_student_num_" property="paidStudentNum"/>
         <result column="fee_" property="fee"/>
         <result column="kit_group_purchase_type_" property="kitGroupPurchaseType"
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="deposit_fee_" property="depositFee"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
+        <result column="version" property="version"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -69,8 +71,11 @@
             <if test="musicGroupId != null">
                 music_group_id_ = #{musicGroupId},
             </if>
+            <if test="version != null">
+                version = version+1,
+            </if>
         </set>
-        WHERE id_ = #{id}
+        WHERE id_ = #{id} AND version =#{version}
     </update>
 
     <!-- 根据主键删除一条记录 -->

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

@@ -90,10 +90,10 @@
         channel_type_ = #{channelType,jdbcType=CHAR},
       </if>
       <if test="version != null">
-        version = #{version,jdbcType=INTEGER},
+        version = version+1,
       </if>
     </set>
-    where id_ = #{id,jdbcType=INTEGER}
+    where id_ = #{id,jdbcType=INTEGER} AND version =#{version}
   </update>
   <update id="updateByPrimaryKey" parameterType="com.ym.mec.biz.dal.entity.SysAccount">
     <!--@mbg.generated-->

+ 3 - 3
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -138,7 +138,7 @@ public class MusicGroupController extends BaseController {
         }
 
         //判断用户是否已存在订单
-        ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId().toString(), DealStatusEnum.ING);
+        ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.ING);
         if (ApplyOrder != null) {
             return failed(HttpStatus.CONTINUE, "您有待支付的订单");
         }
@@ -192,7 +192,7 @@ public class MusicGroupController extends BaseController {
 
         Map payMap = payService.getPayMap(orderAmount, orderNo, "https://pay.dayaedu.com/api/yqpay/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
 
-        studentRegistrationService.addOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId().toString());
+        studentRegistrationService.addOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId());
 
         return succeed(payMap);
     }
@@ -268,7 +268,7 @@ public class MusicGroupController extends BaseController {
 
         Map payMap = payService.getPayMap(orderAmount, orderNo, "https://pay.dayaedu.com/api/yqpay/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
 
-        studentRegistrationService.addOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId().toString());
+        studentRegistrationService.reAddOrder(userId, amount, orderNo, "双乾", courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId(),ApplyOrder);
 
         return succeed(payMap);
     }

+ 5 - 5
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -7,9 +7,7 @@ import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -107,13 +105,15 @@ public class ClassGroupController extends BaseController {
 
     @ApiOperation(value = "获取乐团班级老师")
     @GetMapping("/findMusicGroupClassTeacher")
-    public Object findMusicGroupClassTeacher(@ApiParam(value = "乐团编号", required = true) @RequestParam Integer musicGroupId) {
+    public Object findMusicGroupClassTeacher(@ApiParam(value = "乐团编号", required = true) @RequestParam String musicGroupId) {
         return succeed(classGroupService.getClassGroupAndTeachers(musicGroupId));
     }
 
     @ApiOperation(value = "获取乐团班级老师课酬")
     @GetMapping("/findMusicGroupClassTeacherSalary")
-    public Object findMusicGroupClassTeacherSalary(@ApiParam(value = "乐团编号", required = true) @RequestParam Integer musicGroupId) {
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "subjectId", value = "声部编号", required = true, dataType = "Integer")})
+    public Object findMusicGroupClassTeacherSalary(String musicGroupId) {
         return succeed(classGroupService.getClassGroupAndTeacherSalary(musicGroupId));
     }