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

Commit aba25111 authored by jiangxiulong's avatar jiangxiulong

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

parent 0cef63d2
package com.liquidnet.service.goblin.dto.vo; 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.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -22,7 +24,7 @@ import java.time.LocalDateTime; ...@@ -22,7 +24,7 @@ import java.time.LocalDateTime;
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class GoblinNftOrderDetailsVo implements Serializable, Cloneable { public class GoblinNftOrderDetailsVo implements Serializable, Cloneable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = -7411254314501150169L;
@ApiModelProperty(value = "订单id") @ApiModelProperty(value = "订单id")
private String orderId; private String orderId;
...@@ -45,110 +47,21 @@ public class GoblinNftOrderDetailsVo implements Serializable, Cloneable { ...@@ -45,110 +47,21 @@ public class GoblinNftOrderDetailsVo implements Serializable, Cloneable {
@ApiModelProperty(value = "订单号") @ApiModelProperty(value = "订单号")
private String orderCode; 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 = "应付金额") @ApiModelProperty(value = "应付金额")
private BigDecimal priceTotal; 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 = "实付金额") @ApiModelProperty(value = "实付金额")
private BigDecimal priceActual; 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已退款") @ApiModelProperty(value = "订单状态 1待付款 2已付款 3未付款取消订单 4退款中 5已退款")
private Integer status; private Integer status;
@ApiModelProperty(value = "订单来源 app|h5|applet") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
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;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private LocalDateTime createdAt; private LocalDateTime createdAt;
@ApiModelProperty(value = "更新时间")
private LocalDateTime updatedAt;
@ApiModelProperty(value = "商品信息") @ApiModelProperty(value = "商品信息")
GoblinOrderSkuVo orderSkuVo; GoblinNftGoodsSkuInfoVo goodsSkuInfoVo;
private static final GoblinNftOrderDetailsVo obj = new GoblinNftOrderDetailsVo(); private static final GoblinNftOrderDetailsVo obj = new GoblinNftOrderDetailsVo();
...@@ -159,4 +72,21 @@ public class GoblinNftOrderDetailsVo implements Serializable, Cloneable { ...@@ -159,4 +72,21 @@ public class GoblinNftOrderDetailsVo implements Serializable, Cloneable {
return new GoblinNftOrderDetailsVo(); 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; ...@@ -10,11 +10,15 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
@Slf4j @Slf4j
@Api(tags = "NFT商品-App") @Api(tags = "NFT商品-App")
@RestController @RestController
@Validated
@RequestMapping("/nftGoods") @RequestMapping("/nftGoods")
public class GoblinNftGoodsAppController { public class GoblinNftGoodsAppController {
...@@ -38,7 +42,7 @@ public class GoblinNftGoodsAppController { ...@@ -38,7 +42,7 @@ public class GoblinNftGoodsAppController {
@ApiImplicitParam(type = "query", required = true, dataType = "String", name = "skuId", value = "skuId", example = "1"), @ApiImplicitParam(type = "query", required = true, dataType = "String", name = "skuId", value = "skuId", example = "1"),
}) })
public ResponseDto<GoblinNftGoodsSkuInfoVo> getGoodsDetail( public ResponseDto<GoblinNftGoodsSkuInfoVo> getGoodsDetail(
@RequestParam("skuId") String skuId @RequestParam("skuId") @NotBlank(message = "skuId不能为空") String skuId
) { ) {
GoblinNftGoodsSkuInfoVo vo = goblinNftGoodsAppService.goodsDetail(skuId); GoblinNftGoodsSkuInfoVo vo = goblinNftGoodsAppService.goodsDetail(skuId);
if (vo == null) { if (vo == null) {
......
...@@ -10,16 +10,18 @@ import io.swagger.annotations.ApiImplicitParams; ...@@ -10,16 +10,18 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; 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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid; import javax.validation.constraints.NotBlank;
@Slf4j @Slf4j
@Api(tags = "NFT订单相关-App") @Api(tags = "NFT订单相关-App")
@RestController @RestController
@Validated
@RequestMapping("/nftOrder") @RequestMapping("/nftOrder")
public class GoblinNftOrderAppController { public class GoblinNftOrderAppController {
...@@ -29,18 +31,20 @@ public class GoblinNftOrderAppController { ...@@ -29,18 +31,20 @@ public class GoblinNftOrderAppController {
@PostMapping("list") @PostMapping("list")
@ApiOperation("用户订单列表") @ApiOperation("用户订单列表")
@ApiImplicitParams({ @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); return goblinNftOrderAppService.orderList(page);
} }
@PostMapping("details") @PostMapping("details")
@ApiOperation("订单详情") @ApiOperation("订单详情")
@ApiImplicitParams({ @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); return goblinNftOrderAppService.orderDetails(orderId);
} }
......
...@@ -55,7 +55,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService { ...@@ -55,7 +55,7 @@ public class GoblinNftGoodsAppServiceImpl implements IGoblinNftGoodsAppService {
skuList = new ArrayList<>(); skuList = new ArrayList<>();
// 分页 排序:按照开售时间 // 分页 排序:按照开售时间
// TODO: jxl 2022/3/30 售罄放后面 // 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); query.with(pageable);
List<GoblinGoodsSkuInfoVo> skuInfoVos = mongoTemplate.find(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName()); List<GoblinGoodsSkuInfoVo> skuInfoVos = mongoTemplate.find(query, GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
......
...@@ -4,13 +4,13 @@ import com.github.pagehelper.PageInfo; ...@@ -4,13 +4,13 @@ import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; 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.GoblinNftOrderDetailsVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftOrderVo; 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.service.IGoblinNftOrderAppService;
import com.liquidnet.service.goblin.util.*; import com.liquidnet.service.goblin.util.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -28,6 +28,8 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService { ...@@ -28,6 +28,8 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService {
QueueUtils queueUtils; QueueUtils queueUtils;
@Autowired @Autowired
GoblinOrderUtils orderUtils; GoblinOrderUtils orderUtils;
@Autowired
private GoblinRedisUtils goblinRedisUtils;
@Override @Override
public ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(int page) { public ResponseDto<PageInfo<GoblinNftOrderDetailsVo>> orderList(int page) {
...@@ -44,12 +46,15 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService { ...@@ -44,12 +46,15 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService {
} }
for (int i = initCount; i >= finalCount; i--) { for (int i = initCount; i >= finalCount; i--) {
String orderId = orderIds.get(i); String orderId = orderIds.get(i);
// 订单信息
GoblinNftOrderVo orderVo = redisUtils.getGoblinNftOrder(orderId); GoblinNftOrderVo orderVo = redisUtils.getGoblinNftOrder(orderId);
GoblinNftOrderDetailsVo vo = GoblinNftOrderDetailsVo.getNew(); GoblinNftOrderDetailsVo orderDetails = GoblinNftOrderDetailsVo.getNew().copy(orderVo);
BeanUtils.copyProperties(orderVo, vo); // 商品信息
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderVo.getSkuId()); GoblinGoodsSkuInfoVo goodsSkuInfoVo = goblinRedisUtils.getGoodsSkuInfoVo(orderVo.getSkuId());
vo.setOrderSkuVo(orderSkuVo); GoblinNftGoodsSkuInfoVo nftGoodsSkuInfoVo = GoblinNftGoodsSkuInfoVo.getNew().copy(goodsSkuInfoVo);
orderVoList.add(vo); orderDetails.setGoodsSkuInfoVo(nftGoodsSkuInfoVo);
// 加入列表
orderVoList.add(orderDetails);
} }
PageInfo<GoblinNftOrderDetailsVo> pageInfo = new PageInfo(orderVoList); PageInfo<GoblinNftOrderDetailsVo> pageInfo = new PageInfo(orderVoList);
pageInfo.setTotal(orderIds.size()); pageInfo.setTotal(orderIds.size());
...@@ -59,18 +64,22 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService { ...@@ -59,18 +64,22 @@ public class GoblinNftOrderAppServiceImpl implements IGoblinNftOrderAppService {
@Override @Override
public ResponseDto<GoblinNftOrderDetailsVo> orderDetails(String orderId) { public ResponseDto<GoblinNftOrderDetailsVo> orderDetails(String orderId) {
GoblinNftOrderVo orderVo = redisUtils.getGoblinNftOrder(orderId); GoblinNftOrderVo orderVo = redisUtils.getGoblinNftOrder(orderId);
if (null == orderVo) {
return ResponseDto.failure("订单不存在");
}
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
if (orderVo == null || !orderVo.getUserId().equals(uid)) { if (!orderVo.getUserId().equals(uid)) {
return ResponseDto.failure(ErrorMapping.get("20003")); 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(); return ResponseDto.success(orderDetails);
BeanUtils.copyProperties(orderVo, vo);
GoblinOrderSkuVo orderSkuVo = redisUtils.getGoblinOrderSkuVo(orderVo.getSkuId());
vo.setOrderSkuVo(orderSkuVo);
return ResponseDto.success(vo);
} }
} }
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