IncrementOrderServiceImpl.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package com.fdkankan.ucenter.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.fdkankan.common.constant.SceneConstant;
  5. import com.fdkankan.common.exception.BusinessException;
  6. import com.fdkankan.common.response.PageInfo;
  7. import com.fdkankan.common.util.NumberUtils;
  8. import com.fdkankan.ucenter.common.SkuEnum;
  9. import com.fdkankan.ucenter.constant.LoginConstant;
  10. import com.fdkankan.ucenter.entity.*;
  11. import com.fdkankan.ucenter.mapper.IIncrementOrderMapper;
  12. import com.fdkankan.ucenter.service.*;
  13. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  14. import com.fdkankan.ucenter.util.DateUserUtil;
  15. import com.fdkankan.ucenter.vo.request.DownNumParam;
  16. import com.fdkankan.ucenter.vo.request.IncrementOrderParam;
  17. import com.fdkankan.ucenter.vo.request.OrderParam;
  18. import com.fdkankan.ucenter.vo.response.GoodsSkuVo;
  19. import com.fdkankan.ucenter.vo.response.IncrementOrderVo;
  20. import org.apache.commons.lang3.StringUtils;
  21. import org.joda.time.DateTime;
  22. import org.springframework.beans.BeanUtils;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.stereotype.Service;
  25. import java.math.BigDecimal;
  26. import java.util.ArrayList;
  27. import java.util.Date;
  28. import java.util.List;
  29. /**
  30. * <p>
  31. * 增值权益订单表 服务实现类
  32. * </p>
  33. *
  34. * @author
  35. * @since 2022-07-13
  36. */
  37. @Service
  38. public class IncrementOrderServiceImpl extends ServiceImpl<IIncrementOrderMapper, IncrementOrder> implements IIncrementOrderService {
  39. @Autowired
  40. IUserService userService;
  41. @Autowired
  42. IInvoiceService invoiceService;
  43. @Autowired
  44. IUserIncrementService userIncrementService;
  45. @Autowired
  46. IGoodsSkuService goodsSkuService;
  47. @Override
  48. public PageInfo pageList(IncrementOrderParam param) {
  49. User user = userService.getByUserName(param.getUserName());
  50. LambdaQueryWrapper<IncrementOrder> wrapper = new LambdaQueryWrapper<>();
  51. wrapper.eq(IncrementOrder::getUserId,user.getId());
  52. wrapper.eq(IncrementOrder::getPayStatus,1);
  53. wrapper.orderByDesc(IncrementOrder::getTradeTime);
  54. Page<IncrementOrder> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
  55. List<IncrementOrderVo> listVo =new ArrayList<>();
  56. for (IncrementOrder record : page.getRecords()) {
  57. Invoice invoice = invoiceService.getByIncrementOrderId(record.getId());
  58. IncrementOrderVo vo = new IncrementOrderVo();
  59. BeanUtils.copyProperties(record,vo);
  60. vo.setInvoice(invoice);
  61. listVo.add(vo);
  62. }
  63. Page<IncrementOrderVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
  64. pageVo.setRecords(listVo);
  65. pageVo.setTotal(page.getTotal());
  66. return PageInfo.PageInfo(pageVo);
  67. }
  68. @Override
  69. public GoodsSkuVo getDownloadPrice(OrderParam param) {
  70. if(param.getDateType() == null){
  71. throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
  72. }
  73. if(param.getDateType() != 5 && param.getDateType() != 6){
  74. throw new BusinessException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012);
  75. }
  76. DateTime dateTime = new DateTime();
  77. if(param.getUserIncrementId() != null){
  78. UserIncrement userIncrementEntity = userIncrementService.getById(param.getUserIncrementId());
  79. if(userIncrementEntity != null && DateUserUtil.getDate(userIncrementEntity.getIncrementEndTime()).getTime()> new Date().getTime()){
  80. dateTime = new DateTime(DateUserUtil.getDate(userIncrementEntity.getIncrementEndTime()));
  81. }
  82. }
  83. GoodsSkuVo vo = this.getIncrementOrDownloadPrice(param.getDateType());
  84. dateTime = dateTime.plusYears(1);
  85. vo.setDeadLine(dateTime.toDate().getTime());
  86. return vo;
  87. }
  88. public GoodsSkuVo getIncrementOrDownloadPrice(Integer dateType) {
  89. String skuStr = SkuEnum.skusMap.get(String.valueOf(dateType));
  90. if (StringUtils.isEmpty(skuStr)){
  91. skuStr = SkuEnum.skusMap.get("5");
  92. }
  93. GoodsSkuVo responseGoodsSku = new GoodsSkuVo();
  94. GoodsSku goodsSkuEntity = goodsSkuService.getBySku(skuStr);
  95. BeanUtils.copyProperties(goodsSkuEntity, responseGoodsSku);
  96. return responseGoodsSku;
  97. }
  98. @Override
  99. public IncrementOrder insertIncrementOrder(Long userId, DownNumParam param, BigDecimal price) {
  100. BigDecimal total = price.multiply(new BigDecimal(param.getCount()));
  101. IncrementOrder incrementOrderEntity = new IncrementOrder();
  102. incrementOrderEntity.setOrderSn(NumberUtils.getOrderSn());
  103. incrementOrderEntity.setAmount(total);
  104. incrementOrderEntity.setPayType(param.getPayType());
  105. incrementOrderEntity.setPayStatus(-1);
  106. incrementOrderEntity.setUserId(userId);
  107. incrementOrderEntity.setCount(param.getCount());
  108. incrementOrderEntity.setAbroad(param.getAbroad());
  109. incrementOrderEntity.setStatus(param.getIncrementId() == null ? 1 : 2);
  110. incrementOrderEntity.setIncrementId(param.getIncrementId());
  111. incrementOrderEntity.setRecStatus("A");
  112. incrementOrderEntity.setCreateTime(DateUserUtil.getDate(new Date()));
  113. incrementOrderEntity.setUpdateTime(DateUserUtil.getDate(new Date()));
  114. this.save(incrementOrderEntity);
  115. return incrementOrderEntity;
  116. }
  117. }