From 92786c58666e6dcb279b29e80fd744067525bc5e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 28 六月 2024 11:55:57 +0800
Subject: [PATCH] 提交一把
---
server/platform/src/main/java/com/doumee/api/system/SystemUserController.java | 16 +
server/service/src/main/java/com/doumee/biz/system/SystemUserBiz.java | 8
company/src/components/business/OperaCompanyUserWindow.vue | 164 ++++++++++++++
server/service/src/main/java/com/doumee/service/system/SystemUserService.java | 5
company/src/api/system/companyUser.js | 49 ++++
server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java | 27 ++
server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 144 ++++++------
company/src/views/business/insuranceApplyShop.vue | 3
company/.env.development | 4
company/src/components/business/OperaCompanyRoleWindow.vue | 163 ++++++++++++++
company/src/views/business/company.vue | 66 +++--
11 files changed, 536 insertions(+), 113 deletions(-)
diff --git a/company/.env.development b/company/.env.development
index a7e4e84..00d82f0 100644
--- a/company/.env.development
+++ b/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/'
diff --git a/company/src/api/system/companyUser.js b/company/src/api/system/companyUser.js
new file mode 100644
index 0000000..f88a5f7
--- /dev/null
+++ b/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})
+}
diff --git a/company/src/components/business/OperaCompanyRoleWindow.vue b/company/src/components/business/OperaCompanyRoleWindow.vue
new file mode 100644
index 0000000..fada5dd
--- /dev/null
+++ b/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>
diff --git a/company/src/components/business/OperaCompanyUserWindow.vue b/company/src/components/business/OperaCompanyUserWindow.vue
new file mode 100644
index 0000000..bc77144
--- /dev/null
+++ b/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>
diff --git a/company/src/views/business/company.vue b/company/src/views/business/company.vue
index 79e42f3..87a5ea1 100644
--- a/company/src/views/business/company.vue
+++ b/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="缁熶竴淇$敤浠g爜" 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="缁熶竴淇$敤浠g爜" 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 {
// 鎼滅储
diff --git a/company/src/views/business/insuranceApplyShop.vue b/company/src/views/business/insuranceApplyShop.vue
index c51f08a..169e4a6 100644
--- a/company/src/views/business/insuranceApplyShop.vue
+++ b/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>
diff --git a/server/platform/src/main/java/com/doumee/api/system/SystemUserController.java b/server/platform/src/main/java/com/doumee/api/system/SystemUserController.java
index 74d0a7c..9ceb7a4 100644
--- a/server/platform/src/main/java/com/doumee/api/system/SystemUserController.java
+++ b/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")
diff --git a/server/service/src/main/java/com/doumee/biz/system/SystemUserBiz.java b/server/service/src/main/java/com/doumee/biz/system/SystemUserBiz.java
index 061ccb8..6c49e2d 100644
--- a/server/service/src/main/java/com/doumee/biz/system/SystemUserBiz.java
+++ b/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);
diff --git a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index d0213e8..1bb9727 100644
--- a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/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);
}
}
diff --git a/server/service/src/main/java/com/doumee/service/system/SystemUserService.java b/server/service/src/main/java/com/doumee/service/system/SystemUserService.java
index 539c5ee..aa608fe 100644
--- a/server/service/src/main/java/com/doumee/service/system/SystemUserService.java
+++ b/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);
}
diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
index 7160b8b..f93f8c0 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
+++ b/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) {
--
Gitblit v1.9.3