Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
a7ef528c22

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -88,4 +88,12 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
      * @date 2019/10/19
      */
     List<StudentAttendanceViewDto> findStudentByCourse(Long courseScheduleId);
+
+    /**
+     * 查找班级学生对应关系
+     * @param userId
+     * @param classGroupId
+     * @return
+     */
+    ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(@Param("userId") Integer userId, @Param("classGroupId") Integer classGroupId);
 }

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

@@ -1,12 +1,10 @@
 package com.ym.mec.biz.dal.entity;
 
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
-
 import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import java.util.Date;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 
 /**
  * 对应数据库表(class_group_student_mapper):

+ 0 - 12
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ClassGroupTeacherSalary.java

@@ -3,21 +3,9 @@ package com.ym.mec.biz.dal.entity;
 import java.math.BigDecimal;
 
 public class ClassGroupTeacherSalary extends ClassGroupTeacherMapper {
-    /**
-     * 课时长
-     */
-    private Integer duration;
     
     private BigDecimal onlineClassesSalary;
 
-    public Integer getDuration() {
-        return duration;
-    }
-
-    public void setDuration(Integer duration) {
-        this.duration = duration;
-    }
-
 	public BigDecimal getOnlineClassesSalary() {
 		return onlineClassesSalary;
 	}

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupStudentMapperService.java

@@ -8,4 +8,12 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 public interface ClassGroupStudentMapperService extends BaseService<Long, ClassGroupStudentMapper> {
+
+    /**
+     * 查找班级学生对应关系
+     * @param userId
+     * @param classGroupId
+     * @return
+     */
+    ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(Integer userId, Integer classGroupId);
 }

+ 11 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -88,13 +88,22 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason);
 
 	/**
+	 * 一键退团
+	 * @param musicGroupId
+	 * @param userId
+	 * @param reason
+	 * @return
+	 */
+	boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason);
+
+	/**
 	 *  续费
 	 * @param musicGroupId 乐团编号
 	 * @param userId 用户编号
 	 * @return
 	 */
 	Map renew(String musicGroupId, Integer userId);
-	
+
 	/**
 	 * 学生支付订单
 	 * @param studentPaymentOrder
@@ -124,5 +133,5 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 修改乐团基本信息
 	 * @param subFeeSettingDto
 	 */
-    void updateBaseInfo(SubFeeSettingDto subFeeSettingDto);
+	void updateBaseInfo(SubFeeSettingDto subFeeSettingDto);
 }

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

@@ -176,7 +176,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @return void
      * @describe 退课申请审核
      */
-    void applyRefundAudit(Long id,AuditStatusEnum status,String remark);
+    void applyRefundAudit(Long id,AuditStatusEnum status,String remark,BigDecimal amount);
 
     /**
      * @Author: Joburgess

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

@@ -21,4 +21,9 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 	public BaseDAO<Long, ClassGroupStudentMapper> getDAO() {
 		return classGroupStudentMapperDao;
 	}
+
+    @Override
+    public ClassGroupStudentMapper findClassStudentMapperByUserIdAndClassGroupId(Integer userId, Integer classGroupId) {
+        return classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(userId,classGroupId);
+    }
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
@@ -93,6 +94,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Autowired
 	private PayService payService;
 
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
 	@Override
 	public BaseDAO<String, MusicGroup> getDAO() {
 		return musicGroupDao;
@@ -337,6 +341,53 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason) {
+
+		SysUser sysUser = sysUserFeignService.queryUserById(userId);
+		if (sysUser == null) {
+			throw new BizException("获取用户信息失败");
+		}
+
+		Date date = new Date();
+
+		MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
+		musicGroupQuit.setCreateTime(date);
+		musicGroupQuit.setJoinDate(sysUser.getCreateTime());
+		musicGroupQuit.setMusicGroupId(musicGroupId);
+		musicGroupQuit.setUserId(sysUser.getId());
+		musicGroupQuit.setStatus(ApprovalStatus.APPROVED);
+		musicGroupQuit.setReason(reason);
+		musicGroupQuit.setQuitDate(date);
+
+		musicGroupQuitDao.insert(musicGroupQuit);
+
+		classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
+
+		// 判断乐器是否是租赁
+		StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+		if (studentRegistration == null) {
+			throw new BizException("用户注册信息不存在");
+		}
+		// 退团
+		studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
+		studentRegistration.setUpdateTime(date);
+
+		Integer subjectId = studentRegistration.getActualSubjectId();
+		MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+		if (musicGroupSubjectPlan == null) {
+			throw new BizException("乐团声部费用设置不存在");
+		}
+		if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
+			// 增加交易流水
+			sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(), SysUserCashAccountDetailService.MUSIC_GROUP
+					+ musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
+		}
+
+		return true;
+	}
+
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Map renew(String musicGroupId, Integer userId) {
 
 		MusicGroup musicGroup = this.get(musicGroupId);

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

@@ -706,7 +706,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void applyRefundAudit(Long id, AuditStatusEnum status, String remark) {
+	public void applyRefundAudit(Long id, AuditStatusEnum status, String remark,BigDecimal amount) {
 
 		StudentApplyRefunds studentApplyRefunds = studentApplyRefundsDao.get(id);
 		if (studentApplyRefunds == null) {
@@ -720,7 +720,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		studentApplyRefunds.setStatus(status);
 		if (studentApplyRefunds.getStatus() == AuditStatusEnum.PASS) {
-			studentApplyRefunds.setActualAmount(studentApplyRefunds.getExpectAmount());
+			studentApplyRefunds.setActualAmount(amount);
 		} else {
 			studentApplyRefunds.setActualAmount(new BigDecimal(0));
 		}
@@ -734,7 +734,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
 			sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
 			sysUserCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
-			sysUserCashAccountDetail.setAmount(studentApplyRefunds.getActualAmount());
+			sysUserCashAccountDetail.setAmount(amount);
 			sysUserCashAccountDetail.setBalance(sysUserCashAccount.getBalance());
 			sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
 			sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);

+ 10 - 6
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -134,11 +134,15 @@
             cssp.course_schedule_id_ =#{courseScheduleId}
     </select>
 
-    <delete id="deleteStudentByMusicGroupId" parameterType="map">
-        DELETE FROM class_group_student_mapper WHERE class_group_id_ in (select id_ from class_group where music_group_id_ = #{musicGroupId}) and user_id_ = #{userId}
-    </delete>
+    <update id="deleteStudentByMusicGroupId" parameterType="map">
+        update class_group_student_mapper set status_ = 'QUIT' where class_group_id_ in (select id_ from class_group where music_group_id_ = #{musicGroupId}) and user_id_ = #{userId}
+    </update>
 
-    <delete id="deleteStudentByClassGroupId">
-        DELETE FROM class_group_student_mapper WHERE class_group_id_=#{classGroupId} AND user_id_=#{userId}
-    </delete>
+    <update id="deleteStudentByClassGroupId">
+        update class_group_student_mapper set status_ = 'QUIT' WHERE class_group_id_=#{classGroupId} AND user_id_=#{userId}
+    </update>
+
+    <select id="findClassStudentMapperByUserIdAndClassGroupId" resultMap="ClassGroupStudentMapper">
+        SELECT * FROM class_group_student_mapper WHERE user_id_=#{userId} AND class_group_id_=#{classGroupId} AND status_ = 'NORMAL'
+    </select>
 </mapper>

+ 0 - 10
mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherSalaryMapper.xml

@@ -7,7 +7,6 @@
     <result column="class_group_id_" jdbcType="INTEGER" property="classGroupId" />
     <result column="teacher_role_" jdbcType="VARCHAR" property="teacherRole" />
     <result column="user_id_" jdbcType="INTEGER" property="userId" />
-    <result column="duration_" jdbcType="INTEGER" property="duration" />
     <result column="salary_" jdbcType="DECIMAL" property="salary" />
     <result column="online_classes_salary_" jdbcType="DECIMAL" property="onlineClassesSalary" />
     <result column="create_time_" jdbcType="TIMESTAMP" property="createTime" />
@@ -36,9 +35,6 @@
       <if test="userId != null">
         user_id_,
       </if>
-      <if test="duration != null">
-        duration_,
-      </if>
       <if test="salary != null">
         salary_,
       </if>
@@ -65,9 +61,6 @@
       <if test="userId != null">
         #{userId,jdbcType=INTEGER},
       </if>
-      <if test="duration != null">
-        #{duration,jdbcType=INTEGER},
-      </if>
       <if test="salary != null">
         #{salary,jdbcType=DECIMAL},
       </if>
@@ -98,9 +91,6 @@
       <if test="userId != null">
         user_id_ = #{userId,jdbcType=INTEGER},
       </if>
-      <if test="duration != null">
-        duration_ = #{duration,jdbcType=INTEGER},
-      </if>
       <if test="salary != null">
         salary_ = #{salary,jdbcType=DECIMAL},
       </if>

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/StudentApplyRefundsMapper.xml

@@ -103,10 +103,10 @@
 		SELECT count(1) FROM student_apply_refunds sar left join student_payment_order spo on sar.orig_payment_order_id_ = spo.id_ 
 		where 1=1 
         <if test="startTime != null">
-            and sar.create_time_ = #{startTime}
+            and sar.create_time_ &gt;= #{startTime}
         </if>
         <if test="endTime != null">
-            and sar.create_time_ = #{endTime}
+            and sar.create_time_ &lt;= #{endTime}
         </if>
 	</select>
 </mapper>

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

@@ -159,10 +159,10 @@
     <sql id="queryPaymentOrder">
         <where>
             <if test="orderStartDate != null">
-                AND spo.pay_time_ &gt;= #{orderStartDate}
+                AND spo.create_time_ &gt;= #{orderStartDate}
             </if>
             <if test="orderEndDate != null">
-                AND spo.pay_time_ &lt;= #{orderEndDate}
+                AND spo.create_time_ &lt;= #{orderEndDate}
             </if>
             <if test="paymentType != null">
                 AND spo.type_ = #{paymentType}

+ 40 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupStudentController.java

@@ -0,0 +1,40 @@
+package com.ym.mec.web.controller;
+
+
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.service.ClassGroupStudentMapperService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+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;
+
+@RequestMapping("classGroupStudent")
+@Api(tags = "班级学生服务")
+@RestController
+public class ClassGroupStudentController extends BaseController {
+
+    @Autowired
+    private ClassGroupStudentMapperService classGroupStudentMapperService;
+
+
+    @ApiOperation(value = "删除班级学生")
+    @PostMapping("/del")
+    @PreAuthorize("@pcs.hasPermissions('classGroupStudent/del')")
+    public HttpResponseResult add(Integer userId, Integer classGroupId) throws Exception {
+        ClassGroupStudentMapper classStudentMapper = classGroupStudentMapperService.findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId);
+        if (classStudentMapper == null) {
+            return failed("班级学生不存在");
+        }
+        classStudentMapper.setStatus(ClassGroupStudentStatusEnum.QUIT);
+        return succeed(classGroupStudentMapperService.update(classStudentMapper));
+    }
+
+}

+ 16 - 6
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

@@ -27,34 +27,44 @@ public class MusicGroupQuitController extends BaseController {
 
 	@Autowired
 	private MusicGroupService musicGroupService;
-	
+
 	@Autowired
 	private MusicGroupQuitService musicGroupQuitService;
-	
+
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	@ApiOperation(value = "分页查询")
 	@GetMapping("/queryPage")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupQuit/queryPage')")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/queryPage')")
 	public HttpResponseResult queryPage(QueryInfo queryInfo) throws Exception {
 		return succeed(musicGroupQuitService.queryPage(queryInfo));
 	}
-	
+
 	@ApiOperation(value = "单查询")
 	@GetMapping("/query")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupQuit/query')")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/query')")
 	public HttpResponseResult query(Long id) throws Exception {
 		return succeed(musicGroupQuitService.get(id));
 	}
 
 	@ApiOperation(value = "退团")
 	@PostMapping("/quitMusicGroup")
-    @PreAuthorize("@pcs.hasPermissions('musicGroupQuit/quitMusicGroup')")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/quitMusicGroup')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "退团申请id", required = true, dataType = "Long"),
 			@ApiImplicitParam(name = "status", value = "审批状态(APPROVED, DENIED, PROCESSING)", required = true, dataType = "String"),
 			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String") })
 	public HttpResponseResult quitMusicGroup(Long id, ApprovalStatus status, String reason) throws Exception {
 		return succeed(musicGroupService.approveQuitMusicGroup(id, status, reason));
 	}
+
+	@ApiOperation(value = "一键退团")
+	@PostMapping("/directQuitMusicGroup")
+	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/directQuitMusicGroup')")
+	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"),
+			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String") })
+	public HttpResponseResult directQuitMusicGroup(String musicGroupId, Integer userId, String reason) throws Exception {
+		return succeed(musicGroupService.directQuitMusicGroup(musicGroupId, userId, reason));
+	}
 }

+ 7 - 4
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -14,14 +14,17 @@ import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -95,10 +98,10 @@ public class VipGroupManageController extends BaseController {
     @ApiOperation(value = "退课申请审核")
     @PostMapping("/applyRefundAudit")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/applyRefundAudit')")
-	public Object applyRefundAudit(Long id, AuditStatusEnum status, String remark) {
-		vipGroupService.applyRefundAudit(id, status, remark);
-        return succeed();
-    }
+	public Object applyRefundAudit(Long id, AuditStatusEnum status, String remark, BigDecimal amount) {
+		vipGroupService.applyRefundAudit(id, status, remark, amount);
+		return succeed();
+	}
 
     @ApiOperation(value = "获取VIP课教学记录")
     @GetMapping("/findVipGroupTeachingRecord")