DownloadOrderServiceImpl.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.fdkankan.common.constant.TbStatus;
  7. import com.fdkankan.common.exception.BusinessException;
  8. import com.fdkankan.ucenter.common.PageInfo;
  9. import com.fdkankan.common.util.NumberUtils;
  10. import com.fdkankan.ucenter.constant.OrderConstant;
  11. import com.fdkankan.ucenter.entity.DownloadOrder;
  12. import com.fdkankan.ucenter.entity.Invoice;
  13. import com.fdkankan.ucenter.entity.User;
  14. import com.fdkankan.ucenter.httpClient.param.PayGoods;
  15. import com.fdkankan.ucenter.httpClient.service.PayService;
  16. import com.fdkankan.ucenter.httpClient.vo.PayOrderVo;
  17. import com.fdkankan.ucenter.mapper.IDownloadOrderMapper;
  18. import com.fdkankan.ucenter.service.IDownloadOrderService;
  19. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  20. import com.fdkankan.ucenter.service.IInvoiceService;
  21. import com.fdkankan.ucenter.service.IUserService;
  22. import com.fdkankan.ucenter.util.DateUserUtil;
  23. import com.fdkankan.ucenter.vo.request.DownNumParam;
  24. import com.fdkankan.ucenter.vo.request.IncrementOrderParam;
  25. import com.fdkankan.ucenter.vo.response.DownloadVo;
  26. import com.sun.javafx.font.directwrite.DWFactory;
  27. import org.apache.commons.lang3.StringUtils;
  28. import org.springframework.beans.BeanUtils;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.stereotype.Service;
  31. import java.math.BigDecimal;
  32. import java.util.ArrayList;
  33. import java.util.Arrays;
  34. import java.util.Date;
  35. import java.util.List;
  36. /**
  37. * <p>
  38. * 下载次数订单表 服务实现类
  39. * </p>
  40. *
  41. * @author
  42. * @since 2022-07-13
  43. */
  44. @Service
  45. public class DownloadOrderServiceImpl extends ServiceImpl<IDownloadOrderMapper, DownloadOrder> implements IDownloadOrderService {
  46. @Autowired
  47. IUserService userService;
  48. @Autowired
  49. IInvoiceService invoiceService;
  50. @Override
  51. public PageInfo pageList(IncrementOrderParam param) {
  52. User user = userService.getByUserName(param.getUserName());
  53. LambdaQueryWrapper<DownloadOrder> wrapper = new LambdaQueryWrapper<>();
  54. wrapper.eq(DownloadOrder::getUserId,user.getId());
  55. wrapper.eq(DownloadOrder::getPayStatus,1);
  56. wrapper.orderByDesc(DownloadOrder::getTradeTime);
  57. Page<DownloadOrder> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
  58. List<DownloadVo> listVo = new ArrayList<>();
  59. for (DownloadOrder record : page.getRecords()) {
  60. if(StringUtils.isNotBlank(record.getTradeTime())){
  61. record.setTradeTime(DateUserUtil.AddMinute(record.getTradeTime(),record.getTimeZoneOff()));
  62. }
  63. DownloadVo vo = new DownloadVo();
  64. BeanUtils.copyProperties(record,vo);
  65. Invoice invoice = invoiceService.getByDownId(record.getId());
  66. vo.setInvoice(invoice);
  67. listVo.add(vo);
  68. }
  69. Page<DownloadVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
  70. pageVo.setTotal(page.getTotal());
  71. pageVo.setRecords(listVo);
  72. return PageInfo.PageInfo(pageVo);
  73. }
  74. @Override
  75. public DownloadOrder getByOrderSn(String orderSn) {
  76. QueryWrapper<DownloadOrder> queryWrapper = new QueryWrapper<>();
  77. queryWrapper.lambda().eq(DownloadOrder::getOrderSn,orderSn);
  78. List<DownloadOrder> list = this.list(queryWrapper);
  79. if(list == null || list.size() <=0){
  80. return null;
  81. }
  82. return list.get(0);
  83. }
  84. @Override
  85. public DownloadOrder getByOrderSnNoPay(String orderSn) {
  86. QueryWrapper<DownloadOrder> queryWrapper = new QueryWrapper<>();
  87. queryWrapper.lambda().eq(DownloadOrder::getOrderSn,orderSn);
  88. queryWrapper.lambda().ne(DownloadOrder::getPayStatus,1);
  89. List<DownloadOrder> list = this.list(queryWrapper);
  90. if(list == null || list.size() <=0){
  91. return null;
  92. }
  93. return list.get(0); }
  94. @Override
  95. public boolean paySuccessDownloadOrder(String orderSn, String tradeNo, int paymentTypeName) {
  96. LambdaUpdateWrapper<DownloadOrder> updateWrapper = new LambdaUpdateWrapper<>();
  97. updateWrapper.set(DownloadOrder::getPayType,paymentTypeName)
  98. .set(DownloadOrder::getNumber,tradeNo)
  99. .set(DownloadOrder::getPayStatus,1)
  100. .set(DownloadOrder::getTradeTime,new Date())
  101. .eq(DownloadOrder::getOrderSn,orderSn);
  102. return this.update(updateWrapper);
  103. }
  104. @Autowired
  105. PayService payService;
  106. @Override
  107. public DownloadOrder insertDownloadOrder(User user, DownNumParam param, BigDecimal price) {
  108. BigDecimal total = price.multiply(new BigDecimal(param.getCount()));
  109. PayGoods payGoods = new PayGoods(param.getSceneName() ,param.getCount(),param.getSceneNum(),2);
  110. PayOrderVo payOrderVo = payService.downOrder(total, "downOrder",user.getUserName(),user.getNickName(), Arrays.asList(payGoods),null);
  111. if(payOrderVo == null){
  112. throw new BusinessException(OrderConstant.FAILURE_CODE_8005,OrderConstant.FAILURE_MSG_8005);
  113. }
  114. DownloadOrder downloadOrderEntity = new DownloadOrder();
  115. downloadOrderEntity.setOrderSn(payOrderVo.getOrderSn());
  116. downloadOrderEntity.setAmount(total);
  117. downloadOrderEntity.setPayType(param.getPayType());
  118. downloadOrderEntity.setPayStatus(-1);
  119. downloadOrderEntity.setUserId(user.getId());
  120. downloadOrderEntity.setCount(param.getCount());
  121. downloadOrderEntity.setAbroad(param.getAbroad());
  122. downloadOrderEntity.setStatus(1);
  123. downloadOrderEntity.setSceneNum(param.getSceneNum());
  124. downloadOrderEntity.setSceneName(param.getSceneName());
  125. downloadOrderEntity.setTimeZoneOff(param.getTimeZoneOff());
  126. downloadOrderEntity.setRecStatus("A");
  127. downloadOrderEntity.setCreateTime(DateUserUtil.getDate(new Date()));
  128. downloadOrderEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
  129. this.save(downloadOrderEntity);
  130. return downloadOrderEntity;
  131. }
  132. }