Browse Source

Merge branch 'merge_music_group'

周箭河 4 years ago
parent
commit
a29940e337

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CloseMusicGroupDto.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Map;
+
+public class CloseMusicGroupDto {
+
+    @ApiModelProperty(value = "乐团id", required = true)
+    private String musicGroupId;
+
+
+    @ApiModelProperty(value = "用户退的金额", required = true)
+    private Map<Integer, BigDecimal> userReBack;
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Map<Integer, BigDecimal> getUserReBack() {
+        return userReBack;
+    }
+
+    public void setUserReBack(Map<Integer, BigDecimal> userReBack) {
+        this.userReBack = userReBack;
+    }
+}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MusicGroupStatusEnum.java

@@ -6,7 +6,8 @@ public enum MusicGroupStatusEnum implements BaseEnum<String, MusicGroupStatusEnu
 	DRAFT("DRAFT", "草稿"), FEE_AUDIT("FEE_AUDIT","费用审核中"), AUDIT("AUDIT", "审核中"),
 	DRAFT("DRAFT", "草稿"), FEE_AUDIT("FEE_AUDIT","费用审核中"), AUDIT("AUDIT", "审核中"),
 	AUDIT_FAILED("AUDIT_FAILED", "审核失败"), APPLY("APPLY", "报名中"),
 	AUDIT_FAILED("AUDIT_FAILED", "审核失败"), APPLY("APPLY", "报名中"),
 	PAY("PAY", "缴费中"), PREPARE("PREPARE", "筹备中"),
 	PAY("PAY", "缴费中"), PREPARE("PREPARE", "筹备中"),
-	PROGRESS("PROGRESS", "进行中"), CANCELED("CANCELED", "取消"), PAUSE("PAUSE", "暂停");
+	PROGRESS("PROGRESS", "进行中"), CANCELED("CANCELED", "取消"), PAUSE("PAUSE", "暂停"),
+	CLOSE("CLOSE", "关闭");
 
 
 	private String code;
 	private String code;
 	private String msg;
 	private String msg;

+ 14 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -7,13 +7,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Set;
 import java.util.Set;
 
 
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
-import com.ym.mec.biz.dal.dto.MusicCardDto;
-import com.ym.mec.biz.dal.dto.RegisterPayDto;
-import com.ym.mec.biz.dal.dto.SporadicPayDto;
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
@@ -77,7 +71,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param musicGroupId 乐团编号
 	 * @param musicGroupId 乐团编号
 	 */
 	 */
 	boolean cancelMusicGroup(String musicGroupId);
 	boolean cancelMusicGroup(String musicGroupId);
-	
+
 	/**
 	/**
 	 * 删除乐团
 	 * 删除乐团
 	 * @param musicGroupId 乐团编号
 	 * @param musicGroupId 乐团编号
@@ -120,7 +114,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @return
 	 * @return
 	 */
 	 */
 	boolean applyQuitMusicGroup(String musicGroupId, String reason);
 	boolean applyQuitMusicGroup(String musicGroupId, String reason);
-	
+
 	/**
 	/**
 	 * 取消退团
 	 * 取消退团
 	 * @param userId
 	 * @param userId
@@ -320,9 +314,17 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 
 
 	/**
 	/**
 	 * 给乐团添加报名学生
 	 * 给乐团添加报名学生
-	 * @param musicGroupId
-	 * @param registerIds
-	 * @return
+	 * @param musicGroupId 乐团id
+	 * @param registerIds 学员注册id
+	 * @return 添加学员记录
 	 */
 	 */
 	List<StudentRegistration> addMusicGroupRegs(String musicGroupId,List<Long> registerIds);
 	List<StudentRegistration> addMusicGroupRegs(String musicGroupId,List<Long> registerIds);
+
+
+	/**
+	 * 关闭乐团
+	 * @param closeMusicGroupDto 乐团关闭信息
+	 * @return 关闭结果
+	 */
+	Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto);
 }
 }

+ 47 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -19,6 +19,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,16 +33,6 @@ import com.alibaba.fastjson.TypeReference;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.auth.api.entity.SysUserRole;
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.CourseFormDto;
-import com.ym.mec.biz.dal.dto.CourseScheduleTeachersDto;
-import com.ym.mec.biz.dal.dto.HighClassGroupDto;
-import com.ym.mec.biz.dal.dto.MusicCardDto;
-import com.ym.mec.biz.dal.dto.RegisterPayDto;
-import com.ym.mec.biz.dal.dto.SporadicPayDto;
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
-import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
@@ -2632,4 +2623,50 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         return studentRegistrationList;
         return studentRegistrationList;
     }
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        MusicGroup musicGroup = musicGroupDao.get(closeMusicGroupDto.getMusicGroupId());
+        if (musicGroup == null) {
+            throw new BizException("乐团找不到");
+        }
+
+        if (musicGroup.getStatus() != MusicGroupStatusEnum.PROGRESS) {
+            throw new BizException("乐团当前状态是{},不能关闭", musicGroup.getStatus().getMsg());
+        }
+
+        musicGroup.setStatus(MusicGroupStatusEnum.CLOSE);
+        musicGroup.setUpdateTime(new Date());
+        musicGroupDao.update(musicGroup);
+
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(closeMusicGroupDto.getMusicGroupId(), "关闭乐团", sysUser.getId(), ""));
+
+        List<StudentRegistration> musicGroupRegs = studentRegistrationDao.findMusicGroupStudent(closeMusicGroupDto.getMusicGroupId(), null);
+        Map<Integer, BigDecimal> userReBackMap = closeMusicGroupDto.getUserReBack();
+        //退还没上课程费用
+        for (StudentRegistration musicGroupReg : musicGroupRegs) {
+            BigDecimal userReBack = userReBackMap.getOrDefault(musicGroupReg.getUserId(), BigDecimal.ZERO);
+
+            if (userReBack.compareTo(musicGroupReg.getSurplusCourseFee()) > 0) {
+                throw new BizException(musicGroupReg.getName() + "退费金额不能大于实际金额");
+            }
+            //退用户余额
+            if (userReBack.compareTo(BigDecimal.ZERO) > 0) {
+                sysUserCashAccountService.updateBalance(musicGroupReg.getUserId(), userReBack, PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭乐团");
+            }
+            //清除剩余课程费用
+            if (musicGroupReg.getSurplusCourseFee().compareTo(BigDecimal.ZERO) > 0) {
+                studentRegistrationService.updateUserSurplusCourseFee(musicGroupReg.getUserId(), musicGroupReg.getMusicGroupId(), musicGroupReg.getSurplusCourseFee().negate(), "关闭乐团", sysUser.getId());
+            }
+        }
+
+        //删除未上课表
+        courseScheduleDao.logicDeleteCourseSchedulesByMusicGroupID(musicGroup.getId());
+        return true;
+    }
+
 }
 }

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 package com.ym.mec.web.controller;
 
 
+import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
 import com.ym.mec.biz.dal.dto.MusicGroupRegsDto;
 import com.ym.mec.biz.dal.dto.MusicGroupRegsDto;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -290,4 +291,11 @@ public class MusicGroupController extends BaseController {
 		return succeed(musicGroupService.addMusicGroupRegs(musicGroupRegsDto.getMusicGroupId(),musicGroupRegsDto.getRegisterIds()));
 		return succeed(musicGroupService.addMusicGroupRegs(musicGroupRegsDto.getMusicGroupId(),musicGroupRegsDto.getRegisterIds()));
 	}
 	}
 
 
+	@ApiOperation(value = "关闭乐团")
+	@PostMapping("/closeMusicGroup")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/closeMusicGroup')")
+	public HttpResponseResult<Boolean> closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto) {
+		return succeed(musicGroupService.closeMusicGroup(closeMusicGroupDto));
+	}
+
 }
 }