Kaynağa Gözat

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 yıl önce
ebeveyn
işleme
99a15d03a7

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCoursesAccountDetailDao.java

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface SysUserCoursesAccountDetailDao extends BaseDAO<Long, SysUserCoursesAccountDetail> {
+
+	
+}

+ 183 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserCoursesAccountDetail.java

@@ -0,0 +1,183 @@
+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 org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(sys_user_courses_account_detail):
+ */
+public class SysUserCoursesAccountDetail {
+
+	/** 序号 */
+	private Long id;
+	
+	/** 用户编号 */
+	private Integer userId;
+	
+	/** 交易流水号 */
+	private String transNo;
+	
+	/** 交易类型 (RECHARGE 充值,PAY_FEE 缴费,FILL_ACCOUNT 人工补账) */
+	private PlatformCashAccountDetailTypeEnum type;
+	
+	/** 交易方式1.微信,2支付宝,3快捷 */
+	private TransTypeEnum transType;
+	
+	/** 交易状态(1,交易中;2,成功交易;-1,交易失败;) */
+	private DealStatusEnum status;
+	
+	/** 交易金额 */
+	private java.math.BigDecimal amount;
+	
+	/** 账户可用余额 */
+	private java.math.BigDecimal balance;
+	
+	/** 描述 */
+	private String description;
+	
+	/** 后台备注 */
+	private String comment;
+	
+	/** 创建时间 */
+	private java.util.Date createTime;
+	
+	/** 修改时间 */
+	private java.util.Date updateTime;
+	
+	/** 关联流水ID */
+	private String attribute1;
+	
+	/** 支付渠道 */
+	private String channel;
+	
+	/** 平台账户号 */
+	private String platformAccountNo;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setTransNo(String transNo){
+		this.transNo = transNo;
+	}
+	
+	public String getTransNo(){
+		return this.transNo;
+	}
+
+	public PlatformCashAccountDetailTypeEnum getType() {
+		return type;
+	}
+
+	public void setType(PlatformCashAccountDetailTypeEnum type) {
+		this.type = type;
+	}
+
+	public TransTypeEnum getTransType() {
+		return transType;
+	}
+
+	public void setTransType(TransTypeEnum transType) {
+		this.transType = transType;
+	}
+
+	public DealStatusEnum getStatus() {
+		return status;
+	}
+
+	public void setStatus(DealStatusEnum status) {
+		this.status = status;
+	}
+
+	public void setAmount(java.math.BigDecimal amount){
+		this.amount = amount;
+	}
+	
+	public java.math.BigDecimal getAmount(){
+		return this.amount;
+	}
+			
+	public void setBalance(java.math.BigDecimal balance){
+		this.balance = balance;
+	}
+	
+	public java.math.BigDecimal getBalance(){
+		return this.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 void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	public void setAttribute1(String attribute1){
+		this.attribute1 = attribute1;
+	}
+	
+	public String getAttribute1(){
+		return this.attribute1;
+	}
+			
+	public void setChannel(String channel){
+		this.channel = channel;
+	}
+	
+	public String getChannel(){
+		return this.channel;
+	}
+			
+	public void setPlatformAccountNo(String platformAccountNo){
+		this.platformAccountNo = platformAccountNo;
+	}
+	
+	public String getPlatformAccountNo(){
+		return this.platformAccountNo;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

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

@@ -32,7 +32,7 @@ public interface SysUserCashAccountService extends BaseService<Integer, SysUserC
 	 * @param decimal 交易金额(支持负数)
 	 * @return
 	 */
-	boolean updateCourseBalance(Integer userId, BigDecimal decimal);
+	boolean updateCourseBalance(Integer userId, BigDecimal decimal, BigDecimal amount, String description);
 
 	/**
 	 * 更新指定用户的账户课程余额
@@ -40,7 +40,7 @@ public interface SysUserCashAccountService extends BaseService<Integer, SysUserC
 	 * @param decimal 交易金额(支持负数)
 	 * @return
 	 */
-	boolean appendCourseBalance(Integer userId, BigDecimal decimal);
+	boolean appendCourseBalance(Integer userId, BigDecimal decimal, String description);
 
 	/**
 	 * 将课程余额转入到可用余额

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

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail;
+import com.ym.mec.common.service.BaseService;
+
+public interface SysUserCoursesAccountDetailService extends BaseService<Long, SysUserCoursesAccountDetail> {
+
+}

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

@@ -195,7 +195,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 						if(Objects.isNull(courseScheduleStudentPayment.getExpectPrice())){
 							courseScheduleStudentPayment.setExpectPrice(zeroPrice);
 						}
-						sysUserCashAccountService.appendCourseBalance(classGroupStudent.getUserId(), courseScheduleStudentPayment.getExpectPrice().negate());
+						sysUserCashAccountService.appendCourseBalance(classGroupStudent.getUserId(), courseScheduleStudentPayment.getExpectPrice().negate(),"学生加课扣除课程余额");
 						courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 					}else{
 						CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(

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

@@ -3356,6 +3356,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if(practiceGroup.getGroupStatus().equals(GroupStatusEnum.LOCK)){
             groupService.deleteGroupOtherInfo(groupId.toString(),GroupType.PRACTICE);
             practiceGroup.setGroupStatus(GroupStatusEnum.CANCEL);
+            practiceGroup.setMemo("用户手动取消");
             practiceGroupDao.update(practiceGroup);
         }else if(practiceGroup.getGroupStatus().equals(GroupStatusEnum.NORMAL)){
             return BaseController.failed(HttpStatus.CREATED, "该订单已经支付成功");

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

@@ -2,8 +2,14 @@ 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.entity.*;
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
@@ -18,7 +24,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
-import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -71,7 +76,7 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
         if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
             //活动,增加课程余额
             if (info.getChargeType().getCode() == 6 || info.getChargeType().getCode() == 8) {
-                sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getActualAmount());
+                sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getActualAmount(), "活动");
             }
 
             //插入交易明细
@@ -175,4 +180,4 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
     public SporadicChargeInfo findByOrganIdAndType(Integer organId, Integer type) {
         return sporadicChargeInfoDao.findByOrganIdAndType(organId, type);
     }
-}
+}

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

@@ -4,8 +4,10 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
+import com.ym.mec.biz.dal.dao.SysUserCoursesAccountDetailDao;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
@@ -18,6 +20,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -38,6 +41,8 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 
 	@Autowired
 	private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
+	@Autowired
+	private SysUserCoursesAccountDetailDao sysUserCoursesAccountDetailDao;
 
 	@Override
 	public BaseDAO<Integer, SysUserCashAccount> getDAO() {
@@ -119,7 +124,8 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 	}
 
 	@Override
-	public boolean updateCourseBalance(Integer userId, BigDecimal decimal) {
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	public boolean updateCourseBalance(Integer userId, BigDecimal decimal, BigDecimal amount, String description) {
 		SysUserCashAccount cashAccount = sysUserCashAccountDao.getLocked(userId);
 		if (cashAccount == null) {
 			throw new BizException("用户[{}]现金账户不存在", userId);
@@ -130,11 +136,23 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 
 		sysUserCashAccountDao.update(cashAccount);
 
+		if(amount.compareTo(BigDecimal.ZERO)!=0){
+			SysUser sysUser = sysUserFeignService.queryUserById(userId);
+			SysUserCoursesAccountDetail sysUserCoursesAccountDetail=new SysUserCoursesAccountDetail();
+			sysUserCoursesAccountDetail.setUserId(userId);
+			sysUserCoursesAccountDetail.setAmount(amount);
+			sysUserCoursesAccountDetail.setBalance(decimal);
+			sysUserCoursesAccountDetail.setDescription(description+"-"+sysUser.getId());
+			sysUserCoursesAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+			sysUserCoursesAccountDetailDao.insert(sysUserCoursesAccountDetail);
+		}
+
 		return true;
 	}
 
 	@Override
-	public boolean appendCourseBalance(Integer userId, BigDecimal decimal) {
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	public boolean appendCourseBalance(Integer userId, BigDecimal decimal, String description) {
 		SysUserCashAccount cashAccount = sysUserCashAccountDao.getLocked(userId);
 		if (cashAccount == null) {
 			throw new BizException("用户[{}]现金账户不存在", userId);
@@ -151,6 +169,17 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 
 		sysUserCashAccountDao.update(cashAccount);
 
+		if(decimal.compareTo(BigDecimal.ZERO)!=0){
+			SysUser sysUser = sysUserFeignService.queryUserById(userId);
+			SysUserCoursesAccountDetail sysUserCoursesAccountDetail=new SysUserCoursesAccountDetail();
+			sysUserCoursesAccountDetail.setUserId(userId);
+			sysUserCoursesAccountDetail.setAmount(decimal);
+			sysUserCoursesAccountDetail.setBalance(balance);
+			sysUserCoursesAccountDetail.setDescription(description+"-"+sysUser.getId());
+			sysUserCoursesAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+			sysUserCoursesAccountDetailDao.insert(sysUserCoursesAccountDetail);
+		}
+
 		return true;
 	}
 
@@ -185,6 +214,17 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 		cashAccount.setUpdateTime(date);
 
 		sysUserCashAccountDao.update(cashAccount);
+
+		if(cashAccount.getCourseBalance().compareTo(BigDecimal.ZERO)!=0){
+			SysUserCoursesAccountDetail sysUserCoursesAccountDetail=new SysUserCoursesAccountDetail();
+			sysUserCoursesAccountDetail.setUserId(userId);
+			sysUserCoursesAccountDetail.setAmount(cashAccount.getCourseBalance());
+			sysUserCoursesAccountDetail.setBalance(new BigDecimal(0));
+			sysUserCoursesAccountDetail.setDescription("课程余额转账");
+			sysUserCoursesAccountDetail.setStatus(DealStatusEnum.SUCCESS);
+			sysUserCoursesAccountDetailDao.insert(sysUserCoursesAccountDetail);
+		}
+
 		return true;
 	}
 

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCoursesAccountDetailServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.SysUserCoursesAccountDetailDao;
+import com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail;
+import com.ym.mec.biz.service.SysUserCoursesAccountDetailService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysUserCoursesAccountDetailServiceImpl extends BaseServiceImpl<Long, SysUserCoursesAccountDetail> implements SysUserCoursesAccountDetailService {
+	
+	@Autowired
+	private SysUserCoursesAccountDetailDao sysUserCoursesAccountDetailDao;
+
+	@Override
+	public BaseDAO<Long, SysUserCoursesAccountDetail> getDAO() {
+		return sysUserCoursesAccountDetailDao;
+	}
+	
+}

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

@@ -1559,7 +1559,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
         studentPauseInfoDao.insert(studentPauseInfo);
 
-        sysUserCashAccountService.appendCourseBalance(studentId, surplusCourseFee);
+        sysUserCashAccountService.appendCourseBalance(studentId, surplusCourseFee,"学生休学剩余课时转化为课程余额");
 		classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.QUIT_SCHOOL);
 		classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
 
@@ -1705,7 +1705,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(!CollectionUtils.isEmpty(courseScheduleStudentPaymentList)){
 			courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPaymentList);
 		}
-		sysUserCashAccountService.appendCourseBalance(studentRecoverInfo.getUserId(), surplusCourseFee.negate());
+		sysUserCashAccountService.appendCourseBalance(studentRecoverInfo.getUserId(), surplusCourseFee.negate(), "学生复学扣除课程余额");
 		studentPauseInfo.setDelFlag(1);
 		studentPauseInfoDao.update(studentPauseInfo);
         vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
@@ -2322,7 +2322,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				courseScheduleStudentPayment.setUpdateTime(now);
 				courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 			}
-			sysUserCashAccountService.updateCourseBalance(classGroupStudent.getUserId(),sysUserCashAccount.getCourseBalance().subtract(surplusCourseTotalPrice));
+			sysUserCashAccountService.updateCourseBalance(classGroupStudent.getUserId(),sysUserCashAccount.getCourseBalance().subtract(surplusCourseTotalPrice),surplusCourseTotalPrice.negate(),"后台加课扣除课程余额");
+
 			courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 			imGroupMemberList.add(new ImGroupMember(classGroupStudent.getUserId().toString()));
 		}
@@ -2540,7 +2541,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 			courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 
-			sysUserCashAccountService.updateCourseBalance(studentId,sysUserCashAccount.getCourseBalance().subtract(surplusCoursesPrice));
+			sysUserCashAccountService.updateCourseBalance(studentId,sysUserCashAccount.getCourseBalance().subtract(surplusCoursesPrice), surplusCoursesPrice.negate(), "后台添加学员扣除课程余额");
 
 			//创建班级学生关联记录
 			ClassGroupStudentMapper classGroupStudentMapper;

+ 110 - 0
mec-biz/src/main/resources/config/mybatis/SysUserCoursesAccountDetailMapper.xml

@@ -0,0 +1,110 @@
+<?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.SysUserCoursesAccountDetailDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail" id="SysUserCoursesAccountDetail">
+		<result column="id_" property="id" />
+		<result column="user_id_" property="userId" />
+		<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="amount_" property="amount" />
+		<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="attribute1" />
+		<result column="channel_" property="channel" />
+		<result column="platform_account_no_" property="platformAccountNo" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="SysUserCoursesAccountDetail" >
+		SELECT * FROM sys_user_courses_account_detail WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="SysUserCoursesAccountDetail">
+		SELECT * FROM sys_user_courses_account_detail ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO sys_user_courses_account_detail (id_,user_id_,trans_no_,type_,trans_type_,status_,amount_,balance_,description_,comment_,attribute1_,channel_,platform_account_no_,create_time_,update_time_)
+		VALUES(#{id},#{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},#{balance},#{description},#{comment},#{attribute1},#{channel},#{platformAccountNo},NOW(),NOW())
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.SysUserCoursesAccountDetail">
+		UPDATE sys_user_courses_account_detail
+		<set>
+			<if test="status != null">
+				status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="id != null">
+				id_ = #{id},
+			</if>
+			<if test="balance != null">
+				balance_ = #{balance},
+			</if>
+			<if test="transType != null">
+				trans_type_ = #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="amount != null">
+				amount_ = #{amount},
+			</if>
+			<if test="attribute1 != null">
+				attribute1_ = #{attribute1},
+			</if>
+			<if test="platformAccountNo != null">
+				platform_account_no_ = #{platformAccountNo},
+			</if>
+			<if test="userId != null">
+				user_id_ = #{userId},
+			</if>
+			<if test="comment != null">
+				comment_ = #{comment},
+			</if>
+			<if test="channel != null">
+				channel_ = #{channel},
+			</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>
+			update_time_ = NOW()
+		</set>
+		WHERE id_ = #{id}
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM sys_user_courses_account_detail WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="SysUserCoursesAccountDetail" parameterType="map">
+		SELECT * FROM sys_user_courses_account_detail ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM sys_user_courses_account_detail
+	</select>
+</mapper>

+ 5 - 1
mec-web/src/main/java/com/ym/mec/web/controller/SysUserCashAccountController.java

@@ -56,7 +56,11 @@ public class SysUserCashAccountController extends BaseController {
 	@PostMapping("/updateCourseBalance")
 	@PreAuthorize("@pcs.hasPermissions('userCashAccount/updateCourseBalance')")
 	public Object updateCourseBalance(Integer userId, BigDecimal decimal) {
-		sysUserCashAccountService.updateCourseBalance(userId,decimal);
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("请重新登录");
+		}
+		sysUserCashAccountService.updateCourseBalance(userId,decimal,decimal,"后台更新课程余额");
 		return succeed();
 	}
 }