company/.env.development
@@ -9,6 +9,6 @@ # VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/' #VUE_APP_API = 'http://localhost:10030/' VUE_APP_API = 'http://localhost:10030/' #VUE_APP_API = 'http://192.168.0.135:10030/' VUE_APP_API = 'https://www.yyb.red/yyb_admin_api/' #VUE_APP_API = 'https://www.yyb.red/yyb_admin_api/' company/src/api/system/companyUser.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,49 @@ import request from '@/utils/request' // æ¥è¯¢ export function fetchList (data) { return request.post('/system/user/pageCompany', data) } // æ°å»º export function create (data) { return request.post('/system/user/createCompany', data, { trim: true }) } // ä¿®æ¹ export function updateById (data) { return request.post('/system/user/updateById', data, { trim: true }) } // å é¤ export function deleteById (id) { return request.get(`/system/user/delete/${id}`) } // æ¹éå é¤ export function deleteByIdInBatch (ids) { return request.get('/system/user/delete/batch', { params: { ids } }) } // é ç½®ç¨æ·è§è² export function createUserRole (data) { return request.post('/system/user/createUserRole', data) } // éç½®å¯ç export function resetPwd (data) { return request.post('/system/user/resetPwd', data) } // éç½®å¯ç export function updUserStatus (params) { return request.get('/system/user/updUserStatus', {params}) } company/src/components/business/OperaCompanyRoleWindow.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,163 @@ <template> <GlobalWindow :title="title" width="100%" :withFooter="false" :visible.sync="visible" > <TableLayout :permissions="['system:user:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline> <el-form-item label="å§å" prop="realname"> <el-input v-model="searchForm.realname" v-trim placeholder="请è¾å ¥" @keypress.enter.native="search"/> </el-form-item> <section> <el-button type="primary" icon="el-icon-search" @click="search">æç´¢</el-button> <el-button @click="reset">éç½®</el-button> </section> </el-form> <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']"> <li v-permissions="['system:user:create']"><el-button type="primary" @click="$refs.operaUserWindow.open('æ°å¢è´¦å·')">æ°å¢è´¦å·</el-button></li> <!-- <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">å é¤</el-button></li>--> </ul> <!-- @selection-change="handleSelectionChange"--> <el-table v-loading="isWorking.search" :data="tableData.list" :default-sort = "{prop: 'createTime', order: 'descending'}" stripe @sort-change="handleSortChange" > <el-table-column label="åºå·" width="80px"> <template slot-scope="scope"> <span>{{scope.$index + 1}}</span> </template> </el-table-column> <el-table-column prop="username" label="è´¦å·" min-width="120px"></el-table-column> <el-table-column prop="realname" label="å§å" min-width="100px"></el-table-column> <el-table-column prop="mobile" label="èç³»æ¹å¼" min-width="100px"></el-table-column> <el-table-column prop="roles" label="è§è²" min-width="160px" class-name="table-column-strings"> <template slot-scope="{row}"> <ul> <li v-for="role in row.roles" :key="role.id">{{role.name}}</li> </ul> </template> </el-table-column> <el-table-column label="å¯ç¨ç¶æ" min-width="100px"> <template slot-scope="{row}"> <el-switch v-if="!row.fixed" @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66" inactive-color="#ff4949" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> <el-table-column v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])" label="æä½" width="270" fixed="right" > <!-- row.id !== userInfo.id &&--> <template v-if="isAdmin || (row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}"> <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('ç¼è¾ç¨æ·', row)" v-permissions="['system:user:update']">ç¼è¾</el-button> <el-button type="text" @click="$refs.allocationEnterprises.open('åé ä¼ä¸', row)" v-if="userInfo.type !== 1">åé ä¼ä¸</el-button> <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">é ç½®è§è²</el-button> <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">éç½®å¯ç </el-button> <!-- <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">å é¤</el-button>--> </template> </el-table-column> </el-table> <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination" ></pagination> </template> <!-- æ°å»º/ä¿®æ¹ --> <OperaUserWindow ref="operaUserWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> <!-- é ç½®è§è² --> <RoleConfigWindow ref="roleConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> <!-- éç½®å¯ç --> <ResetPwdWindow ref="resetPwdWindow"/> <!-- åé ä¼ä¸ --> <allocationEnterprises ref="allocationEnterprises" @success="handlePageChange(tableData.pagination.pageIndex)"/> </TableLayout> </GlobalWindow> </template> <script> import Pagination from '@/components/common/Pagination' import TableLayout from '@/layouts/TableLayout' import BaseTable from '@/components/base/BaseTable' import GlobalWindow from '@/components/common/GlobalWindow' import OperaUserWindow from '@/components/system/user/OperaUserWindow' import allocationEnterprises from '@/components/system/user/allocationEnterprises' import RoleConfigWindow from '@/components/system/user/RoleConfigWindow' import ResetPwdWindow from '@/components/system/user/ResetPwdWindow' import { updUserStatus } from '@/api/system/user' export default { name: 'OperaCompanyUserWindow', extends: BaseTable, components: { allocationEnterprises, ResetPwdWindow, RoleConfigWindow,GlobalWindow, OperaUserWindow, TableLayout, Pagination }, data () { return { // æç´¢ visible:false, title:'ä¼ä¸è§è²ç®¡ç', searchForm: { username: '', // åå realname: '', // å§å companyId: null, // é¨é¨ID mobile: '' // ææºå·ç } } }, created () { }, methods: { open(title, row){ this.config({ module: 'ç¨æ·', api: '/system/companyUser', 'field.main': 'realname', sorts: [{ property: 'CREATE_TIME', direction: 'DESC' }] }) this.title = title this.visible = true this.searchForm.companyId=row.id this.search() }, changeStatus(status, row) { updUserStatus({ id: row.id, status }).then(res => { this.search() }).catch(err => { row.status = row.status === 0 ? 1 : 0 }) } } } </script> <style scoped lang="scss"> @import "@/assets/style/variables.scss"; // å表头åå¤ç .table-column-avatar { img { width: 48px; } } </style> company/src/components/business/OperaCompanyUserWindow.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,164 @@ <template> <GlobalWindow :title="title" width="100%" :withFooter="false" :visible.sync="visible" > <TableLayout :permissions="['system:user:query']"> <!-- æç´¢è¡¨å --> <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" inline> <el-form-item label="å§å" prop="realname"> <el-input v-model="searchForm.realname" v-trim placeholder="请è¾å ¥" @keypress.enter.native="search"/> </el-form-item> <section> <el-button type="primary" icon="el-icon-search" @click="search">æç´¢</el-button> <el-button @click="reset">éç½®</el-button> </section> </el-form> <!-- è¡¨æ ¼åå页 --> <template v-slot:table-wrap> <ul class="toolbar" v-permissions="['system:user:create', 'system:user:delete']"> <li v-permissions="['system:user:create']"><el-button type="primary" @click="$refs.operaUserWindow.open('æ°å¢è´¦å·',null,{company:company})">æ°å¢è´¦å·</el-button></li> <!-- <li v-permissions="['system:user:delete']"><el-button icon="el-icon-delete" @click="deleteByIdInBatch">å é¤</el-button></li>--> </ul> <!-- @selection-change="handleSelectionChange"--> <el-table v-loading="isWorking.search" :data="tableData.list" :default-sort = "{prop: 'createTime', order: 'descending'}" stripe @sort-change="handleSortChange" > <el-table-column label="åºå·" width="80px"> <template slot-scope="scope"> <span>{{scope.$index + 1}}</span> </template> </el-table-column> <el-table-column prop="username" label="è´¦å·" min-width="120px"></el-table-column> <el-table-column prop="realname" label="å§å" min-width="100px"></el-table-column> <el-table-column prop="mobile" label="èç³»æ¹å¼" min-width="100px"></el-table-column> <el-table-column prop="roles" label="è§è²" min-width="160px" class-name="table-column-strings"> <template slot-scope="{row}"> <ul> <li v-for="role in row.roles" :key="role.id">{{role.name}}</li> </ul> </template> </el-table-column> <el-table-column label="å¯ç¨ç¶æ" min-width="100px"> <template slot-scope="{row}"> <el-switch v-if="!row.fixed" @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66" inactive-color="#ff4949" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> <el-table-column v-if="containPermissions(['system:user:update', 'system:user:createUserRole', 'system:user:resetPwd', 'system:user:delete'])" label="æä½" width="270" fixed="right" > <!-- row.id !== userInfo.id &&--> <template v-if="isAdmin || (row.roles.findIndex(r => r.code === adminCode) === -1)" slot-scope="{row}"> <el-button type="text" icon="el-icon-edit" @click="$refs.operaUserWindow.open('ç¼è¾ç¨æ·', row)" v-permissions="['system:user:update']">ç¼è¾</el-button> <el-button type="text" icon="el-icon-s-custom" @click="$refs.roleConfigWindow.open(row)" v-permissions="['system:user:createUserRole']">é ç½®è§è²</el-button> <el-button type="text" @click="$refs.resetPwdWindow.open(row)" v-permissions="['system:user:resetPwd']">éç½®å¯ç </el-button> <!-- <el-button v-if="!row.fixed" type="text" icon="el-icon-delete" @click="deleteById(row)" v-permissions="['system:user:delete']">å é¤</el-button>--> </template> </el-table-column> </el-table> <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination" ></pagination> </template> <!-- æ°å»º/ä¿®æ¹ --> <OperaUserWindow ref="operaUserWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> <!-- é ç½®è§è² --> <RoleConfigWindow ref="roleConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/> <!-- éç½®å¯ç --> <ResetPwdWindow ref="resetPwdWindow"/> <!-- åé ä¼ä¸ --> <allocationEnterprises ref="allocationEnterprises" @success="handlePageChange(tableData.pagination.pageIndex)"/> </TableLayout> </GlobalWindow> </template> <script> import Pagination from '@/components/common/Pagination' import TableLayout from '@/layouts/TableLayout' import BaseTable from '@/components/base/BaseTable' import GlobalWindow from '@/components/common/GlobalWindow' import OperaUserWindow from '@/components/system/user/OperaUserWindow' import allocationEnterprises from '@/components/system/user/allocationEnterprises' import RoleConfigWindow from '@/components/system/user/RoleConfigWindow' import ResetPwdWindow from '@/components/system/user/ResetPwdWindow' import { updUserStatus } from '@/api/system/companyUser' export default { name: 'OperaCompanyUserWindow', extends: BaseTable, components: { allocationEnterprises, ResetPwdWindow, RoleConfigWindow,GlobalWindow, OperaUserWindow, TableLayout, Pagination }, data () { return { // æç´¢ visible:false, title:'ç¨æ·ç®¡ç', company:null, searchForm: { username: '', // åå realname: '', // å§å companyId: null, // é¨é¨ID mobile: '' // ææºå·ç } } }, created () { }, methods: { open(title, row){ this.config({ module: 'ç¨æ·', api: '/system/companyUser', 'field.main': 'realname', sorts: [{ property: 'CREATE_TIME', direction: 'DESC' }] }) this.company=row this.title = title this.visible = true this.searchForm.companyId=row.id this.search() }, changeStatus(status, row) { updUserStatus({ id: row.id, status }).then(res => { this.search() }).catch(err => { row.status = row.status === 0 ? 1 : 0 }) } } } </script> <style scoped lang="scss"> @import "@/assets/style/variables.scss"; // å表头åå¤ç .table-column-avatar { img { width: 48px; } } </style> company/src/views/business/company.vue
@@ -23,42 +23,46 @@ :data="tableData.list" stripe > <el-table-column prop="name" label="ä¼ä¸åç§°" min-width="100px"></el-table-column> <el-table-column prop="code" label="ç»ä¸ä¿¡ç¨ä»£ç " min-width="100px"></el-table-column> <el-table-column prop="createDate" label="æ·»å æ¶é´" min-width="100px"></el-table-column> <el-table-column prop="phone" label="ç»å®ææºå·" min-width="100px"></el-table-column> <el-table-column label="å¯ç¨ç¶æ" min-width="100px"> <template slot-scope="{row}"> <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66" inactive-color="#ff4949" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> <el-table-column label="çµåç¾è®¤è¯ç¶æ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.signStatus === 0">å¾ è®¤è¯</span> <span v-if="row.signStatus === 1">认è¯ä¸</span> <span v-if="row.signStatus === 2">认è¯å¤±è´¥</span> <span v-if="row.signStatus === 3">认è¯éè¿</span> </template> </el-table-column> <el-table-column <el-table-column prop="name" label="ä¼ä¸åç§°" min-width="150px" fixed align="center"></el-table-column> <el-table-column prop="code" label="ç»ä¸ä¿¡ç¨ä»£ç " min-width="150px" fixed align="center"></el-table-column> <el-table-column prop="phone" label="ç»å®ææºå·" min-width="100px" fixed align="center"></el-table-column> <el-table-column label="å¯ç¨ç¶æ" min-width="60px"> <template slot-scope="{row}"> <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66" inactive-color="#ff4949" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> <el-table-column label="çµåç¾ç¶æ" min-width="80px" align="center"> <template slot-scope="{row}"> <span v-if="row.signStatus === 0">å¾ è®¤è¯</span> <span v-if="row.signStatus === 1">认è¯ä¸</span> <span v-if="row.signStatus === 2">认è¯å¤±è´¥</span> <span v-if="row.signStatus === 3">认è¯éè¿</span> </template> </el-table-column> <el-table-column prop="createDate" label="æ·»å æ¶é´" min-width="120px" align="center"></el-table-column> <el-table-column v-if="containPermissions(['business:company:update', 'business:company:delete'])" label="æä½" min-width="120" align="center" fixed="right" > <template slot-scope="{row}"> <el-button type="text" @click="$refs.OperaCompanyDescWindow.open('ä¼ä¸è¯¦æ ', row)" v-permissions="['business:company:update']">æ¥ç详æ </el-button> <el-button type="text" @click="edit(row)" v-permissions="['business:company:update']">ä¿®æ¹</el-button> <!-- <el-button type="text" @click="$refs.operaCompanyWindow.open('ç¼è¾ä¼ä¸ä¿¡æ¯è¡¨', row)" v-permissions="['business:company:update']">çµåç¾è®¤è¯</el-button> --> <!-- <el-button type="text" @click="$refs.OperaCompanyRoleWindow.open('ä¼ä¸è§è²ç®¡ç-'+row.name, row)" v-permissions="['business:company:update']">è§è²ç®¡ç</el-button> <el-button type="text" @click="$refs.OperaCompanyUserWindow.open('ä¼ä¸è´¦å·ç®¡ç-'+row.name, row)" v-permissions="['business:company:update']">è´¦å·ç®¡ç</el-button> <el-button type="text" @click="$refs.operaCompanyWindow.open('ç¼è¾ä¼ä¸ä¿¡æ¯è¡¨', row)" v-permissions="['business:company:update']">çµåç¾è®¤è¯</el-button> --> </template> </el-table-column> </el-table> @@ -73,6 +77,8 @@ <OperaCompanyWindow ref="operaCompanyWindow" @success="handlePageChange" /> <!-- 详æ --> <OperaCompanyDescWindow ref="OperaCompanyDescWindow" @success="handlePageChange" /> <OperaCompanyUserWindow ref="OperaCompanyUserWindow" /> <OperaCompanyRoleWindow ref="OperaCompanyRoleWindow" /> </TableLayout> </template> @@ -81,12 +87,14 @@ import TableLayout from '@/layouts/TableLayout' import Pagination from '@/components/common/Pagination' import OperaCompanyWindow from '@/components/business/OperaCompanyWindow' import OperaCompanyRoleWindow from '@/components/business/OperaCompanyRoleWindow' import OperaCompanyUserWindow from '@/components/business/OperaCompanyUserWindow' import OperaCompanyDescWindow from '@/components/business/OperaCompanyDescWindow' import { updateStatus, getById } from '@/api/business/company' export default { name: 'Company', extends: BaseTable, components: { TableLayout, Pagination, OperaCompanyWindow, OperaCompanyDescWindow }, components: { TableLayout, Pagination, OperaCompanyWindow,OperaCompanyRoleWindow, OperaCompanyUserWindow,OperaCompanyDescWindow }, data () { return { // æç´¢ company/src/views/business/insuranceApplyShop.vue
@@ -83,7 +83,8 @@ <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span> </template> </el-table-column> <el-table-column prop="solutionsName" fixed label="ä¿é©æ¹æ¡" align="center" min-width="150"></el-table-column> <el-table-column prop="companyName" fixed label="æä¿ä¼ä¸" align="center" min-width="130"></el-table-column> <el-table-column prop="solutionsName" fixed label="ä¿é©æ¹æ¡" align="center" min-width="120"></el-table-column> <el-table-column label="ç±»å" fixed align="center"> <template slot-scope="{row}"> <span style="color: #00BA92" v-if="row.solutionType == 1">å§ææä¿</span> server/platform/src/main/java/com/doumee/api/system/SystemUserController.java
@@ -70,6 +70,16 @@ systemUserBiz.create(systemUser); return ApiResponse.success(null); } @Trace(withRequestParameters = false) @PreventRepeat @ApiOperation("æ°å»ºä¼ä¸æè åæ·è´¦å·") @PostMapping("/createCompany") @RequiresPermissions("system:user:create") public ApiResponse createCompany(@Validated(OperaType.Create.class) @RequestBody CreateSystemUserDTO systemUser) { systemUser.setCreateUser(this.getLoginUser().getId()); systemUserBiz.createCompany(systemUser); return ApiResponse.success(null); } @PreventRepeat @ApiOperation("ä¿®æ¹ç¨æ·ç¶æ") @GetMapping("/updUserStatus") @@ -117,6 +127,12 @@ public ApiResponse<PageData<SystemUserListVO>> findPage (@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) { return ApiResponse.success(systemUserService.findPage(pageWrap)); } @ApiOperation("å页æ¥è¯¢") @PostMapping("/pageCompany") @RequiresPermissions("system:user:query") public ApiResponse<PageData<SystemUserListVO>> findPageCompany (@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) { return ApiResponse.success(systemUserService.findPageCompany(pageWrap)); } @ApiOperation("å页æ¥è¯¢ç³»ç»ç¨æ·") @PostMapping("/findAllPage") @RequiresPermissions("system:user:query") server/service/src/main/java/com/doumee/biz/system/SystemUserBiz.java
@@ -45,6 +45,7 @@ * @date 2023/03/21 14:49 */ void create(CreateSystemUserDTO systemUser); void createCompany(CreateSystemUserDTO systemUser); /** * ä¿®æ¹ç¨æ·ä¿¡æ¯ @@ -60,13 +61,6 @@ */ void createUserRole(CreateUserRoleDTO dto); /** * ä¼ä¸åå»ºç¨æ· * @param createCompanyUserDTO */ void companyCreateUser(CreateCompanyUserDTO createCompanyUserDTO); void companyUpdUser(CreateCompanyUserDTO updCreateCompanyUserDTO); void updPassword(CreateCompanyUserDTO updCreateCompanyUserDTO); server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -177,6 +177,80 @@ } } @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void createCompany(CreateSystemUserDTO systemUser) { // éªè¯ç¨æ·å LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.UserType.SYSTEM.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED); } // systemUser.setUsername(systemUser.getMobile()); if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if( systemUser.getCompanyId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } String phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode(); if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){ SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha()); } Company company = companyService.findById(systemUser.getCompanyId()); if(company == null ||Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼å½åä¼ä¸ä¿¡æ¯ä¸æ£ç¡®ï¼"); } SystemUser queryUserDto = new SystemUser(); queryUserDto.setUsername(systemUser.getUsername()); queryUserDto.setDeleted(Boolean.FALSE); // queryUserDto.setType(Constants.ZERO); SystemUser user = systemUserService.findOne(queryUserDto); if (user != null) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "ç»å½è´¦å·å·²åå¨"); } // éªè¯ææºå· if (StringUtils.isNotBlank(systemUser.getMobile())) { queryUserDto = new SystemUser(); queryUserDto.setDeleted(Boolean.FALSE); queryUserDto.setMobile(systemUser.getMobile()); user = systemUserService.findOne(queryUserDto); if (user != null) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "ææºå·å·²åå¨"); } } // çæå¯ç ç String salt = RandomStringUtils.randomAlphabetic(6); // çæå¯ç systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt)); systemUser.setSalt(salt); systemUser.setType(Constants.equalsInteger(company.getType(),Constants.ONE)?Constants.UserType.ZHUBO.getKey():Constants.UserType.COMPANY.getKey()); systemUser.setType(loginUserInfo.getType()); systemUser.setStatus(Constants.ZERO); Integer userId = systemUserService.create(systemUser); // 设置é¨é¨ if (systemUser.getDepartmentId() != null) { SystemDepartmentUser systemDepartmentUser = new SystemDepartmentUser(); systemDepartmentUser.setDepartmentId(systemUser.getDepartmentId()); systemDepartmentUser.setUserId(userId); systemDepartmentUser.setOperaUser(systemUser.getCreateUser()); systemDepartmentUser.setOperaTime(new Date()); systemDepartmentUserService.create(systemDepartmentUser); }else { SystemDepartmentUser systemDepartmentUser = new SystemDepartmentUser(); QueryWrapper<SystemDepartment> wrapper = new QueryWrapper<>(); wrapper.lambda().isNull(SystemDepartment::getParentId).last("limit 1"); SystemDepartment systemDepartment = systemDepartmentService.findOne(wrapper); systemDepartmentUser.setDepartmentId(systemDepartment.getId()); systemDepartmentUser.setUserId(userId); systemDepartmentUser.setOperaUser(systemUser.getCreateUser()); systemDepartmentUser.setOperaTime(new Date()); systemDepartmentUserService.create(systemDepartmentUser); } } @Override public void updateById(CreateSystemUserDTO systemUser) { @@ -248,76 +322,6 @@ SystemUserRole newUserRole = new SystemUserRole(); newUserRole.setUserId(dto.getUserId()); newUserRole.setRoleId(roleId); systemUserRoleService.create(newUserRole); } } @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void companyCreateUser(CreateCompanyUserDTO createCompanyUserDTO) { if(Objects.isNull(createCompanyUserDTO) ||StringUtils.isBlank(createCompanyUserDTO.getUserName()) ||StringUtils.isBlank(createCompanyUserDTO.getRealName()) ||StringUtils.isBlank(createCompanyUserDTO.getPassword()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); SystemUser queryUserDto = new SystemUser(); queryUserDto.setUsername(createCompanyUserDTO.getUserName()); queryUserDto.setDeleted(Boolean.FALSE); SystemUser user = systemUserService.findOne(queryUserDto); if (user != null) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "ç»å½è´¦å·å·²åå¨"); } if(createCompanyUserDTO.getType().equals(Constants.UserType.ZHUBO.getKey())){ Company company = companyService.findById(loginUserInfo.getCompanyId()); SystemUser zbUserNum = new SystemUser(); zbUserNum.setCompanyId(loginUserInfo.getCompanyId()); zbUserNum.setDeleted(Boolean.FALSE); zbUserNum.setType(Constants.UserType.ZHUBO.getKey()); } SystemUser systemUser = new SystemUser(); BeanUtils.copyProperties(createCompanyUserDTO,systemUser); systemUser.setCompanyId(loginUserInfo.getCompanyId()); systemUser.setRealname(createCompanyUserDTO.getRealName()); systemUser.setUsername(createCompanyUserDTO.getUserName()); // çæå¯ç ç String salt = RandomStringUtils.randomAlphabetic(6); // çæå¯ç systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt)); systemUser.setSalt(salt); Integer userId = systemUserService.create(systemUser); if(systemUser.getType().equals(Constants.UserType.COMPANY.getKey())){ SystemUserRole newUserRole = new SystemUserRole(); newUserRole.setUserId(userId); newUserRole.setRoleId(createCompanyUserDTO.getRoleId()); systemUserRoleService.create(newUserRole); } } @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void companyUpdUser(CreateCompanyUserDTO updCreateCompanyUserDTO) { if(Objects.isNull(updCreateCompanyUserDTO) ||Objects.isNull(updCreateCompanyUserDTO.getId()) ||StringUtils.isBlank(updCreateCompanyUserDTO.getRealName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } SystemUser systemUser = systemUserService.findById(updCreateCompanyUserDTO.getId()); if(Objects.isNull(systemUser)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } systemUser.setRealname(updCreateCompanyUserDTO.getRealName()); systemUser.setMobile(updCreateCompanyUserDTO.getMobile()); systemUserService.updateById(systemUser); if(systemUser.getType().equals(Constants.UserType.COMPANY.getKey())){ // å é¤å ³èè§è² SystemUserRole deleteDto = new SystemUserRole(); deleteDto.setUserId(systemUser.getId()); systemUserRoleService.delete(deleteDto); SystemUserRole newUserRole = new SystemUserRole(); newUserRole.setUserId(systemUser.getId()); newUserRole.setRoleId(updCreateCompanyUserDTO.getRoleId()); systemUserRoleService.create(newUserRole); } } server/service/src/main/java/com/doumee/service/system/SystemUserService.java
@@ -91,8 +91,5 @@ long count(SystemUser systemUser); PageData<SystemUserListVO> findPageCompany(PageWrap<QuerySystemUserDTO> pageWrap); } server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -167,6 +167,33 @@ } return PageData.from(new PageInfo<>(userList)); } @Override public PageData<SystemUserListVO> findPageCompany(PageWrap<QuerySystemUserDTO> pageWrap) { // æ ¹é¨é¨æ¡ä»¶å¤çï¼éæ¥è¯¢æ ¹é¨é¨ä¸ææé¨é¨çç¨æ·ï¼ if (pageWrap.getModel().getRootDeptId() != null) { // pageWrap.getModel().setDepartmentIds(getDeptIds(pageWrap.getModel().getRootDeptId())); } else { // List<SystemDepartment> list = systemDepartmentService.findList(new QueryWrapper<>()); // List<Integer> collect = list.stream().map(s -> s.getId()).collect(Collectors.toList()); // pageWrap.getModel().setDepartmentIds(collect); } if (pageWrap.getModel().getCompanyId() == null) { pageWrap.getModel().setCompanyId(-1); } // æ§è¡æ¥è¯¢ PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); List<SystemUserListVO> userList = systemUserMapper.selectManageList(pageWrap.getModel(), pageWrap.getOrderByClause()); String zhuboRoomUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.ZHUBO_ROOM_URL).getCode(); for (SystemUserListVO user : userList) { // æ¥è¯¢ç¨æ·è§è²å表 user.setRoles(systemRoleService.findByUserId(user.getId())); // æ¥è¯¢ç¨æ·å²ä½å表 // user.setPositions(systemPositionService.findByUserId(user.getId())); user.setZhuboRoomUrl(zhuboRoomUrl); } return PageData.from(new PageInfo<>(userList)); } @Override public long count(SystemUser systemUser) {