Selaa lähdekoodia

下单归属优化做配置、两种模式1、用company_user_user的多对多关系表,2、用fs_user里面绑定的company_user_id,也就是用户可绑定多个销售,还是唯一销售,前端也要做限制,如果制单的销售和用户已绑定的销售不一致,则不能下单

yfh 4 viikkoa sitten
vanhempi
commit
749b337d66

+ 33 - 0
fs-service-system/src/main/java/com/fs/company/domain/CompanyUserUser.java

@@ -0,0 +1,33 @@
+package com.fs.company.domain;
+
+import com.fs.common.annotation.Excel;
+import com.fs.common.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * companyUserUser对象 company_user_user
+ *
+ * @author fs
+ * @date 2023-12-19
+ */
+@Data
+public class CompanyUserUser extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 公司id */
+    @Excel(name = "公司id")
+    private Long companyId;
+
+    /** 公司用户id */
+    @Excel(name = "公司用户id")
+    private Long companyUserId;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private Long userId;
+
+}

+ 62 - 0
fs-service-system/src/main/java/com/fs/company/mapper/CompanyUserUserMapper.java

@@ -0,0 +1,62 @@
+package com.fs.company.mapper;
+
+import com.fs.company.domain.CompanyUserUser;
+
+import java.util.List;
+
+/**
+ * companyUserUserMapper接口
+ *
+ * @author fs
+ * @date 2023-12-19
+ */
+public interface CompanyUserUserMapper
+{
+    /**
+     * 查询companyUserUser
+     *
+     * @param id companyUserUser主键
+     * @return companyUserUser
+     */
+    public CompanyUserUser selectCompanyUserUserById(Long id);
+
+    /**
+     * 查询companyUserUser列表
+     *
+     * @param companyUserUser companyUserUser
+     * @return companyUserUser集合
+     */
+    public List<CompanyUserUser> selectCompanyUserUserList(CompanyUserUser companyUserUser);
+
+    /**
+     * 新增companyUserUser
+     *
+     * @param companyUserUser companyUserUser
+     * @return 结果
+     */
+    public int insertCompanyUserUser(CompanyUserUser companyUserUser);
+
+    /**
+     * 修改companyUserUser
+     *
+     * @param companyUserUser companyUserUser
+     * @return 结果
+     */
+    public int updateCompanyUserUser(CompanyUserUser companyUserUser);
+
+    /**
+     * 删除companyUserUser
+     *
+     * @param id companyUserUser主键
+     * @return 结果
+     */
+    public int deleteCompanyUserUserById(Long id);
+
+    /**
+     * 批量删除companyUserUser
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteCompanyUserUserByIds(Long[] ids);
+}

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

@@ -23,5 +23,6 @@ public class StoreConfig implements Serializable {
     private String refundAddress;
     private Integer auditSwitch; // 订单审核开关
     private Integer createSalesOrderType; // 订单改价方式 1 商品改价 2总价改价
+    private Integer orderAttribution; // 下单归属 1 多销售 2单销售
 
 }

+ 35 - 19
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -22,13 +22,11 @@ import com.fs.common.exception.CustomException;
 import com.fs.common.exception.ServiceException;
 import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.StringUtils;
-import com.fs.company.domain.Company;
-import com.fs.company.domain.CompanyDept;
-import com.fs.company.domain.CompanyMoneyLogs;
-import com.fs.company.domain.CompanyUser;
+import com.fs.company.domain.*;
 import com.fs.company.mapper.CompanyDeptMapper;
 import com.fs.company.mapper.CompanyMapper;
 import com.fs.company.mapper.CompanyMoneyLogsMapper;
+import com.fs.company.mapper.CompanyUserUserMapper;
 import com.fs.company.service.ICompanyDeptService;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
@@ -115,7 +113,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Autowired
     private FsUserAddressMapper userAddressMapper;
-
+    @Autowired
+    private CompanyUserUserMapper companyUserUserMapper;
     @Autowired
     private FsStoreOrderMapper fsStoreOrderMapper;
 
@@ -539,23 +538,42 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             storeOrder.setStoreHouseCode("CK01");
             storeOrder.setCompanyId(param.getCompanyId());
             storeOrder.setCompanyUserId(param.getCompanyUserId());
+
+            String json = configService.selectConfigByKey("store.config");
+            StoreConfig config= JSONUtil.toBean(json,StoreConfig.class);
             //绑定销售
             FsUser fsuser= userService.selectFsUserById(userId);
-            if(param.getCompanyUserId()!=null){
-                if (ObjectUtil.isNotEmpty(fsuser.getCompanyUserId())&&fsuser.getCompanyUserId()!=param.getCompanyUserId()){
-                    CompanyUser companyUser=companyUserService.selectCompanyUserById(fsuser.getCompanyUserId());
-                    return R.error(String.format("请联系%s销售进行购买商品!",companyUser.getNickName()));
-                }else {
-                    fsuser.setCompanyUserId(param.getCompanyUserId());
-                    userService.updateFsUser(fsuser);
-                }
-                CompanyUser companyUser=companyUserService.selectCompanyUserById(param.getCompanyUserId());
-                if(companyUser!=null){
-                    storeOrder.setDeptId(companyUser.getDeptId());
+            if(ObjectUtil.isNotEmpty(config.getOrderAttribution())
+                    &&config.getOrderAttribution().equals(1)){
+                CompanyUserUser map=new CompanyUserUser();
+                map.setCompanyUserId(param.getCompanyUserId());
+                map.setUserId(userId);
+                List<CompanyUserUser> list= companyUserUserMapper.selectCompanyUserUserList(map);
+                if(list==null||list.size()==0){
+                    CompanyUser companyUser=companyUserService.selectCompanyUserById(param.getCompanyUserId());
+                    if(companyUser!=null&&companyUser.getStatus().equals("0")){
+                        map.setCompanyId(companyUser.getCompanyId());
+                        companyUserUserMapper.insertCompanyUserUser(map);
+                    }
                 }
             }else {
-                storeOrder.setCompanyUserId(fsuser.getCompanyUserId());
+                if(param.getCompanyUserId()!=null){
+                    if (ObjectUtil.isNotEmpty(fsuser.getCompanyUserId())&&fsuser.getCompanyUserId()!=param.getCompanyUserId()){
+                        CompanyUser companyUser=companyUserService.selectCompanyUserById(fsuser.getCompanyUserId());
+                        return R.error(String.format("请联系%s销售进行购买商品!",companyUser.getNickName()));
+                    }else {
+                        fsuser.setCompanyUserId(param.getCompanyUserId());
+                        userService.updateFsUser(fsuser);
+                    }
+                    CompanyUser companyUser=companyUserService.selectCompanyUserById(param.getCompanyUserId());
+                    if(companyUser!=null){
+                        storeOrder.setDeptId(companyUser.getDeptId());
+                    }
+                }else {
+                    storeOrder.setCompanyUserId(fsuser.getCompanyUserId());
+                }
             }
+
             storeOrder.setUserId(userId);
             storeOrder.setOrderCode(orderSn);
             storeOrder.setRealName(address.getRealName());
@@ -610,8 +628,6 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
             storeOrder.setShippingType(1);
             storeOrder.setCreateTime(new Date());
 
-            String json=configService.selectConfigByKey("store.config");
-            StoreConfig config=JSONUtil.toBean(json,StoreConfig.class);
             if(config.getServiceFee()!=null){
                 storeOrder.setServiceFee(config.getServiceFee());
             }

+ 68 - 0
fs-service-system/src/main/resources/mapper/company/CompanyUserUserMapper.xml

@@ -0,0 +1,68 @@
+<?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.fs.company.mapper.CompanyUserUserMapper">
+    
+    <resultMap type="CompanyUserUser" id="CompanyUserUserResult">
+        <result property="id"    column="id"    />
+        <result property="companyId"    column="company_id"    />
+        <result property="companyUserId"    column="company_user_id"    />
+        <result property="userId"    column="user_id"    />
+    </resultMap>
+
+    <sql id="selectCompanyUserUserVo">
+        select id, company_id, company_user_id, user_id from company_user_user
+    </sql>
+
+    <select id="selectCompanyUserUserList" parameterType="CompanyUserUser" resultMap="CompanyUserUserResult">
+        <include refid="selectCompanyUserUserVo"/>
+        <where>  
+            <if test="companyId != null "> and company_id = #{companyId}</if>
+            <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
+            <if test="userId != null "> and user_id = #{userId}</if>
+        </where>
+    </select>
+    
+    <select id="selectCompanyUserUserById" parameterType="Long" resultMap="CompanyUserUserResult">
+        <include refid="selectCompanyUserUserVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertCompanyUserUser" parameterType="CompanyUserUser">
+        insert into company_user_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="companyId != null">company_id,</if>
+            <if test="companyUserId != null">company_user_id,</if>
+            <if test="userId != null">user_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="companyId != null">#{companyId},</if>
+            <if test="companyUserId != null">#{companyUserId},</if>
+            <if test="userId != null">#{userId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateCompanyUserUser" parameterType="CompanyUserUser">
+        update company_user_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="companyId != null">company_id = #{companyId},</if>
+            <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCompanyUserUserById" parameterType="Long">
+        delete from company_user_user where id = #{id}
+    </delete>
+
+    <delete id="deleteCompanyUserUserByIds" parameterType="String">
+        delete from company_user_user where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>