Browse Source

1. 根据货号搜索商品(更新后为严格关键字搜索)
2. 订单详情页新增单位/重量 显示
3. 其他商品申报功能(商家端,店铺设置中维护,其中星光已经维护好)
4. 订单支持录入合同号(暂未放入申报接口中,周一沟通后完成)

郑杰 2 years ago
parent
commit
0d39f0b572
22 changed files with 237 additions and 34 deletions
  1. 19 0
      framework/src/main/java/cn/lili/modules/order/customs/CustomPayloadEnums.java
  2. 12 14
      framework/src/main/java/cn/lili/modules/order/customs/CustomPayload.java
  3. 19 3
      framework/src/main/java/cn/lili/modules/order/customs/JiangyinServiceManager.java
  4. 2 2
      framework/src/main/java/cn/lili/modules/order/customs/converter/CustomsReqConverter.java
  5. 3 3
      framework/src/main/java/cn/lili/modules/order/customs/converter/JiangyinServiceBeanReqConverter.java
  6. 5 5
      framework/src/main/java/cn/lili/modules/order/customs/converter/JiangyinServiceReqConverter.java
  7. 2 3
      framework/src/main/java/cn/lili/modules/order/customs/model/CEB303Message.java
  8. 2 2
      framework/src/main/java/cn/lili/modules/order/customs/model/Order.java
  9. 5 0
      framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
  10. 7 0
      framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java
  11. 7 0
      framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java
  12. 6 0
      framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
  13. 29 0
      framework/src/main/java/cn/lili/modules/store/entity/dos/StoreCustoms.java
  14. 34 0
      framework/src/main/java/cn/lili/modules/store/entity/vos/StoreSettingVO.java
  15. 15 0
      framework/src/main/java/cn/lili/modules/store/mapper/StoreCustomsMapper.java
  16. 10 0
      framework/src/main/java/cn/lili/modules/store/mapper/StoreMapper.java
  17. 8 0
      framework/src/main/java/cn/lili/modules/store/service/StoreDetailService.java
  18. 8 0
      framework/src/main/java/cn/lili/modules/store/service/StoreService.java
  19. 15 0
      framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreDetailServiceImpl.java
  20. 9 0
      framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreServiceImpl.java
  21. 8 0
      seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java
  22. 12 2
      seller-api/src/main/java/cn/lili/controller/settings/StoreSettingsController.java

+ 19 - 0
framework/src/main/java/cn/lili/modules/order/customs/CustomPayloadEnums.java

@@ -0,0 +1,19 @@
1
+package cn.lili.modules.order.customs;
2
+
3
+import lombok.ToString;
4
+
5
+@ToString
6
+public enum CustomPayloadEnums {
7
+    JiangyinXingguang("DXPENT0000474373", "DXP", "江阴星光进出口有限公司", "3216960A23", "dcits123456", "test");
8
+
9
+    CustomPayloadEnums(String dxpId, String dxpMode, String copName, String copCode, String signKey, String note) {
10
+        this.payload = new CustomsPayload();
11
+        payload.dxpId = dxpId;
12
+        payload.dxpMode = dxpMode;
13
+        payload.copName = copName;
14
+        payload.copCode = copCode;
15
+        payload.signKey = signKey;
16
+        payload.note = note;
17
+    }
18
+    CustomsPayload payload;
19
+}

+ 12 - 14
framework/src/main/java/cn/lili/modules/order/customs/CustomPayload.java

@@ -1,20 +1,11 @@
1 1
 package cn.lili.modules.order.customs;
2 2
 
3
-import lombok.ToString;
4
-
5
-@ToString
6
-public enum CustomPayload {
7
-    JiangyinXingguang("DXPENT0000474373", "DXP", "江阴星光进出口有限公司", "3216960A23", "dcits123456", "test");
8
-
9
-    CustomPayload(String dxpId, String dxpMode, String copName, String copCode, String signKey, String note) {
10
-        this.dxpId = dxpId;
11
-        this.dxpMode = dxpMode;
12
-        this.copName = copName;
13
-        this.copCode = copCode;
14
-        this.signKey = signKey;
15
-        this.note = note;
16
-    }
3
+import cn.hutool.core.bean.BeanUtil;
4
+import cn.lili.modules.store.entity.dos.StoreCustoms;
5
+import lombok.Data;
17 6
 
7
+@Data
8
+public class CustomsPayload {
18 9
     /** 向中国电子口岸数据中心申请数据交换平台的用户编号 */
19 10
     public String dxpId;
20 11
     /** 默认为DXP,指中国电子口岸数据交换平台 */
@@ -27,4 +18,11 @@ public enum CustomPayload {
27 18
     public String signKey;
28 19
     /** 备注 */
29 20
     public String note;
21
+
22
+    public static CustomsPayload fromSetting(StoreCustoms customs){
23
+        if (customs == null){
24
+            return null;
25
+        }
26
+        return BeanUtil.toBean(customs, CustomsPayload.class);
27
+    }
30 28
 }

+ 19 - 3
framework/src/main/java/cn/lili/modules/order/customs/JiangyinServiceManager.java

@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
6 6
 import cn.hutool.core.lang.Assert;
7 7
 import cn.hutool.http.HttpUtil;
8 8
 import cn.hutool.json.JSONUtil;
9
+import cn.lili.common.enums.ResultCode;
9 10
 import cn.lili.common.exception.ServiceException;
10 11
 import cn.lili.common.utils.AesEncrypt;
11 12
 import cn.lili.modules.order.customs.converter.CustomsReqConverter;
@@ -15,6 +16,7 @@ import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
15 16
 import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
16 17
 import cn.lili.modules.order.order.mapper.OrderCustomsMapper;
17 18
 import cn.lili.modules.order.order.mapper.OrderMapper;
19
+import cn.lili.modules.store.mapper.StoreCustomsMapper;
18 20
 import lombok.extern.slf4j.Slf4j;
19 21
 import org.springframework.beans.factory.annotation.Autowired;
20 22
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -22,7 +24,9 @@ import org.springframework.stereotype.Component;
22 24
 
23 25
 import java.time.LocalDateTime;
24 26
 import java.util.Map;
27
+import java.util.Optional;
25 28
 import java.util.UUID;
29
+import java.util.concurrent.ConcurrentHashMap;
26 30
 
27 31
 import static cn.lili.common.enums.ResultCode.ORDER_CUSTOMS_ERROR;
28 32
 
@@ -38,21 +42,27 @@ public class JiangyinServiceManager {
38 42
 
39 43
     private final OrderCustomsMapper orderCustomsMapper;
40 44
 
45
+    private final StoreCustomsMapper storeCustomsMapper;
46
+
47
+    private final Map<String, CustomsPayload> payloadCache = new ConcurrentHashMap<>();
48
+
41 49
     @Autowired
42 50
     public JiangyinServiceManager(@Qualifier("jiangyinServiceBeanReqConverter") CustomsReqConverter converter,
43 51
                                   OrderMapper orderMapper,
44
-                                  OrderCustomsMapper orderCustomsMapper) {
52
+                                  OrderCustomsMapper orderCustomsMapper,
53
+                                  StoreCustomsMapper storeCustomsMapper) {
45 54
         this.converter = converter;
46 55
         this.orderMapper = orderMapper;
47 56
         this.orderCustomsMapper = orderCustomsMapper;
57
+        this.storeCustomsMapper = storeCustomsMapper;
48 58
     }
49 59
 
50 60
     public boolean push(OrderDetailVO detailVO){
51 61
         Assert.isTrue(!detailVO.getOrder().getCustomsFlag(), () -> new ServiceException(ORDER_CUSTOMS_ERROR,"订单已推送海关,请勿重复推送"));
52 62
         Assert.isTrue(PayStatusEnum.PAID.name().equals(detailVO.getOrder().getPayStatus()),
53 63
                 () -> new ServiceException(ORDER_CUSTOMS_ERROR,"订单尚未支付,无法推送海关"));
54
-        // 企业凭证相关(后续动态获取)
55
-        CustomPayload payload = CustomPayload.JiangyinXingguang;
64
+        // 企业凭证信息
65
+        CustomsPayload payload = getStorePayload(detailVO.getOrder().getStoreId());
56 66
         OrderCustoms customsRec = new OrderCustoms();
57 67
         log.info("method input param: {}, payload: {}", JSONUtil.toJsonStr(detailVO), payload.toString());
58 68
         // 报文内容(密文)
@@ -86,5 +96,11 @@ public class JiangyinServiceManager {
86 96
         orderCustomsMapper.insert(customsRec);
87 97
         return success;
88 98
     }
99
+
100
+    CustomsPayload getStorePayload(String storeId){
101
+        return Optional.ofNullable(
102
+                payloadCache.computeIfAbsent(storeId, key -> CustomsPayload.fromSetting(storeCustomsMapper.selectById(key)))
103
+        ).orElseThrow(() -> new ServiceException(ResultCode.ORDER_CUSTOMS_ERROR, "未找到商家海关凭证"));
104
+    }
89 105
 }
90 106
 

+ 2 - 2
framework/src/main/java/cn/lili/modules/order/customs/converter/CustomsReqConverter.java

@@ -1,11 +1,11 @@
1 1
 package cn.lili.modules.order.customs.converter;
2 2
 
3
-import cn.lili.modules.order.customs.CustomPayload;
4 3
 import cn.lili.modules.order.customs.CustomsExchange;
4
+import cn.lili.modules.order.customs.CustomsPayload;
5 5
 
6 6
 public interface CustomsReqConverter{
7 7
     /** 生成报文 */
8
-    String toReq(CustomsExchange exchange, CustomPayload payload);
8
+    String toReq(CustomsExchange exchange, CustomsPayload payload);
9 9
 
10 10
     /** 获取签名 */
11 11
     String getSign(String content, String key);

+ 3 - 3
framework/src/main/java/cn/lili/modules/order/customs/converter/JiangyinServiceBeanReqConverter.java

@@ -9,8 +9,8 @@ import cn.lili.common.utils.JaxbUtils;
9 9
 import cn.lili.modules.goods.entity.dos.Goods;
10 10
 import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
11 11
 import cn.lili.modules.goods.service.GoodsService;
12
-import cn.lili.modules.order.customs.CustomPayload;
13 12
 import cn.lili.modules.order.customs.CustomsExchange;
13
+import cn.lili.modules.order.customs.CustomsPayload;
14 14
 import cn.lili.modules.order.customs.model.CEB303Message;
15 15
 import cn.lili.modules.order.order.entity.dos.OrderItem;
16 16
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +34,7 @@ public class JiangyinServiceBeanReqConverter implements CustomsReqConverter{
34 34
     }
35 35
 
36 36
     @Override
37
-    public String toReq(CustomsExchange exchange, CustomPayload payload) {
37
+    public String toReq(CustomsExchange exchange, CustomsPayload payload) {
38 38
         return JaxbUtils.convertToXml(converterToMsg(exchange, payload));
39 39
     }
40 40
 
@@ -58,7 +58,7 @@ public class JiangyinServiceBeanReqConverter implements CustomsReqConverter{
58 58
                 .isPresent();
59 59
     }
60 60
 
61
-    private CEB303Message converterToMsg(CustomsExchange exchange, CustomPayload payload){
61
+    private CEB303Message converterToMsg(CustomsExchange exchange, CustomsPayload payload){
62 62
         exchange.setAppTime(DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN));
63 63
         // 批量获取商品信息
64 64
         String ids = exchange.getOrderDetailVO().getOrderItems().stream().map(OrderItem::getGoodsId).collect(Collectors.joining(","));

+ 5 - 5
framework/src/main/java/cn/lili/modules/order/customs/converter/JiangyinServiceReqConverter.java

@@ -10,8 +10,8 @@ import cn.lili.common.exception.UnitIllegalException;
10 10
 import cn.lili.modules.goods.entity.dos.Goods;
11 11
 import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
12 12
 import cn.lili.modules.goods.service.GoodsService;
13
-import cn.lili.modules.order.customs.CustomPayload;
14 13
 import cn.lili.modules.order.customs.CustomsExchange;
14
+import cn.lili.modules.order.customs.CustomsPayload;
15 15
 import cn.lili.modules.order.order.entity.dos.OrderItem;
16 16
 import org.springframework.beans.factory.annotation.Autowired;
17 17
 import org.springframework.stereotype.Component;
@@ -37,7 +37,7 @@ public class JiangyinServiceReqConverter implements CustomsReqConverter{
37 37
     }
38 38
 
39 39
     @Override
40
-    public String toReq(CustomsExchange exchange, CustomPayload payload) {
40
+    public String toReq(CustomsExchange exchange, CustomsPayload payload) {
41 41
         // map解析
42 42
         Map<String, Object> m = orderToMap(exchange, payload);
43 43
         Document ceb = XmlUtil.mapToXml(m, "ceb:CEB303Message");
@@ -78,7 +78,7 @@ public class JiangyinServiceReqConverter implements CustomsReqConverter{
78 78
      * @param payload 存根(企业凭证相关)
79 79
      * @return 符合报文格式的Map
80 80
      */
81
-    private Map<String, Object> orderToMap(CustomsExchange exchange, CustomPayload payload){
81
+    private Map<String, Object> orderToMap(CustomsExchange exchange, CustomsPayload payload){
82 82
         Map<String, Object> reqMap = new LinkedHashMap<>();
83 83
         // 1. ceb:order
84 84
         reqMap.put(CEB_PREFIX + "Order", order(exchange, payload));
@@ -94,7 +94,7 @@ public class JiangyinServiceReqConverter implements CustomsReqConverter{
94 94
      * @param payload 存根(企业凭证相关)
95 95
      * @return 报文List数据
96 96
      */
97
-    private List<Map<String, Object>> order(CustomsExchange exchange, CustomPayload payload){
97
+    private List<Map<String, Object>> order(CustomsExchange exchange, CustomsPayload payload){
98 98
         exchange.setAppTime(DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATETIME_PATTERN));
99 99
         List<Map<String, Object>> orderList = new ArrayList<>(0);
100 100
         Optional.ofNullable(exchange.getOrderDetailVO().getOrderItems()).ifPresent(items -> {
@@ -183,7 +183,7 @@ public class JiangyinServiceReqConverter implements CustomsReqConverter{
183 183
      * @param payload 存根信息
184 184
      * @return 基础报文传输Map列表
185 185
      */
186
-    private List<Map<String, Object>> baseTransfer(CustomPayload payload){
186
+    private List<Map<String, Object>> baseTransfer(CustomsPayload payload){
187 187
         List<Map<String, Object>> transfers = new ArrayList<>();
188 188
         Map<String, Object> transfer = new HashMap<>(8);
189 189
         // 传输企业代码

+ 2 - 3
framework/src/main/java/cn/lili/modules/order/customs/model/CEB303Message.java

@@ -1,8 +1,7 @@
1 1
 package cn.lili.modules.order.customs.model;
2 2
 
3
-import cn.lili.modules.order.customs.CustomPayload;
4 3
 import cn.lili.modules.order.customs.CustomsExchange;
5
-import lombok.Builder;
4
+import cn.lili.modules.order.customs.CustomsPayload;
6 5
 import lombok.Data;
7 6
 import lombok.NoArgsConstructor;
8 7
 
@@ -32,7 +31,7 @@ public class CEB303Message {
32 31
     @XmlElement(name = "BaseTransfer", namespace = NAMESPACE_CEB_URI)
33 32
     private BaseTransfer baseTransfer;
34 33
 
35
-    public CEB303Message(CustomsExchange exchange, CustomPayload payload){
34
+    public CEB303Message(CustomsExchange exchange, CustomsPayload payload){
36 35
         this.guid = exchange.getGuid();
37 36
         this.order = new Order(exchange, payload);
38 37
         this.baseTransfer = BaseTransfer.builder()

+ 2 - 2
framework/src/main/java/cn/lili/modules/order/customs/model/Order.java

@@ -1,8 +1,8 @@
1 1
 package cn.lili.modules.order.customs.model;
2 2
 
3 3
 import cn.lili.common.enums.JGS20Unit;
4
-import cn.lili.modules.order.customs.CustomPayload;
5 4
 import cn.lili.modules.order.customs.CustomsExchange;
5
+import cn.lili.modules.order.customs.CustomsPayload;
6 6
 import cn.lili.modules.order.order.entity.dos.OrderItem;
7 7
 import lombok.Data;
8 8
 import lombok.NoArgsConstructor;
@@ -32,7 +32,7 @@ public class Order {
32 32
     @XmlElement(name = "OrderList", namespace = NAMESPACE_CEB_URI)
33 33
     private List<OrderList> orderList;
34 34
 
35
-    public Order(CustomsExchange exchange, CustomPayload payload){
35
+    public Order(CustomsExchange exchange, CustomsPayload payload){
36 36
         this.orderHead = OrderHead.builder()
37 37
                 .guid(exchange.getGuid())
38 38
                 .appType("1")

+ 5 - 0
framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java

@@ -23,6 +23,7 @@ import lombok.EqualsAndHashCode;
23 23
 import lombok.NoArgsConstructor;
24 24
 import org.springframework.format.annotation.DateTimeFormat;
25 25
 
26
+import javax.validation.constraints.Size;
26 27
 import java.util.Date;
27 28
 import java.util.Optional;
28 29
 
@@ -153,6 +154,10 @@ public class Order extends BaseEntity {
153 154
     @ApiModelProperty(value = "商品数量")
154 155
     private Integer goodsNum;
155 156
 
157
+    @Size(max = 200, message = "合同号不能超过200个字符")
158
+    @ApiModelProperty(value = "合同号")
159
+    private String contractNo;
160
+
156 161
     @ApiModelProperty(value = "买家订单备注")
157 162
     private String remark;
158 163
 

+ 7 - 0
framework/src/main/java/cn/lili/modules/order/order/mapper/OrderMapper.java

@@ -85,4 +85,11 @@ public interface OrderMapper extends BaseMapper<Order> {
85 85
     List<Order> queryListByParams(@Param(Constants.WRAPPER) Wrapper<Order> queryWrapper);
86 86
 
87 87
 
88
+    /**
89
+     * 更新订单合同号
90
+     * @param orderSn 订单编号
91
+     * @param contractNo 合同编号
92
+     */
93
+    @Update("update li_order o set o.contract_no = #{contractNo} where o.sn = #{orderSn}")
94
+    void updateContractNo(String orderSn, String contractNo);
88 95
 }

+ 7 - 0
framework/src/main/java/cn/lili/modules/order/order/service/OrderService.java

@@ -212,6 +212,13 @@ public interface OrderService extends IService<Order> {
212 212
     void systemComplete(String orderSn);
213 213
 
214 214
     /**
215
+     * 订单更新合同号
216
+     * @param orderSn 订单编号
217
+     * @param contractNo 合同号
218
+     */
219
+    void updateContractNo(String orderSn, String contractNo);
220
+
221
+    /**
215 222
      * 通过trade 获取订单列表
216 223
      *
217 224
      * @param tradeSn 交易编号

+ 6 - 0
framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java

@@ -532,6 +532,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
532 532
         complete(order, orderSn);
533 533
     }
534 534
 
535
+    @Override
536
+    @OrderLogPoint(description = "'订单['+#orderSn+']更新合同号['+#contractNo+']'", orderSn = "#orderSn")
537
+    public void updateContractNo(String orderSn, String contractNo) {
538
+        this.baseMapper.updateContractNo(orderSn, contractNo);
539
+    }
540
+
535 541
     /**
536 542
      * 完成订单方法封装
537 543
      *

+ 29 - 0
framework/src/main/java/cn/lili/modules/store/entity/dos/StoreCustoms.java

@@ -0,0 +1,29 @@
1
+package cn.lili.modules.store.entity.dos;
2
+
3
+import cn.lili.mybatis.BaseIdEntity;
4
+import com.baomidou.mybatisplus.annotation.TableName;
5
+import io.swagger.annotations.ApiModelProperty;
6
+import lombok.Data;
7
+
8
+@Data
9
+@TableName("li_store_customs")
10
+public class StoreCustoms extends BaseIdEntity {
11
+    /** 向中国电子口岸数据中心申请数据交换平台的用户编号 */
12
+    @ApiModelProperty(value = "向中国电子口岸数据中心申请数据交换平台的用户编号")
13
+    public String dxpId;
14
+    /** 默认为DXP,指中国电子口岸数据交换平台 */
15
+    @ApiModelProperty(value = "默认为DXP,指中国电子口岸数据交换平台")
16
+    public String dxpMode;
17
+    /** 报文传输的企业代码(海关编码,需要与接入客户端的企业身份一致) */
18
+    @ApiModelProperty(value = "报文传输的企业代码(海关编码,需要与接入客户端的企业身份一致)")
19
+    public String copCode;
20
+    /** 报文传输的企业名称 */
21
+    @ApiModelProperty(value = "报文传输的企业名称")
22
+    public String copName;
23
+    /** 签名key */
24
+    @ApiModelProperty(value = "签名key")
25
+    public String signKey;
26
+    /** 备注 */
27
+    @ApiModelProperty(value = "备注")
28
+    public String note;
29
+}

+ 34 - 0
framework/src/main/java/cn/lili/modules/store/entity/vos/StoreSettingVO.java

@@ -0,0 +1,34 @@
1
+package cn.lili.modules.store.entity.vos;
2
+
3
+import io.swagger.annotations.ApiModelProperty;
4
+import lombok.Data;
5
+
6
+/**
7
+ * 店铺VO
8
+ *
9
+ * @author pikachu
10
+ * @since 2020-03-07 17:02:05
11
+ */
12
+@Data
13
+public class StoreSettingVO extends StoreVO {
14
+
15
+    /** 向中国电子口岸数据中心申请数据交换平台的用户编号 */
16
+    @ApiModelProperty(value = "向中国电子口岸数据中心申请数据交换平台的用户编号")
17
+    public String dxpId;
18
+    /** 默认为DXP,指中国电子口岸数据交换平台 */
19
+    @ApiModelProperty(value = "默认为DXP,指中国电子口岸数据交换平台")
20
+    public String dxpMode;
21
+    /** 报文传输的企业代码(海关编码,需要与接入客户端的企业身份一致) */
22
+    @ApiModelProperty(value = "报文传输的企业代码(海关编码,需要与接入客户端的企业身份一致)")
23
+    public String copCode;
24
+    /** 报文传输的企业名称 */
25
+    @ApiModelProperty(value = "报文传输的企业名称")
26
+    public String copName;
27
+    /** 签名key */
28
+    @ApiModelProperty(value = "签名key")
29
+    public String signKey;
30
+    /** 备注 */
31
+    @ApiModelProperty(value = "备注")
32
+    public String note;
33
+
34
+}

+ 15 - 0
framework/src/main/java/cn/lili/modules/store/mapper/StoreCustomsMapper.java

@@ -0,0 +1,15 @@
1
+package cn.lili.modules.store.mapper;
2
+
3
+import cn.lili.modules.store.entity.dos.StoreCustoms;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+
6
+
7
+/**
8
+ * 商家海关凭证数据处理层
9
+ *
10
+ * @author Chopper
11
+ * @since 2020/11/17 4:27 下午
12
+ */
13
+public interface StoreCustomsMapper extends BaseMapper<StoreCustoms> {
14
+
15
+}

+ 10 - 0
framework/src/main/java/cn/lili/modules/store/mapper/StoreMapper.java

@@ -1,6 +1,7 @@
1 1
 package cn.lili.modules.store.mapper;
2 2
 
3 3
 import cn.lili.modules.store.entity.dos.Store;
4
+import cn.lili.modules.store.entity.vos.StoreSettingVO;
4 5
 import cn.lili.modules.store.entity.vos.StoreVO;
5 6
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
6 7
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -28,6 +29,15 @@ public interface StoreMapper extends BaseMapper<Store> {
28 29
     StoreVO getStoreDetail(String id);
29 30
 
30 31
     /**
32
+     * 获取店铺详细
33
+     *
34
+     * @param id 店铺ID
35
+     * @return 店铺VO
36
+     */
37
+    @Select("select s.*,d.*,c.* from li_store s inner join li_store_detail d on s.id=d.store_id left join li_store_customs c on s.id = c.id where s.id=#{id} ")
38
+    StoreSettingVO getStoreSetting(String id);
39
+
40
+    /**
31 41
      * 获取店铺分页列表
32 42
      *
33 43
      * @param page         分页

+ 8 - 0
framework/src/main/java/cn/lili/modules/store/service/StoreDetailService.java

@@ -2,6 +2,7 @@ package cn.lili.modules.store.service;
2 2
 
3 3
 import cn.hutool.core.date.DateTime;
4 4
 import cn.lili.modules.store.entity.dos.Store;
5
+import cn.lili.modules.store.entity.dos.StoreCustoms;
5 6
 import cn.lili.modules.store.entity.dos.StoreDetail;
6 7
 import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
7 8
 import cn.lili.modules.store.entity.dto.StoreSettingDTO;
@@ -138,4 +139,11 @@ public interface StoreDetailService extends IService<StoreDetail> {
138 139
      * @param dateTime 结算日
139 140
      */
140 141
     void updateSettlementDay(String storeId, DateTime dateTime);
142
+
143
+    /**
144
+     * 修改商家海关凭证
145
+     * @param customs 商家设置
146
+     * @return 是否修改成功
147
+     */
148
+    Boolean editStoreCustoms(StoreCustoms customs);
141 149
 }

+ 8 - 0
framework/src/main/java/cn/lili/modules/store/service/StoreService.java

@@ -5,6 +5,7 @@ import cn.lili.modules.member.entity.dto.CollectionDTO;
5 5
 import cn.lili.modules.store.entity.dos.Store;
6 6
 import cn.lili.modules.store.entity.dto.*;
7 7
 import cn.lili.modules.store.entity.vos.StoreSearchParams;
8
+import cn.lili.modules.store.entity.vos.StoreSettingVO;
8 9
 import cn.lili.modules.store.entity.vos.StoreVO;
9 10
 import com.baomidou.mybatisplus.core.metadata.IPage;
10 11
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -27,6 +28,13 @@ public interface StoreService extends IService<Store> {
27 28
     IPage<StoreVO> findByConditionPage(StoreSearchParams entity, PageVO page);
28 29
 
29 30
     /**
31
+     * 获取当前登录店铺设置信息
32
+     *
33
+     * @return 店铺信息DO
34
+     */
35
+    StoreSettingVO getStoreSetting();
36
+
37
+    /**
30 38
      * 获取当前登录店铺信息
31 39
      *
32 40
      * @return 店铺信息DO

+ 15 - 0
framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreDetailServiceImpl.java

@@ -12,6 +12,7 @@ import cn.lili.modules.goods.service.CategoryService;
12 12
 import cn.lili.modules.goods.service.GoodsService;
13 13
 import cn.lili.modules.search.utils.EsIndexUtil;
14 14
 import cn.lili.modules.store.entity.dos.Store;
15
+import cn.lili.modules.store.entity.dos.StoreCustoms;
15 16
 import cn.lili.modules.store.entity.dos.StoreDetail;
16 17
 import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
17 18
 import cn.lili.modules.store.entity.dto.StoreSettingDTO;
@@ -20,6 +21,7 @@ import cn.lili.modules.store.entity.vos.StoreBasicInfoVO;
20 21
 import cn.lili.modules.store.entity.vos.StoreDetailVO;
21 22
 import cn.lili.modules.store.entity.vos.StoreManagementCategoryVO;
22 23
 import cn.lili.modules.store.entity.vos.StoreOtherVO;
24
+import cn.lili.modules.store.mapper.StoreCustomsMapper;
23 25
 import cn.lili.modules.store.mapper.StoreDetailMapper;
24 26
 import cn.lili.modules.store.service.StoreDetailService;
25 27
 import cn.lili.modules.store.service.StoreService;
@@ -64,6 +66,9 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
64 66
     @Autowired
65 67
     private RocketMQTemplate rocketMQTemplate;
66 68
 
69
+    @Autowired
70
+    private StoreCustomsMapper storeCustomsMapper;
71
+
67 72
     @Override
68 73
     public StoreDetailVO getStoreDetailVO(String storeId) {
69 74
         return this.baseMapper.getStoreDetail(storeId);
@@ -138,6 +143,16 @@ public class StoreDetailServiceImpl extends ServiceImpl<StoreDetailMapper, Store
138 143
     }
139 144
 
140 145
     @Override
146
+    public Boolean editStoreCustoms(StoreCustoms customs) {
147
+        if (storeCustomsMapper.exists(new LambdaQueryWrapper<StoreCustoms>().eq(StoreCustoms::getId, customs.getId()))){
148
+            storeCustomsMapper.updateById(customs);
149
+        }else {
150
+            storeCustomsMapper.insert(customs);
151
+        }
152
+        return true;
153
+    }
154
+
155
+    @Override
141 156
     public StoreBasicInfoVO getStoreBasicInfoDTO(String storeId) {
142 157
         return this.baseMapper.getStoreBasicInfoDTO(storeId);
143 158
     }

+ 9 - 0
framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreServiceImpl.java

@@ -17,6 +17,7 @@ import cn.lili.modules.store.entity.dos.StoreDetail;
17 17
 import cn.lili.modules.store.entity.dto.*;
18 18
 import cn.lili.modules.store.entity.enums.StoreStatusEnum;
19 19
 import cn.lili.modules.store.entity.vos.StoreSearchParams;
20
+import cn.lili.modules.store.entity.vos.StoreSettingVO;
20 21
 import cn.lili.modules.store.entity.vos.StoreVO;
21 22
 import cn.lili.modules.store.mapper.StoreMapper;
22 23
 import cn.lili.modules.store.service.StoreDetailService;
@@ -66,6 +67,14 @@ public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements
66 67
     }
67 68
 
68 69
     @Override
70
+    public StoreSettingVO getStoreSetting() {
71
+        AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
72
+        StoreSettingVO storeVO = this.baseMapper.getStoreSetting(currentUser.getStoreId());
73
+        storeVO.setNickName(currentUser.getNickName());
74
+        return storeVO;
75
+    }
76
+
77
+    @Override
69 78
     public StoreVO getStoreDetail() {
70 79
         AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
71 80
         StoreVO storeVO = this.baseMapper.getStoreDetail(currentUser.getStoreId());

+ 8 - 0
seller-api/src/main/java/cn/lili/controller/order/OrderStoreController.java

@@ -181,6 +181,14 @@ public class OrderStoreController {
181 181
         return ResultUtil.data(orderService.customsPush(orderSn)? "推送成功" : "推送失败");
182 182
     }
183 183
 
184
+    @ApiOperation(value = "订单更新合同号")
185
+    @PutMapping(path = "/contractNo/{orderSn}/{contractNo}")
186
+    public ResultMessage<Object> updateCon(@NotBlank(message = "订单编号不能为空") @PathVariable String orderSn,
187
+                                           @NotBlank(message = "订单编号不能为空") @PathVariable String contractNo) {
188
+        orderService.updateContractNo(orderSn, contractNo);
189
+        return ResultUtil.data(ResultCode.SUCCESS.message());
190
+    }
191
+
184 192
     @ApiOperation(value = "报关回调接口")
185 193
     @PostMapping(path = "/customs/callback")
186 194
     public ResultMessage<Object> customsCallback(String signMsg, String content, String msgType, String copMsgId) {

+ 12 - 2
seller-api/src/main/java/cn/lili/controller/settings/StoreSettingsController.java

@@ -3,8 +3,10 @@ package cn.lili.controller.settings;
3 3
 
4 4
 import cn.lili.common.enums.ResultUtil;
5 5
 import cn.lili.common.vo.ResultMessage;
6
+import cn.lili.modules.store.entity.dos.StoreCustoms;
6 7
 import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
7 8
 import cn.lili.modules.store.entity.dto.StoreSettingDTO;
9
+import cn.lili.modules.store.entity.vos.StoreSettingVO;
8 10
 import cn.lili.modules.store.entity.vos.StoreVO;
9 11
 import cn.lili.modules.store.service.StoreDetailService;
10 12
 import cn.lili.modules.store.service.StoreService;
@@ -43,9 +45,17 @@ public class StoreSettingsController {
43 45
 
44 46
     @ApiOperation(value = "获取商家设置")
45 47
     @GetMapping
46
-    public ResultMessage<StoreVO> get() {
48
+    public ResultMessage<?> get() {
47 49
         //获取当前登录商家内容
48
-        return ResultUtil.data(storeService.getStoreDetail());
50
+        return ResultUtil.data(storeService.getStoreSetting());
51
+    }
52
+
53
+    @ApiOperation(value = "修改商家海关凭证")
54
+    @PutMapping("/customs")
55
+    public ResultMessage<Object> edit(StoreCustoms customs) {
56
+        //修改商家海关凭证
57
+        Boolean result = storeDetailService.editStoreCustoms(customs);
58
+        return ResultUtil.data(result);
49 59
     }
50 60
 
51 61
     @ApiOperation(value = "修改商家设置")