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/IamInterfaceLogServiceImpl.java | 9 -
server/service/src/main/java/com/doumee/core/model/ApiResponse.java | 10 +
server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java | 10
server/service/src/main/java/com/doumee/dao/business/model/Users.java | 7
admin/src/views/business/shopUsers.vue | 27 +--
server/admin/src/main/java/com/doumee/api/business/PushController.java | 2
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 172 ++++++++++++++++++++++++
admin/src/api/business/users.js | 9 -
server/service/src/main/java/com/doumee/dao/admin/request/UserImport.java | 26 ++-
server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java | 9 -
admin/public/template/users.xlsx | 0
admin/src/components/business/OperaUserImportWindow.vue | 82 +++++++++++
12 files changed, 308 insertions(+), 55 deletions(-)
diff --git a/admin/public/template/users.xlsx b/admin/public/template/users.xlsx
index 05a836d..dab5df8 100644
--- a/admin/public/template/users.xlsx
+++ b/admin/public/template/users.xlsx
Binary files differ
diff --git a/admin/src/api/business/users.js b/admin/src/api/business/users.js
index 8cb3092..ed0e68a 100644
--- a/admin/src/api/business/users.js
+++ b/admin/src/api/business/users.js
@@ -14,14 +14,9 @@
download: true
})
}
-export function updateWorkStatus (data) {
- return request.post('/visitsAdmin/cloudService/business/member/updateWorkStatus', data)
-}
+
export function importExcel (data) {
- return request.post('/visitsAdmin/cloudService/business/member/importExcel', data)
-}
-export function memberSync (data) {
- return request.post('/visitsAdmin/cloudService/business/member/syncAll', data)
+ return request.post('/business/users/importExcel', data)
}
// 鍒涘缓
export function create (data) {
diff --git a/admin/src/components/business/OperaUserImportWindow.vue b/admin/src/components/business/OperaUserImportWindow.vue
new file mode 100644
index 0000000..7d5f239
--- /dev/null
+++ b/admin/src/components/business/OperaUserImportWindow.vue
@@ -0,0 +1,82 @@
+<template>
+ <el-dialog
+ class="center-title"
+ :title="title"
+ width="500px"
+ top="30vh"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <p class="tip-warn"><i class="el-icon-warning"></i>瀵煎叆璇存槑锛�<br>
+ 1.璇峰厛涓嬭浇鏂囦欢妯℃澘锛屽苟鎸夌収妯℃澘瑕佸幓濉啓琛ㄦ牸鍐呭;<br>
+ </p>
+ <el-form class="demo-form-inline" >
+ <el-form-item label="缁勭粐淇℃伅娓呭崟" required>
+ <div style="width: 100%;display: flex;align-items: center;">
+ <el-button type="primary" @click="clickRef">鐐瑰嚮涓婁紶</el-button>
+ <el-button type="text" @click="exportTemplate">鐐瑰嚮涓嬭浇妯$増.EXCEL</el-button>
+ </div>
+ <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div>
+ </el-form-item>
+ </el-form>
+ <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
+ <template v-slot:footer>
+ <el-button @click="visible=false">杩斿洖</el-button>
+ </template>
+ </el-dialog>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { importExcel } from '@/api/business/users'
+export default {
+ name: 'OperaShopImportWindow',
+ extends: BaseOpera,
+ // eslint-disable-next-line vue/no-unused-components
+ components: { GlobalWindow },
+ data () {
+ return {
+ importing:false,
+ fileName: '',
+ }
+ },
+ methods: {
+ open (title, companyType) {
+ this.title = title
+ this.fileName = ''
+ this.visible = true
+ },
+ // 瀵煎嚭妯℃澘
+ exportTemplate () {
+ // 鎶曚繚鐢宠
+ window.open('/template/users.xlsx')
+ },
+ clickRef () {
+ this.$refs.fileExcel.click()
+ },
+ result (e) {
+ const data = new FormData()
+ data.append('file', e.target.files[0])
+ data.append('companyType', this.companyType)
+ importExcel(data)
+ .then(res => {
+ this.$tip.apiSuccess('鍙戣捣鎵归噺涓婁紶浠诲姟鎴愬姛锛岃绋嶅悗鍒锋柊椤甸潰鏌ョ湅')
+ this.$emit('success')
+ this.visible = false
+ })
+ .catch(err => {
+ this.fileName = ''
+ })
+ .finally(() => {
+ this.$refs.fileExcel.value = null
+ })
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/admin/src/views/business/shopUsers.vue b/admin/src/views/business/shopUsers.vue
index 818c8a6..4e23bf9 100644
--- a/admin/src/views/business/shopUsers.vue
+++ b/admin/src/views/business/shopUsers.vue
@@ -54,10 +54,11 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" style="height: 26px">
-<!-- <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('鏂板缓鍛樺伐',null,department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
- <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('浜哄憳瀵煎叆',searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>
- <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
- -->
+ <li><el-button type="primary" @click="$refs.OperaUserImportWindow.open('鍒濆鍖栧鍏�')" icon="el-icon-plus" v-permissions="['business:member:create']">鍒濆鍖栧鍏�</el-button></li>
+ <!-- <li><el-button type="primary" @click="$refs.OperaMemberWindow.open('鏂板缓鍛樺伐',null,department,searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">鏂板缓鍛樺伐</el-button></li>
+ <li><el-button type="primary" @click="$refs.OperaMemberImportWindow.open('浜哄憳瀵煎叆',searchForm.companyType)" icon="el-icon-plus" v-permissions="['business:member:create']">浜哄憳瀵煎叆</el-button></li>
+ <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
+ -->
<li style="float: right;">
<el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" @change="search" >鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
</li>
@@ -69,23 +70,23 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="name" label="濮撳悕" min-width="100px"></el-table-column>
- <el-table-column prop="iamUsername" label="鐧诲綍璐﹀彿" min-width="100px"></el-table-column>
- <el-table-column prop="phone" label="鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="name" label="濮撳悕" fixed min-width="100px"></el-table-column>
+ <el-table-column prop="iamUsername" fixed label="鐧诲綍璐﹀彿" min-width="100px"></el-table-column>
+ <el-table-column prop="phone" label="鎵嬫満鍙�" fixed min-width="100px"></el-table-column>
<el-table-column label="鎬у埆" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.sex == 0">鐢�</span>
<span v-if="row.sex == 1">濂�</span>
</template>
</el-table-column>
- <el-table-column prop="shopName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="shopName" label="鎵�灞為儴闂�" min-width="150px"></el-table-column>
<el-table-column prop="status" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.status == 0" style="color: red">鍋滅敤</span>
<span v-if="row.status == 1" style="color:green">鍚敤</span>
</template>
</el-table-column>
- <el-table-column prop="shopType" label="缁勭粐绫诲瀷" min-width="80px">
+ <el-table-column prop="shopType" label="缁勭粐绫诲瀷" min-width="110px">
<template scope="{row}">
<span v-if="row.shopType == 1">HR</span>
<span v-if="row.shopType == 2">鍔犵洘鍟�</span>
@@ -130,8 +131,7 @@
>
</pagination>
<!-- 鏌ョ湅浜哄憳寮�鍗¤褰� -->
- <OperaMemberWindow ref="OperaMemberWindow" @success="handlePageChange" />
- <OperaMemberImportWindow ref="OperaMemberImportWindow" @success="handlePageChange" />
+ <OperaUserImportWindow ref="OperaUserImportWindow" @success="handlePageChange" />
</template>
</TableLayout1>
</template>
@@ -140,13 +140,12 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout1 from '@/layouts/TableLayout1'
import Pagination from '@/components/common/Pagination'
-import OperaMemberWindow from '@/components/business/OperaMemberWindow'
-import OperaMemberImportWindow from '@/components/business/OperaMemberImportWindow'
+import OperaUserImportWindow from '@/components/business/OperaUserImportWindow'
import { fetchListByParent } from '@/api/business/shop'
export default {
name: 'internalMember',
extends: BaseTable,
- components: { TableLayout1, Pagination, OperaMemberWindow, OperaMemberImportWindow },
+ components: { TableLayout1, Pagination, OperaUserImportWindow },
data () {
return {
TreeList: [],
diff --git a/server/admin/src/main/java/com/doumee/api/business/PushController.java b/server/admin/src/main/java/com/doumee/api/business/PushController.java
index f7a8013..cf2218d 100644
--- a/server/admin/src/main/java/com/doumee/api/business/PushController.java
+++ b/server/admin/src/main/java/com/doumee/api/business/PushController.java
@@ -62,7 +62,7 @@
ApiResponse<String> r = null;
try {
zbomIAMService.updateUserInfo(token,uuid,timestamp,upateUserModel);
- r = ApiResponse.success("鎿嶄綔鎴愬姛");
+ r = ApiResponse.successIam("鎿嶄綔鎴愬姛");
}catch (BusinessException e){
success = Constants.ONE;
r = ApiResponse.failed(StringUtils.defaultString(e.getMessage(),"鎿嶄綔澶辫触"));
diff --git a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
index 4542b02..0033390 100644
--- a/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/zbom/impl/ZbomIAMServiceImpl.java
@@ -313,6 +313,7 @@
users.setIsdeleted(Constants.ZERO);
users.setRemark(JSONObject.toJSONString(upateUserModel));
users.setRoleNames(null);
+ users.setRoleCodes(null);
users.setRoleIds(null);
users.setUserTypes(null);
if( upateUserModel.getUserTypes() !=null){
@@ -331,8 +332,12 @@
if(StringUtils.isBlank(users.getRoleNames())){
users.setRoleNames("");
}
- users.setRoleIds(users.getRoleIds()+t.getId()+"["+t.getId()+"];");
+ if(StringUtils.isBlank(users.getRoleCodes())){
+ users.setRoleCodes("");
+ }
+ users.setRoleIds(users.getRoleIds()+"["+t.getId()+"];");
users.setRoleNames(users.getRoleNames()+"["+t.getName()+"];");
+ users.setRoleCodes(users.getRoleCodes()+"["+t.getCode()+"];");
}
}
if(upateUserModel.getJobs()!=null){
@@ -350,11 +355,8 @@
.last("limit 1"));
users.setDepartmentId(shop ==null?null:shop.getId());
}
-
}
-
return users;
-
}
public String getToken(String uuid,String time) {
diff --git a/server/service/src/main/java/com/doumee/core/model/ApiResponse.java b/server/service/src/main/java/com/doumee/core/model/ApiResponse.java
index 051cc84..2e1ad9c 100644
--- a/server/service/src/main/java/com/doumee/core/model/ApiResponse.java
+++ b/server/service/src/main/java/com/doumee/core/model/ApiResponse.java
@@ -45,6 +45,16 @@
public static <T> ApiResponse<T> success(T data) {
return ApiResponse.success("璇锋眰鎴愬姛", data);
}
+ public static <T> ApiResponse<T> successIam(T data) {
+ return ApiResponse.successIam("璇锋眰鎴愬姛", data);
+ }
+
+ /**
+ * 璇锋眰鎴愬姛
+ */
+ public static <T> ApiResponse<T> successIam(String message, T data) {
+ return new ApiResponse<>(0, Boolean.TRUE, message, data, null);
+ }
/**
* 璇锋眰鎴愬姛
diff --git a/server/service/src/main/java/com/doumee/dao/admin/request/UserImport.java b/server/service/src/main/java/com/doumee/dao/admin/request/UserImport.java
index cdc2d9c..faa7060 100644
--- a/server/service/src/main/java/com/doumee/dao/admin/request/UserImport.java
+++ b/server/service/src/main/java/com/doumee/dao/admin/request/UserImport.java
@@ -18,22 +18,24 @@
private String name;
@ExcelColumn(name="鐧诲綍璐﹀彿",value = "accountNo",index = 3)
private String accountNo;
- @ExcelColumn(name="鐘舵��",value = "status",index =4)
- private Integer status;
- @ExcelColumn(name="閭",value = "email",index = 5)
+ @ExcelColumn(name="鎬у埆 0鐢� 1濂�",value = "sex",index = 4)
+ private String sex;
+ @ExcelColumn(name="鐘舵�� 0鍋滅敤锛�1鍚敤",value = "status",index =5)
+ private String status;
+ @ExcelColumn(name="閭",value = "email",index = 6)
private String email;
- @ExcelColumn(name="鎵嬫満鍙�",value = "phone",index = 6)
+ @ExcelColumn(name="鎵嬫満鍙�",value = "phone",index = 7)
private String phone;
- @ExcelColumn(name="宸ュ彿",value = "code",index = 7)
+ @ExcelColumn(name="宸ュ彿",value = "code",index = 8)
private String code;
- @ExcelColumn(name="鐢ㄦ埛绫诲瀷缂栫爜闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "typeCodes",index = 8)
- private String typeCodes;
@ExcelColumn(name="閮ㄩ棬缂栫爜闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "orgIds",index = 9)
private String orgIds;
- @ExcelColumn(name="瑙掕壊缂栫爜闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "roleIds",index = 10)
- private String roleIds;
- @ExcelColumn(name="瑙掕壊code闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "roleCodes",index = 11)
- private String roleCodes;
- @ExcelColumn(name="瑙掕壊鍚嶇О闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "roleNames",index = 12)
+ @ExcelColumn(name="鐢ㄦ埛绫诲瀷缂栫爜闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "typeCodes",index = 10)
+ private String typeCodes;
+ @ExcelColumn(name="瑙掕壊鍚嶇О闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "roleNames",index = 11)
private String roleNames;
+ @ExcelColumn(name="瑙掕壊code闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "roleCodes",index = 12)
+ private String roleCodes;
+ @ExcelColumn(name="瑙掕壊缂栫爜闆嗗悎,澶氫釜鑻辨枃閫楀彿闅斿紑",value = "roleIds",index = 13)
+ private String roleIds;
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Users.java b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
index 0fd7ea5..54c9563 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Users.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Users.java
@@ -158,9 +158,12 @@
@ExcelColumn(name="鐢ㄦ埛瑙掕壊缂栫爜闆嗗悎锛屽涓敤鑻辫閫楀彿闅斿紑")
private String roleIds;
- @ApiModelProperty(value = "鐢ㄦ埛瑙掕壊鍚嶇О闆嗗悎锛屽涓敤鑻辫閫楀彿闅斿紑")
- @ExcelColumn(name="鐢ㄦ埛瑙掕壊鍚嶇О闆嗗悎锛屽涓敤鑻辫閫楀彿闅斿紑")
+ @ApiModelProperty(value = "鐢ㄦ埛瑙掕壊鍚嶇О闆嗗悎")
+ @ExcelColumn(name="鐢ㄦ埛瑙掕壊鍚嶇О闆嗗悎")
private String roleNames;
+ @ApiModelProperty(value = "鐢ㄦ埛瑙掕壊code闆嗗悎锛屽涓敤鑻辫閫楀彿闅斿紑")
+ @ExcelColumn(name="鐢ㄦ埛瑙掕壊code闆嗗悎锛屽涓敤鑻辫閫楀彿闅斿紑")
+ private String roleCodes;
@ApiModelProperty(value = "鏄惁鍖呭惈涓嬬骇")
@TableField(exist = false)
private Boolean includeChild;
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
index 1bad34f..41dacb0 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CustomerLogServiceImpl.java
@@ -6,6 +6,7 @@
import com.doumee.dao.business.CustomerLogMapper;
import com.doumee.dao.business.model.CustomerLog;
import com.doumee.dao.business.model.IamInterfaceLog;
+import com.doumee.dao.business.model.InterfaceLog;
import com.doumee.service.business.CustomerLogService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -186,13 +187,7 @@
if (pageWrap.getModel().getQueryEndDate() != null) {
queryWrapper.lambda().le(CustomerLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getQueryEndDate()));
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
- }
+ queryWrapper.lambda().orderByDesc(CustomerLog::getCreateDate);
return PageData.from(customerLogMapper.selectPage(page, queryWrapper));
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/IamInterfaceLogServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/IamInterfaceLogServiceImpl.java
index ffe30cc..96f10e5 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/IamInterfaceLogServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/IamInterfaceLogServiceImpl.java
@@ -4,6 +4,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.IamInterfaceLogMapper;
+import com.doumee.dao.business.model.CustomerLog;
import com.doumee.dao.business.model.IamInterfaceLog;
import com.doumee.dao.business.model.InterfaceLog;
import com.doumee.service.business.IamInterfaceLogService;
@@ -146,13 +147,7 @@
if (pageWrap.getModel().getQueryEndDate() != null) {
queryWrapper.lambda().le(IamInterfaceLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getQueryEndDate()));
}
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
- }
+ queryWrapper.lambda().orderByDesc(IamInterfaceLog::getCreateDate);
return PageData.from(iamInterfaceLogMapper.selectPage(page, queryWrapper));
}
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