浏览代码

退费记录

zouxuan 3 年之前
父节点
当前提交
6f86dcc315

+ 80 - 175
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserCashAccountLog.java

@@ -1,102 +1,68 @@
 package com.ym.mec.biz.dal.entity;
 
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.TransTypeEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.ReturnFeeEnum;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 /**
  * 对应数据库表(sys_user_cash_account_log):
  */
 public class SysUserCashAccountLog {
 
-	/** 序号 */
-	@ApiModelProperty(value = "序号",required = false)
-	private Long id;
+	@ApiModelProperty(value = "id")
+	private Integer id;
 
-	/** 用户编号 */
-	@ApiModelProperty(value = "用户编号",required = false)
+	@ApiModelProperty(value = "用户编号")
 	private Integer userId;
 
-	@ApiModelProperty(value = "手机号",required = false)
-	private String phone;
-
-	@ApiModelProperty(value = "姓名",required = false)
+	@ApiModelProperty(value = "学员姓名")
 	private String username;
 
-	@ApiModelProperty(value = "声部",required = false)
-	private String subjectName;
+	@ApiModelProperty(value = "分部")
+	private Integer organId;
 
-	/** 交易流水号 */
-	@ApiModelProperty(value = "交易流水号",required = false)
-	private String transNo;
+	@ApiModelProperty(value = "分部")
+	private String organName;
 
-	/** 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账) */
-	@ApiModelProperty(value = "交易类型",required = false)
-	private PlatformCashAccountDetailTypeEnum type;
+	@ApiModelProperty(value = "课程组类型")
+	private GroupType groupType;
 
-	/** 交易方式1.微信,2支付宝,3快捷*/
-	@ApiModelProperty(value = "交易方式",required = false)
-	private TransTypeEnum transType;
+	@ApiModelProperty(value = "课程组编号")
+	private String groupId;
 
-	/** 交易状态(1,交易中;2,成功交易;-1,交易失败;) */
-	@ApiModelProperty(value = "交易状态",required = false)
-	private DealStatusEnum status;
+	@ApiModelProperty(value = "课程组名称")
+	private String groupName;
 
-	/** 交易金额 */
-	@ApiModelProperty(value = "交易金额",required = false)
+	@ApiModelProperty(value = "退费金额")
 	private BigDecimal amount;
 
-	/** 公户金额 */
-	@ApiModelProperty(value = "公户金额",required = false)
-	private BigDecimal comAmount;
-
-	/** 私户金额 */
-	@ApiModelProperty(value = "私户金额",required = false)
-	private BigDecimal perAmount;
-
-	/** 账户可用余额 */
-	@ApiModelProperty(value = "账户可用余额",required = false)
-	private BigDecimal balance;
-
-	/** 描述 */
-	@ApiModelProperty(value = "描述",required = false)
-	private String description;
-
-	/** 后台备注 */
-	@ApiModelProperty(value = "后台备注",required = false)
-	private String comment;
-
-	/** 创建时间 */
-	private java.util.Date createTime;
-
-	/** 修改时间 */
-	private java.util.Date updateTime;
+	@ApiModelProperty(value = "退费类型")
+	private ReturnFeeEnum returnFeeType;
 
-	private String attribute;
+	@ApiModelProperty(value = "打款时间")
+	private Date payTime;
 
-	/** 描述 */
-	@ApiModelProperty(value = "支付渠道",required = false)
-	private String channel;
+	@ApiModelProperty(value = "交易流水号")
+	private String transNo;
 
-	/** 备注 */
-	@ApiModelProperty(value = "平台账户号",required = false)
-	private String platformAccountNo;
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
 
-	private String organName;
+	@ApiModelProperty(value = "修改时间")
+	private Date updateTime;
 
-	/** vip课程后台添加学员时关联的id */
-	private Long groupId;
+	@ApiModelProperty(value = "备注")
+	private String comment;
 
-	public Long getGroupId() {
-		return groupId;
+	public String getUsername() {
+		return username;
 	}
 
-	public void setGroupId(Long groupId) {
-		this.groupId = groupId;
+	public void setUsername(String username) {
+		this.username = username;
 	}
 
 	public String getOrganName() {
@@ -107,76 +73,60 @@ public class SysUserCashAccountLog {
 		this.organName = organName;
 	}
 
-	public String getPhone() {
-		return phone;
-	}
-
-	public void setPhone(String phone) {
-		this.phone = phone;
-	}
-
-	public String getUsername() {
-		return username;
-	}
-
-	public void setUsername(String username) {
-		this.username = username;
+	public String getGroupName() {
+		return groupName;
 	}
 
-	public String getSubjectName() {
-		return subjectName;
+	public void setGroupName(String groupName) {
+		this.groupName = groupName;
 	}
 
-	public void setSubjectName(String subjectName) {
-		this.subjectName = subjectName;
+	public String getComment() {
+		return comment;
 	}
 
-	public String getAttribute() {
-		return attribute;
+	public void setComment(String comment) {
+		this.comment = comment;
 	}
 
-	public void setAttribute(String attribute) {
-		this.attribute = attribute;
+	public Integer getId() {
+		return id;
 	}
 
-	public void setId(Long id){
+	public void setId(Integer id) {
 		this.id = id;
 	}
 
-	public Long getId(){
-		return this.id;
+	public Integer getUserId() {
+		return userId;
 	}
 
-	public void setUserId(Integer userId){
+	public void setUserId(Integer userId) {
 		this.userId = userId;
 	}
 
-	public Integer getUserId(){
-		return this.userId;
+	public Integer getOrganId() {
+		return organId;
 	}
 
-	public void setTransNo(String transNo){
-		this.transNo = transNo;
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
 	}
 
-	public String getTransNo(){
-		return this.transNo;
+	public GroupType getGroupType() {
+		return groupType;
 	}
 
-	public PlatformCashAccountDetailTypeEnum getType() {
-		return type;
+	public void setGroupType(GroupType groupType) {
+		this.groupType = groupType;
 	}
 
-	public void setType(PlatformCashAccountDetailTypeEnum type) {
-		this.type = type;
-	}
-
-	public DealStatusEnum getStatus() {
-		return status;
+	public String getGroupId() {
+		return groupId;
 	}
 
-	public void setStatus(DealStatusEnum status) {
-		this.status = status;
+	public void setGroupId(String groupId) {
+		this.groupId = groupId;
 	}
 
 	public BigDecimal getAmount() {
@@ -187,88 +137,43 @@ public class SysUserCashAccountLog {
 		this.amount = amount;
 	}
 
-	public BigDecimal getBalance() {
-		return balance;
-	}
-
-	public void setBalance(BigDecimal balance) {
-		this.balance = balance;
-	}
-
-	public void setDescription(String description){
-		this.description = description;
-	}
-
-	public String getDescription(){
-		return this.description;
-	}
-
-	public void setComment(String comment){
-		this.comment = comment;
-	}
-
-	public String getComment(){
-		return this.comment;
+	public ReturnFeeEnum getReturnFeeType() {
+		return returnFeeType;
 	}
 
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
+	public void setReturnFeeType(ReturnFeeEnum returnFeeType) {
+		this.returnFeeType = returnFeeType;
 	}
 
-	public java.util.Date getCreateTime(){
-		return this.createTime;
+	public Date getPayTime() {
+		return payTime;
 	}
 
-	public void setUpdateTime(java.util.Date updateTime){
-		this.updateTime = updateTime;
+	public void setPayTime(Date payTime) {
+		this.payTime = payTime;
 	}
 
-	public java.util.Date getUpdateTime(){
-		return this.updateTime;
+	public String getTransNo() {
+		return transNo;
 	}
 
-	public TransTypeEnum getTransType() {
-		return transType;
-	}
-
-	public void setTransType(TransTypeEnum transType) {
-		this.transType = transType;
-	}
-
-	public String getChannel() {
-		return channel;
-	}
-
-	public void setChannel(String channel) {
-		this.channel = channel;
-	}
-
-	public String getPlatformAccountNo() {
-		return platformAccountNo;
-	}
-
-	public void setPlatformAccountNo(String platformAccountNo) {
-		this.platformAccountNo = platformAccountNo;
-	}
-
-	public BigDecimal getComAmount() {
-		return comAmount;
+	public void setTransNo(String transNo) {
+		this.transNo = transNo;
 	}
 
-	public void setComAmount(BigDecimal comAmount) {
-		this.comAmount = comAmount;
+	public Date getCreateTime() {
+		return createTime;
 	}
 
-	public BigDecimal getPerAmount() {
-		return perAmount;
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
 	}
 
-	public void setPerAmount(BigDecimal perAmount) {
-		this.perAmount = perAmount;
+	public Date getUpdateTime() {
+		return updateTime;
 	}
 
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
 	}
 }

+ 39 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ReturnFeeEnum.java

@@ -0,0 +1,39 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * 退费类型 (VIP vip退课,关闭,PRACTICE 网管课关闭,MUSIC 退团,GOODS 退商品)
+ */
+public enum ReturnFeeEnum implements BaseEnum<String, ReturnFeeEnum> {
+	VIP("VIP", "退学、关闭"),
+	PRACTICE("PRACTICE", "关闭网管课"),
+	MUSIC("MUSIC", "退团"),
+	GOODS("GOODS", "退货");
+
+	private String code;
+
+	private String msg;
+
+	ReturnFeeEnum(String code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	@Override
+	public String getCode() {
+		return this.code;
+	}
+}

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

@@ -183,13 +183,13 @@ public class GroupClassServiceImpl implements GroupClassService {
                     throw new BizException("学员最大可退费金额为{}元", suplusCourseFee.toString());
                 }
                 SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
+                sysUserCashAccountLog.setGroupType(GroupType.PRACTICE);
                 sysUserCashAccountLog.setUserId(practiceGroup.getStudentId());
-                sysUserCashAccountLog.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-                sysUserCashAccountLog.setStatus(DealStatusEnum.SUCCESS);
+                sysUserCashAccountLog.setOrganId(practiceGroup.getOrganId());
+                sysUserCashAccountLog.setGroupId(practiceGroup.getId().toString());
                 sysUserCashAccountLog.setAmount(returnFeeDto.getAmount());
-                sysUserCashAccountLog.setAttribute(practiceGroup.getStudentId().toString());
-                sysUserCashAccountLog.setDescription("后台关闭网管课");
-                sysUserCashAccountLog.setComment(groupId.toString());
+                sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.PRACTICE);
+                sysUserCashAccountLog.setComment("后台关闭网管课");
                 sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
             }
             ActivityUserMapper activityUserMapper = activityUserMapperDao.findVipUserMapper(practiceGroup.getId(),"PRACTICE",null);

+ 11 - 32
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -31,6 +31,7 @@ import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,28 +62,6 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
-import com.ym.mec.biz.dal.enums.GoodsType;
-import com.ym.mec.biz.dal.enums.GradeTypeEnum;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PayStatus;
-import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.dal.enums.PeriodEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.SixPlusGradeEnum;
-import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
-import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.dal.page.MusicMemberQueryInfo;
 import com.ym.mec.biz.event.source.GroupEventSource;
@@ -2422,13 +2401,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
             if (amount.doubleValue() > 0) {
                 SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
+                sysUserCashAccountLog.setGroupType(GroupType.MUSIC);
                 sysUserCashAccountLog.setUserId(userId);
-                sysUserCashAccountLog.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-                sysUserCashAccountLog.setStatus(DealStatusEnum.SUCCESS);
+                sysUserCashAccountLog.setOrganId(musicGroup.getOrganId());
+                sysUserCashAccountLog.setGroupId(musicGroupId);
                 sysUserCashAccountLog.setAmount(amount);
-                sysUserCashAccountLog.setAttribute(userId.toString());
-                sysUserCashAccountLog.setDescription("退出乐团");
-                sysUserCashAccountLog.setComment(musicGroupId);
+                sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.MUSIC);
+                sysUserCashAccountLog.setComment("退出乐团");
                 sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
                 // 增加交易流水
 //                sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
@@ -2745,13 +2724,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         if (amount.doubleValue() > 0) {
             SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
+            sysUserCashAccountLog.setGroupType(GroupType.MUSIC);
             sysUserCashAccountLog.setUserId(userId);
-            sysUserCashAccountLog.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-            sysUserCashAccountLog.setStatus(DealStatusEnum.SUCCESS);
+            sysUserCashAccountLog.setOrganId(musicGroup.getOrganId());
+            sysUserCashAccountLog.setGroupId(musicGroupId);
             sysUserCashAccountLog.setAmount(amount);
-            sysUserCashAccountLog.setAttribute(userId.toString());
-            sysUserCashAccountLog.setDescription("退出乐团");
-            sysUserCashAccountLog.setComment(musicGroupId);
+            sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.MUSIC);
+            sysUserCashAccountLog.setComment("退出乐团");
             sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
             // 增加交易流水
 //            sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",

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

@@ -3110,13 +3110,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		//记录日志
 		SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
 		sysUserCashAccountLog.setUserId(studentId);
-		sysUserCashAccountLog.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-		sysUserCashAccountLog.setStatus(DealStatusEnum.SUCCESS);
+		sysUserCashAccountLog.setGroupType(VIP);
+		sysUserCashAccountLog.setOrganId(vipGroup.getOrganId());
+		sysUserCashAccountLog.setGroupId(vipGroupId.toString());
 		sysUserCashAccountLog.setAmount(amount);
-		sysUserCashAccountLog.setAttribute(studentId.toString());
-		sysUserCashAccountLog.setDescription("VIP退课");
-		sysUserCashAccountLog.setComment(vipGroupId.toString());
-		sysUserCashAccountLog.setGroupId(vipGroupId);
+		sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.VIP);
+		sysUserCashAccountLog.setComment("VIP退课");
 		sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
 
 		classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.QUIT);
@@ -3579,11 +3578,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(status ==StudentApplyRefundsStatus.ING){
 			throw new BizException("状态不正确");
 		}
-
+		VipGroup vipGroup = vipGroupDao.get(id);
 		studentApplyRefunds.setStatus(status);
 		if (studentApplyRefunds.getStatus() == StudentApplyRefundsStatus.DONE) {
 			//退还活动购买
-			VipGroup vipGroup = vipGroupDao.get(id);
+
 			ActivityUserMapper activityUserMapper = activityUserMapperService.findByStudentId(vipGroup.getId(), studentPaymentOrder.getUserId());
 			HttpResponseResult result = groupClassService.quitActivityGive(activityUserMapper,confirmReturnActivityGive,id, VIP);
 			if(result.getCode() != 200){
@@ -3602,14 +3601,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //				SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
 				//记录日志
 				SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
+				sysUserCashAccountLog.setGroupId(vipGroup.getId().toString());
 				sysUserCashAccountLog.setUserId(studentApplyRefunds.getUserId());
-				sysUserCashAccountLog.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-				sysUserCashAccountLog.setStatus(DealStatusEnum.SUCCESS);
+				sysUserCashAccountLog.setGroupType(VIP);
+				sysUserCashAccountLog.setOrganId(vipGroup.getOrganId());
 				sysUserCashAccountLog.setAmount(amount);
-				sysUserCashAccountLog.setAttribute(studentApplyRefunds.getUserId().toString());
-				sysUserCashAccountLog.setDescription("VIP退课审核");
-				sysUserCashAccountLog.setComment(id.toString());
-				sysUserCashAccountLog.setGroupId(id);
+				sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.VIP);
+				sysUserCashAccountLog.setComment("VIP退课审核");
 				sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
 
 				ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.query(studentPaymentOrder.getClassGroupId(),
@@ -3813,14 +3811,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 //			sysUserCashAccountService.updateBalance(userId.intValue(),studentSurplusClassFees.get(userId));
 //			SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId.intValue());
 			SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
-			sysUserCashAccountLog.setUserId(userId.intValue());
-			sysUserCashAccountLog.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
-			sysUserCashAccountLog.setStatus(DealStatusEnum.SUCCESS);
+			sysUserCashAccountLog.setGroupId(vipGroupId.toString());
+			sysUserCashAccountLog.setUserId(userId);
+			sysUserCashAccountLog.setGroupType(VIP);
+			sysUserCashAccountLog.setOrganId(vipGroup.getOrganId());
 			sysUserCashAccountLog.setAmount(studentSurplusClassFees.get(userId));
-			sysUserCashAccountLog.setAttribute(studentPaymentOrder.getOrderNo());
-			sysUserCashAccountLog.setDescription("VIP课关闭");
-			sysUserCashAccountLog.setComment(vipGroupId.toString());
-			sysUserCashAccountLog.setGroupId(vipGroupId);
+			sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.VIP);
+			sysUserCashAccountLog.setComment("VIP课关闭");
 			sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
 		}
 

+ 19 - 68
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountLogMapper.xml

@@ -9,26 +9,18 @@
     <resultMap type="com.ym.mec.biz.dal.entity.SysUserCashAccountLog" id="SysUserCashAccountLog">
         <result column="id_" property="id"/>
         <result column="user_id_" property="userId"/>
-        <result column="phone_" property="phone"/>
         <result column="username_" property="username"/>
-        <result column="subject_name_" property="subjectName"/>
         <result column="trans_no_" property="transNo"/>
-        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="trans_type_" property="transType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="return_fee_type_" property="returnFeeType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="amount_" property="amount"/>
-        <result column="com_amount_" property="comAmount"/>
-        <result column="per_amount_" property="perAmount"/>
-        <result column="balance_" property="balance"/>
-        <result column="description_" property="description"/>
         <result column="comment_" property="comment"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
-        <result column="attribute1_" property="attribute"/>
-        <result column="channel_" property="channel"/>
         <result column="organ_name_" property="organName"/>
-        <result column="platform_account_no_" property="platformAccountNo"/>
         <result column="group_id_" property="groupId"/>
+        <result column="group_name_" property="groupName"/>
+        <result column="pay_time_" property="payTime"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -46,62 +38,27 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysUserCashAccountLog" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-        INSERT INTO sys_user_cash_account_log
-            (user_id_,trans_no_,type_,trans_type_,status_,amount_,com_amount_,
-             per_amount_,balance_,description_,comment_,attribute1_,channel_,platform_account_no_,create_time_,update_time_)
-        VALUES
-        (#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-         #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            #{amount},#{comAmount},#{perAmount},#{balance},#{description},#{comment},#{attribute},#{channel},#{platformAccountNo},NOW(),NOW()
+        INSERT INTO sys_user_cash_account_log (user_id_,organ_id_,trans_no_,return_fee_type_,group_type_,
+                                               group_id_,amount_,comment_,pay_time_,create_time_,update_time_)
+        VALUES(#{userId},#{organId},#{transNo},#{returnFeeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+               #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{groupId},#{amount},
+               #{comment},#{payTime},NOW(),NOW())
     </insert>
 
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.SysUserCashAccountLog">
         UPDATE sys_user_cash_account_log
         <set>
-            <if test="status != null">
-                status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="userId != null">
-                user_id_ = #{userId},
-            </if>
-            <if test="balance != null">
-                balance_ = #{balance},
-            </if>
-            <if test="comment != null">
-                comment_ = #{comment},
-            </if>
-                update_time_ = NOW(),
-            <if test="amount != null">
-                amount_ = #{amount},
-            </if>
-            <if test="comAmount != null">
-                com_amount_ = #{comAmount},
-            </if>
-            <if test="perAmount != null">
-                per_amount_ = #{perAmount},
-            </if>
-            <if test="description != null">
-                description_ = #{description},
-            </if>
-            <if test="transNo != null">
-                trans_no_ = #{transNo},
-            </if>
-            <if test="type != null">
-                type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="transType != null">
-                trans_type_ = #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="attribute != null">
-                attribute1_ = #{attribute},
-            </if>
-            <if test="channel != null">
-                channel_ = #{channel},
-            </if>
-            <if test="platformAccountNo != null">
-                platform_account_no_ = #{platformAccountNo},
-            </if>
+            <if test="userId != null">user_id_ = #{userId},</if>
+            <if test="organId != null">organ_id_ = #{organId},</if>
+            <if test="groupId != null">group_id_ = #{groupId},</if>
+            <if test="comment != null">comment_ = #{comment},</if>
+            <if test="amount != null">amount_ = #{amount},</if>
+            <if test="groupType != null">group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},</if>
+            <if test="transNo != null">trans_no_ = #{transNo},</if>
+            <if test="returnFeeType != null">return_fee_type_ = #{returnFeeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},</if>
+            <if test="payTime != null">pay_time_ = #{payTime},</if>
+            update_time_ = NOW()
         </set>
         WHERE id_ = #{id}
     </update>
@@ -121,9 +78,6 @@
             <if test="search != null and search != ''">
                 AND create_time_ LIKE CONCAT(#{search},'%')
             </if>
-            <if test="channel != null ">
-                AND channel_ NOT IN (#{channel}) OR channel_ IS NULL
-            </if>
         </where>
         ORDER BY id_ DESC
         <include refid="global.limit"/>
@@ -139,9 +93,6 @@
             <if test="search != null and search != ''">
                 AND create_time_ LIKE CONCAT(#{search},'%')
             </if>
-            <if test="channel != null ">
-                AND channel_ NOT IN (#{channel}) OR channel_ IS NULL
-            </if>
         </where>
     </select>
 

+ 72 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SysUserCashAccountLogController.java

@@ -0,0 +1,72 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.page.QueryInfo;
+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.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
+
+import static com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum.FILL_ACCOUNT;
+
+@RequestMapping("userCashAccountLog")
+@Api(tags = "用户账户退费记录")
+@RestController
+public class SysUserCashAccountLogController extends BaseController {
+
+	@Autowired
+	private SysUserCashAccountService sysUserCashAccountService;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation(value = "获取用户账户信息")
+	@GetMapping("/get")
+	@PreAuthorize("@pcs.hasPermissions('userCashAccount/get')")
+	public Object add() {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("请重新登录");
+		}
+		return succeed(sysUserCashAccountService.get(sysUser.getId()));
+	}
+
+	@ApiOperation(value = "分页查询收费类型列表")
+	@GetMapping("/queryPage")
+	@PreAuthorize("@pcs.hasPermissions('userCashAccount/queryPage')")
+	public Object queryPage(QueryInfo queryInfo) {
+		return succeed(sysUserCashAccountService.queryPage(queryInfo));
+	}
+
+	@ApiOperation(value = "将课程余额转入到可用余额")
+	@PostMapping("/transferCourseBalanceToBalance")
+	@PreAuthorize("@pcs.hasPermissions('userCashAccount/transferCourseBalanceToBalance')")
+	public Object transferCourseBalanceToBalance(Integer userId,BigDecimal money) {
+		sysUserCashAccountService.transferCourseBalanceToBalance(userId,money);
+		return succeed();
+	}
+
+	@ApiOperation(value = "更新指定用户的账户课程余额")
+	@PostMapping("/updateCourseBalance")
+	@PreAuthorize("@pcs.hasPermissions('userCashAccount/updateCourseBalance')")
+	public Object updateCourseBalance(Integer userId, BigDecimal decimal, String memo) {
+		sysUserCashAccountService.updateCourseBalance(userId,decimal,FILL_ACCOUNT,decimal, memo);
+		return succeed();
+	}
+
+	@ApiOperation(value = "更新指定用户的账户可用余额")
+	@PostMapping("/updateBalance")
+	@PreAuthorize("@pcs.hasPermissions('userCashAccount/updateBalance')")
+	public Object updateBalance(Integer userId, BigDecimal decimal, String memo) {
+		sysUserCashAccountService.updateBalance(userId,decimal,FILL_ACCOUNT, memo);
+		return succeed();
+	}
+}