IncrementAutoOrderServiceImpl.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package com.fdkankan.ucenter.service.impl;
  2. import java.util.Date;
  3. import java.util.List;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  6. import com.fdkankan.common.constant.ErrorCode;
  7. import com.fdkankan.common.exception.BusinessException;
  8. import com.fdkankan.ucenter.common.constants.ResultCode;
  9. import com.fdkankan.ucenter.entity.IncrementAutoOrder;
  10. import com.fdkankan.ucenter.entity.IncrementOrder;
  11. import com.fdkankan.ucenter.entity.User;
  12. import com.fdkankan.ucenter.entity.UserIncrement;
  13. import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
  14. import com.fdkankan.ucenter.mapper.IIncrementAutoOrderMapper;
  15. import com.fdkankan.ucenter.pay.paypal.sdk.AutoPaypalVo;
  16. import com.fdkankan.ucenter.pay.strategy.impl.IncrementOrderImpl;
  17. import com.fdkankan.ucenter.service.*;
  18. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Service;
  21. /**
  22. * <p>
  23. * 服务实现类
  24. * </p>
  25. *
  26. * @author
  27. * @since 2023-11-09
  28. */
  29. @Service
  30. public class IncrementAutoOrderServiceImpl extends ServiceImpl<IIncrementAutoOrderMapper, IncrementAutoOrder> implements IIncrementAutoOrderService {
  31. @Autowired
  32. IUserIncrementService userIncrementService;
  33. @Autowired
  34. IIncrementOrderService incrementOrderService;
  35. @Autowired
  36. IncrementOrderImpl incrementOrder;
  37. @Autowired
  38. IMailTemplateService mailTemplateService;
  39. @Autowired
  40. IUserService userService;
  41. @Override
  42. public void addOrder(Long userId, Integer incrementTypeId, Long incrementId, String orderSn,String agentKey) {
  43. IncrementAutoOrder autoOrder = new IncrementAutoOrder();
  44. autoOrder.setUserId(userId);
  45. autoOrder.setIncrementTypeId(incrementTypeId);
  46. autoOrder.setUserIncrementId(incrementId);
  47. autoOrder.setOrderSn(orderSn);
  48. autoOrder.setAgentKey(agentKey);
  49. this.save(autoOrder);
  50. }
  51. @Override
  52. public IncrementAutoOrder getByIncrementId(Long incrementId) {
  53. LambdaQueryWrapper<IncrementAutoOrder> wrapper = new LambdaQueryWrapper<>();
  54. wrapper.eq(IncrementAutoOrder::getUserIncrementId,incrementId);
  55. return this.getOne(wrapper);
  56. }
  57. @Override
  58. public void subOrder(String orderSn,String subscriptionId) {
  59. LambdaUpdateWrapper<IncrementAutoOrder> wrapper = new LambdaUpdateWrapper<>();
  60. wrapper.eq(IncrementAutoOrder::getOrderSn,orderSn);
  61. wrapper.set(IncrementAutoOrder::getSubscriptionId,subscriptionId);
  62. this.update(wrapper);
  63. }
  64. @Override
  65. public IncrementAutoOrder getBySubId(String subscriptionId) {
  66. LambdaUpdateWrapper<IncrementAutoOrder> wrapper = new LambdaUpdateWrapper<>();
  67. wrapper.eq(IncrementAutoOrder::getSubscriptionId,subscriptionId);
  68. return this.getOne(wrapper);
  69. }
  70. @Override
  71. public void paySuccess(IncrementAutoOrder incrementAutoOrder, AutoPaypalVo order) throws Exception {
  72. incrementOrderService.addNewOrderByOrder(incrementAutoOrder,order);
  73. incrementOrder.handleOrder(order.getOrderSn(),order.getTradeNo(),order.getOrderSn(),2,null);
  74. }
  75. @Override
  76. public void payError(IncrementAutoOrder incrementAutoOrder, AutoPaypalVo order) {
  77. User user = userService.getById(incrementAutoOrder.getUserId());
  78. if(user != null){
  79. List<UserIncrement> userIncrements = userIncrementService.getByAutoOrderSn(order.getSubscriptionId());
  80. if(userIncrements.size() >0){
  81. mailTemplateService.sendPayErrorMail(user.getUserName(),userIncrements.get(0).getMemberLevels());
  82. }
  83. }
  84. }
  85. @Override
  86. public void subscriptionCancelled(IncrementAutoOrder incrementAutoOrder, AutoPaypalVo order) {
  87. List<UserIncrement> userIncrements = userIncrementService.getByAutoOrderSn(order.getSubscriptionId());
  88. for (UserIncrement increment : userIncrements) {
  89. userIncrementService.cancelSubscriptions(increment);
  90. User user = userService.getById(increment.getUserId());
  91. if(user != null){
  92. mailTemplateService.sendSubcriptionCancelledMail(user.getUserName(),increment.getMemberLevels());
  93. }
  94. }
  95. this.removeById(incrementAutoOrder.getId());
  96. }
  97. @Override
  98. public void setIncrementId(IncrementAutoOrder incrementAutoOrder, Long incrmentId) {
  99. if(incrementAutoOrder != null){
  100. LambdaUpdateWrapper<IncrementAutoOrder> wrapper = new LambdaUpdateWrapper<>();
  101. wrapper.eq(IncrementAutoOrder::getId,incrementAutoOrder.getId());
  102. wrapper.set(IncrementAutoOrder::getUserIncrementId,incrmentId);
  103. this.update(wrapper);
  104. }
  105. }
  106. @Override
  107. public void delByIncrementId(Long incrementId) {
  108. LambdaUpdateWrapper<IncrementAutoOrder> wrapper = new LambdaUpdateWrapper<>();
  109. wrapper.eq(IncrementAutoOrder::getUserIncrementId,incrementId);
  110. this.remove(wrapper);
  111. }
  112. @Override
  113. public IncrementAutoOrder getByOrderSn(String orderSn) {
  114. LambdaUpdateWrapper<IncrementAutoOrder> wrapper = new LambdaUpdateWrapper<>();
  115. wrapper.eq(IncrementAutoOrder::getOrderSn,orderSn);
  116. List<IncrementAutoOrder> list = this.list(wrapper);
  117. if(list == null || list.size()<=0){
  118. return null;
  119. }
  120. return list.get(0);
  121. }
  122. @Override
  123. public IncrementAutoOrder getDelOrder(String subscriptionOrderSn) {
  124. return getBaseMapper().getDelOrder(subscriptionOrderSn);
  125. }
  126. @Override
  127. public void updateDelStatus(Integer id) {
  128. getBaseMapper().updateDelStatus(id);
  129. }
  130. }