Browse Source

新增供货和取消供货接口

zhangwl 1 month ago
parent
commit
3a43fb881b
42 changed files with 1112 additions and 25 deletions
  1. 93 0
      src/main/java/zs/payment/config/DataSourceConfig.java
  2. 15 0
      src/main/java/zs/payment/config/FlymallMapperScanConfig.java
  3. 15 0
      src/main/java/zs/payment/config/PrimaryMapperScanConfig.java
  4. 27 0
      src/main/java/zs/payment/controller/YunMallGoodsController.java
  5. 1 1
      src/main/java/zs/payment/dao/OrderCallbackDao.java
  6. 14 0
      src/main/java/zs/payment/dao/yunmall/GoodsDao.java
  7. 38 0
      src/main/java/zs/payment/entity/mongodb/yunmall/Shop.java
  8. 21 0
      src/main/java/zs/payment/entity/mongodb/yunmall/Sku.java
  9. 49 0
      src/main/java/zs/payment/entity/mysql/flymall/B2cGoodsImgInOnline.java
  10. 80 0
      src/main/java/zs/payment/entity/mysql/flymall/B2cGoodsSkuInOnline.java
  11. 149 0
      src/main/java/zs/payment/entity/mysql/flymall/B2cGoodsSpuInOnline.java
  12. 164 0
      src/main/java/zs/payment/entity/mysql/flymall/B2cShop.java
  13. 68 0
      src/main/java/zs/payment/exception/ApiException.java
  14. 9 0
      src/main/java/zs/payment/mapper/flymall/B2cGoodsImgInOnlineMapper.java
  15. 9 0
      src/main/java/zs/payment/mapper/flymall/B2cGoodsSkuInOnlineMapper.java
  16. 9 0
      src/main/java/zs/payment/mapper/flymall/B2cGoodsSpuInOnlineMapper.java
  17. 9 0
      src/main/java/zs/payment/mapper/flymall/B2cShopMapper.java
  18. 1 1
      src/main/java/zs/payment/mapper/ImsEweiShopCategoryMapper.java
  19. 1 1
      src/main/java/zs/payment/mapper/ImsEweiShopGoodsMapper.java
  20. 1 1
      src/main/java/zs/payment/mapper/ImsEweiShopGoodsOptionMapper.java
  21. 1 1
      src/main/java/zs/payment/mapper/ImsEweiShopGoodsSpecItemMapper.java
  22. 1 1
      src/main/java/zs/payment/mapper/ImsEweiShopGoodsSpecMapper.java
  23. 23 0
      src/main/java/zs/payment/req/yunmall/goods/GoodsSaveReq.java
  24. 35 0
      src/main/java/zs/payment/resp/ResultCode.java
  25. 1 1
      src/main/java/zs/payment/service/Imseweishopgoods/impl/ImsEweiShopGoodsServiceImpl.java
  26. 12 0
      src/main/java/zs/payment/service/flymall/b2cgoodsimginonline/B2cGoodsImgInOnlineService.java
  27. 25 0
      src/main/java/zs/payment/service/flymall/b2cgoodsimginonline/impl/B2cGoodsImgInOnlineServiceImpl.java
  28. 11 0
      src/main/java/zs/payment/service/flymall/b2cgoodsskuinonline/B2cGoodsSkuInOnlineService.java
  29. 20 0
      src/main/java/zs/payment/service/flymall/b2cgoodsskuinonline/impl/B2cGoodsSkuInOnlineServiceImpl.java
  30. 7 0
      src/main/java/zs/payment/service/flymall/b2cgoodsspuinonline/B2cGoodsSpuInOnlineService.java
  31. 18 0
      src/main/java/zs/payment/service/flymall/b2cgoodsspuinonline/impl/B2cGoodsSpuInOnlineServiceImpl.java
  32. 7 0
      src/main/java/zs/payment/service/flymall/b2cshop/B2cShopService.java
  33. 14 0
      src/main/java/zs/payment/service/flymall/b2cshop/impl/B2cShopServiceImpl.java
  34. 1 4
      src/main/java/zs/payment/service/imseweishopcategory/impl/ImsEweiShopCategoryServiceImpl.java
  35. 1 2
      src/main/java/zs/payment/service/imseweishopgoodsoption/impl/ImsEweiShopGoodsOptionServiceImpl.java
  36. 1 1
      src/main/java/zs/payment/service/imseweishopgoodsspec/impl/ImsEweiShopGoodsSpecServiceImpl.java
  37. 1 1
      src/main/java/zs/payment/service/imseweishopgoodsspecitem/impl/ImsEweiShopGoodsSpecItemServiceImpl.java
  38. 11 0
      src/main/java/zs/payment/service/yunmall/goods/GoodsService.java
  39. 112 0
      src/main/java/zs/payment/service/yunmall/goods/impl/GoodsServiceImpl.java
  40. 25 10
      src/main/resources/application-pro.yml
  41. 6 0
      src/main/resources/mapper/flymall/B2cShopMapper.xml
  42. 6 0
      src/main/resources/mapper/primary/ImsEweiShopGoodsMapper.xml

+ 93 - 0
src/main/java/zs/payment/config/DataSourceConfig.java

@@ -0,0 +1,93 @@
+package zs.payment.config;
+
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import com.zaxxer.hikari.HikariDataSource;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+
+import javax.sql.DataSource;
+
+/**
+ * 多数据源配置
+ */
+@Configuration
+@EnableConfigurationProperties
+public class DataSourceConfig {
+
+    /**
+     * 主数据源(qiyun)
+     */
+    @Primary
+    @Bean(name = "primaryDataSource")
+    @ConfigurationProperties(prefix = "spring.datasource.primary")
+    public DataSource primaryDataSource() {
+        return DataSourceBuilder.create().type(HikariDataSource.class).build();
+    }
+
+    /**
+     * 从数据源(flymall)
+     */
+    @Bean(name = "flymallDataSource")
+    @ConfigurationProperties(prefix = "spring.datasource.flymall")
+    public DataSource flymallDataSource() {
+        return DataSourceBuilder.create().type(HikariDataSource.class).build();
+    }
+
+    /**
+     * 主数据源 SqlSessionFactory
+     */
+    @Primary
+    @Bean(name = "primarySqlSessionFactory")
+    public SqlSessionFactory primarySqlSessionFactory() throws Exception {
+        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
+        bean.setDataSource(primaryDataSource());
+        bean.setMapperLocations(new PathMatchingResourcePatternResolver()
+            .getResources("classpath:mapper/primary/*.xml"));
+        return bean.getObject();
+    }
+
+
+    /**
+     * 从数据源 SqlSessionFactory
+     */
+    @Bean(name = "flymallSqlSessionFactory")
+    public SqlSessionFactory flymallSqlSessionFactory() throws Exception {
+        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
+        bean.setDataSource(flymallDataSource());
+        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
+        Resource[] resources;
+        try {
+            resources = resolver.getResources("classpath:mapper/flymall/*.xml");
+        } catch (Exception e) {
+            resources = new Resource[0];
+        }
+        bean.setMapperLocations(resources);
+        return bean.getObject();
+    }
+
+    /**
+     * 主数据源 SqlSessionTemplate
+     */
+    @Primary
+    @Bean(name = "primarySqlSessionTemplate")
+    public SqlSessionTemplate primarySqlSessionTemplate(SqlSessionFactory primarySqlSessionFactory) {
+        return new SqlSessionTemplate(primarySqlSessionFactory);
+    }
+
+    /**
+     * 从数据源 SqlSessionTemplate
+     */
+    @Bean(name = "flymallSqlSessionTemplate")
+    public SqlSessionTemplate flymallSqlSessionTemplate(SqlSessionFactory flymallSqlSessionFactory) {
+        return new SqlSessionTemplate(flymallSqlSessionFactory);
+    }
+
+}

+ 15 - 0
src/main/java/zs/payment/config/FlymallMapperScanConfig.java

@@ -0,0 +1,15 @@
+package zs.payment.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * flymall 数据源 Mapper 扫描配置
+ */
+@Configuration
+@MapperScan(
+    basePackages = "zs.payment.mapper.flymall",
+    sqlSessionFactoryRef = "flymallSqlSessionFactory"
+)
+public class FlymallMapperScanConfig {
+}

+ 15 - 0
src/main/java/zs/payment/config/PrimaryMapperScanConfig.java

@@ -0,0 +1,15 @@
+package zs.payment.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 主数据源 Mapper 扫描配置
+ */
+@Configuration
+@MapperScan(
+    basePackages = "zs.payment.mapper.primary",
+    sqlSessionFactoryRef = "primarySqlSessionFactory"
+)
+public class PrimaryMapperScanConfig {
+}

+ 27 - 0
src/main/java/zs/payment/controller/YunMallGoodsController.java

@@ -1,4 +1,31 @@
 package zs.payment.controller;
 package zs.payment.controller;
 
 
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+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 zs.payment.req.yunmall.goods.GoodsSaveReq;
+import zs.payment.service.yunmall.goods.GoodsService;
+
+import javax.validation.Valid;
+
+@Slf4j
+@RestController
+@RequestMapping("/yunmall/goods")
 public class YunMallGoodsController {
 public class YunMallGoodsController {
+
+    @Autowired
+    private GoodsService goodsService;
+
+    /**
+     * 根据op,进行创建或删除生态商品
+     */
+    @PostMapping("/save")
+    public String saveGoods(@Valid  @RequestBody GoodsSaveReq req){
+        return goodsService.saveGoods(req.getGdId(),req.getOp());
+    }
+
 }
 }

+ 1 - 1
src/main/java/zs/payment/dao/OrderCallbackDao.java

@@ -7,6 +7,6 @@ import zs.payment.entity.mongodb.supply.OrderCallback;
 public class OrderCallbackDao extends MongoDBDao<OrderCallback>{
 public class OrderCallbackDao extends MongoDBDao<OrderCallback>{
     @Override
     @Override
     protected Class<OrderCallback> getEntityClass() {
     protected Class<OrderCallback> getEntityClass() {
-        return null;
+        return OrderCallback.class;
     }
     }
 }
 }

+ 14 - 0
src/main/java/zs/payment/dao/yunmall/GoodsDao.java

@@ -0,0 +1,14 @@
+package zs.payment.dao.yunmall;
+
+import org.springframework.stereotype.Repository;
+import zs.payment.dao.MongoDBDao;
+import zs.payment.entity.mongodb.yunmall.Goods;
+
+@Repository
+public class GoodsDao extends MongoDBDao<Goods> {
+
+    @Override
+    protected Class<Goods> getEntityClass() {
+        return Goods.class;
+    }
+}

+ 38 - 0
src/main/java/zs/payment/entity/mongodb/yunmall/Shop.java

@@ -0,0 +1,38 @@
+package zs.payment.entity.mongodb.yunmall;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import zs.payment.entity.mysql.flymall.B2cShop;
+
+@Setter
+@Getter
+@NoArgsConstructor
+@Accessors(chain = true)
+public class Shop {
+    // 店铺id
+    Integer shop_id;
+    // 店铺名称
+    String shop_name;
+    // 店铺联系电话
+    String telephone;
+    // 店铺简介
+    String publicit_language;
+    // 类型,
+    // SHOP_TYPE_COMMON(1, '普通入驻型'),          //企悦、入驻型,不能使用中搜币支付
+    // SHOP_TYPE_JOINT(2, '联营入驻型'),       //可以使用中搜币支付
+    // SHOP_TYPE_SELF(3, '自营入驻型') ,         //可以使用中搜币支付
+    // SHOP_TYPE_FROM_SELF_MALL(4,'自主结算型')    //不可用中搜币支付
+    int shop_type;
+
+    public static Shop ofArticle(B2cShop b2cShop){
+        return new Shop().setShop_id(b2cShop.getShopId())
+            .setShop_name(b2cShop.getShopName())
+            .setTelephone(b2cShop.getTelephone())
+            .setPublicit_language(b2cShop.getPublicitLanguage())
+            .setShop_type(b2cShop.getShopType());
+    }
+
+
+}

+ 21 - 0
src/main/java/zs/payment/entity/mongodb/yunmall/Sku.java

@@ -0,0 +1,21 @@
+package zs.payment.entity.mongodb.yunmall;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+import zs.payment.entity.mysql.flymall.B2cGoodsSkuInOnline;
+
+@Setter
+@Getter
+@NoArgsConstructor
+@Accessors(chain = true)
+public class Sku {
+    Integer sku_id;
+    String sku_img;
+
+
+    public static Sku ofArticle(B2cGoodsSkuInOnline goodsSku,String sku_img){
+        return new Sku().setSku_id(goodsSku.getSkuId()).setSku_img(sku_img);
+    }
+}

+ 49 - 0
src/main/java/zs/payment/entity/mysql/flymall/B2cGoodsImgInOnline.java

@@ -0,0 +1,49 @@
+package zs.payment.entity.mysql.flymall;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.sql.Timestamp;
+
+/**
+ * 17_商品图片线上环境
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@TableName("b2c_goods_img_in_online")
+public class B2cGoodsImgInOnline {
+
+    @TableId(type = IdType.AUTO)
+    @TableField("img_id")
+    private Integer imgId;
+
+    @TableField("gd_id")
+    private Integer gdId;
+
+    @TableField("gd_img")
+    private String gdImg;  // 商品图片,数组
+
+    @TableField("attr_val_ids")
+    private String attrValIds;  // 图片属性值ID 例如:11,22
+
+    @TableField("is_default")
+    private Integer isDefault;  // 1:默认图片 0 正常图片
+
+    @TableField("status")
+    private Integer status;  // 状态
+
+    @TableField("create_username")
+    private String createUsername;  // 创建人
+
+    @TableField("create_time")
+    private Timestamp createTime;  // 创建时间
+
+    @TableField("img_sort")
+    private Integer imgSort;  // 图片排序
+}

+ 80 - 0
src/main/java/zs/payment/entity/mysql/flymall/B2cGoodsSkuInOnline.java

@@ -0,0 +1,80 @@
+package zs.payment.entity.mysql.flymall;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+
+/**
+ * 18_商品sku线上
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@TableName("b2c_goods_sku_in_online")
+public class B2cGoodsSkuInOnline {
+
+    @TableId(type = IdType.AUTO)
+    @TableField("sku_id")
+    private Integer skuId;  // sku_id
+
+    @TableField("gd_id")
+    private Integer gdId;  // 商品id
+
+    @TableField("gd_price")
+    private BigDecimal gdPrice;  // 商品价格
+
+    @TableField("cost_price")
+    private BigDecimal costPrice;
+
+    @TableField("mk_price")
+    private BigDecimal mkPrice;  // 商品市场价格
+
+    @TableField("gd_stock")
+    private Integer gdStock;  // 商品库存
+
+    @TableField("shop_id")
+    private Integer shopId;
+
+    @TableField("sale_attrs")
+    private String saleAttrs;  // 销售属性
+
+    @TableField("is_del")
+    private Integer isDel;  // 是否删除 1删除 0 正常
+
+    @TableField("create_username")
+    private String createUsername;  // 创建人的搜悦账号
+
+    @TableField("create_time")
+    private Timestamp createTime;  // 创建时间
+
+    @TableField("upd_username")
+    private String updUsername;  // 更新者的搜悦账号
+
+    @TableField("upd_time")
+    private Timestamp updTime;  // 更新时间
+
+    @TableField("audit_username")
+    private String auditUsername;  // 审核人的搜悦账号
+
+    @TableField("audit_time")
+    private Timestamp auditTime;  // 审核时间
+
+    @TableField("ship_price")
+    private BigDecimal shipPrice;  // 绑定到商品上的运费
+
+    @TableField("sku_code")
+    private String skuCode;  // 商品货号
+
+    @TableField("price_status")
+    private Integer priceStatus;  // 0-未变动 1-已变动
+
+    @TableField("qy_id")
+    private Integer qyId;  // 对应企悦ID
+}

+ 149 - 0
src/main/java/zs/payment/entity/mysql/flymall/B2cGoodsSpuInOnline.java

@@ -0,0 +1,149 @@
+package zs.payment.entity.mysql.flymall;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+
+/**
+ * 16_商品表_线上环境表
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@TableName("b2c_goods_spu_in_online")
+public class B2cGoodsSpuInOnline {
+
+    @TableId(type = IdType.AUTO)
+    @TableField("gd_id")
+    private Integer gdId;  // 商品id
+
+    @TableField("gd_name")
+    private String gdName;  // 商品名称
+
+    @TableField("gd_color")
+    private String gdColor;  // 商品名称颜色
+
+    @TableField("gd_desc")
+    private String gdDesc;  // 商品详情
+
+    @TableField("gd_promote_word")
+    private String gdPromoteWord;  // 商品促销语
+
+    @TableField("cat_ids")
+    private String catIds;  // 品类父级信息
+
+    @TableField("pt_id")
+    private Integer ptId;  // 品类ID
+
+    @TableField("gd_unit")
+    private String gdUnit;  // 商品单位
+
+    @TableField("gd_weight")
+    private Double gdWeight;  // 重量
+
+    @TableField("is_del")
+    private Integer isDel;  // 是否删除(0正常 1删除)
+
+    @TableField("shop_id")
+    private Integer shopId;  // 供货商店铺ID,外键
+
+    @TableField("normal_attrs")
+    private String normalAttrs;  // 普通属性,json存储
+
+    @TableField("sale_attrs")
+    private String saleAttrs;  // 销售属性数组
+
+    @TableField("img_attrs")
+    private String imgAttrs;  // 图片属性数组
+
+    @TableField("is_on_sale")
+    private Integer isOnSale;  // 是否上架销售 1上架 0 编辑中 2待上架
+
+    @TableField("gd_num")
+    private String gdNum;  // 商品货号
+
+    @TableField("brand_id")
+    private Integer brandId;  // 品牌ID
+
+    @TableField("audit_status")
+    private Integer auditStatus;  // 审核状态,0-未审核 1-审核通过 2-审核不通过
+
+    @TableField("site")
+    private String site;  // 所在地
+
+    @TableField("audit_time")
+    private Timestamp auditTime;  // 审核时间
+
+    @TableField("create_username")
+    private String createUsername;  // 创建人的搜悦账号
+
+    @TableField("create_time")
+    private Timestamp createTime;  // 创建时间
+
+    @TableField("upd_username")
+    private String updUsername;  // 更新者的搜悦账号
+
+    @TableField("upd_time")
+    private Timestamp updTime;  // 更新时间
+
+    @TableField("commission_ratio")
+    private BigDecimal commissionRatio;  // 佣金比例
+
+    @TableField("commission_set_ratio")
+    private BigDecimal commissionSetRatio;  // 佣金设置比例
+
+    @TableField("tg_commission_ratio")
+    private BigDecimal tgCommissionRatio;  // 推广佣金比例
+
+    @TableField("tg_commission_set_ratio")
+    private BigDecimal tgCommissionSetRatio;  // 推广佣金设置比例
+
+    @TableField("commission_time")
+    private Timestamp commissionTime;  // 佣金生效时间
+
+    @TableField("tg_commission_time")
+    private Timestamp tgCommissionTime;  // 推广佣金生效时间
+
+    @TableField("distribution_num")
+    private Integer distributionNum;  // 分销数
+
+    @TableField("sale_attrs_alias")
+    private String saleAttrsAlias;  // 销售属性别名("{"10287":{"298165":"桔色"}}")
+
+    @TableField("top_time")
+    private Timestamp topTime;  // 置顶时间
+
+    @TableField("goods_source")
+    private Integer goodsSource;  // 商品来源 1云商城,2微店
+
+    @TableField("gd_keywords")
+    private String gdKeywords;  // 商品关键词(JSON)
+
+    @TableField("goodsid")
+    private Integer goodsid;  // 企悦goodsid
+
+    @TableField("uniacid")
+    private Integer uniacid;  // 企悦公众号id
+
+    @TableField("merchid")
+    private Integer merchid;  // 企悦多商户id
+
+    @TableField("storeid")
+    private Integer storeid;  // 企悦店铺id
+
+    @TableField("union_coin_fee")
+    private BigDecimal unionCoinFee;  // 可抵扣联盟币金额
+
+    @TableField("local_coin_fee")
+    private BigDecimal localCoinFee;  // 可抵扣本币金额
+
+    @TableField("coin_time")
+    private Timestamp coinTime;  // 币生效时间
+}

+ 164 - 0
src/main/java/zs/payment/entity/mysql/flymall/B2cShop.java

@@ -0,0 +1,164 @@
+package zs.payment.entity.mysql.flymall;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+
+/**
+ * 3_供应商
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@TableName("b2c_shop")
+public class B2cShop {
+
+    @TableId(type = IdType.AUTO)
+    @TableField("shop_id")
+    private Integer shopId;
+
+    @TableField("company_name")
+    private String companyName;  // 公司名称
+
+    @TableField("shop_name")
+    private String shopName;  // 供应商名称 公司名称
+
+    @TableField("business_license")
+    private String businessLicense;  // 营业执照号
+
+    @TableField("contact")
+    private String contact;  // 联系人
+
+    @TableField("telephone")
+    private String telephone;  // 联系方式
+
+    @TableField("remind_telephone")
+    private String remindTelephone;  // 订单提醒手机号
+
+    @TableField("contact_address")
+    private String contactAddress;  // 联系地址
+
+    @TableField("settlement_souyue")
+    private String settlementSouyue;  // 结算搜悦号
+
+    @TableField("custom_service_souyue")
+    private String customServiceSouyue;  // 搜悦客服号
+
+    @TableField("publicit_language")
+    private String publicitLanguage;  // 宣传语
+
+    @TableField("description")
+    private String description;  // 店铺描述
+
+    @TableField("shop_logo")
+    private String shopLogo;  // 供应商logo
+
+    @TableField("shop_bg_img_url")
+    private String shopBgImgUrl;  // 背景图URL地址
+
+    @TableField("shop_status")
+    private Integer shopStatus;  // 店铺状态 1:未开通 2:已开通/正常 3:关闭
+
+    @TableField("status")
+    private Integer status;  // 审核状态:1.正常; 2.到期; 3.下线;4.待审核; 5. 审核通过;6.审核拒绝
+
+    @TableField("mall_id")
+    private Integer mallId;  // 招商卖场ID
+
+    @TableField("begin_time")
+    private Timestamp beginTime;  // 有效开始时间
+
+    @TableField("end_time")
+    private Timestamp endTime;  // 有效结束时间
+
+    @TableField("create_username")
+    private String createUsername;  // 创建人的搜悦账号
+
+    @TableField("create_time")
+    private Timestamp createTime;  // 创建时间
+
+    @TableField("upd_username")
+    private String updUsername;  // 更新者的搜悦账号
+
+    @TableField("upd_time")
+    private Timestamp updTime;  // 更新时间
+
+    @TableField("opening_time")
+    private Timestamp openingTime;  // 开通时间
+
+    @TableField("customer_service_tel")
+    private String customerServiceTel;  // 客服电话
+
+    @TableField("customer_service_url")
+    private String customerServiceUrl;  // 客服地址
+
+    @TableField("bank_name")
+    private String bankName;  // 银行名称
+
+    @TableField("bank_card_number")
+    private String bankCardNumber;  // 银行卡号
+
+    @TableField("imgs")
+    private String imgs;  // 证照图片
+
+    @TableField("distribution_num")
+    private Integer distributionNum;  // 分销数
+
+    @TableField("user_type")
+    private Integer userType;  // 用户类型(1店铺2自主型商城)
+
+    @TableField("shop_type")
+    private Integer shopType;  // 店铺类型(1入驻型2联营型3企悦微店铺 4 自主结算型)
+
+    @TableField("merchants_id")
+    private Integer merchantsId;  // 招商人员
+
+    @TableField("merchants_username")
+    private String merchantsUsername;  // 招商人员名字
+
+    @TableField("payment_rate")
+    private BigDecimal paymentRate;  // 积分支付汇率
+
+    @TableField("branch_name")
+    private String branchName;  // 支行名称
+
+    @TableField("branch_number")
+    private String branchNumber;  // 支行号
+
+    @TableField("deposit_balance")
+    private BigDecimal depositBalance;  // 押金余额
+
+    @TableField("deposit_status")
+    private Integer depositStatus;  // 押金状态(1、已交    2、未交    3、已退)
+
+    @TableField("qy_type")
+    private Integer qyType;  // 企悦类型(1企业型2个体商户)
+
+    @TableField("operator_name")
+    private String operatorName;  // 经营者姓名
+
+    @TableField("operator_number")
+    private String operatorNumber;  // 经营者身份证号
+
+    @TableField("operator_qq")
+    private String operatorQq;  // 经营者qq号
+
+    @TableField("operator_email")
+    private String operatorEmail;  // 经营者邮箱
+
+    @TableField("two_dimensional_code")
+    private String twoDimensionalCode;
+
+    @TableField("shop_level")
+    private Integer shopLevel;  // 店铺服务级别 0普通 1金种子
+
+    @TableField("is_qiyue")
+    private Integer isQiyue;  // 是否是企悦商城 1:是 2:否
+}

+ 68 - 0
src/main/java/zs/payment/exception/ApiException.java

@@ -0,0 +1,68 @@
+package zs.payment.exception;
+
+
+import zs.payment.resp.ResultCode;
+
+/**
+ * 自定义异常
+ */
+public class ApiException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private String msg;
+    private int code = ResultCode.INTERNAL_SERVER_ERROR.getCode();
+
+    private boolean error = true;
+
+    public ApiException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public ApiException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public ApiException(String msg, int code) {
+        super(msg);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public ApiException(String msg, int code, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public ApiException(ResultCode res) {
+        super(res.getMsg());
+        this.code = res.getCode();
+        this.msg = res.getMsg();
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public boolean isError() {
+        return error;
+    }
+
+    public void setError(boolean error) {
+        this.error = error;
+    }
+}

+ 9 - 0
src/main/java/zs/payment/mapper/flymall/B2cGoodsImgInOnlineMapper.java

@@ -0,0 +1,9 @@
+package zs.payment.mapper.flymall;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import zs.payment.entity.mysql.flymall.B2cGoodsImgInOnline;
+
+@Mapper
+public interface B2cGoodsImgInOnlineMapper extends BaseMapper<B2cGoodsImgInOnline> {
+}

+ 9 - 0
src/main/java/zs/payment/mapper/flymall/B2cGoodsSkuInOnlineMapper.java

@@ -0,0 +1,9 @@
+package zs.payment.mapper.flymall;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import zs.payment.entity.mysql.flymall.B2cGoodsSkuInOnline;
+
+@Mapper
+public interface B2cGoodsSkuInOnlineMapper extends BaseMapper<B2cGoodsSkuInOnline> {
+}

+ 9 - 0
src/main/java/zs/payment/mapper/flymall/B2cGoodsSpuInOnlineMapper.java

@@ -0,0 +1,9 @@
+package zs.payment.mapper.flymall;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import zs.payment.entity.mysql.flymall.B2cGoodsSpuInOnline;
+
+@Mapper
+public interface B2cGoodsSpuInOnlineMapper extends BaseMapper<B2cGoodsSpuInOnline> {
+}

+ 9 - 0
src/main/java/zs/payment/mapper/flymall/B2cShopMapper.java

@@ -0,0 +1,9 @@
+package zs.payment.mapper.flymall;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import zs.payment.entity.mysql.flymall.B2cShop;
+
+@Mapper
+public interface B2cShopMapper extends BaseMapper<B2cShop> {
+}

+ 1 - 1
src/main/java/zs/payment/mapper/ImsEweiShopCategoryMapper.java

@@ -1,4 +1,4 @@
-package zs.payment.mapper;
+package zs.payment.mapper.primary;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;

+ 1 - 1
src/main/java/zs/payment/mapper/ImsEweiShopGoodsMapper.java

@@ -1,4 +1,4 @@
-package zs.payment.mapper;
+package zs.payment.mapper.primary;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;

+ 1 - 1
src/main/java/zs/payment/mapper/ImsEweiShopGoodsOptionMapper.java

@@ -1,4 +1,4 @@
-package zs.payment.mapper;
+package zs.payment.mapper.primary;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;

+ 1 - 1
src/main/java/zs/payment/mapper/ImsEweiShopGoodsSpecItemMapper.java

@@ -1,4 +1,4 @@
-package zs.payment.mapper;
+package zs.payment.mapper.primary;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;

+ 1 - 1
src/main/java/zs/payment/mapper/ImsEweiShopGoodsSpecMapper.java

@@ -1,4 +1,4 @@
-package zs.payment.mapper;
+package zs.payment.mapper.primary;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;

+ 23 - 0
src/main/java/zs/payment/req/yunmall/goods/GoodsSaveReq.java

@@ -0,0 +1,23 @@
+package zs.payment.req.yunmall.goods;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 供货/取消供货商品的请求体参数
+ */
+@Setter
+@Getter
+@NoArgsConstructor
+public class GoodsSaveReq {
+
+    @NotBlank(message = "商品主键不能为空")
+    private String gdId;
+    // 1=供货  2=取消供货
+    @NotNull(message = "操作不能为空")
+    private Integer op;
+}

+ 35 - 0
src/main/java/zs/payment/resp/ResultCode.java

@@ -0,0 +1,35 @@
+package zs.payment.resp;
+
+/**
+ * 状态码
+ */
+public enum ResultCode {
+    // SYSTEM
+    OK(200, "OK"),
+
+
+    BAD_REQUEST(400, "Bad Request"),
+    UNAUTHORIZED(401, "用户名或密码不正确"),
+    FORBIDDEN(403, "禁止访问"),
+    NOT_FOUND(404, "Not Found"),
+    CONFLICT(409, "Conflict"),
+    LOGICAL_ERROR(410, "业务逻辑错误"),
+    INTERNAL_SERVER_ERROR(500, "网络速度慢,请您稍后刷新~"),
+    ;
+
+    private final Integer code;
+    private final String msg;
+
+    ResultCode(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 1 - 1
src/main/java/zs/payment/service/Imseweishopgoods/impl/ImsEweiShopGoodsServiceImpl.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import zs.payment.entity.mysql.ImsEweiShopGoods;
 import zs.payment.entity.mysql.ImsEweiShopGoods;
-import zs.payment.mapper.ImsEweiShopGoodsMapper;
+import zs.payment.mapper.primary.ImsEweiShopGoodsMapper;
 import zs.payment.service.Imseweishopgoods.ImsEweiShopGoodsService;
 import zs.payment.service.Imseweishopgoods.ImsEweiShopGoodsService;
 
 
 @Service
 @Service

+ 12 - 0
src/main/java/zs/payment/service/flymall/b2cgoodsimginonline/B2cGoodsImgInOnlineService.java

@@ -0,0 +1,12 @@
+package zs.payment.service.flymall.b2cgoodsimginonline;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import zs.payment.entity.mysql.flymall.B2cGoodsImgInOnline;
+
+import java.util.List;
+
+public interface B2cGoodsImgInOnlineService extends IService<B2cGoodsImgInOnline> {
+
+    List<B2cGoodsImgInOnline> findByGdId(String gdId);
+
+}

+ 25 - 0
src/main/java/zs/payment/service/flymall/b2cgoodsimginonline/impl/B2cGoodsImgInOnlineServiceImpl.java

@@ -0,0 +1,25 @@
+package zs.payment.service.flymall.b2cgoodsimginonline.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import zs.payment.entity.mysql.flymall.B2cGoodsImgInOnline;
+import zs.payment.mapper.flymall.B2cGoodsImgInOnlineMapper;
+import zs.payment.service.flymall.b2cgoodsimginonline.B2cGoodsImgInOnlineService;
+
+import java.util.Collections;
+import java.util.List;
+
+@Service
+@Slf4j
+public class B2cGoodsImgInOnlineServiceImpl extends ServiceImpl<B2cGoodsImgInOnlineMapper, B2cGoodsImgInOnline> implements B2cGoodsImgInOnlineService {
+
+
+    @Override
+    public List<B2cGoodsImgInOnline> findByGdId(String gdId) {
+
+        return lambdaQuery().eq(B2cGoodsImgInOnline::getGdId, gdId)
+            //orderByAsc  从小到大, 第一个就是默认
+            .orderByAsc(B2cGoodsImgInOnline::getImgSort).list();
+    }
+}

+ 11 - 0
src/main/java/zs/payment/service/flymall/b2cgoodsskuinonline/B2cGoodsSkuInOnlineService.java

@@ -0,0 +1,11 @@
+package zs.payment.service.flymall.b2cgoodsskuinonline;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import zs.payment.entity.mysql.flymall.B2cGoodsSkuInOnline;
+
+import java.util.List;
+
+public interface B2cGoodsSkuInOnlineService extends IService<B2cGoodsSkuInOnline> {
+
+    List<B2cGoodsSkuInOnline> findByGdId(String gdId);
+}

+ 20 - 0
src/main/java/zs/payment/service/flymall/b2cgoodsskuinonline/impl/B2cGoodsSkuInOnlineServiceImpl.java

@@ -0,0 +1,20 @@
+package zs.payment.service.flymall.b2cgoodsskuinonline.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import zs.payment.entity.mysql.flymall.B2cGoodsSkuInOnline;
+import zs.payment.mapper.flymall.B2cGoodsSkuInOnlineMapper;
+import zs.payment.service.flymall.b2cgoodsskuinonline.B2cGoodsSkuInOnlineService;
+
+
+import java.util.List;
+
+@Service
+@Slf4j
+public class B2cGoodsSkuInOnlineServiceImpl extends ServiceImpl<B2cGoodsSkuInOnlineMapper, B2cGoodsSkuInOnline> implements B2cGoodsSkuInOnlineService {
+    @Override
+    public List<B2cGoodsSkuInOnline> findByGdId(String gdId) {
+        return lambdaQuery().eq(B2cGoodsSkuInOnline::getGdId, gdId).list();
+    }
+}

+ 7 - 0
src/main/java/zs/payment/service/flymall/b2cgoodsspuinonline/B2cGoodsSpuInOnlineService.java

@@ -0,0 +1,7 @@
+package zs.payment.service.flymall.b2cgoodsspuinonline;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import zs.payment.entity.mysql.flymall.B2cGoodsSpuInOnline;
+
+public interface B2cGoodsSpuInOnlineService extends IService<B2cGoodsSpuInOnline> {
+}

+ 18 - 0
src/main/java/zs/payment/service/flymall/b2cgoodsspuinonline/impl/B2cGoodsSpuInOnlineServiceImpl.java

@@ -0,0 +1,18 @@
+package zs.payment.service.flymall.b2cgoodsspuinonline.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import zs.payment.entity.mysql.flymall.B2cGoodsSpuInOnline;
+import zs.payment.mapper.flymall.B2cGoodsSpuInOnlineMapper;
+import zs.payment.service.flymall.b2cgoodsspuinonline.B2cGoodsSpuInOnlineService;
+
+@Service
+@Slf4j
+public class B2cGoodsSpuInOnlineServiceImpl extends ServiceImpl<B2cGoodsSpuInOnlineMapper, B2cGoodsSpuInOnline> implements B2cGoodsSpuInOnlineService {
+
+
+
+
+}

+ 7 - 0
src/main/java/zs/payment/service/flymall/b2cshop/B2cShopService.java

@@ -0,0 +1,7 @@
+package zs.payment.service.flymall.b2cshop;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import zs.payment.entity.mysql.flymall.B2cShop;
+
+public interface B2cShopService extends IService<B2cShop> {
+}

+ 14 - 0
src/main/java/zs/payment/service/flymall/b2cshop/impl/B2cShopServiceImpl.java

@@ -0,0 +1,14 @@
+package zs.payment.service.flymall.b2cshop.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import zs.payment.entity.mysql.flymall.B2cShop;
+import zs.payment.mapper.flymall.B2cShopMapper;
+import zs.payment.service.flymall.b2cshop.B2cShopService;
+
+@Service
+@Slf4j
+public class B2cShopServiceImpl extends ServiceImpl<B2cShopMapper, B2cShop> implements B2cShopService {
+
+}

+ 1 - 4
src/main/java/zs/payment/service/imseweishopcategory/impl/ImsEweiShopCategoryServiceImpl.java

@@ -1,17 +1,14 @@
 package zs.payment.service.imseweishopcategory.impl;
 package zs.payment.service.imseweishopcategory.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import zs.payment.entity.mysql.ImsEweiShopCategory;
 import zs.payment.entity.mysql.ImsEweiShopCategory;
-import zs.payment.mapper.ImsEweiShopCategoryMapper;
+import zs.payment.mapper.primary.ImsEweiShopCategoryMapper;
 import zs.payment.service.imseweishopcategory.ImsEweiShopCategoryService;
 import zs.payment.service.imseweishopcategory.ImsEweiShopCategoryService;
 
 
-import java.util.Optional;
-
 @Slf4j
 @Slf4j
 @Service
 @Service
 public class ImsEweiShopCategoryServiceImpl extends ServiceImpl<ImsEweiShopCategoryMapper, ImsEweiShopCategory> implements ImsEweiShopCategoryService {
 public class ImsEweiShopCategoryServiceImpl extends ServiceImpl<ImsEweiShopCategoryMapper, ImsEweiShopCategory> implements ImsEweiShopCategoryService {

+ 1 - 2
src/main/java/zs/payment/service/imseweishopgoodsoption/impl/ImsEweiShopGoodsOptionServiceImpl.java

@@ -1,11 +1,10 @@
 package zs.payment.service.imseweishopgoodsoption.impl;
 package zs.payment.service.imseweishopgoodsoption.impl;
 
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import zs.payment.entity.mysql.ImsEweiShopGoodsOption;
 import zs.payment.entity.mysql.ImsEweiShopGoodsOption;
-import zs.payment.mapper.ImsEweiShopGoodsOptionMapper;
+import zs.payment.mapper.primary.ImsEweiShopGoodsOptionMapper;
 import zs.payment.service.imseweishopgoodsoption.ImsEweiShopGoodsOptionService;
 import zs.payment.service.imseweishopgoodsoption.ImsEweiShopGoodsOptionService;
 
 
 @Slf4j
 @Slf4j

+ 1 - 1
src/main/java/zs/payment/service/imseweishopgoodsspec/impl/ImsEweiShopGoodsSpecServiceImpl.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import zs.payment.entity.mysql.ImsEweiShopGoodsSpec;
 import zs.payment.entity.mysql.ImsEweiShopGoodsSpec;
-import zs.payment.mapper.ImsEweiShopGoodsSpecMapper;
+import zs.payment.mapper.primary.ImsEweiShopGoodsSpecMapper;
 import zs.payment.service.imseweishopgoodsspec.ImsEweiShopGoodsSpecService;
 import zs.payment.service.imseweishopgoodsspec.ImsEweiShopGoodsSpecService;
 
 
 @Slf4j
 @Slf4j

+ 1 - 1
src/main/java/zs/payment/service/imseweishopgoodsspecitem/impl/ImsEweiShopGoodsSpecItemServiceImpl.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import zs.payment.entity.mysql.ImsEweiShopGoodsSpecItem;
 import zs.payment.entity.mysql.ImsEweiShopGoodsSpecItem;
-import zs.payment.mapper.ImsEweiShopGoodsSpecItemMapper;
+import zs.payment.mapper.primary.ImsEweiShopGoodsSpecItemMapper;
 import zs.payment.service.imseweishopgoodsspecitem.ImsEweiShopGoodsSpecItemService;
 import zs.payment.service.imseweishopgoodsspecitem.ImsEweiShopGoodsSpecItemService;
 
 
 @Slf4j
 @Slf4j

+ 11 - 0
src/main/java/zs/payment/service/yunmall/goods/GoodsService.java

@@ -0,0 +1,11 @@
+package zs.payment.service.yunmall.goods;
+
+public interface GoodsService {
+    /**
+     * 根据gdId查询
+     * @param gdId b2c_goods_spu_in_online 商品表-线上环境 的主键
+     * @param op  1=供货 2=取消供货(删除)
+     * @return
+     */
+    String saveGoods(String gdId,Integer op);
+}

+ 112 - 0
src/main/java/zs/payment/service/yunmall/goods/impl/GoodsServiceImpl.java

@@ -0,0 +1,112 @@
+package zs.payment.service.yunmall.goods.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Service;
+import zs.payment.dao.yunmall.GoodsDao;
+import zs.payment.entity.mongodb.yunmall.Goods;
+import zs.payment.entity.mongodb.yunmall.Shop;
+import zs.payment.entity.mongodb.yunmall.Sku;
+import zs.payment.entity.mysql.flymall.B2cGoodsImgInOnline;
+import zs.payment.entity.mysql.flymall.B2cGoodsSkuInOnline;
+import zs.payment.entity.mysql.flymall.B2cGoodsSpuInOnline;
+import zs.payment.entity.mysql.flymall.B2cShop;
+import zs.payment.exception.ApiException;
+import zs.payment.service.flymall.b2cgoodsimginonline.B2cGoodsImgInOnlineService;
+import zs.payment.service.flymall.b2cgoodsskuinonline.B2cGoodsSkuInOnlineService;
+import zs.payment.service.flymall.b2cgoodsspuinonline.B2cGoodsSpuInOnlineService;
+import zs.payment.service.flymall.b2cshop.B2cShopService;
+import zs.payment.service.yunmall.goods.GoodsService;
+import zs.payment.utils.TimeUtils;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+@Service
+public class GoodsServiceImpl implements GoodsService {
+
+    @Autowired
+    private B2cGoodsSpuInOnlineService b2cGoodsSpuInOnlineService;
+
+    @Autowired
+    private B2cGoodsImgInOnlineService b2cGoodsImgInOnlineService;
+
+    @Autowired
+    private B2cGoodsSkuInOnlineService  b2cGoodsSkuInOnlineService;
+
+    @Autowired
+    private  B2cShopService b2cShopService;
+
+    @Autowired
+    private GoodsDao goodsDao;
+
+
+    @Override
+    public String saveGoods(String gdId, Integer op) {
+
+        if (op==1){
+            //查询商品基础信息
+            B2cGoodsSpuInOnline b2cGoods = b2cGoodsSpuInOnlineService.getById(gdId);
+            //查询图片
+            List<B2cGoodsImgInOnline> goodsImgs = b2cGoodsImgInOnlineService.findByGdId(gdId);
+
+            List<B2cGoodsSkuInOnline> goodsSkus = b2cGoodsSkuInOnlineService.findByGdId(gdId);
+
+
+
+            if (Optional.ofNullable(b2cGoods).isPresent() && Optional.ofNullable(goodsImgs).isPresent() && !goodsSkus.isEmpty()) {
+
+                B2cShop b2cShop = b2cShopService.getById(b2cGoods.getShopId());
+                //b2cGoods存在,则操作后续, 反之则报错
+                List<String> gdImgs = goodsImgs.stream().map(B2cGoodsImgInOnline::getGdImg).collect(Collectors.toList());
+                String defaultImg = goodsImgs.stream().filter(img -> img.getIsDefault() == 1).findFirst().get().getGdImg();
+
+                BigDecimal gdPrice = goodsSkus.get(0).getGdPrice();
+                List<Sku> skus = goodsSkus.stream().map(sku -> Sku.ofArticle(sku, defaultImg)).collect(Collectors.toList());
+
+                //goods= 生态商品
+                Goods goods = new Goods();
+                goods.setGdId(Long.valueOf(gdId));
+                goods.setCommission(gdPrice.multiply(b2cGoods.getCommissionRatio()).divide(BigDecimal.valueOf(100), 2, java.math.RoundingMode.DOWN).doubleValue());
+                goods.setCommissionRatio(b2cGoods.getCommissionRatio());
+                //默认图片是指gd_imgs中的[0]
+                goods.setDefaultImg(defaultImg);
+                goods.setGdColor(b2cGoods.getGdColor());
+                //
+                goods.setGdImgs(gdImgs);
+                goods.setGdName(b2cGoods.getGdName());
+                //sku 的信息
+                goods.setGdPrice(gdPrice);
+                goods.setGdWeight(b2cGoods.getGdWeight());
+                goods.setMaxPrice(gdPrice);
+                //品类id
+                goods.setPtId(b2cGoods.getPtId());
+                long time = TimeUtils.getLongFromCurrentTime();
+                goods.setPublicTime(time);
+                goods.setSalesVolume(0L);
+                goods.setShop(Shop.ofArticle(b2cShop));
+                goods.setSkus(skus);
+                goods.setTopTime(0L);
+                goods.setUpdateTime(time);
+
+                Goods save = goodsDao.save(goods);
+                return save.getId().toString();
+            }
+        }else if (op==2){
+            //取消供货
+            Query query = new Query(Criteria.where("gd_id").is(Long.valueOf(gdId)));
+            goodsDao.delete(query);
+
+
+        }else {
+            throw new ApiException("参数有误");
+        }
+
+
+
+        return "";
+    }
+}

+ 25 - 10
src/main/resources/application-pro.yml

@@ -29,16 +29,31 @@ spring:
 
 
 
 
     datasource:
     datasource:
-        driver-class-name: com.mysql.cj.jdbc.Driver #数据源配置
-        url: jdbc:mysql://fefvp9lglp7e7w6hwzlp-rw4rm.rwlb.rds.aliyuncs.com:3306/qiyun?characterEncoding=UTF-8&autoReconnect=true
-        username: weitest
-        password: wei@2@22
-        hikari:
-            maximum-pool-size: 20      # 适合中等并发量的应用,既保证了响应速度,又不会过度占用数据库资源
-            minimum-idle: 10            # 通常设置为maximum-pool-size的一半
-            connection-timeout: 30000   # 30秒等待时间足够
-            idle-timeout: 600000        # 10分钟空闲可接受
-            max-lifetime: 1800000       # 30分钟防止连接泄露
+        # ============== 主数据源(qiyun 库)==============
+        primary:
+            driver-class-name: com.mysql.cj.jdbc.Driver #数据源配置
+            jdbc-url: jdbc:mysql://fefvp9lglp7e7w6hwzlp-rw4rm.rwlb.rds.aliyuncs.com:3306/qiyun?characterEncoding=UTF-8&autoReconnect=true
+            username: weitest
+            password: wei@2@22
+            hikari:
+                maximum-pool-size: 20      # 适合中等并发量的应用,既保证了响应速度,又不会过度占用数据库资源
+                minimum-idle: 10            # 通常设置为maximum-pool-size的一半
+                connection-timeout: 30000   # 30秒等待时间足够
+                idle-timeout: 600000        # 10分钟空闲可接受
+                max-lifetime: 1800000       # 30分钟防止连接泄露
+
+        # ============== 从数据源(新增 flymall 库)==============
+        flymall:
+            driver-class-name: com.mysql.cj.jdbc.Driver
+            jdbc-url: jdbc:mysql://rm-2ze83n3xj74cmzstr.mysql.rds.aliyuncs.com:3306/flymall?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
+            username: flymall
+            password: fly2@15mall
+            hikari:
+                maximum-pool-size: 20
+                minimum-idle: 10
+                connection-timeout: 30000
+                idle-timeout: 600000
+                max-lifetime: 1800000
 
 
 
 
 pay:
 pay:

+ 6 - 0
src/main/resources/mapper/flymall/B2cShopMapper.xml

@@ -0,0 +1,6 @@
+<?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="zs.payment.mapper.flymall.B2cShopMapper">
+
+
+</mapper>

+ 6 - 0
src/main/resources/mapper/primary/ImsEweiShopGoodsMapper.xml

@@ -0,0 +1,6 @@
+<?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="zs.payment.mapper.primary.ImsEweiShopGoodsMapper">
+
+
+</mapper>