From 1a859a9337cff9093f1ea296b6868fa7bf6b706e Mon Sep 17 00:00:00 2001 From: huk Date: Fri, 19 Sep 2025 11:56:17 +0800 Subject: [PATCH] =?UTF-8?q?feat(transaction):=20=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=95=86=E6=88=B7=E6=96=B0=E5=A2=9EAPPID=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加微信商户新增APPID请求和响应对象- 实现微信商户新增APPID接口调用 - 更新商品信息相关代码,增加删除标志字段- 优化品牌、商品分类、SKU等实体类结构 -调整商品信息查询逻辑,增加租户信息判断 --- .../org/dromara/app/AppProductController.java | 2 +- .../goods/business/IProductBusiness.java | 3 + .../goods/business/ProductBusinessImpl.java | 19 +++++-- .../goods/controller/ProductController.java | 25 ++++----- .../wzj/soopin/goods/domain/entity/Brand.java | 10 ++++ .../soopin/goods/domain/entity/Product.java | 3 +- .../goods/domain/entity/ProductCategory.java | 10 ++++ .../wzj/soopin/goods/domain/entity/Sku.java | 10 ++++ .../wzj/soopin/goods/domain/vo/ProductVO.java | 3 + .../wzj/soopin/goods/mapper/BrandMapper.java | 10 +--- .../goods/mapper/ProductCategoryMapper.java | 7 --- .../soopin/goods/mapper/ProductMapper.java | 10 ---- .../wzj/soopin/goods/mapper/SkuMapper.java | 7 --- .../service/impl/ProductServiceImpl.java | 19 +++---- .../mapper/goods/IMQMessageHandleService.xml | 36 ------------ .../mapper/goods/ProductCategoryMapper.xml | 33 ----------- .../resources/mapper/goods/ProductMapper.xml | 55 +------------------ .../main/resources/mapper/goods/SkuMapper.xml | 31 ----------- .../dromara/system/domain/vo/SysTenantVo.java | 3 + .../system/mapper/SysTenantMapper.java | 12 ++++ .../service/impl/SysTenantServiceImpl.java | 2 +- .../controller/TransEasypayController.java | 15 +++++ .../config/AddSubAppidConfigReqBody.java | 28 ++++++++++ .../config/AddSubAppidConfigRespBody.java | 25 +++++++++ .../transaction/service/IEasypayService.java | 6 ++ .../service/impl/EasypayServiceImpl.java | 50 ++++++++++++++++- 26 files changed, 215 insertions(+), 219 deletions(-) delete mode 100644 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/IMQMessageHandleService.xml create mode 100644 ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/easypay/config/AddSubAppidConfigReqBody.java create mode 100644 ruoyi-modules/ruoyi-transaction/src/main/java/com/wzj/soopin/transaction/domain/bo/easypay/config/AddSubAppidConfigRespBody.java diff --git a/ruoyi-admin/src/main/java/org/dromara/app/AppProductController.java b/ruoyi-admin/src/main/java/org/dromara/app/AppProductController.java index 4319acd86..00030e17c 100644 --- a/ruoyi-admin/src/main/java/org/dromara/app/AppProductController.java +++ b/ruoyi-admin/src/main/java/org/dromara/app/AppProductController.java @@ -32,7 +32,7 @@ public class AppProductController { @Tag(name ="获取商品信息详细信息") @GetMapping(value = "/{id}") - public R getInfo(@PathVariable("id") Long id) { + public R getInfo(@PathVariable("id") Long id) { return R.ok(service.selectById(id)); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/IProductBusiness.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/IProductBusiness.java index 828e1f44a..28df455e1 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/IProductBusiness.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/IProductBusiness.java @@ -8,6 +8,9 @@ import com.wzj.soopin.goods.domain.vo.ProductVO; import org.dromara.common.web.core.IBusiness; public interface IProductBusiness extends IBusiness { + + ProductVO info(Long id); + boolean audit(Long id, Integer authFlag, String reasons); boolean publish(Long id, Integer publishStatus); /** diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java index 0071efa04..5951871e4 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/business/ProductBusinessImpl.java @@ -14,7 +14,6 @@ import com.wzj.soopin.goods.service.ProductService; import com.wzj.soopin.goods.service.SkuService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.common.web.core.BusinessImpl; import org.springframework.stereotype.Service; @@ -41,15 +40,25 @@ public class ProductBusinessImpl extends BusinessImpl().eq(Sku::getProductId, product.getId())); // 2. 保存SKU列表 @@ -62,10 +71,10 @@ public class ProductBusinessImpl extends BusinessImpl> list(@RequestBody ProductBo bo) { return R.ok(business.page(bo)); } - @Tag(name ="导出商品信息列表") + @Operation(summary = "导出商品信息列表") @Log(title = "商品信息", businessType = BusinessType.EXPORT) @PostMapping("export") public R export(ProductBo query) { @@ -49,20 +48,20 @@ public class ProductController extends BaseController { return R.ok(util.writeExcel(list, "商品信息数据")); } - @Tag(name ="获取商品信息详细信息") + @Operation(summary = "获取商品信息详细信息") @GetMapping(value = "/{id}") - public R getInfo(@PathVariable("id") Long id) { + public R getInfo(@PathVariable("id") Long id) { return R.ok(business.info(id)); } - @Tag(name ="新增商品信息") + @Operation(summary = "新增商品信息") @Log(title = "商品信息", businessType = BusinessType.INSERT) @PostMapping("/add") public R add(@RequestBody ProductBo bo) { return R.ok(business.save(bo)); } - @Tag(name ="修改商品信息") + @Operation @Log(title = "商品信息", businessType = BusinessType.UPDATE) @PostMapping("/update") public R edit(@RequestBody ProductBo bo) { @@ -70,7 +69,7 @@ public class ProductController extends BaseController { return R.ok(business.save(bo)); } - @Tag(name = "删除商品信息") + @Operation(summary = "删除商品信息") @Log(title = "商品信息", businessType = BusinessType.DELETE) @DeleteMapping("/{id}") public R remove(@PathVariable Long id) { @@ -78,7 +77,7 @@ public class ProductController extends BaseController { } - @Tag(name ="审核商品") + @Operation(summary = "审核商品") @Log(title = "审核商品", businessType = BusinessType.UPDATE) @GetMapping("/audit") public R audit( @RequestParam Long id, @@ -87,14 +86,14 @@ public class ProductController extends BaseController { return R.ok(business.audit(id,authFlag,reasons)); } - @Tag(name ="上下架商品") + @Operation(summary = "上下架商品") @Log(title = "上下架商品", businessType = BusinessType.UPDATE) @GetMapping("/publish") public R publish( @RequestParam Long id, @RequestParam Integer publishStatus) { return R.ok(business.publish(id,publishStatus)); } - @Tag(name ="查询商品信息列表") + @Operation(summary = "查询商品信息列表") @PostMapping("/recommend") public R> recommend(@RequestBody Page page) { return R.ok(business.getRecommendPage(page)); diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java index 8fd0a4449..eac2d25be 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java @@ -1,8 +1,12 @@ package com.wzj.soopin.goods.domain.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.apache.ibatis.type.JdbcType; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; @@ -35,4 +39,10 @@ public class Brand extends BaseAudit { @Schema(description = "品牌logo") @Excel(name = "品牌logo") private String logo; + + @Schema(description = "删除标志(0代表存在,1代表删除)") + @Excel(name = "删除标志(0代表存在,1代表删除)") + @TableLogic(value ="0", delval = "1") + @TableField(value ="del_flag",fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR) + private String delFlag; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java index a6a746305..af2b07733 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.apache.ibatis.type.JdbcType; -import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; import org.dromara.common.mybatis.core.domain.BaseEntity; @@ -115,5 +114,5 @@ public class Product extends BaseEntity { @Excel(name = "删除标志(0代表存在,1代表删除)") @TableLogic(value ="0", delval = "1") @TableField(value ="del_flag",fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR) - private Integer delFlag; + private String delFlag; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java index 6e4403a75..bb0c0bf84 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java @@ -1,8 +1,12 @@ package com.wzj.soopin.goods.domain.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.apache.ibatis.type.JdbcType; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; @@ -43,4 +47,10 @@ public class ProductCategory extends BaseAudit { @Schema(description = "图标") @Excel(name = "图标") private String icon; + + @Schema(description = "删除标志(0代表存在,1代表删除)") + @Excel(name = "删除标志(0代表存在,1代表删除)") + @TableLogic(value ="0", delval = "1") + @TableField(value ="del_flag",fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR) + private String delFlag; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java index fb5dde64d..642fd590d 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java @@ -1,9 +1,13 @@ package com.wzj.soopin.goods.domain.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import org.apache.ibatis.type.JdbcType; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; @@ -51,4 +55,10 @@ public class Sku extends BaseAudit { @Schema(description = "租户id") @Excel(name = "租户id") private String tenantId; + + @Schema(description = "删除标志(0代表存在,1代表删除)") + @Excel(name = "删除标志(0代表存在,1代表删除)") + @TableLogic(value ="0", delval = "1") + @TableField(value ="del_flag",fill = FieldFill.INSERT, jdbcType = JdbcType.CHAR) + private String delFlag; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java index a1d1db1e1..8e973abea 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java @@ -136,5 +136,8 @@ public class ProductVO extends BaseAudit { @Schema(description = "店铺名称") private String storeName; + @Schema(description = "是否可下单") + private boolean canOrder; + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/BrandMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/BrandMapper.java index 5106cf683..975641e14 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/BrandMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/BrandMapper.java @@ -3,19 +3,11 @@ package com.wzj.soopin.goods.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wzj.soopin.goods.domain.entity.Brand; -import java.util.List; - /** * 品牌管理Mapper接口 * * @author zcc */ public interface BrandMapper extends BaseMapper { - /** - * 查询品牌管理列表 - * - * @param brand 品牌管理 - * @return 品牌管理集合 - */ - List selectByEntity(Brand brand); + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductCategoryMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductCategoryMapper.java index 3773f0092..ec679f55e 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductCategoryMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductCategoryMapper.java @@ -14,13 +14,6 @@ import java.util.List; */ @Mapper public interface ProductCategoryMapper extends BaseMapper { - /** - * 查询商品分类列表 - * - * @param productCategory 商品分类 - * @return 商品分类集合 - */ - List selectByEntity(ProductCategory productCategory); /** * 查询所有子分类 diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java index 16245b6ca..74b15c42e 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java @@ -1,6 +1,5 @@ package com.wzj.soopin.goods.mapper; -import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -10,8 +9,6 @@ import com.wzj.soopin.goods.domain.vo.ProductVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; -import org.dromara.common.mybatis.annotation.DataColumn; -import org.dromara.common.mybatis.annotation.DataPermission; import java.util.List; import java.util.Map; @@ -23,13 +20,6 @@ import java.util.Map; */ @Mapper public interface ProductMapper extends BaseMapper { - /** - * 查询商品信息列表 - * - * @param product 商品信息 - * @return 商品信息集合 - */ - List selectByEntity(Product product); Page getlist(@Param("page") Page page, @Param("query") ProductBo query); diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java index 06b0a0c18..f1fcbb68b 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/SkuMapper.java @@ -20,13 +20,6 @@ import java.util.List; */ @Mapper public interface SkuMapper extends BaseMapper { - /** - * 查询sku信息列表 - * - * @param sku sku信息 - * @return sku信息集合 - */ - List selectByEntity(Sku sku); int updateStockById(@Param("skuId")Long skuId, @Param("optDate")LocalDateTime optDate, @Param("quantity")Integer quantity); diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java index 189b9f6b3..699820658 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java @@ -1,6 +1,7 @@ package com.wzj.soopin.goods.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,18 +11,15 @@ import com.wzj.soopin.goods.domain.entity.ProductCategory; import com.wzj.soopin.goods.domain.vo.ProductVO; import com.wzj.soopin.goods.mapper.ProductCategoryMapper; import com.wzj.soopin.goods.mapper.ProductMapper; -import com.wzj.soopin.goods.mapper.SkuMapper; import com.wzj.soopin.goods.service.ProductService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.tenant.helper.TenantHelper; -import org.dromara.system.mapper.SysDeptMapper; -import org.dromara.system.mapper.SysTenantMapper; -import org.dromara.system.mapper.SysUserTenantMapper; +import org.dromara.system.domain.vo.SysTenantVo; +import org.dromara.system.service.ISysTenantService; import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.List; /** * 商品信息Service业务层处理 @@ -37,10 +35,8 @@ public class ProductServiceImpl extends ServiceImpl impl private final ProductMapper productMapper; private final ProductCategoryMapper productCategoryMapper; - private final SkuMapper skuMapper; - private final SysTenantMapper sysTenantMapper; - private final SysDeptMapper sysDeptMapper; - private final SysUserTenantMapper sysUserTenantMapper; + private final ISysTenantService sysTenantService; + @Override public Page getList(ProductBo query, Page page) { @@ -66,7 +62,10 @@ public class ProductServiceImpl extends ServiceImpl impl */ @Override public ProductVO selectById(Long id) { - return TenantHelper.ignore(() -> productMapper.selectProductWithSkus(id)); + ProductVO productVO = TenantHelper.ignore(() -> productMapper.selectProductWithSkus(id)); + SysTenantVo sysTenantVo = sysTenantService.queryByTenantId(productVO.getTenantId()); + productVO.setCanOrder(StrUtil.isNotBlank(sysTenantVo.getMchtCode())); + return productVO; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/IMQMessageHandleService.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/IMQMessageHandleService.xml deleted file mode 100644 index 422659c8d..000000000 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/IMQMessageHandleService.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - select id, name, sort, show_status, logo, create_by, create_time, update_by, update_time from pms_brand - - - - diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductCategoryMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductCategoryMapper.xml index 88ce563ad..47c3b1a5b 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductCategoryMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductCategoryMapper.xml @@ -4,37 +4,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - - select id, parent_id, name, level, show_status, sort, icon, create_by, create_time, update_by, update_time from pms_product_category - - - diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml index ff514a9ba..a50dba3d0 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml @@ -4,58 +4,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, brand_id, category_id, out_product_id, name, pic, album_pics, publish_status, sort, price, unit, weight, detail_html, detail_mobile_html, brand_name, product_category_name, create_by, create_time, update_by, update_time from pms_product - - - - - - - and product_id = #{productId} - and out_sku_id = #{outSkuId} - and price = #{price} - and pic = #{pic} - and sp_data = #{spData} - - -