Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

周箭河 5 vuotta sitten
vanhempi
commit
7b4d5962f1

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

@@ -115,7 +115,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
     List<Map<String, String>> findVipStuNames(String vipIds);
 
     /**
-     * 获取课程下的学员列表
+     * 获取班级下的学员列表
      *
      * @param classGroupId
      * @return
@@ -212,7 +212,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @param classGroupIds
      * @return
      */
-    List<Map<Integer, Integer>> countTeacherNums(@Param("classGroupIds") String classGroupIds);
+    List<Map<Integer, Long>> countTeacherNums(@Param("classGroupIds") String classGroupIds);
 
     /**
      * @return java.util.List<com.ym.mec.biz.dal.dto.TeacherClassGroupDto>
@@ -378,4 +378,11 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return java.util.List<java.lang.String>
      */
     List<String> findClassGroupNamesByClassGroups(@Param("classGroups") List<Integer> classGroups);
+
+    /**
+     * 获取当前班级相关的老师列表
+     * @param groupId
+     * @return
+     */
+    List<ImUserModel> findGroupTeacher(Integer groupId);
 }

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

@@ -54,7 +54,7 @@ public class MusicGroupSubjectGoodsGroup {
 	
 	/** 打包价格 */
 	@ApiModelProperty(value = "打包价格",required = false)
-	private BigDecimal price;
+	private BigDecimal price = new BigDecimal(0);
 
 	public List<String> getGoodsName() {
 		return goodsName;

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

@@ -148,9 +148,10 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @date 2019/10/20
      * @param vipGroupId: vip课编号
      * @param num: 人数
+     * @param updateVipStatus: 是否修改VIP课状态
      * @return void
      */
-    void updateVipGroupStudentNumAndStatus(Long vipGroupId,Integer num);
+    void updateVipGroupStudentNumAndStatus(Long vipGroupId,Integer num,boolean updateVipStatus);
 
     /**
      * @Author: Joburgess

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

@@ -506,11 +506,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (imGroupModels != null && imGroupModels.size() > 0) {
             Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
             //获取班级老师总数map
-            List<Map<Integer, Integer>> nums = classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ","));
-            Map<Integer, Integer> numsMap = MapUtil.convertMybatisMap(nums);
+            List<Map<Integer, Long>> nums = classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ","));
+            Map<Integer, Long> numsMap = MapUtil.convertMybatisMap(nums);
             imGroupModels.forEach(e -> {
-                Integer num = numsMap.get(e.getId());
-                e.setCount(num == null ? 0 : num + e.getCount());
+                Long num = numsMap.get(Integer.parseInt(e.getId()));
+                e.setCount((int)(num == null ? 0L : num) + e.getCount());
             });
         }
         return imGroupModels;
@@ -518,7 +518,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     public List<ImUserModel> findGroupUsers(Integer groupId) {
-        return classGroupDao.findGroupUsers(groupId);
+        List<ImUserModel> students = classGroupDao.findGroupUsers(groupId);
+        if(students == null){
+            students = new ArrayList<>();
+        }
+        List<ImUserModel> teachers = classGroupDao.findGroupTeacher(groupId);
+        students.addAll(teachers);
+        return students;
     }
 
     @Override

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -158,12 +158,11 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		if(imGroupModels != null && imGroupModels.size() > 0){
 			Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
 			//获取班级老师总数map
-			List<Map<Integer, Integer>> nums = classGroupDao.countTeacherNums(StringUtils.join(classGroupIds,","));
-			Map<Integer, Integer> numsMap = MapUtil.convertMybatisMap(nums);
+			List<Map<Integer, Long>> nums = classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ","));
+			Map<Integer, Long> numsMap = MapUtil.convertMybatisMap(nums);
 			imGroupModels.forEach(e -> {
-				//获取当前班级老师总数
-				Integer num = numsMap.get(e.getId());
-				e.setCount(num == null?0:num + e.getCount());
+				Long num = numsMap.get(Integer.parseInt(e.getId()));
+				e.setCount((int)(num == null ? 0L : num) + e.getCount());
 			});
 		}
 		return imGroupModels;

+ 43 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -305,8 +305,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		//检测课程信息是否存在冲突
 		courseScheduleService.checkNewCourseSchedules(courseSchedules);
+		//只需要更新的课程走课程调整流程
+		courseScheduleService.classStartDateAdjust(updateCourseSchedules);
 
-
+		//新增的课程需要重新创建相关信息
+		courseScheduleService.batchAddCourseSchedule(newCourseSchedules);
+		//创建老师单节课课酬信息
+		courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroupUpdateInfo,
+				newCourseSchedules,
+				vipGroupUpdateInfo.getOnlineTeacherSalary(),
+				vipGroupUpdateInfo.getOfflineTeacherSalary());
 
 	}
 
@@ -679,7 +687,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     }
 
 	@Override
-	public void updateVipGroupStudentNumAndStatus(Long vipGroupId, Integer num) {
+	public void updateVipGroupStudentNumAndStatus(Long vipGroupId, Integer num, boolean updateVipStatus) {
 		VipGroup vipGroup = vipGroupDao.getLockVipGroup(vipGroupId);
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("指定的vip课程不存在");
@@ -689,7 +697,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("未找到关联班级");
 		}
 		classGroup.setStudentNum(classGroup.getStudentNum()+num);
-		if(classGroup.getStudentNum().equals(classGroup.getExpectStudentNum())){
+		if(classGroup.getStudentNum().equals(classGroup.getExpectStudentNum())&&updateVipStatus){
 			vipGroup.setStatus(VipGroupStatusEnum.FINISH);
 			vipGroupDao.update(vipGroup);
 		}
@@ -701,16 +709,26 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public Map buyVipGroup(VipGroupBuyParamsDto vipGroupBuyParams) throws Exception {
 		SysUser user = sysUserFeignService.queryUserInfo();
 
+		VipGroup vipGroup = vipGroupDao.get(vipGroupBuyParams.getVipGroupId());
+
+		if(vipGroup.getStatus()!=VipGroupStatusEnum.APPLYING){
+			throw new BizException("该课程已结束报名!");
+		}
+
 		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(), user.getId());
 
 		if(Objects.nonNull(byStudentVipGroup)){
-			throw new BizException("订单已存在!");
-		}
 
-		VipGroup vipGroup = vipGroupDao.get(vipGroupBuyParams.getVipGroupId());
+			//生成回调地址
+			Map payMap = payService.getPayMap(
+					vipGroup.getTotalPrice(),
+					byStudentVipGroup.getOrderNo(),
+					"https://dyme.utools.club/api-student/studentOrder/notify",
+					"http://mstudev.dayaedu.com/#/paymentResult",
+					"vip课购买",
+					vipGroup.getName());
 
-		if(vipGroup.getStatus()!=VipGroupStatusEnum.APPLYING){
-			throw new BizException("该课程已结束报名!");
+			return payMap;
 		}
 
 		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
@@ -719,7 +737,15 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("课程信息错误");
 		}
 
-		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
+		ClassGroup classGroup = classGroupDao.get(vipGroupClassGroupMapper.getClassGroupId());
+		if(Objects.isNull(classGroup)){
+			throw new BizException("课程信息错误");
+		}
+		if(classGroup.getStudentNum()>=classGroup.getExpectStudentNum()){
+			throw new BizException("该课程人数已达上限");
+		}
+
+//		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
 		StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
 		studentPaymentOrder.setUserId(user.getId());
 		String orderNo=StringUtils.join(new String[]{user.getId().toString(),String.valueOf(System.currentTimeMillis())});
@@ -728,11 +754,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentPaymentOrder.setType(OrderTypeEnum.SMALL_CLASS_TO_BUY);
 		studentPaymentOrder.setExpectAmount(vipGroup.getTotalPrice());
 		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
-		if(vipGroupActivity.getType()==VipGroupActivityTypeEnum.DISCOUNT){
-			studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount().multiply(new BigDecimal(vipGroupActivity.getAttribute1())));
-		}else{
-			studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount());
-		}
+//		if(vipGroupActivity.getType()==VipGroupActivityTypeEnum.DISCOUNT){
+//			studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount().multiply(new BigDecimal(vipGroupActivity.getAttribute1())));
+//		}else{
+		studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount());
+//		}
 		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
 		studentPaymentOrder.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
 		studentPaymentOrderDao.insert(studentPaymentOrder);
@@ -745,7 +771,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentVipGroupPaymentDao.insert(studentVipGroupPayment);
 
 		//更新班级人数,如果订单支付失败则减少
-		updateVipGroupStudentNumAndStatus(vipGroup.getId(),1);
+		updateVipGroupStudentNumAndStatus(vipGroup.getId(),1,false);
 
 		//生成回调地址
 		Map payMap = payService.getPayMap(
@@ -774,8 +800,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		//将学生加入到班级,更新班级报名状态及人数信息
 		if(!isOk){
-			updateVipGroupStudentNumAndStatus(vipGroupId,-1);
+			updateVipGroupStudentNumAndStatus(vipGroupId,-1,false);
 		}else{
+			updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
 			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
 			//插入缴费明细
 			//收入

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -266,6 +266,11 @@
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         WHERE cgsm.class_group_id_ = #{classGroupId} GROUP BY su.id_
     </select>
+    <select id="findGroupTeacher" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">
+        SELECT su.id_,su.avatar_,su.username_ FROM class_group_teacher_mapper cgtm
+        LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
+        WHERE cgtm.class_group_id_ = #{classGroupId} GROUP BY su.id_
+    </select>
     <select id="countStudentPayLog" resultType="java.lang.Integer">
         SELECT COUNT(spo.id_)
         FROM student_payment_order spo

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

@@ -240,10 +240,10 @@ public class MusicGroupController extends BaseController {
         Map payMap = payService.getPayMap(
                 orderAmount,
                 orderNo,
-                "http://mstudev.dayaedu.com/api-student/studentOrder/notify",
+                "https://dyme.utools.club/api-student/studentOrder/notify",
                 "http://mstudev.dayaedu.com/#/paymentResult",
-                "乐团报名订单",
-                "乐团报名订单");
+                "测试订单",
+                "测试订单");
 
         studentRegistrationService.addOrder(studentRegistration, amount, orderNo, (String) payMap.get("type"), courseFee, goodsGroups, goodsList, otherGoodsList);
 

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -96,7 +96,7 @@ public class TeacherController extends BaseController {
         return succeed(teacherService.queryTeacherGroups(sysUser.getId(),search));
     }
 
-    @ApiOperation(value = "获取当前教师通讯录列表")
+    @ApiOperation(value = "获取当前教师通讯录列表")
     @GetMapping("/queryGroupStudents")
     public Object queryGroupStudents(String search){
         SysUser sysUser = sysUserFeignService.queryUserInfo();

+ 132 - 94
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -1,112 +1,150 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+
+import java.util.Date;
+import java.util.Set;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.time.LocalDate;
-import java.util.Set;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.common.controller.BaseController;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
 @RestController
 public class MusicGroupController extends BaseController {
 
-    @Autowired
-    private MusicGroupService musicGroupService;
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
-
-    @ApiOperation(value = "修改乐团基本信息")
-    @PostMapping("/update")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
-    public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
-        musicGroupService.updateBaseInfo(subFeeSettingDto);
-        return succeed();
-    }
-
-    @ApiOperation(value = "获取乐团调整--基本信息数据")
-    @PostMapping("/findMusicGroupBasicInfo")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/findMusicGroupBasicInfo')")
-    public Object findMusicGroupBasicInfo(String musicGroupId){
-        if(StringUtils.isEmpty(musicGroupId)){
-            return failed("参数校验失败");
-        }
-        return succeed(musicGroupService.findMusicGroupBasicInfo(musicGroupId));
-    }
-
-    @ApiOperation(value = "根据乐团编号查询乐团详情")
-    @GetMapping("/get")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/get')")
-    public Object get(String musicGroupId){
-        return succeed(musicGroupService.getMusicGroupDetail(musicGroupId));
-    }
-
-    @ApiOperation(value = "分页查询乐团列表")
-    @GetMapping("/queryPage")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/queryPage')")
-    public Object queryPage(MusicGroupQueryInfo queryInfo){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("用户信息获取失败");
-        }
-        queryInfo.setOrganId(sysUser.getOrganId());
-        return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
-    }
-
-    @ApiOperation(value = "新增乐团  建团申请数据提交")
-    @PostMapping("/createGroup")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/createGroup')")
-    public Object createGroup(@RequestBody SubFeeSettingDto subFeeSettingDto){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null || sysUser.getId() == null){
-            return failed("获取用户信息失败");
-        }
-        return succeed(musicGroupService.createGroup(subFeeSettingDto,sysUser.getId()));
-    }
-
-    @ApiOperation(value = "根据乐团ids获取乐团列表")
-    @PostMapping("/queryListByIds")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/queryListByIds')")
-    public Object queryListByIds(@RequestBody Set<String> musicGroupIds){
-        if(musicGroupIds.isEmpty()){
-            return failed("参数校验失败");
-        }
-        return succeed(musicGroupService.queryListByIds(musicGroupIds));
-    }
-
-    @ApiOperation(value = "开启乐团缴费功能")
-    @PostMapping("/openPay")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/openPay')")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
-            @ApiImplicitParam(name = "expireDate", value = "截止缴费日期", required = true, dataType = "String")
-    })
-    public Object openPay(String musicGroupId, String expireDate) {
-        return succeed(musicGroupService.openPay(musicGroupId,expireDate));
-    }
-
-    @ApiOperation(value = "乐团确认成立")
-    @PostMapping("/found")
-    @PreAuthorize("@pcs.hasPermissions('musicGroup/found')")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")
-    })
-    public Object found(String musicGroupId) {
-        musicGroupService.musicGroupFound(musicGroupId);
-        return succeed();
-    }
+	@Autowired
+	private MusicGroupService musicGroupService;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation(value = "修改乐团基本信息")
+	@PostMapping("/update")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
+	public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
+		musicGroupService.updateBaseInfo(subFeeSettingDto);
+		return succeed();
+	}
+
+	@ApiOperation(value = "获取乐团调整--基本信息数据")
+	@PostMapping("/findMusicGroupBasicInfo")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/findMusicGroupBasicInfo')")
+	public Object findMusicGroupBasicInfo(String musicGroupId) {
+		if (StringUtils.isEmpty(musicGroupId)) {
+			return failed("参数校验失败");
+		}
+		return succeed(musicGroupService.findMusicGroupBasicInfo(musicGroupId));
+	}
+
+	@ApiOperation(value = "根据乐团编号查询乐团详情")
+	@GetMapping("/get")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/get')")
+	public Object get(String musicGroupId) {
+		return succeed(musicGroupService.getMusicGroupDetail(musicGroupId));
+	}
+
+	@ApiOperation(value = "分页查询乐团列表")
+	@GetMapping("/queryPage")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/queryPage')")
+	public Object queryPage(MusicGroupQueryInfo queryInfo) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		queryInfo.setOrganId(sysUser.getOrganId());
+		return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
+	}
+
+	@ApiOperation(value = "新增乐团  建团申请数据提交")
+	@PostMapping("/createGroup")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/createGroup')")
+	public Object createGroup(@RequestBody SubFeeSettingDto subFeeSettingDto) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null || sysUser.getId() == null) {
+			return failed("获取用户信息失败");
+		}
+		return succeed(musicGroupService.createGroup(subFeeSettingDto, sysUser.getId()));
+	}
+
+	@ApiOperation(value = "根据乐团ids获取乐团列表")
+	@PostMapping("/queryListByIds")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/queryListByIds')")
+	public Object queryListByIds(@RequestBody Set<String> musicGroupIds) {
+		if (musicGroupIds.isEmpty()) {
+			return failed("参数校验失败");
+		}
+		return succeed(musicGroupService.queryListByIds(musicGroupIds));
+	}
+
+	@ApiOperation(value = "开启乐团缴费功能")
+	@PostMapping("/openPay")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/openPay')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "expireDate", value = "截止缴费日期", required = true, dataType = "String") })
+	public Object openPay(String musicGroupId, String expireDate) {
+		return succeed(musicGroupService.openPay(musicGroupId, expireDate));
+	}
+
+	@ApiOperation(value = "乐团确认成立")
+	@PostMapping("/found")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/found')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
+	public Object found(String musicGroupId) {
+		musicGroupService.musicGroupFound(musicGroupId);
+		return succeed();
+	}
+
+	@ApiOperation(value = "取消乐团")
+	@PostMapping("/cancelMusicGroup")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/cancelMusicGroup')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
+	public Object cancelMusicGroup(String musicGroupId) {
+		musicGroupService.cancelMusicGroup(musicGroupId);
+		return succeed();
+	}
+
+	@ApiOperation(value = "暂停乐团")
+	@PostMapping("/pauseMusicGroup")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/pauseMusicGroup')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
+	public Object pauseMusicGroup(String musicGroupId) {
+		musicGroupService.pauseMusicGroup(musicGroupId);
+		return succeed();
+	}
+
+	@ApiOperation(value = "恢复乐团")
+	@PostMapping("/resumeMusicGroup")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/resumeMusicGroup')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
+	public Object resumeMusicGroup(String musicGroupId) {
+		musicGroupService.resumeMusicGroup(musicGroupId);
+		return succeed();
+	}
+
+	@ApiOperation(value = "延长缴费")
+	@PostMapping("/extensionPayment")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/extensionPayment')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "expireDate", value = "延长缴费的截止日期", required = true, dataType = "Date") })
+	public Object extensionPayment(String musicGroupId, Date expireDate) {
+		musicGroupService.extensionPayment(musicGroupId, expireDate);
+		return succeed();
+	}
 
 }