From 7e90b706ce34a759ea20de5e00896e66a8fca0aa Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 12 七月 2024 17:46:06 +0800
Subject: [PATCH] 提交

---
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java |  172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 171 insertions(+), 1 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index d1e1e8c..dad6e61 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -2,6 +2,8 @@
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.biz.zbom.model.IamUserRoleModel;
+import com.doumee.biz.zbom.model.IamUserTypeModel;
 import com.doumee.config.Jwt.JwtPayLoad;
 import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.annotation.excel.ExcelImporter;
@@ -409,8 +411,176 @@
         }
     }
 
-    private void dealUserDataBiz(List<UserImport> finalDataList, Date date, LoginUserInfo loginUserInfo) {
+    private void dealUserDataBiz(List<UserImport> dataList, Date date, LoginUserInfo loginUserInfo) {
+        try {
+            List<Users> list =  usersMapper.selectJoinList(Users.class,new MPJLambdaWrapper<Users>()
+                    .selectAll(Users.class)
+            );
+            List<Users> insertList = new ArrayList<>();
+            List<Users> updateList = new ArrayList<>();
+            for(int i=0;i<dataList.size();i++){
+                UserImport model = dataList.get(i);
+                if(StringUtils.isBlank(model.getName())
+                        &&StringUtils.isBlank(model.getCode()) ){
+                    continue;
+                }
+                Users user = checkModelParam(model,insertList,updateList,i,loginUserInfo,list,date);
+            }
+            if(insertList .size() >0){
+                int temp = 0;
+                while(temp < insertList.size()){
+                    int index;
+                    if(temp + 500 <= insertList.size()){
+                        index = temp+500;
+                    }else{
+                        index = insertList.size();
+                    }
+                    usersMapper.insert(insertList.subList(temp,index));
+                    temp = index;
+                }
+            }
+            if(updateList .size() >0){
+                for(Users s : updateList){
+                    //閬嶅巻鏇存柊鏁版嵁
+                    usersMapper.updateById(s);
+                }
+            }
+        }catch (BusinessException e){
+            throw e;
+        }catch (Exception e){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"淇℃伅瀵煎叆澶辫触锛岃绋嶅悗閲嶈瘯");
+        }finally {
+            executor.shutdown();
+            redisTemplate.delete(Constants.RedisKeys.IMPORTING_USERS);
+        }
+    }
+    private Users getUserByUserID(String userId, List<Users> list) {
+        if(list ==null || list.size() ==0){
+            return null;
+        }
+        for(Users s :list){
+            if(StringUtils.equals(s.getIamId(),userId)){
+                return s;
+            }
+        }
+        return null;
+    }
 
+    private Users checkModelParam(UserImport model, List<Users> insertList, List<Users> updateList, int index, LoginUserInfo loginUserInfo, List<Users> list, Date date) {
+
+            if(StringUtils.isBlank(model.getUserId())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愮紪鐮併�戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            if(StringUtils.isBlank(model.getName())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愬鍚嶃�戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            if(StringUtils.isBlank(model.getAccountNo())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愮櫥褰曡处鍙枫�戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            if(StringUtils.isBlank(model.getPhone())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愭墜鏈哄彿銆戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            Users users = getUserByUserID(model.getUserId(),list);
+            if(users == null){
+                users = new Users();
+                users.setCreator(loginUserInfo.getId());
+                users.setCreateDate(date);
+                initUsersInfo(users,model,date,loginUserInfo);
+                insertList.add(users);
+            }else {
+                initUsersInfo(users,model,date,loginUserInfo);
+                updateList.add(users);
+            }
+            return  users;
+        }
+
+    private void initUsersInfo(Users users, UserImport model,Date date,LoginUserInfo loginUserInfo ){
+        users.setEditor(loginUserInfo.getId());
+        users.setEditDate(date);
+        users.setName(model.getName());
+        users.setIamUsername(model.getAccountNo());
+        users.setPhone(model.getPhone());
+        users.setStatus(model.getStatus());
+        users.setEmail(model.getEmail());
+        users.setIamId(model.getUserId());
+        users.setCode(model.getCode());
+        users.setSex(model.getSex());
+        users.setStatus(model.getStatus());
+        users.setIsdeleted(Constants.ZERO);
+        users.setRoleIds("");
+        users.setRoleNames("");
+        users.setRoleCodes("");
+        users.setUserTypes("");
+        users.setIamOrgId("");
+        getDepartidByParam(users,model.getOrgIds());
+        setRolesInfo(users,model);
+        getUserTypesByParam(users,model.getTypeCodes());
+    }
+
+    private String getUserTypesByParam(Users users,String typeCodes) {
+        if( typeCodes !=null){
+            String[] codes =typeCodes.split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getUserTypes())){
+                    users.setUserTypes("");
+                }
+                users.setUserTypes(users.getUserTypes()+"["+t+"];");
+            }
+        }
+        return  users.getUserTypes();
+    }
+
+    private void setRolesInfo(Users users, UserImport model) {
+        if( model.getRoleCodes() !=null){
+            String[] codes = model.getRoleCodes().split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getRoleCodes())){
+                    users.setRoleCodes("");
+                }
+                users.setRoleCodes(users.getRoleCodes()+"["+t+"];");
+            }
+        }
+        if( model.getRoleIds() !=null){
+            String[] codes = model.getRoleIds().split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getRoleIds())){
+                    users.setRoleIds("");
+                }
+                users.setRoleIds(users.getRoleIds()+"["+t+"];");
+            }
+        }
+        if( model.getRoleNames() !=null){
+            String[] codes = model.getRoleNames().split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getRoleNames())){
+                    users.setRoleNames("");
+                }
+                users.setRoleNames(users.getRoleNames()+"["+t+"];");
+            }
+        }
+    }
+
+    private Shop getDepartidByParam(Users users , String orgIds) {
+        if( orgIds ==null){
+          return null;
+        }
+        String[] orgArray = orgIds.split(",");
+        if( orgArray !=null && orgArray.length>0){
+            for(String t : orgArray){
+                Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda()
+                        .eq(Shop::getOrgId,t)
+                        .last("limit 1"));
+                if(shop!=null) {
+                    users.setIamOrgId(t);
+                    users.setDepartmentId(shop.getId());
+                    return  shop;
+                }
+            }
+        }
+        users.setIamOrgId(orgIds+"--灏氭湭鍚屾鍒扮粍缁�");
+
+        return null;
     }
 
 }
+

--
Gitblit v1.9.3