Jelajahi Sumber

Merge branch 'prd-new' into uat

zxfqwert 4 hari lalu
induk
melakukan
d68827da8b

+ 28 - 0
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/AnalysisDiyCustomerComponent.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.dgtly.common.exception.BusinessException;
 import com.dgtly.common.utils.ShiroSaltUtil;
+import com.dgtly.common.utils.StringUtils;
 import com.dgtly.common.utils.UserIdentityUtil;
 import com.dgtly.common.utils.http.HttpUtils;
 import com.dgtly.common.utils.security.EncryptPassWordClass;
@@ -1039,6 +1040,32 @@ public class AnalysisDiyCustomerComponent {
                     //查询岗位现阶段存在的用户
                     SysUser userOld = sysUserService.selectUserByLoginName(userid);
                     SysUser user = sysUserService.selectUserByLoginName(userid);
+                    //将用户扩展表的信息给加上
+                 /*   if(StringUtils.isBlank(user.getSysUserExt().getUserId().toString())){
+                        SysUserExt userExt = new SysUserExt();
+                        userExt.setSalesLevel("customer_level");
+                        userExt.setIsCustomerManager(isManager + "");
+                        userExt.setSapEmployeeId(userNo);
+                        userExt.setIdentity(UserIdentityUtil.UI_DIY);
+                        userExt.setPostName("DIY经销商");
+                        String orgCode = jo.getString("depCode");
+                        String code = null;
+                        if (cusMap.containsKey(orgCode)) {
+                            Customers c = cusMap.get(orgCode);
+                            userExt.setOrgCode(c.getChainsCode());
+                            userExt.setOrgName(c.getChainsName());
+                            code = c.getChainsCode();
+                        } else {
+                            userExt.setOrgCode(orgCode);
+                            userExt.setOrgName(customerName);
+                        }
+                        if (isManager == 0) {
+                            userExt.setCustomerCode(userExt.getOrgCode());
+                        } else {
+                            userExt.setCustomerCode(jo.getString("depCode"));
+                        }
+                        sysUserExtMapper.insertOrUpSysUserExt(userExt);
+                    }*/
                     if (("0").equals(user.getIsSync())) {
                         //查询该用户是否存在该接口返回中
                         user.setPhonenumber(jo.getString("mobile"));
@@ -1143,6 +1170,7 @@ public class AnalysisDiyCustomerComponent {
                                     assRelcustomerinfoService.deleteAssRelcustomerinfoByUserId(user.getUserId().toString(), customerCode);
                                 }
 
+
                                     AssRelcustomerinfo info = new AssRelcustomerinfo();
                                     info.setUserId(userOld.getUserId().toString());
                                     if(!customerCode.equals(userOld.getSysUserExt().getOrgCode())){

+ 58 - 3
suishenbang-sync/suishenbang-sync-common/src/main/java/com/dgtly/sync/service/ShopUserTypeComponent.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.dgtly.common.utils.ShiroSaltUtil;
+import com.dgtly.common.utils.StringUtils;
 import com.dgtly.common.utils.http.HttpUtils;
 import com.dgtly.common.utils.security.EncryptPassWordClass;
 import com.dgtly.sync.domain.SyncFailDetail;
@@ -117,6 +118,9 @@ public class ShopUserTypeComponent {
                 calendar.set(Calendar.MILLISECOND, 0);
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
                 String runTime = sdf.format(calendar.getTime());
+                if (runTime.contains("2025-11-24")){
+                    runTime = "2025-08-28T00:00";
+                }
                 stoneParams.put("datetime_start", runTime);
             }
             //TUC仿石漆服务商人员-0
@@ -203,6 +207,9 @@ public class ShopUserTypeComponent {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
                 Date date = sdf.parse(truncatedDate);
                 String runTime = sdf.format(date);
+                if (runTime.contains("2025-11-24")){
+                    runTime = "2025-08-28T00:00";
+                }
                 //获取上次同步时间进行增量同步
                 if(runTime !=null && !runTime.isEmpty()){
                     stoneParams.put("datetime_start", runTime);
@@ -264,6 +271,8 @@ public class ShopUserTypeComponent {
             Set<String> loginNameSet = sysUserService.selectAllUserLoginName();
             loginNameSet = loginNameSet.stream().map(String::toUpperCase).collect(Collectors.toSet());
             try {
+                log.info("原始报文为:{}", jo);
+                //本次调用是否走了删除方法
                 String userName = jo.getString("staff_name");
                 String userPhone = jo.getString("staff_mobile");
                 //是否同步企业微信
@@ -308,14 +317,17 @@ public class ShopUserTypeComponent {
                                     }
                                     //修改用户信息
                                     sysUserMapper.updateUser(user);
-
                             }
                         }
                     }
                     continue;
                 }
-
-
+                //当登录的用户名为空时且未走原有删除逻辑开始调用新删除方法,结束当前循环
+                if (StringUtils.isEmpty(jo.getString("wecom_userid"))){
+                    log.info("开始调用新删除方法");
+                    deleteUserAndExt(dataUserId,shopCode,usertype,roleId);
+                    continue;
+                }
                 if (!loginNameSet.contains(loginName.toUpperCase().trim())) {
 
                     /** =============用户基本信息构建 start===============*/
@@ -423,6 +435,49 @@ public class ShopUserTypeComponent {
         return headers;
     }
 
+    /**
+     * @description: 删除用户和角色相关数据
+     * @param: []
+     * @return: void
+     * @author: yousongbo
+     * @date: 2025/11/30 9:32
+     */
+    public void deleteUserAndExt(String dataUserId,String shopCode,String usertype,Long roleId)  {
+        //用户无效后接口获取不到企微id,需从关联表查询
+
+        if(StringUtils.isNotEmpty(dataUserId)) {
+            //用户无效后接口获取不到企微id,需从关联表查询
+            String loginName = userShopExtMapper.selectLoginNameByUserId(dataUserId, shopCode, usertype);
+            if (loginName != null && !loginName.isEmpty()) {
+                //查询用户信息
+                SysUser user = sysUserMapper.selectUserByLoginName(loginName);
+                int count = userShopExtMapper.delByDataUserId(dataUserId, shopCode);
+                log.info("删除门店用户扩展信息成功:" + count);
+                //去掉该用户和角色的关联关系
+                userRoleMapper.deleteUserRoleByUserIdAndExt(user.getUserId(), roleId, usertype);
+                //离职处理以及用户主信息是否有门店账号处理需要添加
+                //查询门店用户表是否存在用户和其他门店的关联关系,如果存在就不离职,不存在查询是否有经销商的关联关系,如果存在就不离职,不存在就离职
+                SysUserShopExt shop = new SysUserShopExt();
+                shop.setUserId(user.getUserId().toString());
+                shop.setDelFlag("0");
+                List<SysUserShopExt> shopExtList = userShopExtMapper.selectSysUserShopExtList(shop);
+                if (shopExtList == null || shopExtList.size() == 0) {
+                    //在查用户经销商扩展信息
+                    SysUserExt userCustomerExt = sysUserExtMapper.selectSysUserExtById(user.getUserId());
+                    user.setIsShopAccount("0");
+                    if (userCustomerExt == null) {
+                        //离职处理2
+                        user.setQuit("2");
+                    }
+                    //修改用户信息
+                    sysUserMapper.updateUser(user);
+                }
+            }
+        }
+    }
+
+
+
     /**
      * @description: 新增用户和角色
      * @param: [user]

+ 1 - 0
suishenbang-system/src/main/java/com/dgtly/system/mapper/SysUserShopExtMapper.java

@@ -74,6 +74,7 @@ public interface SysUserShopExtMapper
 
     void deletePhysicsUserShopExt(@Param("userId") String userId,@Param("loginName") String loginName, @Param("shopCode") String shopCode,@Param("isShopType") String isShopType);
 
+    int delByDataUserId(@Param("dataUserId") String dataUserId, @Param("shopCode") String shopCode);
 
     String  selectLoginNameByUserId(@Param("dataUserId") String dataUserId, @Param("shopCode") String shopCode,@Param("shopType") String shopType);
 }

+ 5 - 0
suishenbang-system/src/main/resources/mapper/system/SysUserShopExtMapper.xml

@@ -115,6 +115,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         delete from sys_user_shop_ext where user_id =#{userId} and login_name = #{loginName} and shop_code = #{shopCode} and  is_shop_type = #{isShopType}
     </delete>
 
+    <update id="delByDataUserId">
+        update sys_user_shop_ext set del_flag = '2', del_time = now()
+           where constraint_user_id = #{dataUserId} and shop_code = #{shopCode} and del_flag = '0'
+    </update>
+
     <select id="selectLoginNameByUserId" resultType="java.lang.String">
         select login_name from sys_user_shop_ext
           where constraint_user_id = #{dataUserId} and shop_code = #{shopCode} and  is_shop_type = #{isShopType} limit 1

+ 13 - 0
suishenbang-wxportal/suishenbang-wxportal-common/src/main/java/com/dgtly/wxportal/service/impl/WxMagnetServiceImpl.java

@@ -162,6 +162,19 @@ public class WxMagnetServiceImpl implements IWxMagnetService
         {
             wxMagnetList = wxMagnetMapper.selectMagnetAllByUserId(wxMagnet,user.getUserId());
         }
+        for (WxMagnet magnet : wxMagnetList){
+            if (StringUtils.isNotEmpty(magnet.getUserType())){
+               if ("0".equals(magnet.getUserType())){
+                   magnet.setMagnetName(magnet.getMagnetName()+"(好邦手)");
+               }else if ("1".equals(magnet.getUserType())){
+                   magnet.setMagnetName(magnet.getMagnetName()+"(经销商随身邦)");
+               }else if ("2".equals(magnet.getUserType())){
+                   magnet.setMagnetName(magnet.getMagnetName()+"(服务商随身邦)");
+               }else if ("3".equals(magnet.getUserType())){
+                   magnet.setMagnetName(magnet.getMagnetName()+"(金牌店随身邦)");
+               }
+            }
+        }
         if (StringUtils.isNotNull(roleId))
         {
             List<String> roleMagnetList = wxMagnetMapper.selectMagnetIdByRoleId(roleId);