记得上下班打卡 | git大法好,push需谨慎

Commit f3ac304c authored by jiangxiulong's avatar jiangxiulong

app 订单列表和详情

parent 633393cd
package com.liquidnet.service.goblin.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
* NFT订单表
* </p>
*
* @author jiangxiulong
* @since 2022-03-25
*/
@ApiModel(value = "GoblinNftOrderDetailsVo", description = "NFT订单列表信息")
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinNftOrderDetailsVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "订单id")
private String orderId;
@ApiModelProperty(value = "商品id")
private String spuId;
@ApiModelProperty(value = "款式id")
private String skuId;
@ApiModelProperty(value = "数量")
private Integer num;
@ApiModelProperty(value = "店铺id")
private String storeId;
@ApiModelProperty(value = "商铺名称")
private String storeName;
@ApiModelProperty(value = "订单号")
private String orderCode;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "用户昵称")
private String userName;
@ApiModelProperty(value = "用户手机号")
private String userMobile;
@ApiModelProperty(value = "是否会员")
private Integer isMember;
@ApiModelProperty(value = "应付金额")
private BigDecimal priceTotal;
@ApiModelProperty(value = "券优惠金额")
private BigDecimal priceCoupon;
@ApiModelProperty(value = "商铺券优惠金额")
private BigDecimal storePriceCoupon;
@ApiModelProperty(value = "红包优惠金额")
private BigDecimal priceRedEnvelope;
@ApiModelProperty(value = "总优惠价格")
private BigDecimal priceVoucher;
@ApiModelProperty(value = "实付金额")
private BigDecimal priceActual;
@ApiModelProperty(value = "券id")
private String ucouponId;
@ApiModelProperty(value = "商铺券id")
private String storeCouponId;
@ApiModelProperty(value = "红包code")
private String redEnvelopeCode;
@ApiModelProperty(value = "订单状态 0-待付款(用户刚下单)|1-已付款|2-已取消(未付款取消订单)|3-已退款(超时支付)")
private Integer status;
@ApiModelProperty(value = "订单来源 app|h5|applet")
private String source;
@ApiModelProperty(value = "订单类型 0-购买订单|1-兑换订单|2-演出赠送订单")
private Integer orderType;
@ApiModelProperty(value = "支付时间")
private LocalDateTime payTime;
@ApiModelProperty(value = "支付单号")
private String payCode;
@ApiModelProperty(value = "支付类型 wepay-微信支付|alipay-阿里支付|douyinpay-抖音支付|unionpay-银联支付")
private String payType;
@ApiModelProperty(value = "支付类型来源[wap|js]")
private String deviceFrom;
@ApiModelProperty(value = "支付中心返回实际支付类型")
private String paymentType;
@ApiModelProperty(value = "支付中心返回支付id")
private String paymentId;
@ApiModelProperty(value = "钱到了哪个支付平台 平台的订单id为")
private String payStoreId;
@ApiModelProperty(value = "订单过期时间(分钟)")
private Integer payCountdownMinute;
@ApiModelProperty(value = "取消原因")
private String cancelReason;
@ApiModelProperty(value = "取消时间")
private LocalDateTime cancelTime;
@ApiModelProperty(value = "版本号")
private String version;
@ApiModelProperty(value = "ip地址")
private String ipAddress;
@ApiModelProperty(value = "ip地域全名称")
private String area;
@ApiModelProperty(value = "ip地域省")
private String areaProvince;
@ApiModelProperty(value = "ip地域市")
private String areaCity;
@ApiModelProperty(value = "ip地域县")
private String areaCounty;
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
@ApiModelProperty(value = "商品信息")
GoblinOrderSkuVo orderSkuVo;
private static final GoblinNftOrderDetailsVo obj = new GoblinNftOrderDetailsVo();
public static GoblinNftOrderDetailsVo getNew() {
try {
return (GoblinNftOrderDetailsVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinNftOrderDetailsVo();
}
}
}
package com.liquidnet.service.goblin.service;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderDetailsVo;
public interface IGoblinNftOrderAppService {
ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(int page);
ResponseDto<GoblinNftOrderDetailsVo> orderDetails(String orderId);
}
package com.liquidnet.service.goblin.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderDetailsVo;
import com.liquidnet.service.goblin.service.IGoblinNftOrderAppService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
@Slf4j
@Api(tags = "用户NFT订单相关-App")
@RestController
@RequestMapping("/nftOrder")
public class GoblinNftOrderAppController {
@Autowired
IGoblinNftOrderAppService goblinNftOrderAppService;
@PostMapping("list")
@ApiOperation("用户订单列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "page", value = "页数", example = "1"),
})
public ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(@RequestParam("page") @Valid int page) {
return goblinNftOrderAppService.orderList(page);
}
@PostMapping("details")
@ApiOperation("订单详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "orderId", value = "订单id", example = "1"),
})
public ResponseDto<GoblinNftOrderDetailsVo> orderDetails(@RequestParam("orderId") @Valid String orderId) {
return goblinNftOrderAppService.orderDetails(orderId);
}
}
package com.liquidnet.service.goblin.service.impl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo;
import com.liquidnet.service.goblin.dto.vo.GoblinOrderSkuVo;
import com.liquidnet.service.goblin.service.IGoblinNftOrderAppService;
import com.liquidnet.service.goblin.util.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService {
@Autowired
GoblinRedisUtils redisUtils;
@Autowired
GoblinMongoUtils mongoUtils;
@Autowired
QueueUtils queueUtils;
@Autowired
GoblinOrderUtils orderUtils;
@Override
public ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(int page) {
String uid = CurrentUtil.getCurrentUid();
List<GoblinNftOrderDetailsVo> orderVoList = ObjectUtil.goblinNftOrderDetailsVoArrayList();
List<String> orderIds;
orderIds = redisUtils.getNftOrderList(uid);
int size = 40;
int finalCount = orderIds.size() - page * size;
int initCount = orderIds.size() - (page - 1) * size - 1;
if (finalCount <= 0) {
finalCount = 0;
}
for (int i = initCount; i >= finalCount; i--) {
String orderId = orderIds.get(i);
GoblinNftOrderVo orderVo = redisUtils.getGoblinNftOrder(orderId);
GoblinNftOrderDetailsVo vo = GoblinNftOrderDetailsVo.getNew();
BeanUtils.copyProperties(orderVo, vo);
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderVo.getSkuId());
vo.setOrderSkuVo(orderSkuVo);
orderVoList.add(vo);
}
PageInfo<GoblinNftOrderDetailsVo> pageInfo = new PageInfo(orderVoList);
pageInfo.setTotal(orderIds.size());
return ResponseDto.success(pageInfo);
}
@Override
public ResponseDto<GoblinNftOrderDetailsVo> orderDetails(String orderId) {
GoblinNftOrderVo orderVo = redisUtils.getGoblinNftOrder(orderId);
String uid = CurrentUtil.getCurrentUid();
if (orderVo == null || !orderVo.getUserId().equals(uid)) {
return ResponseDto.failure(ErrorMapping.get("20003"));
}
GoblinNftOrderDetailsVo vo = GoblinNftOrderDetailsVo.getNew();
BeanUtils.copyProperties(orderVo, vo);
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderVo.getSkuId());
vo.setOrderSkuVo(orderSkuVo);
return ResponseDto.success(vo);
}
}
......@@ -893,6 +893,17 @@ public class GoblinRedisUtils {
}
}
// 获取 nft订单相关vo
public GoblinNftOrderVo getGoblinNftOrder(String orderId) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_ORDER_INFO.concat(orderId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
} else {
return (GoblinNftOrderVo) obj;
}
}
// 获取 订单相关Skuvo
public GoblinOrderSkuVo getGoblinOrderSkuVo(String orderSkuId) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER_SKU.concat(orderSkuId);
......@@ -957,6 +968,17 @@ public class GoblinRedisUtils {
}
}
// 获取 nft订单id列表
public List<String> getNftOrderList(String uid) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_NFT_ORDER_USER_ID_LIST.concat(uid);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return CollectionUtil.arrayListString();
} else {
return (List<String>) obj;
}
}
// 添加 订单id列表
public void addOrderList(String uid, String orderId) {
String redisKey = GoblinRedisConst.REDIS_GOBLIN_ORDER_LIST.concat(uid);
......
......@@ -64,6 +64,7 @@ public class ObjectUtil {
private static final ArrayList<GoblinShoppingCartVoDetail> goblinShoppingCartVoDetailArrayList = new ArrayList<>();
private static final ArrayList<GoblinStoreBackOrderListVo> goblinStoreBackOrderListVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinAppOrderListVo> goblinAppOrderListVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinBackOrderSkuVo> goblinBackOrderSkuVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinBackOrderVo> goblinBackOrderVoArrayList = new ArrayList<>();
private static final ArrayList<GoblinFrontNavigationVo> goblinFrontNavigationVoArrayList = new ArrayList<>();
......@@ -138,6 +139,10 @@ public class ObjectUtil {
return (ArrayList<GoblinAppOrderListVo>) goblinAppOrderListVoArrayList.clone();
}
public static ArrayList<GoblinNftOrderDetailsVo> goblinNftOrderDetailsVoArrayList() {
return (ArrayList<GoblinNftOrderDetailsVo>) goblinNftOrderDetailsVoArrayList.clone();
}
public static ArrayList<GoblinStoreBackOrderListVo> goblinStoreBackOrderListVoArrayList() {
return (ArrayList<GoblinStoreBackOrderListVo>) goblinStoreBackOrderListVoArrayList.clone();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment