package com.fdkankan.ucenter.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.common.constant.SceneConstant; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.common.response.PageInfo; import com.fdkankan.common.util.NumberUtils; import com.fdkankan.ucenter.common.SkuEnum; import com.fdkankan.ucenter.constant.LoginConstant; import com.fdkankan.ucenter.entity.*; import com.fdkankan.ucenter.mapper.IIncrementOrderMapper; import com.fdkankan.ucenter.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.ucenter.util.DateUserUtil; import com.fdkankan.ucenter.vo.request.DownNumParam; import com.fdkankan.ucenter.vo.request.IncrementOrderParam; import com.fdkankan.ucenter.vo.request.OrderParam; import com.fdkankan.ucenter.vo.response.GoodsSkuVo; import com.fdkankan.ucenter.vo.response.IncrementOrderVo; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 增值权益订单表 服务实现类 *

* * @author * @since 2022-07-13 */ @Service public class IncrementOrderServiceImpl extends ServiceImpl implements IIncrementOrderService { @Autowired IUserService userService; @Autowired IInvoiceService invoiceService; @Autowired IUserIncrementService userIncrementService; @Autowired IGoodsSkuService goodsSkuService; @Override public PageInfo pageList(IncrementOrderParam param) { User user = userService.getByUserName(param.getUserName()); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(IncrementOrder::getUserId,user.getId()); wrapper.eq(IncrementOrder::getPayStatus,1); wrapper.orderByDesc(IncrementOrder::getTradeTime); Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper); List listVo =new ArrayList<>(); for (IncrementOrder record : page.getRecords()) { Invoice invoice = invoiceService.getByIncrementOrderId(record.getId()); IncrementOrderVo vo = new IncrementOrderVo(); BeanUtils.copyProperties(record,vo); vo.setInvoice(invoice); listVo.add(vo); } Page pageVo = new Page<>(param.getPageNum(),param.getPageSize()); pageVo.setRecords(listVo); pageVo.setTotal(page.getTotal()); return PageInfo.PageInfo(pageVo); } @Override public GoodsSkuVo getDownloadPrice(OrderParam param) { if(param.getDateType() == null){ throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001); } if(param.getDateType() != 5 && param.getDateType() != 6){ throw new BusinessException(SceneConstant.FAILURE_CODE_5012, SceneConstant.FAILURE_MSG_5012); } DateTime dateTime = new DateTime(); if(param.getUserIncrementId() != null){ UserIncrement userIncrementEntity = userIncrementService.getById(param.getUserIncrementId()); if(userIncrementEntity != null && DateUserUtil.getDate(userIncrementEntity.getIncrementEndTime()).getTime()> new Date().getTime()){ dateTime = new DateTime(DateUserUtil.getDate(userIncrementEntity.getIncrementEndTime())); } } GoodsSkuVo vo = this.getIncrementOrDownloadPrice(param.getDateType()); dateTime = dateTime.plusYears(1); vo.setDeadLine(dateTime.toDate().getTime()); return vo; } public GoodsSkuVo getIncrementOrDownloadPrice(Integer dateType) { String skuStr = SkuEnum.skusMap.get(String.valueOf(dateType)); if (StringUtils.isEmpty(skuStr)){ skuStr = SkuEnum.skusMap.get("5"); } GoodsSkuVo responseGoodsSku = new GoodsSkuVo(); GoodsSku goodsSkuEntity = goodsSkuService.getBySku(skuStr); BeanUtils.copyProperties(goodsSkuEntity, responseGoodsSku); return responseGoodsSku; } @Override public IncrementOrder insertIncrementOrder(Long userId, DownNumParam param, BigDecimal price) { BigDecimal total = price.multiply(new BigDecimal(param.getCount())); IncrementOrder incrementOrderEntity = new IncrementOrder(); incrementOrderEntity.setOrderSn(NumberUtils.getOrderSn()); incrementOrderEntity.setAmount(total); incrementOrderEntity.setPayType(param.getPayType()); incrementOrderEntity.setPayStatus(-1); incrementOrderEntity.setUserId(userId); incrementOrderEntity.setCount(param.getCount()); incrementOrderEntity.setAbroad(param.getAbroad()); incrementOrderEntity.setStatus(param.getIncrementId() == null ? 1 : 2); incrementOrderEntity.setIncrementId(param.getIncrementId()); incrementOrderEntity.setRecStatus("A"); incrementOrderEntity.setCreateTime(DateUserUtil.getDate(new Date())); incrementOrderEntity.setUpdateTime(DateUserUtil.getDate(new Date())); this.save(incrementOrderEntity); return incrementOrderEntity; } }