Jelajahi Sumber

查询全部渠道

fubojin 3 minggu lalu
induk
melakukan
25cead482b
41 mengubah file dengan 567 tambahan dan 405 penghapusan
  1. 1 1
      yami-shop-api/src/main/java/com/yami/shop/api/controller/AddrController.java
  2. 20 20
      yami-shop-api/src/main/resources/application-dev.yml
  3. 20 20
      yami-shop-api/src/main/resources/application-prod.yml
  4. 21 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/dto/SetChannelPriceDto.java
  5. 42 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/dto/UpdateShannerProdDTO.java
  6. 1 2
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/CategoryBrand.java
  7. 0 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/CategoryProd.java
  8. 7 2
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/Channel.java
  9. 5 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/Label.java
  10. 5 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/ShopDetail.java
  11. 16 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/ShopSku.java
  12. 5 1
      yami-shop-bean/src/main/java/com/yami/shop/bean/model/Sku.java
  13. 13 6
      yami-shop-bean/src/main/java/com/yami/shop/bean/vo/ChannelProdExportVO.java
  14. 6 8
      yami-shop-bean/src/main/java/com/yami/shop/bean/vo/ChannelProdImportVO.java
  15. 1 5
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/dao/Transport2Mapper.java
  16. 1 4
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/Transport2Service.java
  17. 1 1
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/TransportManagerService.java
  18. 1 4
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/Transport2ServiceImpl.java
  19. 1 3
      yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/TransportManagerServiceImpl.java
  20. 2 2
      yami-shop-delivery/yami-shop-delivery-comment/src/main/resources/mapper/Transport2Mapper.xml
  21. 20 20
      yami-shop-multishop/src/main/resources/application-dev.yml
  22. 41 0
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ChannelController.java
  23. 32 16
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ChannelProdController.java
  24. 19 6
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/LabelController.java
  25. 21 2
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ShopDetailController.java
  26. 12 4
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ShopSkuController.java
  27. 0 107
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/SysDictDataController.java
  28. 0 112
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/SysDictTypeController.java
  29. 0 11
      yami-shop-platform/src/main/java/com/yami/shop/platform/controller/hb/GoodsController.java
  30. 25 1
      yami-shop-service/src/main/java/com/yami/shop/dao/ChannelProdMapper.java
  31. 0 0
      yami-shop-service/src/main/java/com/yami/shop/dao/HBTransport2Mapper.java
  32. 14 7
      yami-shop-service/src/main/java/com/yami/shop/service/ChannelProdService.java
  33. 14 0
      yami-shop-service/src/main/java/com/yami/shop/service/ChannelService.java
  34. 10 0
      yami-shop-service/src/main/java/com/yami/shop/service/ShopSkuService.java
  35. 0 6
      yami-shop-service/src/main/java/com/yami/shop/service/hb/IHBGoodsService.java
  36. 29 14
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBGoodsService.java
  37. 26 4
      yami-shop-service/src/main/java/com/yami/shop/service/impl/ChannelProdServiceImpl.java
  38. 21 0
      yami-shop-service/src/main/java/com/yami/shop/service/impl/ChannelServiceImpl.java
  39. 35 0
      yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopSkuServiceImpl.java
  40. 78 13
      yami-shop-service/src/main/resources/mapper/ChannelProdMapper.xml
  41. 1 1
      yami-shop-service/src/main/resources/mapper/ShopSkuMapper.xml

+ 1 - 1
yami-shop-api/src/main/java/com/yami/shop/api/controller/AddrController.java

@@ -16,7 +16,7 @@ import com.yami.shop.bean.app.dto.UserAddrDto;
 import com.yami.shop.bean.app.param.AddrParam;
 import com.yami.shop.bean.model.UserAddr;
 import com.yami.shop.common.exception.GlobalException;
-import com.yami.shop.delivery.comment.model.Transport2;
+import com.yami.shop.bean.model.Transport2;
 import com.yami.shop.delivery.comment.service.Transport2Service;
 import com.yami.shop.delivery.comment.service.TransportManagerService;
 import com.yami.shop.security.api.util.SecurityUtils;

+ 20 - 20
yami-shop-api/src/main/resources/application-dev.yml

@@ -1,21 +1,21 @@
-server:
-  port: 8112
-spring:
-  datasource:
-    url: jdbc:mysql://192.168.1.242:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
-    username: root
-    password: FaajjVy8rl(k
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    type: com.zaxxer.hikari.HikariDataSource
-    hikari:
-      minimum-idle: 0
-      maximum-pool-size: 100
-      idle-timeout: 10000
-      auto-commit: true
-      connection-test-query: select 1
-  redis:
-    redisson:
-      config: classpath:redisson/redisson-dev.yml
-
-logging:
+server:
+  port: 8112
+spring:
+  datasource:
+    url: jdbc:mysql://192.168.1.242:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
+    username: root
+    password: FaajjVy8rl(k
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    type: com.zaxxer.hikari.HikariDataSource
+    hikari:
+      minimum-idle: 0
+      maximum-pool-size: 100
+      idle-timeout: 10000
+      auto-commit: true
+      connection-test-query: select 1
+  redis:
+    redisson:
+      config: classpath:redisson/redisson-dev.yml
+
+logging:
   config: classpath:logback/logback-dev.xml

+ 20 - 20
yami-shop-api/src/main/resources/application-prod.yml

@@ -1,20 +1,20 @@
-server:
-  port: 8112
-spring:
-  datasource:
-    url: jdbc:mysql://172.23.240.101:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
-    username: root
-    password: TtbTeGJBnDvH4hMx
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    type: com.zaxxer.hikari.HikariDataSource
-    hikari:
-      minimum-idle: 0
-      maximum-pool-size: 20
-      idle-timeout: 25000
-      auto-commit: true
-      connection-test-query: select 1
-  redis:
-    redisson:
-      config: classpath:redisson/redisson-prod.yml
-logging:
-  config: classpath:logback/logback-prod.xml
+server:
+  port: 8112
+spring:
+  datasource:
+    url: jdbc:mysql://172.23.240.101:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
+    username: root
+    password: TtbTeGJBnDvH4hMx
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    type: com.zaxxer.hikari.HikariDataSource
+    hikari:
+      minimum-idle: 0
+      maximum-pool-size: 20
+      idle-timeout: 25000
+      auto-commit: true
+      connection-test-query: select 1
+  redis:
+    redisson:
+      config: classpath:redisson/redisson-prod.yml
+logging:
+  config: classpath:logback/logback-prod.xml

+ 21 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/SetChannelPriceDto.java

@@ -0,0 +1,21 @@
+
+package com.yami.shop.bean.dto;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel("设置渠道价格")
+@Data
+public class SetChannelPriceDto {
+
+    @ApiModelProperty("渠道ID")
+    private Long channelId;
+
+    @ApiModelProperty("渠道售价")
+    private BigDecimal channelProdPrice;
+
+}

+ 42 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/UpdateShannerProdDTO.java

@@ -0,0 +1,42 @@
+package com.yami.shop.bean.dto;
+
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 更新渠道商品价格
+ * @author fbj
+ */
+@Data
+public class UpdateShannerProdDTO {
+
+    /**
+     * 店铺id
+     */
+    private Long shopId;
+    /**
+     * 商品id
+     */
+    private Long skuId;
+
+
+    /**
+     * 进货价
+     */
+    private BigDecimal purchasePrice;
+
+    /**
+     * 出货价
+     */
+    private BigDecimal deliveryPrice;
+
+
+    /**
+     * 渠道价格
+     */
+    private List<SetChannelPriceDto> setChannelPriceDtoList;
+
+}

+ 1 - 2
yami-shop-bean/src/main/java/com/yami/shop/bean/model/CategoryBrand.java

@@ -19,7 +19,6 @@ import java.io.Serializable;
 @TableName("tz_category_brand")
 public class CategoryBrand implements Serializable {
     @TableId
-
     private Long id;
 
     /**
@@ -33,4 +32,4 @@ public class CategoryBrand implements Serializable {
      */
 
     private Long brandId;
-}
+}

+ 0 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/model/CategoryProd.java

@@ -19,7 +19,6 @@ import java.io.Serializable;
 @TableName("tz_category_prod")
 public class CategoryProd implements Serializable {
     @TableId
-
     private Long id;
 
     /**

+ 7 - 2
yami-shop-bean/src/main/java/com/yami/shop/bean/model/Channel.java

@@ -30,12 +30,17 @@ public class Channel implements Serializable {
     /**
      * 主键
      */
-    @TableId(type = IdType.INPUT)
+    @TableId
     private Long id;
 
     /**
      * 渠道名称
      */
-    private Long channelName;
+    private String channelName;
+
+    /**
+     * 渠道类型(1-企业用户,2-B端用户,3-C端用户)
+     */
+    private String type;
 
 }

+ 5 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/Label.java

@@ -36,6 +36,11 @@ public class Label implements Serializable {
      */
     private Integer type;
 
+    /**
+     * 是否删除(0-未删除,1-已删除)
+     */
+    private Integer isDelete;
+
     /**
      * 创建日期
      */

+ 5 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/model/ShopDetail.java

@@ -41,9 +41,13 @@ public class ShopDetail implements Serializable {
      */
     private String outStationNo;
     /**
-     * 海博门店编码
+     * 海博门店ID
      */
     private String hbStationId;
+    /**
+     * 海博门店编码
+     */
+    private String hbStationNo;
 
     /**
      * 店长用户id

+ 16 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/ShopSku.java

@@ -10,6 +10,7 @@
 
 package com.yami.shop.bean.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -18,6 +19,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 @Data
 @TableName("tz_shop_sku")
@@ -39,6 +41,10 @@ public class ShopSku implements Serializable {
      * 单品ID
      */
     private Long skuId;
+    /**
+     * 单品ID
+     */
+    private Long spuId;
 
     /**
      * 商品对应门店价格
@@ -67,4 +73,14 @@ public class ShopSku implements Serializable {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date recTime;
 
+    /**
+     * 渠道商品
+     */
+    @TableField(exist = false)
+    private List<ChannelProd> channelProdList;
+    /**
+     * 商品详细
+     */
+    @TableField(exist = false)
+    private Sku sku;
 }

+ 5 - 1
yami-shop-bean/src/main/java/com/yami/shop/bean/model/Sku.java

@@ -27,7 +27,7 @@ public class Sku implements Serializable {
     /**
      * 单品ID
      */
-    @TableId(type = IdType.INPUT)
+    @TableId
     private Long skuId;
     /**
      * 商品ID
@@ -49,6 +49,10 @@ public class Sku implements Serializable {
     private String properties;
 
     private String skuCode;
+    /**
+     * 规格
+     */
+    private String spec;
 
     /**
      * 原价

+ 13 - 6
yami-shop-bean/src/main/java/com/yami/shop/bean/vo/ChannelProdExportVO.java

@@ -2,6 +2,7 @@ package com.yami.shop.bean.vo;
 
 
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -13,25 +14,31 @@ import java.math.BigDecimal;
 public class ChannelProdExportVO {
 
     @ExcelProperty(value = "海博商品ID", index = 0)
+    @ColumnWidth(20)
     private String skuId;
 
     @ExcelProperty(value = "商品名称", index = 1)
+    @ColumnWidth(40)
     private String skuName;
 
-    @ExcelProperty(value = "销售渠道", index = 2)
-    private String channelName;
-
     @ExcelProperty(value = "门店名称", index = 3)
+    @ColumnWidth(20)
     private String shopName;
 
+    @ExcelProperty(value = "销售渠道", index = 2)
+    @ColumnWidth(20)
+    private String channelName;
 
-    @ExcelProperty(value = "进货价", index = 4)
+    @ExcelProperty(value = "进货价(元)", index = 4)
+    @ColumnWidth(20)
     private BigDecimal purchasePrice;
 
-    @ExcelProperty(value = "出货价", index = 5)
+    @ExcelProperty(value = "出货价(元)", index = 5)
+    @ColumnWidth(20)
     private BigDecimal deliveryPrice;
 
-    @ExcelProperty(value = "渠道售价", index = 6)
+    @ExcelProperty(value = "渠道售价(元)", index = 6)
+    @ColumnWidth(20)
     private BigDecimal channelProdPrice;
 
 }

+ 6 - 8
yami-shop-bean/src/main/java/com/yami/shop/bean/vo/ChannelProdImportVO.java

@@ -17,38 +17,36 @@ import java.math.BigDecimal;
 @ContentStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 9) // 内容背景色(9=淡黄色)
 public class ChannelProdImportVO {
 
-
     @ExcelProperty(value = "海博商品ID", index = 0)
     @ColumnWidth(20) // 列宽
     @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER) // 居中对齐
     private String skuId;
 
     @ExcelProperty(value = "商品名称", index = 1)
-    @ColumnWidth(40) // 列宽
+    @ColumnWidth(40)
     @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT)
     private String skuName;
 
     @ExcelProperty(value = "销售渠道", index = 2)
-    @ColumnWidth(20) // 列宽
+    @ColumnWidth(20)
     @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT)
     private String channelName;
 
     @ExcelProperty(value = "门店名称", index = 3)
-    @ColumnWidth(20) // 列宽
+    @ColumnWidth(20)
     @ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.LEFT)
     private String shopName;
 
-
     @ExcelProperty(value = "进货价(元)", index = 4)
-    @ColumnWidth(20) // 列宽
+    @ColumnWidth(20)
     private BigDecimal purchasePrice;
 
     @ExcelProperty(value = "出货价(元)", index = 5)
-    @ColumnWidth(20) // 列宽
+    @ColumnWidth(20)
     private BigDecimal deliveryPrice;
 
     @ExcelProperty(value = "渠道售价(元)", index = 6)
-    @ColumnWidth(20) // 列宽
+    @ColumnWidth(20)
     private BigDecimal channelProdPrice;
 
 }

+ 1 - 5
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/dao/Transport2Mapper.java

@@ -11,14 +11,10 @@
 package com.yami.shop.delivery.comment.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yami.shop.delivery.comment.model.TransfeeFree;
-import com.yami.shop.delivery.comment.model.Transport;
-import com.yami.shop.delivery.comment.model.Transport2;
+import com.yami.shop.bean.model.Transport2;
 import com.yami.shop.delivery.comment.param.ShopTransport;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.List;
-
 public interface Transport2Mapper extends BaseMapper<Transport2> {
 
 

+ 1 - 4
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/Transport2Service.java

@@ -12,13 +12,10 @@ package com.yami.shop.delivery.comment.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.yami.shop.delivery.comment.model.Transport;
-import com.yami.shop.delivery.comment.model.Transport2;
+import com.yami.shop.bean.model.Transport2;
 import com.yami.shop.delivery.comment.param.ShopTransport;
 import org.springframework.cache.annotation.CacheEvict;
 
-import java.util.List;
-
 /**
  * @author lgh on 2018/11/16.
  */

+ 1 - 1
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/TransportManagerService.java

@@ -13,7 +13,7 @@ package com.yami.shop.delivery.comment.service;
 import com.yami.shop.bean.app.dto.ProductItemDto;
 import com.yami.shop.bean.app.dto.ShopCartItemDto;
 import com.yami.shop.bean.model.UserAddr;
-import com.yami.shop.delivery.comment.model.Transport2;
+import com.yami.shop.bean.model.Transport2;
 
 import java.util.List;
 

+ 1 - 4
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/Transport2ServiceImpl.java

@@ -12,7 +12,7 @@ package com.yami.shop.delivery.comment.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yami.shop.delivery.comment.dao.Transport2Mapper;
-import com.yami.shop.delivery.comment.model.Transport2;
+import com.yami.shop.bean.model.Transport2;
 import com.yami.shop.delivery.comment.param.ShopTransport;
 import com.yami.shop.delivery.comment.service.Transport2Service;
 import lombok.AllArgsConstructor;
@@ -21,9 +21,6 @@ import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Collections;
-import java.util.List;
-
 /**
  * @author lgh on 2018/11/16.
  */

+ 1 - 3
yami-shop-delivery/yami-shop-delivery-comment/src/main/java/com/yami/shop/delivery/comment/service/impl/TransportManagerServiceImpl.java

@@ -11,20 +11,18 @@
 package com.yami.shop.delivery.comment.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.yami.shop.bean.app.dto.ProductItemDto;
 import com.yami.shop.bean.app.dto.ShopCartItemDto;
 import com.yami.shop.bean.enums.TransportChargeType;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.common.exception.GlobalException;
-import com.yami.shop.common.exception.YamiShopBindException;
 import com.yami.shop.common.util.Arith;
 import com.yami.shop.common.util.Json;
 import com.yami.shop.delivery.comment.model.Transfee;
 import com.yami.shop.delivery.comment.model.TransfeeFree;
 import com.yami.shop.delivery.comment.model.Transport;
-import com.yami.shop.delivery.comment.model.Transport2;
+import com.yami.shop.bean.model.Transport2;
 import com.yami.shop.delivery.comment.service.Transport2Service;
 import com.yami.shop.delivery.comment.service.TransportManagerService;
 import com.yami.shop.delivery.comment.service.TransportService;

+ 2 - 2
yami-shop-delivery/yami-shop-delivery-comment/src/main/resources/mapper/Transport2Mapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yami.shop.delivery.comment.dao.Transport2Mapper">
-    <resultMap id="BaseResultMap" type="com.yami.shop.delivery.comment.model.Transport2">
+    <resultMap id="BaseResultMap" type="com.yami.shop.bean.model.Transport2">
         <id column="transport_id" jdbcType="BIGINT" property="transportId"/>
         <result column="trans_name" jdbcType="VARCHAR" property="transName"/>
         <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
@@ -36,7 +36,7 @@
     <select id="findByTransportId" resultMap="BaseResultMap">
         select *
         from tz_transport2 p
-        where port.transport_id = #{transportId}
+        where p.transport_id = #{transportId}
     </select>
 
 

+ 20 - 20
yami-shop-multishop/src/main/resources/application-dev.yml

@@ -1,20 +1,20 @@
-server:
-  port: 8113
-spring:
-  datasource:
-    url: jdbc:mysql://192.168.1.242:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true
-    username: root
-    password: FaajjVy8rl(k
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    type: com.zaxxer.hikari.HikariDataSource
-    hikari:
-      minimum-idle: 0
-      maximum-pool-size: 20
-      idle-timeout: 10000
-      auto-commit: true
-      connection-test-query: SELECT 1
-  redis:
-    redisson:
-      config: classpath:redisson/redisson-dev.yml
-logging:
-  config: classpath:logback/logback-dev.xml
+server:
+  port: 8113
+spring:
+  datasource:
+    url: jdbc:mysql://192.168.1.242:3306/yami_bbc?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+    username: root
+    password: FaajjVy8rl(k
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    type: com.zaxxer.hikari.HikariDataSource
+    hikari:
+      minimum-idle: 0
+      maximum-pool-size: 20
+      idle-timeout: 10000
+      auto-commit: true
+      connection-test-query: SELECT 1
+  redis:
+    redisson:
+      config: classpath:redisson/redisson-dev.yml
+logging:
+  config: classpath:logback/logback-dev.xml

+ 41 - 0
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ChannelController.java

@@ -0,0 +1,41 @@
+
+package com.yami.shop.platform.controller;
+
+
+import com.yami.shop.bean.model.Channel;
+import com.yami.shop.bean.model.ChannelProd;
+import com.yami.shop.common.util.R;
+import com.yami.shop.service.ChannelService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 渠道管理控制器
+ *
+ * @author lgh on 2024/01/01.
+ */
+@RestController
+@RequestMapping("/platform/channel")
+@Api(tags = "渠道管理接口")
+@AllArgsConstructor
+public class ChannelController {
+    private final ChannelService channelService;
+
+    /**
+     * 查询全部
+     */
+    @GetMapping("/listAll")
+    @ApiOperation(value = "根据渠道ID获取商品列表")
+    public R<List<Channel>> listAll() {
+        List<Channel> channels = channelService.list();
+        return R.SUCCESS(channels);
+    }
+
+}

+ 32 - 16
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ChannelProdController.java

@@ -2,6 +2,7 @@ package com.yami.shop.platform.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.dto.UpdateShannerProdDTO;
 import com.yami.shop.bean.model.ChannelProd;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.R;
@@ -18,6 +19,7 @@ import java.util.List;
 
 /**
  * 渠道商品管理控制器
+ *
  * @author lgh on 2024/01/01.
  */
 @RestController
@@ -35,6 +37,7 @@ public class ChannelProdController {
         return R.SUCCESS(channelProds);
     }
 
+
     @GetMapping("/sku/{skuId}")
     @ApiOperation(value = "根据SKU ID获取渠道商品列表")
     public R<List<ChannelProd>> getChannelProdsBySkuId(@PathVariable Long skuId) {
@@ -53,49 +56,63 @@ public class ChannelProdController {
 
     @GetMapping("/page")
     @ApiOperation(value = "分页查询渠道商品")
-    public R<IPage<ChannelProd>> getChannelProdPage(PageParam<ChannelProd> page, ChannelProd channelProd) {
-        IPage<ChannelProd> channelProdPage = channelProdService.getChannelProdPage(page, channelProd);
+    public R<IPage<ChannelProd>> getChannelProdPage(
+            @RequestParam(defaultValue = "1") Integer current,
+            @RequestParam(defaultValue = "10") Integer size,
+            ChannelProd channelProd) {
+
+        PageParam page = new PageParam();
+        page.setCurrent(current);
+        page.setSize(size);
+        IPage<ChannelProd> channelProdPage = channelProdService.page(page);
         return R.SUCCESS(channelProdPage);
     }
 
     @PostMapping
     @ApiOperation(value = "保存渠道商品")
-    public R<Void> saveChannelProd(@RequestBody @Valid ChannelProd channelProd) {
+    public R saveChannelProd(@RequestBody @Valid ChannelProd channelProd) {
         channelProdService.saveChannelProd(channelProd);
         return R.SUCCESS();
     }
 
+    @PutMapping("/setUpChannels")
+    @ApiOperation(value = "设置销售渠道及价格")
+    public R setUpChannels(@RequestBody UpdateShannerProdDTO updateShannerProdDTO) {
+        channelProdService.setUpChannels(updateShannerProdDTO);
+        return R.SUCCESS();
+    }
+
     @PutMapping
     @ApiOperation(value = "更新渠道商品")
-    public R<Void> updateChannelProd(@RequestBody @Valid ChannelProd channelProd) {
+    public R updateChannelProd(@RequestBody @Valid ChannelProd channelProd) {
         channelProdService.updateChannelProd(channelProd);
         return R.SUCCESS();
     }
 
     @DeleteMapping("/{id}")
     @ApiOperation(value = "根据ID删除渠道商品")
-    public R<Void> deleteChannelProdById(@PathVariable Long id) {
+    public R deleteChannelProdById(@PathVariable Long id) {
         channelProdService.deleteChannelProdById(id);
         return R.SUCCESS();
     }
 
     @DeleteMapping("/channel/{channelId}")
     @ApiOperation(value = "根据渠道ID删除渠道商品")
-    public R<Void> deleteChannelProdsBychannelId(@PathVariable Long channelId) {
+    public R deleteChannelProdsBychannelId(@PathVariable Long channelId) {
         channelProdService.deleteChannelProdsBychannelId(channelId);
         return R.SUCCESS();
     }
 
     @DeleteMapping("/sku/{skuId}")
     @ApiOperation(value = "根据SKU ID删除渠道商品")
-    public R<Void> deleteChannelProdsBySkuId(@PathVariable Long skuId) {
+    public R deleteChannelProdsBySkuId(@PathVariable Long skuId) {
         channelProdService.deleteChannelProdsBySkuId(skuId);
         return R.SUCCESS();
     }
 
     @PutMapping("/batch/prices")
     @ApiOperation(value = "批量更新渠道商品价格")
-    public R<Void> updateBatchPrices(@RequestBody List<ChannelProd> channelProds) {
+    public R updateBatchPrices(@RequestBody List<ChannelProd> channelProds) {
         channelProdService.updateBatchPrices(channelProds);
         return R.SUCCESS();
     }
@@ -124,24 +141,23 @@ public class ChannelProdController {
     }
 
 
-
     @GetMapping("/template/download")
     @ApiOperation(value = "下载渠道商品导入模板")
-    public void downloadTemplate(HttpServletResponse response){
-            channelProdService.downloadTemplate(response);
+    public void downloadTemplate(HttpServletResponse response) {
+        channelProdService.downloadTemplate(response);
     }
 
     @PostMapping("/import")
     @ApiOperation(value = "导入渠道商品数据")
     public R<String> importChannelProds(@RequestParam("file") MultipartFile file) {
-            String result = channelProdService.importChannelProds(file);
-            return R.SUCCESS(result);
+        String result = channelProdService.importChannelProds(file);
+        return R.SUCCESS(result);
     }
 
-    @PostMapping("/export")
+    @GetMapping("/export")
     @ApiOperation(value = "导出渠道商品数据")
-    public void exportChannelProds(@RequestBody ChannelProd channelProd, HttpServletResponse response) {
-            channelProdService.exportChannelProds(channelProd, response);
+    public void exportChannelProds(ChannelProd channelProd, HttpServletResponse response) {
+        channelProdService.exportChannelProds(channelProd, response);
     }
 
 }

+ 19 - 6
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/LabelController.java

@@ -1,6 +1,7 @@
 // LabelController.java
 package com.yami.shop.platform.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.model.Label;
 import com.yami.shop.common.util.PageParam;
@@ -32,8 +33,20 @@ public class LabelController {
      * 分页获取标签列表
      */
     @GetMapping("/page")
-    public R<IPage<Label>> page(PageParam<Label> pageParam) {
-        IPage<Label> page = labelService.page(pageParam);
+    public R<IPage<Label>> page(@RequestParam(defaultValue = "1") Integer current,
+                                @RequestParam(defaultValue = "10") Integer size,
+                                Label label) {
+        PageParam<Label> pageParam = new PageParam<>();
+        pageParam.setCurrent(current);
+        pageParam.setSize(size);
+
+        LambdaQueryWrapper<Label> queryWrapper = new LambdaQueryWrapper<>();
+        if (label.getName() != null && !label.getName().trim().isEmpty()) {
+            queryWrapper.like(Label::getName, label.getName().trim());
+        }
+        queryWrapper.eq(Label::getIsDelete, 0);
+
+        IPage<Label> page = labelService.page(pageParam, queryWrapper);
         return R.SUCCESS(page);
     }
 
@@ -42,7 +55,7 @@ public class LabelController {
      */
     @GetMapping("/listAll")
     public R<List<Label>> listAll() {
-        List<Label> list = labelService.list();
+        List<Label> list = labelService.list(new LambdaQueryWrapper<Label>().eq(Label::getIsDelete, 0));
         return R.SUCCESS(list);
     }
 
@@ -59,7 +72,7 @@ public class LabelController {
      * 添加标签
      */
     @PostMapping
-    public R<Void> save(@Valid @RequestBody Label label) {
+    public R save(@Valid @RequestBody Label label) {
         labelService.save(label);
         return R.SUCCESS();
     }
@@ -68,7 +81,7 @@ public class LabelController {
      * 更新标签
      */
     @PutMapping
-    public R<Void> update(@Valid @RequestBody Label label) {
+    public R update(@Valid @RequestBody Label label) {
         labelService.updateById(label);
         return R.SUCCESS();
     }
@@ -77,7 +90,7 @@ public class LabelController {
      * 删除标签
      */
     @DeleteMapping
-    public R<Void> delete(@RequestBody Long[] ids) {
+    public R delete(@RequestBody Long[] ids) {
         labelService.removeByIds(Arrays.asList(ids));
         return R.SUCCESS();
     }

+ 21 - 2
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ShopDetailController.java

@@ -9,6 +9,7 @@ package com.yami.shop.platform.controller;
 
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.enums.OfflineHandleEventType;
 import com.yami.shop.bean.enums.ShopStatus;
 import com.yami.shop.bean.model.OfflineHandleEvent;
@@ -17,6 +18,7 @@ import com.yami.shop.bean.model.User;
 import com.yami.shop.bean.param.OfflineHandleEventAuditParam;
 import com.yami.shop.common.exception.GlobalException;
 import com.yami.shop.common.exception.YamiShopBindException;
+import com.yami.shop.common.util.PageParam;
 import com.yami.shop.common.util.RedisUtil;
 import com.yami.shop.security.comment.constants.SecurityConstants;
 import com.yami.shop.security.comment.model.AppConnect;
@@ -27,6 +29,7 @@ import com.yami.shop.service.ShopDetailService;
 import com.yami.shop.service.UserService;
 import lombok.AllArgsConstructor;
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -60,6 +63,22 @@ public class ShopDetailController {
     private final TokenStore tokenStore;
     private final UserService userService;
 
+
+    /**
+     * 分页获取门店详细列表
+     */
+    @GetMapping("/page")
+    public R<IPage<ShopDetail>> page( @ModelAttribute PageParam<ShopDetail> pageParam,
+                                      @ModelAttribute ShopDetail shopDetail ) {
+        System.out.println("shopDetail");
+        IPage<ShopDetail> page = shopDetailService.page(pageParam,new LambdaQueryWrapper<ShopDetail>()
+                .eq(ObjectUtils.isNotEmpty(shopDetail.getShopName()),ShopDetail::getShopName, shopDetail.getShopName())
+                .eq(ObjectUtils.isNotEmpty(shopDetail.getHbStationNo()),ShopDetail::getHbStationNo, shopDetail.getHbStationNo()));
+        return R.SUCCESS(page);
+    }
+
+
+
     /**
      * 通过活动id获取下线信息
      */
@@ -75,7 +94,7 @@ public class ShopDetailController {
      */
     @PostMapping("/offline")
     @PreAuthorize("@pms.hasPermission('shop:shopAuditing:audit')")
-    public R<Void> offline(@RequestBody OfflineHandleEvent offlineHandleEvent) {
+    public R offline(@RequestBody OfflineHandleEvent offlineHandleEvent) {
         Long sysUserId = SecurityUtils.getSysUser().getUserId();
         ShopDetail shopDetail = shopDetailService.getShopDetailByShopId(offlineHandleEvent.getHandleId());
         if (shopDetail == null) {
@@ -115,7 +134,7 @@ public class ShopDetailController {
      */
     @PostMapping("/auditShop")
     @PreAuthorize("@pms.hasPermission('shop:shopAuditing:audit')")
-    public R<Void> auditOfflineShop(@RequestBody OfflineHandleEventAuditParam offlineHandleEventAuditParam) {
+    public R auditOfflineShop(@RequestBody OfflineHandleEventAuditParam offlineHandleEventAuditParam) {
         Long sysUserId = SecurityUtils.getSysUser().getUserId();
         ShopDetail shopDetail = shopDetailService.getShopDetailByShopId(offlineHandleEventAuditParam.getHandleId());
         if (shopDetail == null) {

+ 12 - 4
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/ShopSkuController.java

@@ -7,14 +7,12 @@
 
 package com.yami.shop.platform.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yami.shop.bean.model.ShopSku;
 import com.yami.shop.common.util.R;
 import com.yami.shop.service.ShopSkuService;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * 门店对应商品价格和库存管理
@@ -39,6 +37,16 @@ public class ShopSkuController {
         shopProdService.insertSku(shopSku);
         return R.SUCCESS(shopSku);
     }
+    /**
+     * 分页查询门店对应商品详细
+     */
+    @GetMapping("/page")
+    public R<IPage<ShopSku>> page(@RequestParam(defaultValue = "1") Integer current,
+                                  @RequestParam(defaultValue = "10") Integer size,
+                                  ShopSku shopSku) {
+        IPage<ShopSku> page = shopProdService.shopSkuPage(current,size,shopSku);
+        return R.SUCCESS(page);
+    }
 
 
 }

+ 0 - 107
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/SysDictDataController.java

@@ -1,107 +0,0 @@
-package com.yami.shop.platform.controller;
-
-
-import cn.hutool.poi.excel.ExcelUtil;
-import com.yami.shop.bean.model.SysDictData;
-import com.yami.shop.common.util.R;
-import com.yami.shop.service.ISysDictDataService;
-import com.yami.shop.service.ISysDictTypeService;
-import lombok.extern.java.Log;
-import org.apache.commons.lang3.ObjectUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 数据字典信息(字典数据)
- *
- * @author ruoyi
- */
-@RestController
-@RequestMapping("/platform/dict/data")
-public class SysDictDataController
-{
-    @Autowired
-    private ISysDictDataService dictDataService;
-
-    @Autowired
-    private ISysDictTypeService dictTypeService;
-
-//    @PreAuthorize("@ss.hasPermi('system:dict:list')")
-    @GetMapping("/list")
-    public R< List<SysDictData>> list(SysDictData dictData)
-    {
-        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
-        return R.SUCCESS(list);
-    }
-
-//    @PreAuthorize("@ss.hasPermi('system:dict:export')")
-//    @PostMapping("/export")
-//    public void export(HttpServletResponse response, SysDictData dictData)
-//    {
-//        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
-//        ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
-//        util.exportExcel(response, list, "字典数据");
-//    }
-
-    /**
-     * 查询字典数据详细
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:query')")
-    @GetMapping(value = "/{dictCode}")
-    public R<SysDictData> getInfo(@PathVariable Long dictCode)
-    {
-        return R.SUCCESS(dictDataService.selectDictDataById(dictCode));
-    }
-
-    /**
-     * 根据字典类型查询字典数据信息
-     */
-    @GetMapping(value = "/type/{dictType}")
-    public R dictType(@PathVariable String dictType)
-    {
-        List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
-        if (ObjectUtils.isEmpty(data))
-        {
-            data = new ArrayList<SysDictData>();
-        }
-        return R.SUCCESS(data);
-    }
-
-    /**
-     * 新增字典类型
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:add')")
-    @PostMapping
-    public R add(@Validated @RequestBody SysDictData dict)
-    {
-//        dict.setCreateBy(getUsername());
-        return R.SUCCESS(dictDataService.insertDictData(dict));
-    }
-
-    /**
-     * 修改保存字典类型
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
-    @PutMapping
-    public R edit(@Validated @RequestBody SysDictData dict)
-    {
-        return R.SUCCESS(dictDataService.updateDictData(dict));
-    }
-
-    /**
-     * 删除字典类型
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
-    @DeleteMapping("/{dictCodes}")
-    public R remove(@PathVariable Long[] dictCodes)
-    {
-        dictDataService.deleteDictDataByIds(dictCodes);
-        return R.SUCCESS();
-    }
-}

+ 0 - 112
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/SysDictTypeController.java

@@ -1,112 +0,0 @@
-package com.yami.shop.platform.controller;
-
-
-import com.yami.shop.bean.model.SysDictType;
-import com.yami.shop.common.util.R;
-import com.yami.shop.service.ISysDictTypeService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * 数据字典信息(字典类型表)
- *
- * @author ruoyi
- */
-@RestController
-@RequestMapping("/platform/dict/type")
-public class SysDictTypeController
-{
-    @Autowired
-    private ISysDictTypeService dictTypeService;
-
-    @PreAuthorize("@ss.hasPermi('system:dict:list')")
-    @GetMapping("/list")
-    public R<List<SysDictType>> list(SysDictType dictType)
-    {
-        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
-        return R.SUCCESS(list);
-    }
-
-//    @PreAuthorize("@ss.hasPermi('system:dict:export')")
-//    @PostMapping("/export")
-//    public void export(HttpServletResponse response, SysDictType dictType)
-//    {
-//        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
-//        ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
-//        util.exportExcel(response, list, "字典类型");
-//    }
-
-    /**
-     * 查询字典类型详细
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:query')")
-    @GetMapping(value = "/{dictId}")
-    public R<SysDictType> getInfo(@PathVariable Long dictId)
-    {
-        return R.SUCCESS(dictTypeService.selectDictTypeById(dictId));
-    }
-
-    /**
-     * 新增字典类型
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:add')")
-    @PostMapping
-    public R add(@Validated @RequestBody SysDictType dict)
-    {
-        if (!dictTypeService.checkDictTypeUnique(dict))
-        {
-            return R.FAIL("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
-        }
-        return R.SUCCESS(dictTypeService.insertDictType(dict));
-    }
-
-    /**
-     * 修改字典类型
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
-    @PutMapping
-    public R edit(@Validated @RequestBody SysDictType dict)
-    {
-        if (!dictTypeService.checkDictTypeUnique(dict))
-        {
-            return R.FAIL("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
-        }
-        return R.SUCCESS(dictTypeService.updateDictType(dict));
-    }
-
-    /**
-     * 删除字典类型
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
-    @DeleteMapping("/{dictIds}")
-    public R remove(@PathVariable Long[] dictIds)
-    {
-        dictTypeService.deleteDictTypeByIds(dictIds);
-        return R.SUCCESS();
-    }
-
-    /**
-     * 刷新字典缓存
-     */
-    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
-    @DeleteMapping("/refreshCache")
-    public R refreshCache()
-    {
-        dictTypeService.resetDictCache();
-        return R.SUCCESS();
-    }
-
-    /**
-     * 获取字典选择框列表
-     */
-    @GetMapping("/optionselect")
-    public R optionselect()
-    {
-        List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
-        return R.SUCCESS(dictTypes);
-    }
-}

+ 0 - 11
yami-shop-platform/src/main/java/com/yami/shop/platform/controller/hb/GoodsController.java

@@ -107,17 +107,6 @@ public class GoodsController {
     }
 
 
-    /**
-     * 商品-门店品售卖状态查询接口
-     *
-     * @return 商品响应
-     */
-    @GetMapping("/getSelfSkuStatus")
-    public HBR getSelfSkuStatus() {
-        return HBR.success(goodsService.getSelfSkuStatus());
-    }
-
-
 
 
 }

+ 25 - 1
yami-shop-service/src/main/java/com/yami/shop/dao/ChannelProdMapper.java

@@ -12,7 +12,9 @@ package com.yami.shop.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.dto.UpdateShannerProdDTO;
 import com.yami.shop.bean.model.ChannelProd;
+import com.yami.shop.bean.vo.ChannelProdExportVO;
 import com.yami.shop.common.util.PageParam;
 import org.apache.ibatis.annotations.Param;
 
@@ -51,7 +53,7 @@ public interface ChannelProdMapper extends BaseMapper<ChannelProd> {
      * @param channelProd 查询条件
      * @return 分页结果
      */
-    IPage<ChannelProd> getChannelProdPage(PageParam<ChannelProd> page, @Param("channelProd") ChannelProd channelProd);
+    IPage<ChannelProd> getChannelProdPage( @Param("page")PageParam page, @Param("channelProd") ChannelProd channelProd);
 
     /**
      * 根据渠道ID删除渠道商品
@@ -84,4 +86,26 @@ public interface ChannelProdMapper extends BaseMapper<ChannelProd> {
      * @return 渠道数量
      */
     Integer countBySkuId(@Param("skuId") Long skuId);
+
+
+    /**
+     * 根据SKU ID和商家ID查询渠道商品列表
+     * @param skuId SKU ID
+     * @param shopId 商家ID
+     * @return 渠道商品列表
+     */
+    List<ChannelProd> selectListAll(@Param("skuId")Long skuId, @Param("shopId")Long shopId);
+
+    /**
+     * 导出渠道商品列表
+     * @param channelProd 查询条件
+     * @return 渠道商品列表
+     */
+    List<ChannelProdExportVO> exportList(ChannelProd channelProd);
+
+    /**
+     * 根据门店和商品ID删除渠道商品
+     * @param updateShannerProdDTO 渠道商品
+     */
+    void deleteChannelProd(UpdateShannerProdDTO updateShannerProdDTO);
 }

+ 0 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/HBTransport2Mapper.java


+ 14 - 7
yami-shop-service/src/main/java/com/yami/shop/service/ChannelProdService.java

@@ -12,6 +12,7 @@ package com.yami.shop.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yami.shop.bean.dto.UpdateShannerProdDTO;
 import com.yami.shop.bean.model.ChannelProd;
 import com.yami.shop.common.util.PageParam;
 import org.springframework.web.multipart.MultipartFile;
@@ -48,13 +49,13 @@ public interface ChannelProdService extends IService<ChannelProd> {
      */
     ChannelProd getChannelProdBychannelIdAndSkuId(Long channelId, Long skuId);
 
-    /**
-     * 分页查询渠道商品
-     * @param page 分页参数
-     * @param channelProd 查询条件
-     * @return 分页结果
-     */
-    IPage<ChannelProd> getChannelProdPage(PageParam<ChannelProd> page, ChannelProd channelProd);
+//    /**
+//     * 分页查询渠道商品
+//     * @param page 分页参数
+//     * @param channelProd 查询条件
+//     * @return 分页结果
+//     */
+//    IPage<ChannelProd> getChannelProdPage(PageParam page, ChannelProd channelProd);
 
     /**
      * 保存渠道商品
@@ -138,4 +139,10 @@ public interface ChannelProdService extends IService<ChannelProd> {
      * @throws IOException IO异常
      */
     void exportChannelProds(ChannelProd channelProd, HttpServletResponse response);
+
+    /**
+     * 设置销售渠道及价格
+     * @param updateShannerProdDTO 更新渠道商品价格
+     */
+    void setUpChannels(UpdateShannerProdDTO updateShannerProdDTO);
 }

+ 14 - 0
yami-shop-service/src/main/java/com/yami/shop/service/ChannelService.java

@@ -0,0 +1,14 @@
+package com.yami.shop.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yami.shop.bean.model.Channel;
+import com.yami.shop.bean.model.ChannelProd;
+
+/**
+ * 渠道管理服务接口
+ * @author fbj 2024/01/01.
+ */
+public interface ChannelService extends IService<Channel> {
+
+}
+

+ 10 - 0
yami-shop-service/src/main/java/com/yami/shop/service/ShopSkuService.java

@@ -1,6 +1,7 @@
 
 package com.yami.shop.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yami.shop.bean.model.ShopSku;
 
@@ -10,4 +11,13 @@ import com.yami.shop.bean.model.ShopSku;
 public interface ShopSkuService extends IService<ShopSku> {
 
     void insertSku(ShopSku shopSku);
+
+    /**
+     * 分页查询
+     * @param current 当前页
+     * @param size 每页数量
+     * @param shopSku 查询参数
+     * @return 分页数据
+     */
+    IPage<ShopSku> shopSkuPage(Integer current, Integer size, ShopSku shopSku);
 }

+ 0 - 6
yami-shop-service/src/main/java/com/yami/shop/service/hb/IHBGoodsService.java

@@ -57,11 +57,5 @@ public interface IHBGoodsService {
      */
     void deleteGoods(JSONObject hbRequest);
 
-    /**
-     * 商品-门店品售卖状态查询接口
-     * @return 门店品售卖状态信息
-     */
-    String getSelfSkuStatus();
-
 
 }

+ 29 - 14
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBGoodsService.java

@@ -43,7 +43,7 @@ public class HBGoodsService implements IHBGoodsService {
     private final HBSignUtil hbSignUtil;
     private final ProductMapper productMapper;
     private final SkuMapper skuMapper;
-    private final ShopSkuMapper shopProdMapper;
+    private final ShopSkuMapper shopSkuMapper;
     private final ShopDetailMapper shopDetailMapper;
 
     @Override
@@ -94,6 +94,7 @@ public class HBGoodsService implements IHBGoodsService {
                         log.info("商品skuId={},skuName={}已经存在无需添加", productInfo.getString("skuId"), productInfo.getString("skuName"));
                     } else {
                         // 创建并填充Sku对象
+
                         Sku sku = createSkuFromProductInfo(productInfo);
                         sku.setProdId(prodId);
                         skuMapper.insert(sku);
@@ -167,7 +168,14 @@ public class HBGoodsService implements IHBGoodsService {
             String bodyStr = hbRequest.getString("body");
             log.info("商品,body:{}", bodyStr);
             JSONObject bodyJson = JSON.parseObject(bodyStr); // 使用Fastjson的解析方法
-            String outStationNo = bodyJson.getString("outStationNo");
+//            String outStationNo = bodyJson.getString("outStationNo");
+            String skuId = bodyJson.getString("skuId");
+            String stationId = bodyJson.getString("stationId");
+
+            String selfSkuStatus = getSelfSkuStatus(skuId, stationId);
+
+
+
         } catch (Exception e) {
             log.error("商品失败:{}", e.getMessage(), e);
             return HBR.error("未知异常");
@@ -202,7 +210,7 @@ public class HBGoodsService implements IHBGoodsService {
                     return HBR.error("更改价格系统找不到对应商品(单品):" + skuId);
                 }
 
-                ShopSku shopSku = shopProdMapper.selectByShopAndProd(sku.getSkuId(), shopDetail.getShopId());
+                ShopSku shopSku = shopSkuMapper.selectByShopAndProd(sku.getSkuId(), shopDetail.getShopId());
                 if (ObjectUtil.isEmpty(shopSku)) {
                     ShopSku shopSkuInfo = new ShopSku();
                     shopSkuInfo.setShopId(shopDetail.getShopId());
@@ -210,12 +218,12 @@ public class HBGoodsService implements IHBGoodsService {
                     shopSkuInfo.setSkuId(sku.getSkuId());
                     shopSkuInfo.setIsDelete(0);
                     shopSkuInfo.setRecTime(new Date());
-                    shopProdMapper.insert(shopSkuInfo);
+                    shopSkuMapper.insert(shopSkuInfo);
                     log.info("门店对应商品系统不存在直接添加");
                 } else {
                     shopSku.setShopSkuPrice(currentPrice == null ? 0.0 : currentPrice);
                     shopSku.setUpdateTime(new Date());
-                    shopProdMapper.updateById(shopSku);
+                    shopSkuMapper.updateById(shopSku);
                     log.info("库存更改成功");
                 }
             }
@@ -253,20 +261,22 @@ public class HBGoodsService implements IHBGoodsService {
                     return HBR.error("系统找不到对应商品(单品):" + skuId);
                 }
 
-                ShopSku shopSku = shopProdMapper.selectByShopAndProd(sku.getSkuId(), shopDetail.getShopId());
+                ShopSku shopSku = shopSkuMapper.selectByShopAndProd(sku.getSkuId(), shopDetail.getShopId());
                 if (ObjectUtil.isEmpty(shopSku)) {
                     ShopSku shopSkuInfo = new ShopSku();
                     shopSkuInfo.setShopId(shopDetail.getShopId());
                     shopSkuInfo.setShopSkuStocks(currentStock);
                     shopSkuInfo.setSkuId(sku.getSkuId());
+                    shopSkuInfo.setSpuId(sku.getProdId());
                     shopSkuInfo.setIsDelete(0);
                     shopSkuInfo.setRecTime(new Date());
-                    shopProdMapper.insert(shopSkuInfo);
+                    shopSkuInfo.setUpdateTime(new Date());
+                    shopSkuMapper.insert(shopSkuInfo);
                     log.info("库存添加成功");
                 } else {
                     shopSku.setShopSkuStocks(currentStock);
                     shopSku.setUpdateTime(new Date());
-                    shopProdMapper.updateById(shopSku);
+                    shopSkuMapper.updateById(shopSku);
                     log.info("库存更改成功");
                 }
             }
@@ -353,14 +363,17 @@ public class HBGoodsService implements IHBGoodsService {
     }
 
 
-    @Override
-    public String getSelfSkuStatus() {
+    /**
+     * 商品-门店品售卖状态查询接口
+     * @return 门店品售卖状态信息
+     */
+    public String getSelfSkuStatus(String skuId, String stationId) {
         HBBaseReq<Object> build = HBBaseReq.create();
         build.setAppId(hbSignUtil.getAppId());
         JSONObject jsonObject = new JSONObject();
         List<JSONObject> onlineProductDTO = new ArrayList();
-        jsonObject.put("skuId", "0");//海博商品编码
-        jsonObject.put("stationId", "0");//海博门店编码
+        jsonObject.put("skuId", skuId);//海博商品编码
+        jsonObject.put("stationId", stationId);//海博门店编码
         onlineProductDTO.add(jsonObject);
         build.setBody(JSON.toJSONString(onlineProductDTO));
         build.setSign(hbSignUtil.signMd5(build));
@@ -431,13 +444,15 @@ public class HBGoodsService implements IHBGoodsService {
         log.info("创建Sku对象数据==========={}===========", productInfo);
         Sku sku = new Sku();
         // 直接映射字段
-        sku.setSkuId(productInfo.getLong("skuId"));//单品id - 关联海博同步
-        sku.setProdId(productInfo.getLong("spuId"));//商品id - 关联海博同步
+        sku.setHbSkuId(productInfo.getLong("skuId"));//单品id - 关联海博同步
+        sku.setHbSpuId(productInfo.getLong("spuId"));//商品id - 关联海博同步
         sku.setSkuName(productInfo.getString("skuName"));//单品名称
         sku.setProdName(productInfo.getString("spuName"));//商品名称
         sku.setModelId(productInfo.getString("upc")); // 商品条码
         sku.setPartyCode(productInfo.getString("outSkuId"));//商家商品编码
         sku.setSkuCode(productInfo.getString("outSkuId"));//商家商品编码
+        sku.setSpec(productInfo.getString("spec"));//规格
+        sku.setPic(productInfo.getString("skuImages"));//sku图片
 //        Sku.setVolume(productInfo.getString(""));//体积
         sku.setStatus(1);
         sku.setIsDelete(0);

+ 26 - 4
yami-shop-service/src/main/java/com/yami/shop/service/impl/ChannelProdServiceImpl.java

@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yami.shop.bean.dto.SetChannelPriceDto;
+import com.yami.shop.bean.dto.UpdateShannerProdDTO;
 import com.yami.shop.bean.model.*;
 import com.yami.shop.bean.vo.ChannelProdExportVO;
 import com.yami.shop.bean.vo.ChannelProdImportVO;
@@ -75,10 +77,10 @@ public class ChannelProdServiceImpl extends ServiceImpl<ChannelProdMapper, Chann
         return channelProdMapper.getChannelProdBychannelIdAndSkuId(channelId, skuId);
     }
 
-    @Override
-    public IPage<ChannelProd> getChannelProdPage(PageParam<ChannelProd> page, ChannelProd channelProd) {
-        return channelProdMapper.getChannelProdPage(page, channelProd);
-    }
+//    @Override
+//    public IPage<ChannelProd> getChannelProdPage(PageParam<ChannelProd> page, ChannelProd channelProd) {
+//        return channelProdMapper.getChannelProdPage(page, channelProd);
+//    }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -340,4 +342,24 @@ public class ChannelProdServiceImpl extends ServiceImpl<ChannelProdMapper, Chann
         }
     }
 
+    @Override
+    public void setUpChannels(UpdateShannerProdDTO updateShannerProdDTO) {
+        //根据门店和商品ID删除
+        channelProdMapper.deleteChannelProd(updateShannerProdDTO);
+        List<SetChannelPriceDto> setChannelPriceDtoList = updateShannerProdDTO.getSetChannelPriceDtoList();
+        if (setChannelPriceDtoList != null){
+            for (SetChannelPriceDto setChannelPriceDto : setChannelPriceDtoList) {
+                ChannelProd channelProd = new ChannelProd();
+                channelProd.setChannelId(setChannelPriceDto.getChannelId());
+                channelProd.setSkuId(updateShannerProdDTO.getSkuId());
+                channelProd.setShopId(updateShannerProdDTO.getShopId());
+                channelProd.setPurchasePrice(updateShannerProdDTO.getPurchasePrice());
+                channelProd.setDeliveryPrice(updateShannerProdDTO.getDeliveryPrice());
+                channelProd.setChannelProdPrice(setChannelPriceDto.getChannelProdPrice());
+                channelProd.setRecTime(new Date());
+                channelProdMapper.insert(channelProd);
+            }
+        }
+    }
+
 }

+ 21 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/ChannelServiceImpl.java

@@ -0,0 +1,21 @@
+package com.yami.shop.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yami.shop.bean.model.Channel;
+import com.yami.shop.dao.ChannelMapper;
+import com.yami.shop.service.ChannelService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 渠道管理服务实现类
+ *
+ * @author fbj 2024/01/01.
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> implements ChannelService {
+
+}

+ 35 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopSkuServiceImpl.java

@@ -1,21 +1,56 @@
 package com.yami.shop.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yami.shop.bean.model.ChannelProd;
+import com.yami.shop.bean.model.Label;
 import com.yami.shop.bean.model.ShopSku;
+import com.yami.shop.common.util.PageParam;
+import com.yami.shop.dao.ChannelProdMapper;
+import com.yami.shop.dao.ProductMapper;
 import com.yami.shop.dao.ShopSkuMapper;
+import com.yami.shop.dao.SkuMapper;
 import com.yami.shop.service.ShopSkuService;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 @AllArgsConstructor
 public class ShopSkuServiceImpl extends ServiceImpl<ShopSkuMapper, ShopSku> implements ShopSkuService {
 
     private final ShopSkuMapper shopProdMapper;
+    private final ChannelProdMapper channelProdMapper;
+    private final SkuMapper skuMapper;
+    private final ProductMapper productMapper;
 
 
     @Override
     public void insertSku(ShopSku shopSku) {
         shopProdMapper.insert(shopSku);
     }
+
+    @Override
+    public IPage<ShopSku> shopSkuPage(Integer current, Integer size, ShopSku shopSku) {
+        PageParam<ShopSku> pageParam = new PageParam<>();
+        pageParam.setCurrent(current);
+        pageParam.setSize(size);
+
+        LambdaQueryWrapper<ShopSku> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(ObjectUtils.isNotEmpty(shopSku.getShopId()),ShopSku::getShopId, shopSku.getShopId());
+                queryWrapper.eq(ObjectUtils.isNotEmpty(shopSku.getSkuId()),ShopSku::getSkuId, shopSku.getSkuId());
+                queryWrapper.eq(ShopSku::getIsDelete, 0);
+        IPage<ShopSku> page = shopProdMapper.selectPage(pageParam, queryWrapper);
+        //循环获取sku和渠道价格设置信息
+        for (ShopSku record : page.getRecords()) {
+            record.setSku(skuMapper.selectById(record.getSkuId()));
+            List<ChannelProd> channelProds = channelProdMapper.selectListAll(record.getSkuId(), record.getShopId());
+            record.setChannelProdList(channelProds);
+        }
+        return page;
+    }
 }

+ 78 - 13
yami-shop-service/src/main/resources/mapper/ChannelProdMapper.xml

@@ -14,23 +14,31 @@
     </resultMap>
 
     <select id="getChannelProdsBychannelId" resultMap="BaseResultMap">
-        SELECT * FROM tz_channel_prod
-        WHERE channel_id = #{channelId} AND is_delete = 0
+        SELECT *
+        FROM tz_channel_prod
+        WHERE channel_id = #{channelId}
+          AND is_delete = 0
         ORDER BY rec_time DESC
     </select>
 
     <select id="getChannelProdsBySkuId" resultMap="BaseResultMap">
-        SELECT * FROM tz_channel_prod
-        WHERE sku_id = #{skuId} AND is_delete = 0
+        SELECT *
+        FROM tz_channel_prod
+        WHERE sku_id = #{skuId}
+          AND is_delete = 0
         ORDER BY rec_time DESC
     </select>
 
     <select id="getChannelProdBychannelIdAndSkuId" resultMap="BaseResultMap">
-        SELECT * FROM tz_channel_prod
-        WHERE channel_id = #{channelId} AND sku_id = #{skuId} AND is_delete = 0
+        SELECT *
+        FROM tz_channel_prod
+        WHERE channel_id = #{channelId}
+          AND sku_id = #{skuId}
+          AND is_delete = 0
     </select>
 
     <select id="getChannelProdPage" resultMap="BaseResultMap">
+        # 关联查询查询条件
         SELECT * FROM tz_channel_prod
         <where>
             is_delete = 0
@@ -54,29 +62,86 @@
     </select>
 
     <update id="deleteBychannelId">
-        UPDATE tz_channel_prod SET is_delete = 1, update_time = NOW() WHERE channel_id = #{channelId}
+        UPDATE tz_channel_prod
+        SET is_delete   = 1,
+            update_time = NOW()
+        WHERE channel_id = #{channelId}
     </update>
 
     <update id="deleteBySkuId">
-        UPDATE tz_channel_prod SET is_delete = 1, update_time = NOW() WHERE sku_id = #{skuId}
+        UPDATE tz_channel_prod
+        SET is_delete   = 1,
+            update_time = NOW()
+        WHERE sku_id = #{skuId}
     </update>
 
+    <update id="deleteChannelProd">
+        UPDATE tz_channel_prod
+        SET is_delete   = 1,
+            update_time = NOW()
+        WHERE sku_id = #{skuId} AND shop_id = #{shopId}
+    </update>
+
+
     <update id="updateBatchPrices">
         <foreach collection="channelProds" item="channelProd" separator=";">
             UPDATE tz_channel_prod
             SET purchase_price = #{channelProd.purchasePrice},
-                delivery_price = #{channelProd.deliveryPrice},
-                channel_prod_price = #{channelProd.channelProdPrice},
-                update_time = NOW()
+            delivery_price = #{channelProd.deliveryPrice},
+            channel_prod_price = #{channelProd.channelProdPrice},
+            update_time = NOW()
             WHERE id = #{channelProd.id}
         </foreach>
     </update>
 
     <select id="countBychannelId" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM tz_channel_prod WHERE channel_id = #{channelId} AND is_delete = 0
+        SELECT COUNT(*)
+        FROM tz_channel_prod
+        WHERE channel_id = #{channelId}
+          AND is_delete = 0
     </select>
 
     <select id="countBySkuId" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM tz_channel_prod WHERE sku_id = #{skuId} AND is_delete = 0
+        SELECT COUNT(*)
+        FROM tz_channel_prod
+        WHERE sku_id = #{skuId}
+          AND is_delete = 0
     </select>
+
+    <select id="selectListAll" resultType="com.yami.shop.bean.model.ChannelProd">
+        SELECT c.*, s.shop_name shopName,channel.channel_name channelName,channel.type channelType
+        FROM tz_channel_prod c
+                 left join tz_shop_detail s on c.shop_id = s.shop_id
+                 left join tz_channel channel on c.channel_id = channel.id
+        WHERE c.sku_id = #{skuId}
+          AND c.shop_id = #{shopId}
+          AND c.is_delete = 0
+
+
+    </select>
+    <select id="exportList" resultType="com.yami.shop.bean.vo.ChannelProdExportVO">
+        SELECT
+        p.hb_sku_id AS skuId,
+        sha.sku_name AS skuName,
+        p.channel_id AS channelId,
+        c.channel_name AS channelName,
+        d.shop_name AS shopName,
+        p.purchase_price AS purchasePrice,
+        p.delivery_price AS deliveryPrice,
+        p.channel_prod_price AS channelProdPrice
+        FROM
+        tz_channel_prod p
+        LEFT JOIN tz_sku sha ON p.sku_id = sha.sku_id
+        LEFT JOIN tz_channel c ON p.channel_id = c.id
+        LEFT JOIN tz_shop_detail d ON p.shop_id = d.shop_id
+        WHERE
+        p.is_delete = 0
+        <if test="channelId != null">
+            AND p.channel_id = #{channelId}
+        </if>
+        <if test="skuId != null">
+            AND p.sku_id = #{skuId}
+        </if>
+    </select>
+
 </mapper>

+ 1 - 1
yami-shop-service/src/main/resources/mapper/ShopSkuMapper.xml

@@ -16,7 +16,7 @@
   </resultMap>
 
   <select id="selectByShopAndProd" resultMap="shopProdMap">
-    SELECT * FROM tz_shop_prod
+    SELECT * FROM tz_shop_sku
     WHERE shop_id = #{shopId} AND sku_id = #{skuId} AND is_delete = 0
   </select>