|
@@ -61,6 +61,7 @@ public class AnalysisDiyCustomerComponent {
|
|
|
private Long[] roleGuideIds;
|
|
|
private Long[] roleCwIds;
|
|
|
private Long[] roleCwDiyIds;
|
|
|
+ private Long[] roleFXDiyIds; //3.4接口,同步分销用户
|
|
|
/**
|
|
|
* 获取并解析DIY经销商用户
|
|
|
* 因为经销商用户并不涉及用信息更新等方面 所以只插入不更新
|
|
@@ -89,6 +90,11 @@ public class AnalysisDiyCustomerComponent {
|
|
|
Long roleDiyId = Long.parseLong(configService.selectConfigByKey("libang.guide.roleid"));
|
|
|
roleCwDiyIds = new Long[]{roleId, roleDiyId};
|
|
|
}
|
|
|
+ if (roleFXDiyIds == null) {
|
|
|
+ Long roleId = Long.parseLong(configService.selectConfigByKey("libang.fx.roleid"));
|
|
|
+ roleFXDiyIds = new Long[]{roleId};
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
List<SyncFailDetail> failDetails = new ArrayList<>();
|
|
|
SyncLog syncLog = new SyncLog();
|
|
@@ -136,6 +142,52 @@ public class AnalysisDiyCustomerComponent {
|
|
|
total+=gjson.getJSONArray("userlist").size();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // 3.4、获取经销商分销业务员人员列表(分页)开始: ===================>
|
|
|
+ log.info("3.4、获取经销商分销业务员人员列表(分页)开始: ===================>");
|
|
|
+ String fxResellerJson ="";
|
|
|
+ try{
|
|
|
+ fxResellerJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.RESELLER,1+""));
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("获取经销商分销业务员人员列表接口错误!");
|
|
|
+ customerAccessTokenUtil.reSetToken();
|
|
|
+ throw e;
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject fxJson = JSONObject.parseObject(fxResellerJson);
|
|
|
+ Integer fxCount = fxJson.getInteger("count");
|
|
|
+ if(fxCount>100){
|
|
|
+ int co = 0;
|
|
|
+ if (fxCount%100 != 0){
|
|
|
+ co = (fxCount/100) +2;
|
|
|
+ }else{
|
|
|
+ co = (fxCount/100) +1;
|
|
|
+ }
|
|
|
+ for (int i = 1; i < co; i++) {
|
|
|
+ try {
|
|
|
+ fxJson = JSONObject.parseObject(HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.RESELLER,i+"")));
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("循环获取经销商财务接口错误!第"+i+"页");
|
|
|
+ customerAccessTokenUtil.reSetToken();
|
|
|
+ throw e;
|
|
|
+ }
|
|
|
+ code = fxJson.getInteger("code");
|
|
|
+ if(code==0){
|
|
|
+ success+=buildSysUserFx(fxJson,loginNameSet,6,failDetails,packageId,chainsMap);
|
|
|
+ total+=fxJson.getJSONArray("userlist").size();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ code = fxJson.getInteger("code");
|
|
|
+ if(code==0){
|
|
|
+ success+=buildSysUserFx(fxJson,loginNameSet,6,failDetails,packageId,chainsMap);
|
|
|
+ total+=fxJson.getJSONArray("userlist").size();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("3.4、获取经销商分销业务员人员列表(分页)结束: <========================");
|
|
|
+ //3.4、获取经销商分销业务员人员列表(分页)结束: <========================
|
|
|
+
|
|
|
+
|
|
|
String financeJson ="";
|
|
|
try{
|
|
|
financeJson = HttpUtils.sendSSLGet(customerAccessTokenUtil.getUrl(UrlType.FINANCE,1+""));
|
|
@@ -562,6 +614,149 @@ public class AnalysisDiyCustomerComponent {
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 构建 插入分销 3.4 分销业务员人员 List
|
|
|
+ * @param json
|
|
|
+ * @param loginNameSet 排重用
|
|
|
+ * @param isManager
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Integer buildSysUserFx(JSONObject json, Set<String> loginNameSet, int isManager, List<SyncFailDetail> failDetails,String packageId, Map<String,Customers> cusMap){
|
|
|
+ JSONArray jsonArray = json.getJSONArray("userlist");
|
|
|
+ int count = 0;
|
|
|
+
|
|
|
+ for(int i =0;i<jsonArray.size();i++){
|
|
|
+ JSONObject jo = jsonArray.getJSONObject(i);
|
|
|
+
|
|
|
+ try {
|
|
|
+ String userNo = jo.getString("userNo");
|
|
|
+ String enable = jo.getString("enable");
|
|
|
+ String name = jo.getString("name");
|
|
|
+ String status = jo.getString("status");
|
|
|
+ Boolean isSync = jo.getBoolean("isSync");
|
|
|
+ Boolean isDelete = jo.getBoolean("isDelete");
|
|
|
+ String userid = jo.getString("userid");
|
|
|
+ String customerCode = jo.getString("depCode");
|
|
|
+ /*企业微信中成员启用状态。1表示启用的成员,0表示被禁用*/
|
|
|
+ /*if(enable==null||enable.trim().equals("0")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ *//*企业微信中人员激活状态: 1=已激活,2=已禁用,4=未激活,5=退出企业。*//*
|
|
|
+ if(status==null || !status.trim().equals("1")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ *//*人员信息是否已更新入企业微信。true:更新成功false:更新失败*//*
|
|
|
+ if(!isSync){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ *//*人员信息是否被标记删除true:删除,false:未删除*//*
|
|
|
+ if(isDelete){
|
|
|
+ continue;
|
|
|
+ }*/
|
|
|
+ if(userid==null||userid.trim().equals("")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (!loginNameSet.contains(userid)) {
|
|
|
+
|
|
|
+ /** =============用户基本信息构建 start===============*/
|
|
|
+ SysUser user = new SysUser();
|
|
|
+ user.setCompanyId(1L);
|
|
|
+ user.setDeptId(deptId);
|
|
|
+ user.setLoginName(userid);
|
|
|
+ user.setUserName(jo.getString("name"));
|
|
|
+ user.setPhonenumber(jo.getString("mobile"));
|
|
|
+
|
|
|
+ if (isManager == 6) {
|
|
|
+ user.setRoleIds(roleFXDiyIds);
|
|
|
+ } else {
|
|
|
+ user.setRoleIds(roleIds);
|
|
|
+ }
|
|
|
+ user.setPassword(user.getLoginName());
|
|
|
+ user.setSalt(ShiroSaltUtil.randomSalt());
|
|
|
+ user.setPassword(EncryptPassWordClass.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));
|
|
|
+
|
|
|
+
|
|
|
+ /** =============用户基本信息构建 end===============*/
|
|
|
+
|
|
|
+
|
|
|
+ /**======== 构建diy用户扩展信息表 start===============*/
|
|
|
+ SysUserExt userExt = new SysUserExt();
|
|
|
+ userExt.setSalesLevel("reseller_level");
|
|
|
+ userExt.setCustomerCode(jo.getString("depCode"));
|
|
|
+ userExt.setIsCustomerManager(isManager + "");
|
|
|
+ userExt.setSapEmployeeId(userNo);
|
|
|
+
|
|
|
+ userExt.setPostName("经销商分销业务员");
|
|
|
+ String orgCode = jo.getString("depCode");
|
|
|
+ if(cusMap.containsKey(orgCode)){
|
|
|
+ Customers c = cusMap.get(orgCode);
|
|
|
+ userExt.setOrgCode(c.getChainsCode());
|
|
|
+ userExt.setOrgName(c.getChainsName());
|
|
|
+ }else{
|
|
|
+ userExt.setOrgCode(orgCode);
|
|
|
+ }
|
|
|
+
|
|
|
+// /**======== 构建diy用户wx信息表 start===============*/
|
|
|
+// WxQyUser wxQyUser = new WxQyUser();
|
|
|
+// wxQyUser.setUserid(jo.getString("userid"));
|
|
|
+// wxQyUser.setMobile(jo.getString("mobile"));
|
|
|
+ user.setSysUserExt(userExt);
|
|
|
+ insertUserAndExt(user);
|
|
|
+ count++;
|
|
|
+ loginNameSet.add(userid);
|
|
|
+ }else{
|
|
|
+ /*已经存在的,需要先清空职位,更新职位
|
|
|
+ (首先查询当前用户职位,判断当前职位是否包含当前职位,不存在就更新,存在就不更新)*/
|
|
|
+
|
|
|
+ SysUser user = sysUserService.selectUserByLoginName(userid);
|
|
|
+ /*判断不是导购角色,更新经销商角色*/
|
|
|
+// if (isManager == 1 || isManager == 2 || isManager == 3) {
|
|
|
+// user.setRoleIds(roleIds);
|
|
|
+// sysUserService.updateUser(user);
|
|
|
+// }
|
|
|
+ sysUserService.insertUserRole(user.getUserId(), roleIds[0]);
|
|
|
+
|
|
|
+ if (!user.getSysUserExt().getIsCustomerManager().contains(isManager + "") ||
|
|
|
+ !user.getSysUserExt().getCustomerCode().equals(customerCode) || !user.getSysUserExt().getOrgCode().equals(customerCode)) {
|
|
|
+ if (!user.getSysUserExt().getIsCustomerManager().contains(isManager + "")) {
|
|
|
+ /*更新职位*/
|
|
|
+ user.getSysUserExt().setIsCustomerManager(user.getSysUserExt().getIsCustomerManager() + "," + isManager);
|
|
|
+ }
|
|
|
+ if (!user.getSysUserExt().getCustomerCode().equals(customerCode) || !user.getSysUserExt().getOrgCode().equals(customerCode)) {
|
|
|
+ /*更新经销商code*/
|
|
|
+ if (cusMap.containsKey(customerCode)) {
|
|
|
+ Customers c = cusMap.get(customerCode);
|
|
|
+ user.getSysUserExt().setOrgCode(c.getChainsCode());
|
|
|
+ user.getSysUserExt().setOrgName(c.getChainsName());
|
|
|
+ } else {
|
|
|
+ user.getSysUserExt().setOrgCode(customerCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("updateSysUserExt" + customerCode);
|
|
|
+ sysUserExtMapper.updateSysUserExt(user.getSysUserExt());
|
|
|
+ }
|
|
|
+ /*解决名称不一样的情况*/
|
|
|
+ if(!user.getUserName().equals(name)){
|
|
|
+ user.setUserName(name);
|
|
|
+ sysUserService.updateUserInfo(user);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ SyncFailDetail syncFailDetail = new SyncFailDetail();
|
|
|
+ syncFailDetail.setPackageId(packageId);
|
|
|
+ syncFailDetail.setFailReason(e.getMessage());
|
|
|
+ syncFailDetail.setDataJson(jo.toJSONString());
|
|
|
+ syncFailDetail.setFailLevel("1");
|
|
|
+ syncFailDetail.setExceptionType(e.getClass().getSimpleName());
|
|
|
+ failDetails.add(syncFailDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Integer insertUserAndExt(SysUser user) {
|