Browse Source

产品可以指定分公司

Long 3 weeks ago
parent
commit
ad4dc153e6

+ 3 - 0
fs-company/src/main/java/com/fs/store/controller/FsStoreProductController.java

@@ -3,6 +3,7 @@ package com.fs.store.controller;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
+import com.fs.core.security.SecurityUtils;
 import com.fs.store.domain.*;
 import com.fs.store.param.FsProductAttrValueParam;
 import com.fs.store.service.IFsStoreProductAttrValueService;
@@ -41,6 +42,8 @@ public class FsStoreProductController extends BaseController
     {
         startPage();
         fsStoreProduct.setIsDel(0);
+        // 只能展示属于本公司的产品
+        fsStoreProduct.setCompanyIds(String.valueOf(SecurityUtils.getLoginUser().getCompany().getCompanyId()));
         List<FsStoreProductListVO> list = fsStoreProductService.selectFsStoreProductListVO(fsStoreProduct);
         return getDataTable(list);
     }

+ 3 - 0
fs-service-system/src/main/java/com/fs/store/domain/FsStoreProduct.java

@@ -174,4 +174,7 @@ public class FsStoreProduct extends BaseEntity
 
     private Integer tuiCateId;
 
+    /** 指定企业 */
+    private String companyIds;
+
 }

+ 6 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductMapper.java

@@ -78,6 +78,9 @@ public interface FsStoreProductMapper
             "<if test = 'maps.isShow != null    '> " +
             "and p.is_show =#{maps.isShow} " +
             "</if>" +
+            "<if test = 'maps.companyIds != null and maps.companyIds != \"\" '> " +
+            "and find_in_set(#{maps.companyIds}, p.company_ids) " +
+            "</if>" +
             " order by p.product_id desc "+
             "</script>"})
     List<FsStoreProductListVO> selectFsStoreProductListVO(@Param("maps")FsStoreProduct fsStoreProduct);
@@ -122,6 +125,9 @@ public interface FsStoreProductMapper
             "<if test = 'maps.isDisplay != null and maps.isDisplay == 1   '> " +
             "and p.is_display =#{maps.isDisplay}  " +
             "</if>" +
+            "<if test = 'maps.companyId != null'> " +
+            "and find_in_set(#{maps.companyId}, p.company_ids) " +
+            "</if>" +
             "<if test = 'maps.cateId != null    '> " +
             "and p.cate_id =#{maps.cateId}  " +
             "</if>" +

+ 2 - 2
fs-service-system/src/main/java/com/fs/store/param/FsStoreProductAddEditParam.java

@@ -142,7 +142,7 @@ public class FsStoreProductAddEditParam implements Serializable
     private List<ProductArrtDTO> items;
     //sku结果集
     private List<FsStoreProductAttrValue> values;
-
-
+    // 指定企业
+    private String companyIds;
 
 }

+ 4 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreProductQueryParam.java

@@ -24,4 +24,8 @@ public class FsStoreProductQueryParam extends BaseQueryParam implements Serializ
     @ApiModelProperty(value = "1 只显示商城展示的商品 0展示所有")
     private Integer isDisplay=1;
 
+    // token 需用户端传入
+    private String token;
+    // 用户企业ID
+    private Long companyId;
 }

+ 0 - 1
fs-service-system/src/main/java/com/fs/store/service/IFsStoreProductService.java

@@ -8,7 +8,6 @@ import com.fs.store.domain.FsStoreProduct;
 import com.fs.store.param.FsStoreProductAddEditParam;
 import com.fs.store.param.FsStoreProductQueryParam;
 import com.fs.store.vo.*;
-import org.apache.ibatis.annotations.Param;
 
 /**
  * 商品Service接口

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreProductServiceImpl.java

@@ -250,6 +250,7 @@ public class FsStoreProductServiceImpl implements IFsStoreProductService
             product.setCost(countDto.getMinCost());
             product.setIntegral(Long.parseLong(countDto.getMinIntegral().toString()));
             product.setStock(Long.parseLong(countDto.getStock().toString()));
+            product.setCompanyIds(param.getCompanyIds());
             fsStoreProductMapper.updateFsStoreProduct(product);
             if (param.getSpecType().equals(0)) {
                 ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()
@@ -272,6 +273,7 @@ public class FsStoreProductServiceImpl implements IFsStoreProductService
             product.setCost(countDto.getMinCost());
             product.setIntegral(Long.parseLong(countDto.getMinIntegral().toString()));
             product.setStock(Long.parseLong(countDto.getStock().toString()));
+            product.setCompanyIds(param.getCompanyIds());
             fsStoreProductMapper.insertFsStoreProduct(product);
             if (param.getSpecType().equals(0)) {
                 ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductQueryVO.java

@@ -116,5 +116,7 @@ public class FsStoreProductQueryVO implements Serializable
     /** 处方名 */
     private String prescribeName;
 
+    /** 所属企业 */
+    private String companyIds;
 
 }

+ 5 - 1
fs-service-system/src/main/resources/mapper/store/FsStoreProductMapper.xml

@@ -48,10 +48,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="prescribeName"    column="prescribe_name"    />
         <result property="isDisplay"    column="is_display"    />
         <result property="tuiCateId"    column="tui_cate_id"    />
+        <result property="companyIds"    column="company_ids"    />
     </resultMap>
 
     <sql id="selectFsStoreProductVo">
-        select product_id, image,video, slider_image, product_name, product_info, keyword, bar_code, cate_id, price, vip_price, ot_price, postage, unit_name, sort, sales, stock, is_show, is_hot, is_benefit, is_best, is_new, description, create_time, update_time, is_postage, is_del, give_integral, cost, is_good, browse, code_path, temp_id, spec_type, is_integral, integral, product_type, prescribe_code, prescribe_spec, prescribe_factory, prescribe_name,is_display,tui_cate_id from fs_store_product
+        select product_id, image,video, slider_image, product_name, product_info, keyword, bar_code, cate_id, price, vip_price, ot_price, postage, unit_name, sort, sales, stock, is_show, is_hot, is_benefit, is_best, is_new, description, create_time, update_time, is_postage, is_del, give_integral, cost, is_good, browse, code_path, temp_id, spec_type, is_integral, integral, product_type, prescribe_code, prescribe_spec, prescribe_factory, prescribe_name,is_display,tui_cate_id,company_ids from fs_store_product
     </sql>
 
     <select id="selectFsStoreProductList" parameterType="FsStoreProduct" resultMap="FsStoreProductResult">
@@ -150,6 +151,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="prescribeName != null">prescribe_name,</if>
             <if test="isDisplay != null">is_display,</if>
             <if test="tuiCateId != null">tui_cate_id,</if>
+            <if test="companyIds != null and companyIds != ''">company_ids,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="image != null and image != ''">#{image},</if>
@@ -194,6 +196,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="prescribeName != null">#{prescribeName},</if>
             <if test="isDisplay != null">#{isDisplay},</if>
             <if test="tuiCateId != null">#{tuiCateId},</if>
+            <if test="companyIds != null and companyIds != ''">#{company_ids},</if>
          </trim>
     </insert>
 
@@ -242,6 +245,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="prescribeName != null">prescribe_name = #{prescribeName},</if>
             <if test="isDisplay != null">is_display = #{isDisplay},</if>
             <if test="tuiCateId != null">tui_cate_id = #{tuiCateId},</if>
+            <if test="companyIds != null and companyIds != ''">company_ids = #{companyIds},</if>
         </trim>
         where product_id = #{productId}
     </update>

+ 10 - 6
fs-user-app/src/main/java/com/fs/app/controller/CompanyOrderController.java

@@ -1,13 +1,10 @@
 package com.fs.app.controller;
 
 
-import cn.hutool.json.JSONUtil;
 import com.fs.app.annotation.Login;
 import com.fs.common.core.domain.R;
-import com.fs.common.core.redis.RedisCache;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyUserService;
-import com.fs.store.config.StoreConfig;
 import com.fs.store.domain.FsStoreOrder;
 import com.fs.store.enums.OrderLogEnum;
 import com.fs.store.param.FsStoreProductQueryParam;
@@ -15,7 +12,6 @@ import com.fs.store.service.IFsStoreOrderService;
 import com.fs.store.service.IFsStoreOrderStatusService;
 import com.fs.store.service.IFsStoreProductService;
 import com.fs.store.vo.FsStoreProductListQueryVO;
-import com.fs.system.service.ISysConfigService;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
@@ -26,7 +22,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 
 @Api("销售订单")
@@ -41,12 +39,18 @@ public class CompanyOrderController extends  AppBaseController {
     private IFsStoreProductService productService;
     @Autowired
     private IFsStoreOrderStatusService orderStatusService;
-    @Autowired
-    private ISysConfigService configService;
 
     @ApiOperation("获取商品列表")
     @GetMapping("/getSalesProducts")
     public R getSalesProducts(FsStoreProductQueryParam param, HttpServletRequest request){
+        // 所属企业过滤
+        Long userId = redisCache.getCacheObject("company-user-token:"+param.getToken());
+        CompanyUser companyUser = companyUserService.selectCompanyUserById(userId);
+        if (Objects.isNull(companyUser)){
+            return R.ok().put("data", new ArrayList<>());
+        }
+        param.setCompanyId(companyUser.getCompanyId());
+
         PageHelper.startPage(param.getPage(), param.getPageSize());
         param.setIsDisplay(0);
         List<FsStoreProductListQueryVO> productList=productService.selectFsStoreProductListQuery(param);