|
@@ -30,145 +30,143 @@ import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
-public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicChargeInfo> implements SporadicChargeInfoService {
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private SporadicChargeInfoDao sporadicChargeInfoDao;
|
|
|
- @Autowired
|
|
|
- private StudentPaymentOrderDao studentPaymentOrderDao;
|
|
|
- @Autowired
|
|
|
- private SysUserFeignService sysUserFeignService;
|
|
|
- @Autowired
|
|
|
- private SysMessageService sysMessageService;
|
|
|
- @Autowired
|
|
|
- private OrganizationDao organizationDao;
|
|
|
- @Autowired
|
|
|
- private TeacherDao teacherDao;
|
|
|
- @Autowired
|
|
|
- private SysUserCashAccountService sysUserCashAccountService;
|
|
|
- @Autowired
|
|
|
- private SysUserCashAccountDetailService sysUserCashAccountDetailService;
|
|
|
+public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicChargeInfo> implements SporadicChargeInfoService {
|
|
|
|
|
|
- @Override
|
|
|
- public BaseDAO<Integer, SporadicChargeInfo> getDAO() {
|
|
|
- return sporadicChargeInfoDao;
|
|
|
- }
|
|
|
+ @Autowired
|
|
|
+ private SporadicChargeInfoDao sporadicChargeInfoDao;
|
|
|
+ @Autowired
|
|
|
+ private StudentPaymentOrderDao studentPaymentOrderDao;
|
|
|
+ @Autowired
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
+ @Autowired
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
+ @Autowired
|
|
|
+ private OrganizationDao organizationDao;
|
|
|
+ @Autowired
|
|
|
+ private TeacherDao teacherDao;
|
|
|
+ @Autowired
|
|
|
+ private SysUserCashAccountService sysUserCashAccountService;
|
|
|
+ @Autowired
|
|
|
+ private SysUserCashAccountDetailService sysUserCashAccountDetailService;
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
- public Boolean renewForCallback(StudentPaymentOrder studentPaymentOrder) {
|
|
|
- int updateCount = studentPaymentOrderDao.update(studentPaymentOrder);
|
|
|
- if(updateCount <= 0){
|
|
|
- throw new BizException("订单更新失败");
|
|
|
- }
|
|
|
- Integer userId = studentPaymentOrder.getUserId();
|
|
|
- SysUser sysUser = sysUserFeignService.queryUserById(userId);
|
|
|
- SporadicChargeInfo info = sporadicChargeInfoDao.get(Integer.parseInt(studentPaymentOrder.getMusicGroupId()));
|
|
|
- Map<Integer,String> map = new HashMap();
|
|
|
- map.put(userId,sysUser.getPhone());
|
|
|
- Map<Integer,String> yimei = new HashMap();
|
|
|
- map.put(userId,userId.toString());
|
|
|
- if(studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS){
|
|
|
- //活动,增加课程余额
|
|
|
- if(info.getChargeType().equals("6")){
|
|
|
- sysUserCashAccountService.appendCourseBalance(userId,studentPaymentOrder.getActualAmount());
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public BaseDAO<Integer, SporadicChargeInfo> getDAO() {
|
|
|
+ return sporadicChargeInfoDao;
|
|
|
+ }
|
|
|
|
|
|
- //插入交易明细
|
|
|
- BigDecimal amount = studentPaymentOrder.getActualAmount();
|
|
|
- if (amount != null && amount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- Date nowDate = new Date();
|
|
|
- SysUserCashAccount cashAccount = sysUserCashAccountService.get(userId);
|
|
|
- //充值
|
|
|
- SysUserCashAccountDetail rechargeDetail = new SysUserCashAccountDetail();
|
|
|
- rechargeDetail.setAmount(amount);
|
|
|
- rechargeDetail.setBalance(cashAccount.getBalance().add(amount));
|
|
|
- rechargeDetail.setComment("缴费前充值");
|
|
|
- rechargeDetail.setCreateTime(nowDate);
|
|
|
- rechargeDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
- rechargeDetail.setTransNo(studentPaymentOrder.getTransNo());
|
|
|
- rechargeDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
|
|
|
- rechargeDetail.setUpdateTime(nowDate);
|
|
|
- rechargeDetail.setUserId(userId);
|
|
|
- rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
|
|
|
- rechargeDetail.setComAmount(studentPaymentOrder.getComAmount());
|
|
|
- rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount());
|
|
|
- sysUserCashAccountDetailService.insert(rechargeDetail);
|
|
|
+ @Override
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
+ public Boolean renewForCallback(StudentPaymentOrder studentPaymentOrder) {
|
|
|
+ int updateCount = studentPaymentOrderDao.update(studentPaymentOrder);
|
|
|
+ if (updateCount <= 0) {
|
|
|
+ throw new BizException("订单更新失败");
|
|
|
+ }
|
|
|
+ Integer userId = studentPaymentOrder.getUserId();
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserById(userId);
|
|
|
+ SporadicChargeInfo info = sporadicChargeInfoDao.get(Integer.parseInt(studentPaymentOrder.getMusicGroupId()));
|
|
|
+ Map<Integer, String> map = new HashMap();
|
|
|
+ map.put(userId, sysUser.getPhone());
|
|
|
+ Map<Integer, String> yimei = new HashMap();
|
|
|
+ map.put(userId, userId.toString());
|
|
|
+ if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
+ //活动,增加课程余额
|
|
|
+ if (info.getChargeType().equals("6")) {
|
|
|
+ sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getActualAmount());
|
|
|
+ }
|
|
|
|
|
|
- //缴费
|
|
|
- SysUserCashAccountDetail paymentDetail = new SysUserCashAccountDetail();
|
|
|
- paymentDetail.setAmount(amount.negate());
|
|
|
- paymentDetail.setBalance(cashAccount.getBalance());
|
|
|
- paymentDetail.setComment(info.getTitle());
|
|
|
- paymentDetail.setCreateTime(nowDate);
|
|
|
- paymentDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
- paymentDetail.setTransNo(studentPaymentOrder.getTransNo());
|
|
|
- paymentDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
|
|
|
- paymentDetail.setUpdateTime(nowDate);
|
|
|
- paymentDetail.setUserId(userId);
|
|
|
- rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
|
|
|
- if (studentPaymentOrder.getComAmount() != null) {
|
|
|
- rechargeDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
|
|
|
- rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
|
|
|
- }
|
|
|
+ //插入交易明细
|
|
|
+ BigDecimal amount = studentPaymentOrder.getActualAmount();
|
|
|
+ Date nowDate = new Date();
|
|
|
+ SysUserCashAccount cashAccount = sysUserCashAccountService.get(userId);
|
|
|
+ //充值
|
|
|
+ SysUserCashAccountDetail rechargeDetail = new SysUserCashAccountDetail();
|
|
|
+ rechargeDetail.setAmount(amount);
|
|
|
+ rechargeDetail.setBalance(cashAccount.getBalance().add(amount));
|
|
|
+ rechargeDetail.setComment("缴费前充值");
|
|
|
+ rechargeDetail.setCreateTime(nowDate);
|
|
|
+ rechargeDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ rechargeDetail.setTransNo(studentPaymentOrder.getTransNo());
|
|
|
+ rechargeDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
|
|
|
+ rechargeDetail.setUpdateTime(nowDate);
|
|
|
+ rechargeDetail.setUserId(userId);
|
|
|
+ rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
|
|
|
+ rechargeDetail.setComAmount(studentPaymentOrder.getComAmount());
|
|
|
+ rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount());
|
|
|
+ sysUserCashAccountDetailService.insert(rechargeDetail);
|
|
|
|
|
|
- sysUserCashAccountDetailService.insert(paymentDetail);
|
|
|
- }
|
|
|
+ //缴费
|
|
|
+ SysUserCashAccountDetail paymentDetail = new SysUserCashAccountDetail();
|
|
|
+ paymentDetail.setAmount(amount.negate());
|
|
|
+ paymentDetail.setBalance(cashAccount.getBalance());
|
|
|
+ paymentDetail.setComment(info.getTitle());
|
|
|
+ paymentDetail.setCreateTime(nowDate);
|
|
|
+ paymentDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ paymentDetail.setTransNo(studentPaymentOrder.getTransNo());
|
|
|
+ paymentDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
|
|
|
+ paymentDetail.setUpdateTime(nowDate);
|
|
|
+ paymentDetail.setUserId(userId);
|
|
|
+ rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
|
|
|
+ if (studentPaymentOrder.getComAmount() != null) {
|
|
|
+ rechargeDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
|
|
|
+ rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
|
|
|
+ }
|
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.SMS_SPORADIC_PAYMENT_SUCCESS, map, null, 0, "1",
|
|
|
- studentPaymentOrder.getActualAmount(),info.getTitle());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_SPORADIC_PAYMENT_SUCCESS, yimei, null, 0, "1",
|
|
|
- studentPaymentOrder.getActualAmount(),info.getTitle());
|
|
|
- return true;
|
|
|
- }
|
|
|
- if(studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED){
|
|
|
- if(studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) >0 ){
|
|
|
- sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(),PlatformCashAccountDetailTypeEnum.REFUNDS,info.getTitle()+"支付失败");
|
|
|
- }
|
|
|
+ sysUserCashAccountDetailService.insert(paymentDetail);
|
|
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.SMS_SPORADIC_PAYMENT_FAILED, map, null, 0,"",
|
|
|
- studentPaymentOrder.getActualAmount(),info.getTitle());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_SPORADIC_PAYMENT_FAILED, yimei, null, 0, "",
|
|
|
- studentPaymentOrder.getActualAmount(),info.getTitle());
|
|
|
- return false;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.SMS_SPORADIC_PAYMENT_SUCCESS, map, null, 0, "1",
|
|
|
+ studentPaymentOrder.getActualAmount(), info.getTitle());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_SPORADIC_PAYMENT_SUCCESS, yimei, null, 0, "1",
|
|
|
+ studentPaymentOrder.getActualAmount(), info.getTitle());
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
|
|
|
+ if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
+ sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, info.getTitle() + "支付失败");
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public PageInfo queryDetailPage(SporadicChargeInfoQueryInfo queryInfo) {
|
|
|
- PageInfo<SporadicChargeInfo> pageInfo = queryPage(queryInfo);
|
|
|
- List<SporadicChargeInfo> rows = pageInfo.getRows();
|
|
|
- if(rows != null && rows.size() > 0){
|
|
|
- Set<Integer> organIds = rows.stream().map(e -> e.getOrganId()).collect(Collectors.toSet());
|
|
|
- List<Integer> userIds = rows.stream().map(e -> e.getUserId()).collect(Collectors.toList());
|
|
|
- Set<Integer> operatorIds = rows.stream().map(e -> e.getOperatorId()).collect(Collectors.toSet());
|
|
|
- Map<Integer,String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMap(StringUtils.join(organIds,",")));
|
|
|
- Map<Integer,String> operatorNames = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(StringUtils.join(operatorIds,",")));
|
|
|
- Map<Integer,String> userNames = MapUtil.convertMybatisMap(teacherDao.queryUsernameByIds(userIds));
|
|
|
- rows.forEach(e->{
|
|
|
- e.setOrganName(organNames.get(e.getOrganId()));
|
|
|
- if(e.getUserId() != null){
|
|
|
- e.setUserName(userNames.get(e.getUserId()));
|
|
|
- }
|
|
|
- e.setOperatorName(operatorNames.get(e.getOperatorId()));
|
|
|
- });
|
|
|
- }
|
|
|
- return pageInfo;
|
|
|
- }
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.SMS_SPORADIC_PAYMENT_FAILED, map, null, 0, "",
|
|
|
+ studentPaymentOrder.getActualAmount(), info.getTitle());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI, MessageTypeEnum.SMS_SPORADIC_PAYMENT_FAILED, yimei, null, 0, "",
|
|
|
+ studentPaymentOrder.getActualAmount(), info.getTitle());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public SporadicChargeInfo getDetail(Integer id) {
|
|
|
- SporadicChargeInfo sporadicChargeInfo = sporadicChargeInfoDao.get(id);
|
|
|
- if(sporadicChargeInfo.getUserId() != null){
|
|
|
- SysUser sysUser = sysUserFeignService.queryUserById(sporadicChargeInfo.getUserId());
|
|
|
- sporadicChargeInfo.setUserName(sysUser.getUsername());
|
|
|
- }
|
|
|
- return sporadicChargeInfo;
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public PageInfo queryDetailPage(SporadicChargeInfoQueryInfo queryInfo) {
|
|
|
+ PageInfo<SporadicChargeInfo> pageInfo = queryPage(queryInfo);
|
|
|
+ List<SporadicChargeInfo> rows = pageInfo.getRows();
|
|
|
+ if (rows != null && rows.size() > 0) {
|
|
|
+ Set<Integer> organIds = rows.stream().map(e -> e.getOrganId()).collect(Collectors.toSet());
|
|
|
+ List<Integer> userIds = rows.stream().map(e -> e.getUserId()).collect(Collectors.toList());
|
|
|
+ Set<Integer> operatorIds = rows.stream().map(e -> e.getOperatorId()).collect(Collectors.toSet());
|
|
|
+ Map<Integer, String> organNames = MapUtil.convertMybatisMap(organizationDao.findOrganNameMap(StringUtils.join(organIds, ",")));
|
|
|
+ Map<Integer, String> operatorNames = MapUtil.convertMybatisMap(teacherDao.queryNameByIds(StringUtils.join(operatorIds, ",")));
|
|
|
+ Map<Integer, String> userNames = MapUtil.convertMybatisMap(teacherDao.queryUsernameByIds(userIds));
|
|
|
+ rows.forEach(e -> {
|
|
|
+ e.setOrganName(organNames.get(e.getOrganId()));
|
|
|
+ if (e.getUserId() != null) {
|
|
|
+ e.setUserName(userNames.get(e.getUserId()));
|
|
|
+ }
|
|
|
+ e.setOperatorName(operatorNames.get(e.getOperatorId()));
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public SporadicChargeInfo findByOrganIdAndType(Integer organId, Integer type) {
|
|
|
- return sporadicChargeInfoDao.findByOrganIdAndType(organId,type);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public SporadicChargeInfo getDetail(Integer id) {
|
|
|
+ SporadicChargeInfo sporadicChargeInfo = sporadicChargeInfoDao.get(id);
|
|
|
+ if (sporadicChargeInfo.getUserId() != null) {
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserById(sporadicChargeInfo.getUserId());
|
|
|
+ sporadicChargeInfo.setUserName(sysUser.getUsername());
|
|
|
+ }
|
|
|
+ return sporadicChargeInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SporadicChargeInfo findByOrganIdAndType(Integer organId, Integer type) {
|
|
|
+ return sporadicChargeInfoDao.findByOrganIdAndType(organId, type);
|
|
|
+ }
|
|
|
}
|