浏览代码

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父节点
当前提交
a04b35dc9f

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ApprovalStatus.java

@@ -0,0 +1,13 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum ApprovalStatus implements BaseEnum<String, ApprovalStatus> {
+	APPROVED, DENIED, PROCESSING;
+
+	@Override
+	public String getCode() {
+		return name();
+	}
+
+}

+ 46 - 36
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupQuit.java

@@ -9,81 +9,91 @@ public class MusicGroupQuit {
 
 	/**  */
 	private Long id;
-	
+
 	/** 用户编号 */
 	private Integer userId;
-	
+
 	/** 乐团编号 */
-	private Integer musicGroupId;
-	
+	private String musicGroupId;
+
 	/** 加入时间 */
 	private java.util.Date joinDate;
-	
+
 	/** 退出时间 */
 	private java.util.Date quitDate;
-	
+
 	/**  */
 	private java.util.Date createTime;
-	
+
 	/** 原因 */
 	private String reason;
-	
-	public void setId(Long id){
+
+	private ApprovalStatus status;
+
+	public void setId(Long id) {
 		this.id = id;
 	}
-	
-	public Long getId(){
+
+	public Long getId() {
 		return this.id;
 	}
-			
-	public void setUserId(Integer userId){
+
+	public void setUserId(Integer userId) {
 		this.userId = userId;
 	}
-	
-	public Integer getUserId(){
+
+	public Integer getUserId() {
 		return this.userId;
 	}
-			
-	public void setMusicGroupId(Integer musicGroupId){
+
+	public void setMusicGroupId(String musicGroupId) {
 		this.musicGroupId = musicGroupId;
 	}
-	
-	public Integer getMusicGroupId(){
+
+	public String getMusicGroupId() {
 		return this.musicGroupId;
 	}
-			
-	public void setJoinDate(java.util.Date joinDate){
+
+	public void setJoinDate(java.util.Date joinDate) {
 		this.joinDate = joinDate;
 	}
-	
-	public java.util.Date getJoinDate(){
+
+	public java.util.Date getJoinDate() {
 		return this.joinDate;
 	}
-			
-	public void setQuitDate(java.util.Date quitDate){
+
+	public void setQuitDate(java.util.Date quitDate) {
 		this.quitDate = quitDate;
 	}
-	
-	public java.util.Date getQuitDate(){
+
+	public java.util.Date getQuitDate() {
 		return this.quitDate;
 	}
-			
-	public void setCreateTime(java.util.Date createTime){
+
+	public void setCreateTime(java.util.Date createTime) {
 		this.createTime = createTime;
 	}
-	
-	public java.util.Date getCreateTime(){
+
+	public java.util.Date getCreateTime() {
 		return this.createTime;
 	}
-			
-	public void setReason(String reason){
+
+	public void setReason(String reason) {
 		this.reason = reason;
 	}
-	
-	public String getReason(){
+
+	public String getReason() {
 		return this.reason;
 	}
-			
+
+	public ApprovalStatus getStatus() {
+		return status;
+	}
+
+	public void setStatus(ApprovalStatus status) {
+		this.status = status;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

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

@@ -4,9 +4,11 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -67,12 +69,21 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	boolean extensionPayment(String musicGroupId, Date expireDate);
 
 	/**
-	 * 退团
+	 * 申请退团
 	 * @param musicGroupId 乐团编号
-	 * @param userId 用户编号
+	 * @param sysUser 用户
+	 * @return
+	 */
+	boolean applyQuitMusicGroup(String musicGroupId, SysUser sysUser);
+
+	/**
+	 * 审批退团
+	 * @param id
+	 * @param status
+	 * @param reason
 	 * @return
 	 */
-	boolean quitMusicGroup(String musicGroupId, Integer userId);
+	boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason);
 
 	/**
 	 *  续费

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

@@ -15,12 +15,14 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ChargeTypeDao;
 import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
 import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
+import com.ym.mec.biz.dal.dao.MusicGroupQuitDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
@@ -30,10 +32,12 @@ import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
@@ -96,6 +100,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Autowired
 	private SysUserCashAccountService sysUserCashAccountService;
 	
+	@Autowired
+	private MusicGroupQuitDao musicGroupQuitDao;
+	
     @Autowired
     private PayService payService;
 	
@@ -299,18 +306,39 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	}
 
 	@Override
-	public boolean quitMusicGroup(String musicGroupId, Integer userId) {
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean applyQuitMusicGroup(String musicGroupId, SysUser sysUser) {
 		MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 		if (musicGroup == null) {
 			throw new BizException("乐团不存在");
 		}
 		
-		classGroupStudentMapperDao.updateUserStatusByMusicGroupId(musicGroupId, userId, ClassGroupStudentStatusEnum.QUIT);
+		MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
+		musicGroupQuit.setCreateTime(new Date());
+		musicGroupQuit.setJoinDate(sysUser.getCreateTime());
+		musicGroupQuit.setMusicGroupId(musicGroupId);
+		musicGroupQuit.setUserId(sysUser.getId());
+		musicGroupQuit.setStatus(ApprovalStatus.PROCESSING);
 		
+		musicGroupQuitDao.insert(musicGroupQuit);
 		return true;
 	}
 
 	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason) {
+		MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(id);
+		if(musicGroupQuit != null){
+			musicGroupQuit.setStatus(status);
+			musicGroupQuit.setReason(reason);
+			musicGroupQuit.setQuitDate(new Date());
+			classGroupStudentMapperDao.updateUserStatusByMusicGroupId(musicGroupQuit.getMusicGroupId(), musicGroupQuit.getUserId(), ClassGroupStudentStatusEnum.QUIT);
+		}
+		return false;
+	}
+
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public Map renew(String musicGroupId, Integer userId) {
 
 		MusicGroup musicGroup = this.get(musicGroupId);

+ 60 - 50
mec-biz/src/main/resources/config/mybatis/MusicGroupQuitMapper.xml

@@ -1,12 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<!--
-这个文件是自动生成的。
-不要修改此文件。所有改动将在下次重新自动生成时丢失。
--->
+<!-- 这个文件是自动生成的。 不要修改此文件。所有改动将在下次重新自动生成时丢失。 -->
 <mapper namespace="com.ym.mec.biz.dal.dao.MusicGroupQuitDao">
-	
-	<resultMap type="com.ym.mec.biz.dal.entity.MusicGroupQuit" id="MusicGroupQuit">
+
+	<resultMap type="com.ym.mec.biz.dal.entity.MusicGroupQuit"
+		id="MusicGroupQuit">
 		<result column="id_" property="id" />
 		<result column="user_id_" property="userId" />
 		<result column="music_group_id_" property="musicGroupId" />
@@ -14,67 +12,79 @@
 		<result column="quit_date_" property="quitDate" />
 		<result column="create_time_" property="createTime" />
 		<result column="reason_" property="reason" />
+		<result column="status_" property="status"
+			typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
 	</resultMap>
-	
+
 	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="MusicGroupQuit" >
-		SELECT * FROM music_group_quit WHERE id_ = #{id} 
+	<select id="get" resultMap="MusicGroupQuit">
+		SELECT * FROM
+		music_group_quit WHERE id_ = #{id}
 	</select>
-	
+
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MusicGroupQuit">
-		SELECT * FROM music_group_quit ORDER BY id_
+		SELECT * FROM music_group_quit
+		ORDER BY id_
 	</select>
-	
+
 	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupQuit" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO music_group_quit (id_,user_id_,music_group_id_,join_date_,quit_date_,create_time_,reason_) VALUES(#{id},#{userId},#{musicGroupId},#{joinDate},#{quitDate},#{createTime},#{reason})
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupQuit"
+		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
+			AS ID FROM DUAL </selectKey> -->
+		INSERT INTO music_group_quit
+		(id_,user_id_,music_group_id_,join_date_,quit_date_,create_time_,reason_,status_)
+		VALUES(#{id},#{userId},#{musicGroupId},#{joinDate},#{quitDate},#{createTime},#{reason},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
 	</insert>
-	
+
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.MusicGroupQuit">
-		UPDATE music_group_quit <set>
-<if test="userId != null">
-user_id_ = #{userId},
-</if>
-<if test="id != null">
-id_ = #{id},
-</if>
-<if test="joinDate != null">
-join_date_ = #{joinDate},
-</if>
-<if test="reason != null">
-reason_ = #{reason},
-</if>
-<if test="quitDate != null">
-quit_date_ = #{quitDate},
-</if>
-<if test="musicGroupId != null">
-music_group_id_ = #{musicGroupId},
-</if>
-<if test="createTime != null">
-create_time_ = #{createTime},
-</if>
-</set> WHERE id_ = #{id} 
+		UPDATE music_group_quit
+		<set>
+			<if test="userId != null">
+				user_id_ = #{userId},
+			</if>
+			<if test="id != null">
+				id_ = #{id},
+			</if>
+			<if test="joinDate != null">
+				join_date_ = #{joinDate},
+			</if>
+			<if test="reason != null">
+				reason_ = #{reason},
+			</if>
+			<if test="quitDate != null">
+				quit_date_ = #{quitDate},
+			</if>
+			<if test="musicGroupId != null">
+				music_group_id_ = #{musicGroupId},
+			</if>
+			<if test="createTime != null">
+				create_time_ = #{createTime},
+			</if>
+			<if test="status != null">
+				status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+		</set>
+		WHERE id_ = #{id}
 	</update>
-	
+
 	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
-		DELETE FROM music_group_quit WHERE id_ = #{id} 
+	<delete id="delete">
+		DELETE FROM music_group_quit WHERE id_ =
+		#{id}
 	</delete>
-	
+
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="MusicGroupQuit" parameterType="map">
-		SELECT * FROM music_group_quit ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM music_group_quit ORDER BY id_
+		<include refid="global.limit" />
 	</select>
-	
+
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM music_group_quit
+		SELECT COUNT(*) FROM
+		music_group_quit
 	</select>
 </mapper>

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

@@ -180,8 +180,7 @@ public class MusicGroupController extends BaseController {
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
 	public HttpResponseResult quitMusicGroup(String musicGroupId) throws Exception {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		Integer userId = sysUser.getId();
-		return succeed(musicGroupService.quitMusicGroup(musicGroupId, userId));
+		return succeed(musicGroupService.applyQuitMusicGroup(musicGroupId, sysUser));
 	}
 
 

+ 56 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

@@ -0,0 +1,56 @@
+package com.ym.mec.web.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.biz.dal.entity.ApprovalStatus;
+import com.ym.mec.biz.service.MusicGroupQuitService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.QueryInfo;
+
+@RequestMapping("musicGroupQuit")
+@Api(tags = "退团服务")
+@RestController
+public class MusicGroupQuitController extends BaseController {
+
+	@Autowired
+	private MusicGroupService musicGroupService;
+	
+	@Autowired
+	private MusicGroupQuitService musicGroupQuitService;
+	
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation(value = "分页查询")
+	@GetMapping("/queryPage")
+	public HttpResponseResult queryPage(QueryInfo queryInfo) throws Exception {
+		return succeed(musicGroupQuitService.queryPage(queryInfo));
+	}
+	
+	@ApiOperation(value = "单查询")
+	@GetMapping("/query")
+	public HttpResponseResult query(Long id) throws Exception {
+		return succeed(musicGroupQuitService.get(id));
+	}
+
+	@ApiOperation(value = "退团")
+	@PostMapping("/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));
+	}
+}