Browse Source

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

调整修复微信收款二维码问题
yfh 3 days ago
parent
commit
27a7afc6e6

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/config/StoreConfig.java

@@ -24,5 +24,5 @@ public class StoreConfig implements Serializable {
     private Integer auditSwitch; // 订单审核开关
     private Integer createSalesOrderType; // 订单改价方式 1 商品改价 2总价改价
     private Boolean isBrushOrders;//是否开启刷单按钮
-
+    private Integer orderAttribution; // 下单归属 1 多销售 2单销售
 }

+ 39 - 19
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -33,13 +33,11 @@ import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.common.utils.ip.IpUtils;
 import com.fs.common.utils.spring.SpringUtils;
-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;
@@ -170,6 +168,9 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     Logger logger = LoggerFactory.getLogger(getClass());
     @Autowired
     private CompanyMoneyLogsMapper moneyLogsMapper;
+
+    @Autowired
+    private CompanyUserUserMapper companyUserUserMapper;
     @Autowired
     private IFsStoreOrderStatusScrmService orderStatusService;
     @Autowired
@@ -740,23 +741,42 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             storeOrder.setStoreHouseCode("CK01");
             storeOrder.setCompanyId(param.getCompanyId());
             storeOrder.setCompanyUserId(param.getCompanyUserId());
+
+            String json = configService.selectConfigByKey("store.config");
+            StoreConfig config= JSONUtil.toBean(json, StoreConfig.class);
             //绑定销售
-            FsUserScrm fsuser = userService.selectFsUserById(userId);
-            if (param.getCompanyUserId() != null) {
-                if (!CloudHostUtils.hasCloudHostName("鸿森堂") && ObjectUtil.isNotEmpty(fsuser.getCompanyUserId()) && !Objects.equals(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);
+            FsUserScrm fsuser= userService.selectFsUserById(userId);
+            if(ObjectUtil.isEmpty(config.getOrderAttribution())
+                    ||!config.getOrderAttribution().equals(1)){
+                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());
                 }
-                CompanyUser companyUser = companyUserService.selectCompanyUserById(param.getCompanyUserId());
-                if (companyUser != null) {
-                    storeOrder.setDeptId(companyUser.getDeptId());
+            }
+
+            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());
             }
+
             storeOrder.setUserId(userId);
             storeOrder.setOrderCode(orderSn);
             storeOrder.setRealName(address.getRealName());
@@ -810,8 +830,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             storeOrder.setShippingType(1);
             storeOrder.setCreateTime(new Date());
 
-            String json = configService.selectConfigByKey("store.config");
-            StoreConfig config = JSONUtil.toBean(json, StoreConfig.class);
+//            String json = configService.selectConfigByKey("store.config");
+//            StoreConfig config = JSONUtil.toBean(json, StoreConfig.class);
             if (config.getServiceFee() != null) {
                 storeOrder.setServiceFee(config.getServiceFee());
             }

+ 13 - 2
fs-user-app/src/main/java/com/fs/app/controller/store/CompanyUserScrmController.java

@@ -4,6 +4,7 @@ package com.fs.app.controller.store;
 import cn.hutool.core.img.ImgUtil;
 import cn.hutool.core.io.FileUtil;
 import cn.hutool.extra.qrcode.QrCodeUtil;
+import cn.hutool.json.JSONUtil;
 import com.fs.app.annotation.Login;
 import com.fs.app.controller.AppBaseController;
 import com.fs.app.param.FsBindCompanyUserParam;
@@ -21,6 +22,8 @@ import com.fs.company.service.ICompanyUserCardService;
 import com.fs.company.service.ICompanyUserService;
 import com.fs.company.service.ICompanyUserUserService;
 import com.fs.framework.security.SecurityUtils;
+import com.fs.his.dto.PayConfigDTO;
+import com.fs.system.service.ISysConfigService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.io.FileUtils;
@@ -40,11 +43,13 @@ import java.util.concurrent.TimeUnit;
 @RestController
 @RequestMapping(value="/store/app/companyUser")
 public class CompanyUserScrmController extends AppBaseController {
-
+    @Autowired
+    private ISysConfigService configService;
     @Autowired
     private FSConfig fsConfig;
     @Autowired
     RedisCache redisCache;
+
     @Autowired
     private ICompanyUserService companyUserService;
     @Autowired
@@ -201,7 +206,13 @@ public class CompanyUserScrmController extends AppBaseController {
 
     @ApiOperation("获取公司收款码")
     @GetMapping("/getCompanyWxaCodeByPayment")
-    public R getCompanyWxaCodeByPayment(@RequestParam("companyId")Long companyId,@RequestParam("appId")String appId,HttpServletRequest request){
+    public R getCompanyWxaCodeByPayment(@RequestParam("companyId")Long companyId,@RequestParam(value = "appId", required = false) String appId,HttpServletRequest request){
+
+        String json = configService.selectConfigByKey("his.pay");
+        PayConfigDTO payConfigDTO = JSONUtil.toBean(json, PayConfigDTO.class);
+        if (appId == null || appId.trim().isEmpty()) {
+            appId = payConfigDTO.getAppId();
+        }
         //获取用户码
         String WxaCode = redisCache.getCacheObject("company-wxa-code:"+companyId+":"+appId);
         return R.ok().put("data",WxaCode);