package com.ruoyi.order.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.account.api.feignClient.AppUserAddressClient;
|
import com.ruoyi.account.api.model.TAppUserAddress;
|
import com.ruoyi.common.core.web.page.PageInfo;
|
import com.ruoyi.common.security.service.TokenService;
|
import com.ruoyi.order.api.model.TExchangeOrder;
|
import com.ruoyi.order.api.model.TShoppingOrder;
|
import com.ruoyi.order.api.query.ShoppingOrderQuery;
|
import com.ruoyi.order.dto.ExchangeOrderGoodsInfo;
|
import com.ruoyi.order.dto.GetMyExchangeOrder;
|
import com.ruoyi.order.dto.MyExchangeOrderList;
|
import com.ruoyi.order.mapper.TExchangeOrderMapper;
|
import com.ruoyi.order.service.TExchangeOrderService;
|
import com.ruoyi.other.api.domain.TCoupon;
|
import com.ruoyi.other.api.domain.TGoods;
|
import com.ruoyi.other.api.feignClient.CouponClient;
|
import com.ruoyi.other.api.feignClient.GoodsClient;
|
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.StringUtils;
|
|
import javax.annotation.Resource;
|
import java.time.format.DateTimeFormatter;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2024-08-07
|
*/
|
@Service
|
public class TExchangeOrderServiceImpl extends ServiceImpl<TExchangeOrderMapper, TExchangeOrder> implements TExchangeOrderService {
|
|
@Resource
|
private TokenService tokenService;
|
|
@Resource
|
private GoodsClient goodsClient;
|
|
@Resource
|
private CouponClient couponClient;
|
|
@Resource
|
private AppUserAddressClient appUserAddressClient;
|
|
|
|
|
|
|
/**
|
* 获取小程序兑换记录
|
* @param query
|
* @return
|
*/
|
@Override
|
public List<MyExchangeOrderList> getMyExchangeOrder(GetMyExchangeOrder query) {
|
Long userid = tokenService.getLoginUserApplet().getUserId();
|
LambdaQueryWrapper<TExchangeOrder> wrapper = new LambdaQueryWrapper<TExchangeOrder>().eq(TExchangeOrder::getDelFlag, 0).eq(TExchangeOrder::getAppUserId, userid);
|
if(query.getStatus() == 0){
|
wrapper.ne(TExchangeOrder::getStatus, 4);
|
}else{
|
wrapper.eq(TExchangeOrder::getStatus, query.getStatus());
|
}
|
List<TExchangeOrder> list = this.list(wrapper.orderByDesc(TExchangeOrder::getCreateTime).last(" limit " + query.getPageCurr() + "," + query.getPageSize()));
|
List<MyExchangeOrderList> pageList = new ArrayList<>();
|
for (TExchangeOrder tExchangeOrder : list) {
|
MyExchangeOrderList exchangeOrderList = new MyExchangeOrderList();
|
exchangeOrderList.setId(tExchangeOrder.getId().toString());
|
exchangeOrderList.setUnitPoints(tExchangeOrder.getPoints() / tExchangeOrder.getPurchaseQuantity());
|
exchangeOrderList.setPoints(tExchangeOrder.getPoints());
|
exchangeOrderList.setPurchaseQuantity(tExchangeOrder.getPurchaseQuantity());
|
exchangeOrderList.setOrderType(tExchangeOrder.getOrderType());
|
exchangeOrderList.setStatus(tExchangeOrder.getStatus());
|
String name = "";
|
String imgUrl = "";
|
if(tExchangeOrder.getOrderType() == 1){
|
TGoods goods = goodsClient.getGoodsById(tExchangeOrder.getGoodsId()).getData();
|
name = goods.getName();
|
imgUrl = goods.getCoverPicture();
|
}else{
|
TCoupon coupon = couponClient.getCouponById1(tExchangeOrder.getCouponId()).getData();
|
name = coupon.getName();
|
imgUrl = coupon.getCoverPicture();
|
}
|
exchangeOrderList.setName(name);
|
exchangeOrderList.setImgUrl(imgUrl);
|
pageList.add(exchangeOrderList);
|
}
|
return pageList;
|
}
|
|
|
/**
|
* 获取兑换订单详情
|
* @param id
|
* @return
|
*/
|
@Override
|
public ExchangeOrderGoodsInfo getGoodsExchangeOrder(String id) {
|
TExchangeOrder exchangeOrder = this.getById(id);
|
ExchangeOrderGoodsInfo info = new ExchangeOrderGoodsInfo();
|
info.setId(id);
|
info.setStatus(exchangeOrder.getStatus());
|
TAppUserAddress userAddress = appUserAddressClient.getAppUserAddressById(exchangeOrder.getAppUserAddressId()).getData();
|
info.setConsignee(userAddress.getName());
|
info.setPhone(userAddress.getPhone());
|
info.setAddress(userAddress.getAddress());
|
info.setExpressCompany(exchangeOrder.getExpressCompany());
|
info.setExpressNumber(exchangeOrder.getExpressNumber());
|
String name = "";
|
String imgUrl = "";
|
if(exchangeOrder.getOrderType() == 1){
|
TGoods goods = goodsClient.getGoodsById(exchangeOrder.getGoodsId()).getData();
|
name = goods.getName();
|
imgUrl = goods.getCoverPicture();
|
}else{
|
TCoupon coupon = couponClient.getCouponById1(exchangeOrder.getCouponId()).getData();
|
info.setCouponType(coupon.getType());
|
info.setDays(coupon.getDays());
|
info.setEndTime(coupon.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
name = coupon.getName();
|
imgUrl = coupon.getCoverPicture();
|
}
|
info.setName(name);
|
info.setImgUrl(imgUrl);
|
info.setPurchaseQuantity(exchangeOrder.getPurchaseQuantity());
|
info.setUnitPoints(exchangeOrder.getPoints() / exchangeOrder.getPurchaseQuantity());
|
info.setCode(exchangeOrder.getCode());
|
info.setCreateTime(exchangeOrder.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
info.setPoints(exchangeOrder.getPoints());
|
info.setRemark(exchangeOrder.getRemark());
|
info.setDeliveryTime(exchangeOrder.getConsignerTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
info.setFinishTime(exchangeOrder.getReceivingTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
return info;
|
}
|
|
@Override
|
public PageInfo<TExchangeOrder> pageList(ShoppingOrderQuery query) {
|
String startTime1 = null;
|
String startTime2 = null;
|
|
|
if (StringUtils.hasLength(query.getStartTime())){
|
String[] split = query.getStartTime().split(" - ");
|
startTime1 = split[0];
|
startTime2 = split[1];
|
}
|
PageInfo<TExchangeOrder> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
|
List<TExchangeOrder> list = this.baseMapper.pageList(pageInfo,query,startTime1,startTime2);
|
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
}
|