From a4e9550ac1f85466799b370aa6ce1a70eb873d4f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 15 七月 2024 12:10:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 206 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 197 insertions(+), 9 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..64a7de6 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;
@@ -16,12 +18,9 @@
import com.doumee.dao.admin.request.UserImport;
import com.doumee.dao.business.ShopMapper;
import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.SmsEmailMapper;
import com.doumee.dao.business.UsersMapper;
-import com.doumee.dao.business.model.Multifile;
-import com.doumee.dao.business.model.News;
-import com.doumee.dao.business.model.Shop;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Users;
+import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
@@ -66,6 +65,8 @@
private UsersMapper usersMapper;
@Autowired
private ShopMapper shopMapper;
+ @Autowired
+ private SmsEmailMapper smsEmailMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@@ -291,6 +292,8 @@
}
+
+
@Override
public AccountResponse phoneLogin(String phone,String code){
if(StringUtils.isEmpty(phone)||StringUtils.isEmpty(code)){
@@ -306,10 +309,27 @@
if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
}
- //TODO 楠岃瘉鐭俊淇℃伅
- if(!StringUtils.equals(code,"123456")){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮侀敊璇�");
+ //楠岃瘉鐭俊
+ SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
+ .eq(SmsEmail::getType, Constants.ZERO)
+ .eq(SmsEmail::getPhone, phone)
+ .eq(SmsEmail::getRemark, code)
+ .eq(SmsEmail::getIsdeleted, Constants.ZERO)
+ );
+ if(model == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛岃閲嶆柊鍙戦�佸啀璇曪紒");
}
+ if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇曪紒");
+ }
+ model.setStatus(Constants.ONE);
+ model.setEditDate(new Date());
+ if(model.getCreateDate() !=null &&
+ System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){
+ smsEmailMapper.updateById(model);
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇晘");
+ }
+ smsEmailMapper.updateById(model);
//鍒涘缓token
JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
String token = JwtTokenUtil.generateToken(payLoad);
@@ -409,8 +429,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