AlipayServiceImpl.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.lightinit.hsdataportal.impl;
  2. import com.lightinit.hsdataportal.dictionary.DicOrderState;
  3. import com.lightinit.hsdataportal.entity.Order;
  4. import com.lightinit.hsdataportal.entity.OrderExample;
  5. import com.lightinit.hsdataportal.entity.UserAccount;
  6. import com.lightinit.hsdataportal.mapper.OrderMapper;
  7. import com.lightinit.hsdataportal.mapper.UserAccountMapper;
  8. import com.lightinit.hsdataportal.model.ResultState;
  9. import com.lightinit.hsdataportal.model.ResultStateCode;
  10. import com.lightinit.hsdataportal.service.IAlipayService;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Transactional;
  14. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  15. import java.util.Date;
  16. import java.util.List;
  17. /**
  18. * @Author: sunxiang
  19. * @Date: 2018/10/29 10:56
  20. * @Description:
  21. **/
  22. @Service
  23. public class AlipayServiceImpl implements IAlipayService {
  24. @Autowired
  25. private OrderMapper orderMapper;
  26. @Autowired
  27. private UserAccountMapper userAccountMapper;
  28. /*@Description 根据订单id查询订单
  29. *@Param
  30. *@Date 2018/10/29
  31. *@return
  32. */
  33. @Override
  34. public Order queryUserOrderByOrderNumber(String orderNumber) {
  35. OrderExample bizOrderExample = new OrderExample();
  36. bizOrderExample.createCriteria().andOrderNumberEqualTo(orderNumber);
  37. List<Order> list = orderMapper.selectByExample(bizOrderExample);
  38. if(list==null||list.size()!=1){
  39. return null;
  40. }
  41. return list.get(0);
  42. }
  43. @Override
  44. public ResultState<String> updateUserOderByOrderNumber(Long id, String orderNumber) {
  45. ResultState<String> resultState = new ResultState<>();
  46. try {
  47. Order order = new Order();
  48. order.setId(id);
  49. order.setOrderState(DicOrderState.PAY_SUCCESS);
  50. orderMapper.updateByPrimaryKeySelective(order);
  51. //查询订单的业务类型,如果是充值,改变用户账户的金额
  52. Order order1 = orderMapper.selectBusinessType(orderNumber);
  53. if("账户充值".equals(order1.getBusinessType())) {
  54. UserAccount userAccount = new UserAccount();
  55. UserAccount userAccount1 = userAccountMapper.selectByPrimaryKey(order1.getUserId());
  56. if(userAccount1==null) {
  57. userAccount.setBalance(order1.getOrderAmount());
  58. userAccountMapper.insert(userAccount);
  59. }
  60. userAccount.setBalance(userAccount1.getBalance().add(order1.getOrderAmount()));
  61. userAccountMapper.updateByPrimaryKeySelective(userAccount);
  62. }
  63. resultState.setData(orderNumber);
  64. return resultState;
  65. } catch (Exception e) {
  66. e.printStackTrace();
  67. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  68. }
  69. resultState.setStateCode(ResultStateCode.DB_ERROR);
  70. resultState.setMsg("biz_order数据库‘支付成功’修改失败,请手动修改id="+id+",或者订单号是:"+orderNumber);
  71. return resultState;
  72. }
  73. /*@Transactional
  74. @Override
  75. public ResultState<String> insertBizOrderPayment(BizOrder order, int stateCode) {
  76. ResultState<String> resultState = new ResultState<>();
  77. BizOrderPayment payment = new BizOrderPayment();
  78. payment.setOrderNumber(order.getOrderNumber());
  79. payment.setPaymentMethod(DicPayType.ALIPAY);
  80. payment.setPaymentTime(new Date());
  81. payment.setPaymentResult(stateCode==200? DicPayResult.UPDATE_SUCCESS:DicPayResult.UPDATE_FAIL);
  82. payment.setRemark(order.getRemark());
  83. payment.setCreatedAt(new Date());
  84. int i = bizOrderPaymentMapper.insert(payment);
  85. if(i<1){
  86. resultState.setStateCode(ResultStateCode.DB_ERROR);
  87. resultState.setData(order.getOrderNumber());
  88. resultState.setMsg("插入biz_order_payment数据库失败,请手动添加该订单!订单号:"+order.getOrderNumber());
  89. }
  90. resultState.setData(order.getOrderNumber());
  91. return resultState;
  92. }*/
  93. }