From 931630ef85602c2c834899caa024af22073c04ca Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 25 Jun 2021 16:46:17 +0800
Subject: [PATCH] modify addOrder and goodsList
---
gc-core/src/main/java/com/xzx/gc/entity/ScoreDetails.java | 7 +++
gc-core/src/main/resources/application.properties | 2
gc-core/src/main/java/com/xzx/gc/common/utils/IdUtils.java | 2
gc-shop/src/main/java/com/xzx/gc/shop/dto/AddGoodsOrderDto.java | 3 +
gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java | 2
gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java | 12 +++++
gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java | 80 +++++++++++++++++++++++++++++++++++++++
gc-core/src/main/java/com/xzx/gc/common/constant/Constants.java | 3 +
8 files changed, 106 insertions(+), 5 deletions(-)
diff --git a/gc-core/src/main/java/com/xzx/gc/common/constant/Constants.java b/gc-core/src/main/java/com/xzx/gc/common/constant/Constants.java
index fe2d431..b236390 100644
--- a/gc-core/src/main/java/com/xzx/gc/common/constant/Constants.java
+++ b/gc-core/src/main/java/com/xzx/gc/common/constant/Constants.java
@@ -218,5 +218,8 @@
//禁用
public static final String FORBIDDEN="S0";
+ public static final String ADDRESS_TYPE_SHOP = "商铺";
+ public static final String ADDRESS_TYPE_HOME = "住宅";
+
}
diff --git a/gc-core/src/main/java/com/xzx/gc/common/utils/IdUtils.java b/gc-core/src/main/java/com/xzx/gc/common/utils/IdUtils.java
index 2d07deb..0033ed8 100644
--- a/gc-core/src/main/java/com/xzx/gc/common/utils/IdUtils.java
+++ b/gc-core/src/main/java/com/xzx/gc/common/utils/IdUtils.java
@@ -15,7 +15,7 @@
/**
* 生成分布式唯一全局ID
* @param prefix ID前缀 如支付:ZF
- * @param datacenterId 数据中心ID(0~31) 0:支付 1 订单 2入库 3 用户 4账户 5特殊用户 6废品站 7结算 8请假
+ * @param datacenterId 数据中心ID(0~31) 0:支付 1 订单 2入库 3 用户 4账户 5特殊用户 6废品站 7结算 8请假 9积分商城
* @return
*/
public String generate(String prefix,long datacenterId){
diff --git a/gc-core/src/main/java/com/xzx/gc/entity/ScoreDetails.java b/gc-core/src/main/java/com/xzx/gc/entity/ScoreDetails.java
index d49971d..c074a03 100644
--- a/gc-core/src/main/java/com/xzx/gc/entity/ScoreDetails.java
+++ b/gc-core/src/main/java/com/xzx/gc/entity/ScoreDetails.java
@@ -18,6 +18,13 @@
//交易类型 1-用户充值2-集物员支付3-用户兑换所得4-用户消费5-消费退回6-管理员充值7-其他
private Integer type;
+ public static final Integer SCORE_TYPE_USER_RECHARGE = 1;
+ public static final Integer SCORE_TYPE_PAY = 2;
+ public static final Integer SCORE_TYPE_EXCHANGE = 3;
+ public static final Integer SCORE_TYPE_SHOPPING = 4;
+ public static final Integer SCORE_TYPE_SHOPPING_RETURN = 5;
+ public static final Integer SCORE_TYPE_ADMIN_RECHARGE = 6;
+ public static final Integer SCORE_TYPE_OTHER = 7;
//原始积分
private BigDecimal originalScore;
diff --git a/gc-core/src/main/resources/application.properties b/gc-core/src/main/resources/application.properties
index 832738b..b09f250 100644
--- a/gc-core/src/main/resources/application.properties
+++ b/gc-core/src/main/resources/application.properties
@@ -11,7 +11,7 @@
#log
-project.log.path=/xzx/logs
+project.log.path=xzx/logs
logstash.server.url=localhost:4560
#spring
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
index f758151..fcdc534 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/controller/ApiGoodsController.java
@@ -9,6 +9,7 @@
import com.xzx.gc.shop.dto.AddGoodsOrderDto;
import com.xzx.gc.shop.dto.XcxGoodsListDto;
import com.xzx.gc.shop.service.GoodsService;
+import com.xzx.gc.shop.service.OrderService;
import com.xzx.gc.shop.vo.GoodsCategoryVo;
import com.xzx.gc.shop.vo.XcxGoodsDetailVo;
import com.xzx.gc.shop.vo.XcxGoodsListVo;
@@ -30,6 +31,9 @@
@Autowired
private GoodsService goodsService;
+
+ @Autowired
+ private OrderService orderService;
@ApiOperation("分类列表")
@ApiResponses(
@@ -58,11 +62,17 @@
return JsonResult.success(goodsService.findGoodsDetails(id));
}
+ @ApiOperation("积分商城下单")
@PostMapping(value = "/goods/order/add")
public Result<String> addOrder(@RequestBody AddGoodsOrderDto addGoodsOrderDto, HttpServletRequest request) {
String userId = getUserId(request);
addGoodsOrderDto.setUserId(userId);
- return null;
+
+ orderService.addOrder(addGoodsOrderDto);
+
+ Result<String> result = Result.success();
+ result.setMsg("下单成功");
+ return result;
}
}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/dto/AddGoodsOrderDto.java b/gc-shop/src/main/java/com/xzx/gc/shop/dto/AddGoodsOrderDto.java
index aa6ce27..7793e06 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/dto/AddGoodsOrderDto.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/dto/AddGoodsOrderDto.java
@@ -21,6 +21,9 @@
@ApiModelProperty(value = "数量")
private Integer cnt;
+ @ApiModelProperty(value = "备注")
+ private String remark;
+
@ApiModelProperty(hidden = true)
private String userId;
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
index 93eb34e..358fbc1 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java
@@ -3,10 +3,14 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
+import com.xzx.gc.common.constant.Constants;
+import com.xzx.gc.common.exception.RestException;
+import com.xzx.gc.common.utils.IdUtils;
import com.xzx.gc.entity.*;
import com.xzx.gc.shop.dto.AddGoodsOrderDto;
import com.xzx.gc.shop.dto.DeliverGoodsDto;
@@ -23,6 +27,7 @@
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -56,6 +61,11 @@
@Autowired
private ScoreGoodsMapper scoreGoodsMapper;
+ @Autowired
+ private ScoreDetailsMapper scoreDetailsMapper;
+
+ @Autowired
+ private IdUtils idUtils;
public Map<String, Object> queryOrderList(QueryOrderListDto model) {
String name = model.getName();
@@ -148,9 +158,77 @@
ScoreGoodsStyle style = scoreGoodsStyleMapper.selectByPrimaryKey(addGoodsOrderDto.getStyleId());
ScoreGoodsSku sku = scoreGoodsSkuMapper.selectByPrimaryKey(addGoodsOrderDto.getSkuId());
ScoreGoods goods = scoreGoodsMapper.selectByPrimaryKey(style.getGoodsId());
+ if (goods == null || ScoreGoods.ISSALE_NO.equals(goods.getIsSale())) {
+ throw new RestException(-3, "商品不存在或已下架");
+ }
+ AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(addGoodsOrderDto.getUserId());
+ if (accountInfo.getCollectScore() == null) {
+ throw new RestException(-3, "积分不足");
+ }
+
+ BigDecimal totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
+ BigDecimal score = new BigDecimal(accountInfo.getCollectScore());
+ if (score.compareTo(totalPrice) < 0) {
+ throw new RestException(-3, "积分不足");
+ }
+
+ ScoreOrder order = new ScoreOrder();
+ order.setOrderNo(idUtils.generate("JF", 9));
+ order.setCnt(addGoodsOrderDto.getCnt());
+ order.setTotalPrice(totalPrice);
+ order.setCreatedTime(new Date());
+ order.setUserId(addGoodsOrderDto.getUserId());
+ order.setStatus(ScoreOrder.STATUS_READY);
+ order.setGoodsName(goods.getName());
+ order.setRemark(addGoodsOrderDto.getRemark());
+ scoreOrderMapper.insert(order);
+
+ ScoreOrderDetails orderDetails = new ScoreOrderDetails();
+ orderDetails.setGoodsName(goods.getName());
+ orderDetails.setStyle(style.getName());
+ orderDetails.setSku(sku.getName());
+ orderDetails.setOrderId(order.getId());
+ orderDetails.setCnt(addGoodsOrderDto.getCnt());
+ orderDetails.setTotalPrice(totalPrice);
+ orderDetails.setUnitPrice(sku.getPresentPrice());
+ orderDetails.setGoodsId(goods.getId());
+ orderDetails.setThumb(goods.getThumb());
+ scoreOrderDetailsMapper.insert(orderDetails);
AddressInfo addressInfo = addressInfoMapper.selectByPrimaryKey(addGoodsOrderDto.getAddressId());
- AccountInfo accountInfo = accountInfoMapper.selectAccountInfoByUserId(addGoodsOrderDto.getUserId());
+ ScoreExpressInfo expressInfo = new ScoreExpressInfo();
+ expressInfo.setUsername(addressInfo.getRelaName());
+ expressInfo.setPhone(addressInfo.getMobilePhone());
+ expressInfo.setUserId(addressInfo.getUserId());
+ expressInfo.setOrderId(order.getId());
+ StringBuffer address = new StringBuffer();
+ address.append(addressInfo.getAddressArea());
+ address.append(addressInfo.getDetailAddress());
+ if (StrUtil.isNotBlank(addressInfo.getTagName())) {
+ address.append(StrUtil.isNotBlank(addressInfo.getHouseName()) ? addressInfo.getHouseName() : "");
+ if (Constants.ADDRESS_TYPE_HOME.equals(addressInfo.getTagName())) {
+ address.append(StrUtil.isNotBlank(addressInfo.getHouseNumber()) ? addressInfo.getHouseNumber() : "");
+ address.append(StrUtil.isNotBlank(addressInfo.getUnitName()) ? addressInfo.getUnitName() : "");
+ }
+ }
+ expressInfo.setAddress(address.toString());
+ expressInfo.setCreatedTime(new Date());
+ scoreExpressInfoMapper.insert(expressInfo);
+
+ AccountInfo update = new AccountInfo();
+ update.setAccountId(accountInfo.getAccountId());
+ BigDecimal remianScore = score.subtract(totalPrice);
+ update.setCollectScore(remianScore.toString());
+ accountInfoMapper.updateByPrimaryKey(update);
+
+ ScoreDetails scoreDetails = new ScoreDetails();
+ scoreDetails.setOrderNo(order.getOrderNo());
+ scoreDetails.setUserId(addGoodsOrderDto.getUserId());
+ scoreDetails.setType(ScoreDetails.SCORE_TYPE_SHOPPING);
+ scoreDetails.setOriginalScore(score);
+ scoreDetails.setCurrentScore(remianScore);
+ scoreDetails.setChangeScore(totalPrice);
+ scoreDetailsMapper.insert(scoreDetails);
}
}
diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java
index b939f1b..1424123 100644
--- a/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java
+++ b/gc-shop/src/main/java/com/xzx/gc/shop/vo/XcxGoodsListVo.java
@@ -15,7 +15,7 @@
private String name;
@ApiModelProperty(value = "图片")
- private String image;
+ private String thumb;
@ApiModelProperty(value = "现价")
private String presentPrice;
--
Gitblit v1.9.1