Преглед изворни кода

Merge remote-tracking branch 'origin/master'

zouxuan пре 4 година
родитељ
комит
9652a04df7

+ 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", "审核中"),
 	AUDIT_FAILED("AUDIT_FAILED", "审核失败"), APPLY("APPLY", "报名中"),
 	PAY("PAY", "缴费中"), PREPARE("PREPARE", "筹备中"),
-	PROGRESS("PROGRESS", "进行中"), CANCELED("CANCELED", "取消"), PAUSE("PAUSE", "暂停");
+	PROGRESS("PROGRESS", "进行中"), CANCELED("CANCELED", "取消"), PAUSE("PAUSE", "暂停"),
+	CLOSE("CLOSE", "关闭");
 
 	private String code;
 	private String msg;

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

@@ -14,7 +14,8 @@ public enum SporadicChargeTypeEnum implements BaseEnum<Integer, SporadicChargeTy
     RECHARGE(9,"账户充值"),
     MUSIC_UPKEEP(10,"乐保服务"),
     OTHER(11,"其他"),
-    DOUBLE_ELEVEN2020(12,"2020双十一活动");
+    DOUBLE_ELEVEN2020(12,"2020双十一活动"),
+    HIGH_ONLINE_ACTIVITY(13,"网基课活动");
 
     private Integer code;
 

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentPaymentOrderQueryInfo.java

@@ -61,6 +61,10 @@ public class StudentPaymentOrderQueryInfo extends QueryInfo {
 
     private List<Integer> userIds;
 
+    //不包含淘气
+    @ApiModelProperty(value = "传时不包含淘气",required = false)
+    private Integer noneTqType;//TQ 1-不包含淘气
+
     private boolean isExport = false;
 
     public boolean getIsExport() {
@@ -214,4 +218,12 @@ public class StudentPaymentOrderQueryInfo extends QueryInfo {
     public void setLessBalancePaymentAmount(BigDecimal lessBalancePaymentAmount) {
         this.lessBalancePaymentAmount = lessBalancePaymentAmount;
     }
+
+    public Integer getNoneTqType() {
+        return noneTqType;
+    }
+
+    public void setNoneTqType(Integer noneTqType) {
+        this.noneTqType = noneTqType;
+    }
 }

+ 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.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;
@@ -77,7 +71,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param musicGroupId 乐团编号
 	 */
 	boolean cancelMusicGroup(String musicGroupId);
-	
+
 	/**
 	 * 删除乐团
 	 * @param musicGroupId 乐团编号
@@ -120,7 +114,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @return
 	 */
 	boolean applyQuitMusicGroup(String musicGroupId, String reason);
-	
+
 	/**
 	 * 取消退团
 	 * @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);
+
+
+	/**
+	 * 关闭乐团
+	 * @param closeMusicGroupDto 乐团关闭信息
+	 * @return 关闭结果
+	 */
+	Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto);
 }

+ 49 - 12
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;
@@ -410,8 +401,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setVersion(0);
         BigDecimal balance = BigDecimal.ZERO;
         if (sporadicPayDto.getUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) {
-            if (chargeInfo.getChargeType().getCode().equals(9)) {
-                throw new BizException("账户充值不支持余额支付");
+            if (chargeInfo.getChargeType().getCode().equals(9)||chargeInfo.getChargeType().getCode().equals(13)) {
+                throw new BizException(chargeInfo.getChargeType().getMsg()+"不支持余额支付");
             }
             SysUserCashAccount userCashAccount = sysUserCashAccountService.get(userId);
 
@@ -2632,4 +2623,50 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         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;
+    }
+
 }

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

@@ -110,8 +110,8 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
                 if (!appendCourseBalance) {
                     throw new BizException("增加用户课程余额失败");
                 }
-            } else if (info.getChargeType().getCode() == 9) { //零星收费账户充值
-                sysUserCashAccountService.updateBalance(userId, studentPaymentOrder.getActualAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "零星收费账户充值", studentPaymentOrder.getTransNo());
+            } else if (info.getChargeType().getCode() == 9 || info.getChargeType().getCode() == 13) { //零星收费账户充值,网基课活动
+                sysUserCashAccountService.updateBalance(userId, studentPaymentOrder.getActualAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "零星收费"+info.getChargeType().getMsg(), studentPaymentOrder.getTransNo());
             } else if (info.getOrganId().equals(42) && info.getChargeType().equals(SporadicChargeTypeEnum.LEVEL)) {
                 degreeRegistrationService.updateStatus(studentPaymentOrder);
                 return true;

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

@@ -474,7 +474,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     public List<StudentPaymentOrder> reConfirmOrder(Date startTime, Date endTime) {
         if (startTime == null) {
             endTime = new Date();
-            startTime = DateUtil.addMinutes(endTime, 20);
+            startTime = DateUtil.addMinutes(endTime, -20);
         }
 
         List<StudentPaymentOrder> orders = studentPaymentOrderDao.getAdaPayOrdersByTime(startTime, endTime);

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentRouteOrderMapper.xml

@@ -253,6 +253,9 @@
                 AND spo.group_type_='SPORADIC'
                 AND sci.charge_type_ = #{chargeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
+            <if test="noneTqType != null">
+                and spo.mer_no_ != '淘器微信'
+            </if>
         </where>
     </sql>
     <select id="getRouteOrders" resultMap="StudentPaymentRouteOrder">

+ 8 - 0
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;
@@ -290,4 +291,11 @@ public class MusicGroupController extends BaseController {
 		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));
+	}
+
 }