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

Commit aba25111 authored by jiangxiulong's avatar jiangxiulong

替换BeanUtils.copyProperties;参数验证;商品排序;藏品订单vo整理;

parent 0cef63d2
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -22,7 +24,7 @@ import java.time.LocalDateTime;
@EqualsAndHashCode(callSuper = false)
public class GoblinNftOrderDetailsVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = -7411254314501150169L;
@ApiModelProperty(value = "订单id")
private String orderId;
......@@ -45,110 +47,21 @@ public class GoblinNftOrderDetailsVo implements Serializable, Cloneable {
@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 = "订单状态 1待付款 2已付款 3未付款取消订单 4退款中 5已退款")
private Integer status;
@ApiModelProperty(value = "订单来源 app|h5|applet")
private String source;
@ApiModelProperty(value = "订单类型 1购买订单 2兑换订单 3演出赠送订单")
private Integer orderType;
@ApiModelProperty(value = "支付时间")
private LocalDateTime payTime;
@ApiModelProperty(value = "支付单号")
private String payCode;
@ApiModelProperty(value = "支付类型 wepay微信 alipay阿里 douyinpay抖音 unionpay银联")
private String payType;
@ApiModelProperty(value = "支付终端 app wap js applet")
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;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
@ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
@ApiModelProperty(value = "商品信息")
GoblinOrderSkuVo orderSkuVo;
GoblinNftGoodsSkuInfoVo goodsSkuInfoVo;
private static final GoblinNftOrderDetailsVo obj = new GoblinNftOrderDetailsVo();
......@@ -159,4 +72,21 @@ public class GoblinNftOrderDetailsVo implements Serializable, Cloneable {
return new GoblinNftOrderDetailsVo();
}
}
public GoblinNftOrderDetailsVo copy(GoblinNftOrderVo source) {
if (null == source) return this;
this.setOrderId(source.getOrderId());
this.setSpuId(source.getSpuId());
this.setSkuId(source.getSkuId());
this.setNum(source.getNum());
this.setStoreId(source.getStoreId());
this.setStoreName(source.getStoreName());
this.setOrderCode(source.getOrderCode());
this.setPriceTotal(source.getPriceTotal());
this.setPriceActual(source.getPriceActual());
this.setStatus(source.getStatus());
this.setCreatedAt(source.getCreatedAt());
return this;
}
}
......@@ -10,11 +10,15 @@ 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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
@Slf4j
@Api(tags = "NFT商品-App")
@RestController
@Validated
@RequestMapping("/nftGoods")
public class GoblinNftGoodsAppController {
......@@ -38,7 +42,7 @@ public class GoblinNftGoodsAppController {
@ApiImplicitParam(type = "query", required = true, dataType = "String", name = "skuId", value = "skuId", example = "1"),
})
public ResponseDto<GoblinNftGoodsSkuInfoVo> getGoodsDetail(
@RequestParam("skuId") String skuId
@RequestParam("skuId") @NotBlank(message = "skuId不能为空") String skuId
) {
GoblinNftGoodsSkuInfoVo vo = goblinNftGoodsAppService.goodsDetail(skuId);
if (vo == null) {
......
......@@ -10,16 +10,18 @@ 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.validation.annotation.Validated;
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;
import javax.validation.constraints.NotBlank;
@Slf4j
@Api(tags = "NFT订单相关-App")
@RestController
@Validated
@RequestMapping("/nftOrder")
public class GoblinNftOrderAppController {
......@@ -29,18 +31,20 @@ public class GoblinNftOrderAppController {
@PostMapping("list")
@ApiOperation("用户订单列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "page", value = "页数", example = "1"),
@ApiImplicitParam(type = "form", dataType = "Integer", name = "page", value = "页数", example = "1"),
})
public ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(@RequestParam("page") @Valid int page) {
public ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(
@RequestParam(value = "page", defaultValue = "1") int page
) {
return goblinNftOrderAppService.orderList(page);
}
@PostMapping("details")
@ApiOperation("订单详情")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "orderId", value = "订单id", example = "1"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "orderId", value = "订单ID", example = "1"),
})
public ResponseDto<GoblinNftOrderDetailsVo> orderDetails(@RequestParam("orderId") @Valid String orderId) {
public ResponseDto<GoblinNftOrderDetailsVo> orderDetails(@RequestParam("orderId") @NotBlank(message = "订单ID不能为空") String orderId) {
return goblinNftOrderAppService.orderDetails(orderId);
}
......
......@@ -55,7 +55,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
skuList = new ArrayList<>();
// 分页 排序:按照开售时间
// TODO: jxl 2022/3/30 售罄放后面
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.DESC, "saleStartTime"));
Pageable pageable = PageRequest.of(page - 1, size, Sort.by(Sort.Direction.ASC, "saleStartTime"));
query.with(pageable);
List<GoblinGoodsSkuInfoVo> skuInfoVos = mongoTemplate.find(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
......
......@@ -4,13 +4,13 @@ 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.GoblinGoodsSkuInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftGoodsSkuInfoVo;
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;
......@@ -28,6 +28,8 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService {
QueueUtils queueUtils;
@Autowired
GoblinOrderUtils orderUtils;
@Autowired
private GoblinRedisUtils goblinRedisUtils;
@Override
public ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(int page) {
......@@ -44,12 +46,15 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService {
}
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);
GoblinNftOrderDetailsVo orderDetails = GoblinNftOrderDetailsVo.getNew().copy(orderVo);
// 商品信息
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(orderVo.getSkuId());
GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo);
orderDetails.setGoodsSkuInfoVo(nftGoodsSkuInfoVo);
// 加入列表
orderVoList.add(orderDetails);
}
PageInfo<GoblinNftOrderDetailsVo> pageInfo = new PageInfo(orderVoList);
pageInfo.setTotal(orderIds.size());
......@@ -59,18 +64,22 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService {
@Override
public ResponseDto<GoblinNftOrderDetailsVo> orderDetails(String orderId) {
GoblinNftOrderVo orderVo = redisUtils.getGoblinNftOrder(orderId);
if (null == orderVo) {
return ResponseDto.failure("订单不存在");
}
String uid = CurrentUtil.getCurrentUid();
if (orderVo == null || !orderVo.getUserId().equals(uid)) {
if (!orderVo.getUserId().equals(uid)) {
return ResponseDto.failure(ErrorMapping.get("20003"));
}
// 订单信息
GoblinNftOrderDetailsVo orderDetails = GoblinNftOrderDetailsVo.getNew().copy(orderVo);
// 商品信息
GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(orderVo.getSkuId());
GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo);
orderDetails.setGoodsSkuInfoVo(nftGoodsSkuInfoVo);
GoblinNftOrderDetailsVo vo = GoblinNftOrderDetailsVo.getNew();
BeanUtils.copyProperties(orderVo, vo);
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderVo.getSkuId());
vo.setOrderSkuVo(orderSkuVo);
return ResponseDto.success(vo);
return ResponseDto.success(orderDetails);
}
}
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