ソースを参照

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 4 年 前
コミット
a9028e4586

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -337,8 +337,19 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
 
     /**
      * 根据ids获取商品
+     *
      * @param ids
      * @return
      */
     List<UserGoodsDto> getUserGoods(@Param("ids") String ids);
+
+
+    /**
+     * 获取用户某种类型的订单
+     * @param userId
+     * @param type
+     * @param status
+     * @return
+     */
+    List<StudentPaymentOrder> getUserOrderByType(@Param("userId") Integer userId, @Param("type") OrderTypeEnum type, @Param("status") DealStatusEnum status);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -122,4 +122,13 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
 	 */
 	Integer findOrganPayOrderNum(Integer organId);
 
+	/**
+	 * 获取用户某种类型的订单
+	 * @param userId
+	 * @param type
+	 * @param status
+	 * @return
+	 */
+	List<StudentPaymentOrder> getUserOrderByType(Integer userId, OrderTypeEnum type, DealStatusEnum status);
+
 }

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

@@ -423,10 +423,24 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         if(!CollectionUtils.isEmpty(removeStudentIds)){
             courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, new ArrayList<>(removeStudentIds));
+            List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+            for (Integer addStudentId : addStudentIds) {
+                imGroupMemberList.add(new ImGroupMember(addStudentId.toString()));
+            }
+            //5、学生退出班级群组
+            ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+            imFeignService.groupQuit(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
         }
 
         if(!CollectionUtils.isEmpty(addStudentIds)){
             courseScheduleStudentPaymentService.createForMusicGroup(classGroup.getMusicGroupId(), classGroupNotStartCourse, new ArrayList<>(addStudentIds));
+            List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+            for (Integer addStudentId : addStudentIds) {
+                imGroupMemberList.add(new ImGroupMember(addStudentId.toString()));
+            }
+            //5、添加进IM群组
+            ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+            imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
         }
     }
 }

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -305,6 +305,19 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("订单金额异常");
         }
         if (chargeInfo.getMaxAmount() != null) {
+            if(sporadicPayDto.getIsRepeatPay()){
+                List<StudentPaymentOrder> orders = studentPaymentOrderService.getUserOrderByType(sporadicPayDto.getUserId(), OrderTypeEnum.DOUBLE_ELEVEN2020, DealStatusEnum.ING);
+                for (StudentPaymentOrder order : orders) {
+                    Map<String, String> notifyMap = new HashMap<>();
+                    notifyMap.put("tradeState", "0");
+                    notifyMap.put("merOrderNo", order.getOrderNo());
+                    notifyMap.put("channelType", order.getPaymentBusinessChannel());
+                    notifyMap.put("orderNo", "");
+                    notifyMap.put("remarks", "用户主动关闭");
+                    studentPaymentOrderService.updateOrder(notifyMap);
+                }
+            }
+
             if (chargeInfo.getOpenMaxTerm().equals(YesOrNoEnum.YES) && chargeInfo.getMaxAmount().compareTo(chargeInfo.getPaidAmount().add(amount)) < 0) {
                 throw new Exception("活动人数暂时已满,请稍后再试");
             }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -409,4 +409,9 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     public Integer findOrganPayOrderNum(Integer organId) {
         return studentPaymentOrderDao.findOrganPayOrderNum(organId);
     }
+
+    @Override
+    public List<StudentPaymentOrder> getUserOrderByType(Integer userId, OrderTypeEnum type, DealStatusEnum status) {
+       return studentPaymentOrderDao.getUserOrderByType(userId,type,status);
+    }
 }

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

@@ -48,7 +48,7 @@
          user_id_, music_group_id_, max_num_,max_amount_,open_max_term_)
         VALUES (#{title}, #{chargeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 #{organId}, #{amount}, #{discountAmount}, #{detail}, now(), now(), #{operatorId}, #{userId},
-                #{musicGroupId}, #{maxNum},#{maxAmount},#{openMaxTerm})
+                #{musicGroupId}, #{maxNum},#{maxAmount},#{openMaxTerm,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 4 - 1
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -731,7 +731,7 @@
 
     <select id="doubleEleven2020Statis" resultMap="luckStatis">
         SELECT o.id_ organId, o.name_ organName, SUM(spo.actual_amount_) money, COUNT(DISTINCT spo.user_id_) nums,
-        COUNT(spo.id_) times FROM student_payment_order spo
+        SUM(IF(spo.class_group_id_ is null ,1,spo.class_group_id_)) times FROM student_payment_order spo
         LEFT JOIN organization o ON o.id_ = spo.organ_id_
         WHERE spo.type_ = 'DOUBLE_ELEVEN2020'
         AND spo.status_ = 'SUCCESS'
@@ -749,4 +749,7 @@
           AND status_ = 'SUCCESS'
           AND type_ = #{orderType}
     </select>
+    <select id="getUserOrderByType" resultMap="StudentPaymentOrder">
+        SELECT * FROM student_payment_order WHERE user_id_=#{userId} AND type_=#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+    </select>
 </mapper>

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

@@ -12,6 +12,7 @@ import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -239,6 +240,9 @@ public class ClassGroupController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('classGroup/revisionAddClassGroup')")
     @ApiImplicitParams({@ApiImplicitParam(name = "ClassGroup4MixDto", value = "添加班级结构", required = true, dataType = "String")})
     public HttpResponseResult revisionAddClassGroup(@RequestBody List<ClassGroup4MixDto> classGroup4MixDtos) throws Exception {
+        if(CollectionUtils.isEmpty(classGroup4MixDtos)){
+            return failed("请填写班级信息");
+        }
         return succeed(classGroupService.classGroupAdjust(classGroup4MixDtos));
     }
 

+ 13 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java

@@ -1,6 +1,7 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.dto.MusicGroupGoodsAndDiscountDto;
+import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 import com.ym.mec.biz.dal.entity.ChargeTypeSubjectMapper;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
@@ -85,4 +86,16 @@ public class MusicGroupSubjectPlanController extends BaseController {
         return succeed(result);
     }
 
+    @ApiOperation(value = "获取乐团声部费用信息及乐器和辅件")
+    @GetMapping("/getSubjectGoodsAndInfo")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupSubjectPlan/getSubjectGoodsAndInfo')")
+    @ApiImplicitParams({@ApiImplicitParam(name = "subjectId", value = "声部信息", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
+    public HttpResponseResult<MusicGroupSubjectGoodsAndInfoDto> getSubjectGoodsAndInfo(Integer subjectId, String musicGroupId) {
+        if (subjectId == null || StringUtils.isEmpty(musicGroupId)) {
+            return failed("参数校验异常");
+        }
+        return succeed(musicGroupSubjectPlanService.getSubjectGoodsAndInfo(musicGroupId, subjectId));
+    }
+
 }