소스 검색

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

zouxuan 5 년 전
부모
커밋
3dcf0194fd
18개의 변경된 파일164개의 추가작업 그리고 113개의 파일을 삭제
  1. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  2. 47 36
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  3. 7 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDao.java
  4. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderTypeEnum.java
  5. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java
  6. 1 3
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  7. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountService.java
  8. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java
  9. 27 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  10. 2 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  11. 14 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRechargeServiceImpl.java
  12. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountServiceImpl.java
  13. 8 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  14. 4 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  15. 4 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  16. 4 3
      mec-biz/src/main/resources/config/mybatis/SysUserCashAccountMapper.xml
  17. 0 25
      mec-education/src/main/java/com/ym/mec/education/feign/UserFeign.java
  18. 3 3
      mec-education/src/main/java/com/ym/mec/education/service/impl/SysMessageServiceImpl.java

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -12,6 +12,8 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
+	
+	MusicGroup getLocked(String id);
 
     /**
      * 获取学员所在乐团详情列表

+ 47 - 36
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -1,48 +1,59 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
 
 public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrder> {
 
-    /**
-     * 查询商品列表
-     *
-     * @param musicGroupId
-     * @param type
-     * @return
-     */
-    List<Goods> queryApplyGoodsList(@Param("musicGroupId") Integer musicGroupId, @Param("type") OrderDetailTypeEnum type);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/10/3
-     * 根据学生vip课获取缴费订单
-     */
-    StudentPaymentOrder findByStudentVipGroup(@Param("vipGroupId") Long vipGroupId, @Param("userId") Long userId);
-
-    /**
-     * 查询乐团报名的订单
-     *
-     * @param userId
-     * @param musicGroupId
-     * @param status
-     * @return
-     */
-    StudentPaymentOrder findMusicGroupApplyOrderByStatus(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId, @Param("status") DealStatusEnum status);
-
-    /**
-     * 根据订单号查询订单
-     * @param orderNo
-     * @return
-     */
-    StudentPaymentOrder findOrderByOrderNo(@Param("orderNo") String orderNo);
+	/**
+	 * 查询商品列表
+	 *
+	 * @param musicGroupId
+	 * @param type
+	 * @return
+	 */
+	List<Goods> queryApplyGoodsList(@Param("musicGroupId") String musicGroupId, @Param("type") OrderDetailTypeEnum type);
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/10/3
+	 * 根据学生vip课获取缴费订单
+	 */
+	StudentPaymentOrder findByStudentVipGroup(@Param("vipGroupId") Long vipGroupId, @Param("userId") Long userId);
+
+	/**
+	 * 查询乐团报名的订单
+	 *
+	 * @param userId
+	 * @param musicGroupId
+	 * @param status
+	 * @return
+	 */
+	StudentPaymentOrder findMusicGroupApplyOrderByStatus(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId,
+			@Param("status") DealStatusEnum status);
+
+	/**
+	 * 根据订单号查询订单
+	 * @param orderNo
+	 * @return
+	 */
+	StudentPaymentOrder findOrderByOrderNo(@Param("orderNo") String orderNo);
+
+	/**
+	 * 查询指定交易状态的乐团报名的订单信息
+	 * @param musicGroupId 乐团编号
+	 * @param type 订单类型
+	 * @param status 订单状态
+	 * @return
+	 */
+	List<StudentPaymentOrder> queryByDealStatus(@Param("musicGroupId") String musicGroupId, @Param("type") OrderTypeEnum type,
+			@Param("status") DealStatusEnum status);
 }

+ 7 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDao.java

@@ -2,17 +2,14 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.math.BigDecimal;
 
 public interface SysUserCashAccountDao extends BaseDAO<Integer, SysUserCashAccount> {
+	
+	/**
+	 * 获取行级锁
+	 * @param userId
+	 * @return
+	 */
+	SysUserCashAccount getLocked(Integer userId);
 
-    /**
-     * 账户余额加
-     * @param userId
-     * @param amount
-     * @return
-     */
-    int incrAccount(@Param("userId") Integer userId, @Param("amount") BigDecimal amount);
 }

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

@@ -8,7 +8,7 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum OrderTypeEnum implements BaseEnum<String, OrderTypeEnum> {
 	APPLY("APPLY", "报名"),
 	RENEW("RENEW", "续费"),
-	ELSE("ELSE", "其他"),
+	OTHER("OTHER", "其他"),
 	SMALL_CLASS_TO_BUY("SMALL_CLASS_TO_BUY", "小课购买");
 
 	private String code;

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java

@@ -29,7 +29,7 @@ public interface ContractService {
 	 * @param musicGroupId
 	 * @return
 	 */
-	boolean transferMusicGroupCoursesContract(Integer userId, Integer musicGroupId);
+	boolean transferMusicGroupCoursesContract(Integer userId, String musicGroupId);
 
 	/**
 	 * 查询课程协议
@@ -37,7 +37,7 @@ public interface ContractService {
 	 * @param musicGroupId
 	 * @return
 	 */
-	String queryMusicGroupCoursesContract(Integer userId, Integer musicGroupId);
+	String queryMusicGroupCoursesContract(Integer userId, String musicGroupId);
 
 	/**
 	 * 传递商品协议
@@ -45,7 +45,7 @@ public interface ContractService {
 	 * @param musicGroupId
 	 * @return
 	 */
-	boolean transferGoodsContract(Integer userId, Integer musicGroupId);
+	boolean transferGoodsContract(Integer userId, String musicGroupId);
 
 	/**
 	 * 查询商品协议
@@ -53,5 +53,5 @@ public interface ContractService {
 	 * @param musicGroupId
 	 * @return
 	 */
-	String queryGoodsContract(Integer userId, Integer musicGroupId);
+	String queryGoodsContract(Integer userId, String musicGroupId);
 }

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

@@ -6,9 +6,7 @@ import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.common.service.BaseService;
-import org.apache.ibatis.annotations.Param;
 
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
 
@@ -18,7 +16,7 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
 	 * @param type
 	 * @return
 	 */
-	List<Goods> queryApplyGoodsList(Integer musicGroupId, OrderDetailTypeEnum type);
+	List<Goods> queryApplyGoodsList(String musicGroupId, OrderDetailTypeEnum type);
 
 	/**
 	 * 查询报名缴费订单

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

@@ -1,8 +1,17 @@
 package com.ym.mec.biz.service;
 
+import java.math.BigDecimal;
+
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.common.service.BaseService;
 
 public interface SysUserCashAccountService extends BaseService<Integer, SysUserCashAccount> {
 
+	/**
+	 * 更新指定用户的账户余额
+	 * @param userId 用户编号
+	 * @param decimal 交易金额(支持负数)
+	 * @return
+	 */
+	boolean updateBalance(Integer userId, BigDecimal decimal);
 }

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

@@ -179,7 +179,7 @@ public class ContractServiceImpl implements ContractService {
 	}
 
 	@Override
-	public boolean transferMusicGroupCoursesContract(Integer userId, Integer musicGroupId) {
+	public boolean transferMusicGroupCoursesContract(Integer userId, String musicGroupId) {
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
 
 		if (sysUserTsign == null) {
@@ -233,7 +233,7 @@ public class ContractServiceImpl implements ContractService {
 	}
 
 	@Override
-	public String queryMusicGroupCoursesContract(Integer userId, Integer musicGroupId) {
+	public String queryMusicGroupCoursesContract(Integer userId, String musicGroupId) {
 
 		// 合成freemarker
 		String srcPdfPath = contractBaseDir + "/courses/" + userId + ".pdf";
@@ -264,7 +264,7 @@ public class ContractServiceImpl implements ContractService {
 	}
 
 	@Override
-	public boolean transferGoodsContract(Integer userId, Integer musicGroupId) {
+	public boolean transferGoodsContract(Integer userId, String musicGroupId) {
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
 
 		if (sysUserTsign == null) {
@@ -325,7 +325,7 @@ public class ContractServiceImpl implements ContractService {
 	}
 
 	@Override
-	public String queryGoodsContract(Integer userId, Integer musicGroupId) {
+	public String queryGoodsContract(Integer userId, String musicGroupId) {
 
 		// 合成freemarker
 		String srcPdfPath = contractBaseDir + "/goods/" + userId + ".pdf";

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

@@ -20,6 +20,7 @@ import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
@@ -29,10 +30,14 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -63,7 +68,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	
 	@Autowired
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
-
+	
+	@Autowired
+	private StudentPaymentOrderDao studentPaymentOrderDao;
+	
+	@Autowired
+	private SysUserCashAccountService sysUserCashAccountService;
+	
 	@Override
 	public BaseDAO<String, MusicGroup> getDAO() {
 		return musicGroupDao;
@@ -146,7 +157,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public boolean cancelMusicGroup(String musicGroupId) {
-		MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
+		MusicGroup musicGroup = musicGroupDao.getLocked(musicGroupId);
 		if (musicGroup == null) {
 			throw new BizException("乐团找不到");
 		}
@@ -158,9 +169,22 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		} else {
 			throw new BizException("乐团当前状态是{},不能取消", musicGroup.getStatus().getMsg());
 		}
+		
+		//查询是否有中间状态的缴费信息
+		List<StudentPaymentOrder> studentPaymentOrders = studentPaymentOrderDao.queryByDealStatus(musicGroupId, OrderTypeEnum.APPLY, DealStatusEnum.ING);
+		
+		if(studentPaymentOrders != null && studentPaymentOrders.size()>0){
+			throw new BizException("缴费存在交易中的数据,不能取消乐团");
+		}
+		
+		//查询已缴费信息
+		studentPaymentOrders = studentPaymentOrderDao.queryByDealStatus(musicGroupId, OrderTypeEnum.APPLY, DealStatusEnum.SUCCESS);
 
 		// 退费
-
+		for(StudentPaymentOrder order : studentPaymentOrders){
+			sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount());
+		}
+		
 		return true;
 	}
 

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

@@ -2,14 +2,13 @@ package com.ym.mec.biz.service.impl;
 
 import java.util.List;
 
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -27,7 +26,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
-    public List<Goods> queryApplyGoodsList(Integer musicGroupId, OrderDetailTypeEnum type) {
+    public List<Goods> queryApplyGoodsList(String musicGroupId, OrderDetailTypeEnum type) {
         return studentPaymentOrderDao.queryApplyGoodsList(musicGroupId, type);
     }
 

+ 14 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRechargeServiceImpl.java

@@ -1,24 +1,24 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
+import java.util.Date;
+
+import javax.annotation.Resource;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.StudentRechargeDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
 import com.ym.mec.biz.dal.dto.RechargeDto;
 import com.ym.mec.biz.dal.entity.StudentRecharge;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.service.StudentRechargeService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
-import javax.annotation.Resource;
-import java.util.Date;
-
 @Service
 public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentRecharge>  implements StudentRechargeService {
 	
@@ -26,9 +26,9 @@ public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentR
 	private StudentRechargeDao studentRechargeDao;
     @Autowired
     private StudentRegistrationDao studentRegistrationDao;
-
-	@Resource
-	private SysUserCashAccountDao sysUserCashAccountDao;
+	
+	@Autowired
+	private SysUserCashAccountService sysUserCashAccountService;
 
 	@Resource
 	private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
@@ -40,17 +40,17 @@ public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentR
 	@Override
 	public Boolean recharge(RechargeDto rechargeDto) {
 
-		//TODO 调用第三方支付
+		//TODO 锟斤拷锟矫碉拷锟斤拷锟斤拷支锟斤拷
 		Date now  = new Date();
 
-		//充值记
+		//锟斤拷值锟斤拷
         StudentRecharge studentRecharge = new StudentRecharge();
         studentRecharge.setAmount(rechargeDto.getRechargeAmount());
 		studentRecharge.setCreateTime(now);
 		studentRecharge.setUserId(rechargeDto.getUserId().longValue());
 		studentRecharge.setTransNo(null);
 		studentRechargeDao.insert(studentRecharge);
-		//账户资金流
+		//锟剿伙拷锟绞斤拷锟斤拷
 		SysUserCashAccountDetail cashAccount = new SysUserCashAccountDetail();
 		cashAccount.setAmount(rechargeDto.getRechargeAmount());
 		cashAccount.setBalance(null);
@@ -60,8 +60,8 @@ public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentR
 		cashAccount.setCreateTime(now);
 		sysUserCashAccountDetailDao.insert(cashAccount);
 
-		//扣减账户
-		sysUserCashAccountDao.incrAccount(rechargeDto.getUserId(),rechargeDto.getRechargeAmount());
+		//锟桔硷拷锟剿伙拷
+		sysUserCashAccountService.updateBalance(rechargeDto.getUserId(),rechargeDto.getRechargeAmount());
 
 		return true;
 	}

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountServiceImpl.java

@@ -1,12 +1,18 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
 @Service
@@ -20,4 +26,21 @@ public class SysUserCashAccountServiceImpl extends BaseServiceImpl<Integer, SysU
 		return sysUserCashAccountDao;
 	}
 
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean updateBalance(Integer userId, BigDecimal decimal) {
+		
+		SysUserCashAccount cashAccount = sysUserCashAccountDao.getLocked(userId);
+		if(cashAccount == null){
+			throw new BizException("用户[{}]现金账户不存在",userId);
+		}
+		
+		cashAccount.setBalance(cashAccount.getBalance().add(decimal));
+		cashAccount.setUpdateTime(new Date());
+		
+		sysUserCashAccountDao.update(cashAccount);
+		
+		return true;
+	}
+
 }

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

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
@@ -21,6 +22,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
+
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -59,8 +61,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     private StudentVipGroupPaymentDao studentVipGroupPaymentDao;
     @Autowired
 	private StudentApplyRefundsDao studentApplyRefundsDao;
-    @Autowired
-	private SysUserCashAccountDao sysUserCashAccountDao;
+	
+	@Autowired
+	private SysUserCashAccountService sysUserCashAccountService;
+
     @Autowired
 	private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
     @Autowired
@@ -578,8 +582,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentApplyRefundsDao.update(oldStudentApplyRefunds);
 		switch (studentApplyRefunds.getStatus()){
 			case PASS:
-				sysUserCashAccountDao.incrAccount(oldStudentApplyRefunds.getUserId(),oldStudentApplyRefunds.getActualAmount());
-				SysUserCashAccount sysUserCashAccount = sysUserCashAccountDao.get(studentApplyRefunds.getId().intValue());
+				sysUserCashAccountService.updateBalance(oldStudentApplyRefunds.getUserId(),oldStudentApplyRefunds.getActualAmount());
+				SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getId().intValue());
 				SysUserCashAccountDetail sysUserCashAccountDetail=new SysUserCashAccountDetail();
 				sysUserCashAccountDetail.setUserId(studentApplyRefunds.getUserId());
 				sysUserCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -33,6 +33,10 @@
 		SELECT * FROM
 		music_group WHERE id_ = #{id}
 	</select>
+	
+	<select id="getLocked" resultMap="MusicGroup">
+		SELECT * FROM music_group WHERE id_ = #{id} for update
+	</select>
 
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MusicGroup">

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

@@ -159,4 +159,8 @@
     <select id="findOrderByOrderNo" resultMap="StudentPaymentOrder">
         SELECT * FROM student_payment_order WHERE order_no_ = #{orderNo}
     </select>
+    
+    <select id="queryByDealStatus" resultMap="StudentPaymentOrder" parameterType="map">
+        SELECT * FROM student_payment_order WHERE music_group_id_= #{musicGroupId} AND user_id_=#{userId} AND type_ = #{type} AND status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+    </select>
 </mapper>

+ 4 - 3
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountMapper.xml

@@ -21,6 +21,10 @@
     <select id="get" resultMap="SysUserCashAccount">
 		SELECT * FROM sys_user_cash_account WHERE user_id_ = #{userId} 
 	</select>
+	
+    <select id="getLocked" resultMap="SysUserCashAccount">
+		SELECT * FROM sys_user_cash_account WHERE user_id_ = #{userId} for update
+	</select>
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="SysUserCashAccount">
@@ -85,7 +89,4 @@
 		SELECT COUNT(*) FROM sys_user_cash_account
 	</select>
 
-    <update id="incrAccount">
-        update sys_user_cash_account set balance_ = balance_ + #{amount} where  user_id_ = #{userId}
-    </update>
 </mapper>

+ 0 - 25
mec-education/src/main/java/com/ym/mec/education/feign/UserFeign.java

@@ -1,25 +0,0 @@
-package com.ym.mec.education.feign;
-
-import com.ym.mec.auth.api.entity.SysUser;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.GetMapping;
-
-/**
- * @program: mec
- * @description: 用户信息rpc
- * @author: xw
- * @create: 2019-10-10 18:53
- */
-@FeignClient(value = "auth-server", fallback = Exception.class)
-@Component
-public interface UserFeign {
-
-    /**
-     * 获取当前登录人信息
-     *
-     * @return
-     */
-    @GetMapping(value = "user/queryUserInfo")
-    SysUser getCurrentUser();
-}

+ 3 - 3
mec-education/src/main/java/com/ym/mec/education/service/impl/SysMessageServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.education.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.education.base.BaseResponse;
@@ -10,7 +11,6 @@ import com.ym.mec.education.entity.Teacher;
 import com.ym.mec.education.entity.TeacherAttendance;
 import com.ym.mec.education.enums.JobTypeEnum;
 import com.ym.mec.education.enums.SignStatusEnum;
-import com.ym.mec.education.feign.UserFeign;
 import com.ym.mec.education.mapper.SysMessageMapper;
 import com.ym.mec.education.resp.MessageResp;
 import com.ym.mec.education.service.ISysMessageService;
@@ -37,7 +37,7 @@ import java.util.Optional;
 public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMessage> implements ISysMessageService {
 
     @Autowired
-    private UserFeign userFeign;
+    private SysUserFeignService userFeign;
     @Autowired
     private IQueryService taskQueryService;
     @Autowired
@@ -47,7 +47,7 @@ public class SysMessageServiceImpl extends ServiceImpl<SysMessageMapper, SysMess
 
     @Override
     public BaseResponse getInfo() {
-        SysUser currentUser = userFeign.getCurrentUser();
+        SysUser currentUser = userFeign.queryUserInfo();
         if (Objects.isNull(currentUser)) {
             return BaseResponse.noDataExists();
         }