Переглянути джерело

add musicGroup/closeMusicGroup 关闭乐团接口

周箭河 4 роки тому
батько
коміт
705b4159aa

+ 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;
+    }
+}

+ 3 - 9
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.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.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
@@ -329,8 +323,8 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 
 	/**
 	 * 关闭乐团
-	 * @param musicGroupId 乐团id
+	 * @param closeMusicGroupDto 乐团关闭信息
 	 * @return 关闭结果
 	 */
-	Boolean closeMusicGroup(String musicGroupId);
+	Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto);
 }

+ 20 - 17
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 com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import org.apache.commons.lang3.StringUtils;
 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.entity.SysUser;
 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.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
@@ -2634,12 +2625,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean closeMusicGroup(String musicGroupId) {
+    public Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+        MusicGroup musicGroup = musicGroupDao.get(closeMusicGroupDto.getMusicGroupId());
         if (musicGroup == null) {
             throw new BizException("乐团找不到");
         }
@@ -2652,13 +2643,25 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setUpdateTime(new Date());
         musicGroupDao.update(musicGroup);
 
-        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "关闭乐团", sysUser.getId(), ""));
-
-        List<StudentRegistration> musicGroupRegs = studentRegistrationDao.findMusicGroupStudent(musicGroupId, null);
+        musicGroupBuildLogDao.insert(new MusicGroupBuildLog(closeMusicGroupDto.getMusicGroupId(), "关闭乐团", sysUser.getId(), ""));
 
-        //退还没上课程费用 todo
-        if (musicGroupRegs.size() > 0) {
+        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());
+            }
         }
 
         //删除未上课表

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

@@ -1,5 +1,6 @@
 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.entity.StudentRegistration;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -293,9 +294,8 @@ public class MusicGroupController extends BaseController {
 	@ApiOperation(value = "关闭乐团")
 	@PostMapping("/closeMusicGroup")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/closeMusicGroup')")
-	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
-	public HttpResponseResult<Boolean> closeMusicGroup(String musicGroupId) {
-		return succeed(musicGroupService.closeMusicGroup(musicGroupId));
+	public HttpResponseResult<Boolean> closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto) {
+		return succeed(musicGroupService.closeMusicGroup(closeMusicGroupDto));
 	}
 
 }