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