From e459023e11f5b7be2d86662722b70605aee7992b Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期二, 30 四月 2024 11:17:46 +0800
Subject: [PATCH] 最新版本
---
server/system_service/src/main/java/com/doumee/api/cloud/SystemDepartmentController.java | 110 ++++
server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataController.java | 98 ++++
server/system_service/src/main/java/com/doumee/api/cloud/SystemController.java | 50 ++
server/system_service/src/main/java/com/doumee/api/cloud/SystemPositionController.java | 106 ++++
server/system_service/src/main/java/com/doumee/api/cloud/SystemMenuController.java | 101 ++++
server/system_service/src/main/java/com/doumee/api/cloud/SystemRoleController.java | 111 ++++
admin/.env.production | 2
admin/vue.config.js | 13
server/system_service/src/main/java/com/doumee/api/cloud/SystemLoginLogController.java | 47 ++
server/system_service/src/main/java/com/doumee/api/cloud/NoticesController.java | 91 +++
admin/src/api/system/common.js | 20
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 2
server/system_service/src/main/java/com/doumee/api/cloud/SystemPermissionController.java | 92 ++++
server/system_service/src/main/java/com/doumee/api/cloud/SystemDictController.java | 83 +++
admin/.env.development | 1
server/system_service/src/main/java/com/doumee/api/cloud/SystemUserController.java | 140 ++++++
admin/src/views/login.vue | 4
server/system_service/src/main/java/com/doumee/api/BaseController.java | 28 +
server/system_service/src/main/java/com/doumee/api/cloud/SystemTraceLogController.java | 46 ++
admin/src/api/system/menu.js | 4
admin/package.json | 4
server/system_service/src/main/java/com/doumee/api/cloud/SystemMonitorController.java | 33 +
/dev/null | 2
admin/src/utils/request.js | 7
admin/.env.test | 4
server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 13
server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java | 31 +
server/system_gateway/src/main/resources/application.yml | 1
server/system_service/src/main/java/com/doumee/api/cloud/SystemDataPermissionController.java | 109 ++++
29 files changed, 1,319 insertions(+), 34 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 313f893..ef1bcb5 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -1,2 +1,3 @@
# 寮�鍙戠幆澧冮厤缃�
NODE_ENV = 'development'
+VUE_APP_API_URL = 'http://192.168.0.109:10010'
diff --git a/admin/.env.production b/admin/.env.production
index dc6dc7f..091b660 100644
--- a/admin/.env.production
+++ b/admin/.env.production
@@ -1,2 +1,4 @@
# 鐢熶骇鐜閰嶇疆
NODE_ENV = 'production'
+
+VUE_APP_API_URL = 'http://192.168.0.109:10010'
diff --git a/admin/.env.staging b/admin/.env.staging
deleted file mode 100644
index bd33547..0000000
--- a/admin/.env.staging
+++ /dev/null
@@ -1,2 +0,0 @@
-# 娴嬭瘯鐜閰嶇疆
-NODE_ENV = 'production'
diff --git a/admin/.env.test b/admin/.env.test
new file mode 100644
index 0000000..c45c4ce
--- /dev/null
+++ b/admin/.env.test
@@ -0,0 +1,4 @@
+# 娴嬭瘯鐜閰嶇疆
+NODE_ENV = 'production'
+
+VUE_APP_API_URL = 'http://192.168.0.109:10010'
diff --git a/admin/package.json b/admin/package.json
index 8a4a61b..d7e43de 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -4,8 +4,8 @@
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
- "build": "vue-cli-service build",
- "build:staging": "vue-cli-service build --mode staging",
+ "build": "vue-cli-service build --mode production",
+ "build:staging": "vue-cli-service build --mode test",
"lint": "vue-cli-service lint",
"fix": "eslint --ext .js,.vue src --fix"
},
diff --git a/admin/src/api/system/common.js b/admin/src/api/system/common.js
index fcd999b..3bf560c 100644
--- a/admin/src/api/system/common.js
+++ b/admin/src/api/system/common.js
@@ -2,29 +2,29 @@
// 鑾峰彇鍥剧墖楠岃瘉鐮�
export function getCaptcha () {
- return request.get('/common/captcha')
+ return request.get('/captcha')
}
// 鏍规嵁瀵嗙爜鐧诲綍
export function loginByPassword (data) {
- return request.post('/system/login', data)
+ return request.post('/login', data)
+}
+
+// 鑾峰彇宸茬櫥褰曠殑鐢ㄦ埛淇℃伅
+export function getUserInfo () {
+ return request.get('/getUserInfo', {
+ autoLogin: false
+ })
}
// 鐧诲嚭
export function logout (data) {
- return request.post('/system/logout', data)
+ return request.post('/logout', data)
}
// 淇敼瀵嗙爜
export function updatePwd (data) {
return request.post('/system/updatePwd', data)
-}
-
-// 鑾峰彇宸茬櫥褰曠殑鐢ㄦ埛淇℃伅
-export function getUserInfo () {
- return request.get('/system/getUserInfo', {
- autoLogin: false
- })
}
// 璁垮鏉ヨ閰嶇疆
diff --git a/admin/src/api/system/menu.js b/admin/src/api/system/menu.js
index 19f25a0..cb1e05c 100644
--- a/admin/src/api/system/menu.js
+++ b/admin/src/api/system/menu.js
@@ -36,10 +36,10 @@
// 鏌ヨ鑿滃崟鏍�
export function fetchMenuTree () {
- return request.get('/system/menu/treeNodes')
+ return request.get('/visitsAdmin/system/menu/treeNodes')
}
// 鎺掑簭
export function sort (data) {
- return request.post('/system/menu/updateSort', data)
+ return request.post('/visitsAdmin/system/menu/updateSort', data)
}
diff --git a/admin/src/utils/request.js b/admin/src/utils/request.js
index e73f3ae..19be2e3 100644
--- a/admin/src/utils/request.js
+++ b/admin/src/utils/request.js
@@ -30,9 +30,9 @@
// 璁剧疆鎿嶄綔骞冲彴
config.headers['eva-platform'] = `pc-${pkg.version}`
// 璁剧疆璁よ瘉澶�
- const authToken = Cookies.get('eva-auth-token')
+ const authToken = Cookies.get('dm_user_token')
if (authToken != null) {
- config.headers['eva-auth-token'] = authToken
+ config.headers['dm_user_token'] = authToken
}
return config
}, function (error) {
@@ -52,7 +52,8 @@
// 鏈櫥褰�
if (response.data.code === 401) {
if (response.config.autoLogin !== false) {
- window.location.href = process.env.VUE_APP_ROUTER_MODE === 'history' ? '/#/login' : '/login'
+ Cookies.set('dm_user_token','')
+ window.location.href = process.env.VUE_APP_ROUTER_MODE === 'hash' ? (process.env.VUE_APP_CONTEXT_PATH +'/#/login') : (process.env.VUE_APP_CONTEXT_PATH+'/login')
}
return Promise.reject(response.data)
}
diff --git a/admin/src/views/login.vue b/admin/src/views/login.vue
index c343084..87b3f52 100644
--- a/admin/src/views/login.vue
+++ b/admin/src/views/login.vue
@@ -23,6 +23,7 @@
<script>
import { mapMutations } from 'vuex'
import { getCaptcha, loginByPassword } from '@/api/system/common'
+import Cookies from "js-cookie";
export default {
name: 'Login',
@@ -58,8 +59,9 @@
code: this.captcha.value.trim(),
uuid: this.captcha.uuid
})
- .then(() => {
+ .then((res) => {
// window.location.href = process.env.VUE_APP_CONTEXT_PATH
+ Cookies.set('dm_user_token',res)
window.location.reload()
})
.catch(e => {
diff --git a/admin/vue.config.js b/admin/vue.config.js
index ef7665f..efad125 100644
--- a/admin/vue.config.js
+++ b/admin/vue.config.js
@@ -10,18 +10,7 @@
port: 10012,
proxy: {
[process.env.VUE_APP_API_PREFIX]: {
- // http://192.168.0.134:10028 浠诲悍
- // http://192.168.0.110:10013 纾婄
- // http://192.168.0.132:10013 甯呭摜
- // http://192.168.0.176:10028 钀嶅
- // http://192.168.0.186:10028 浠诲悍
- // https://dmtest.ahapp.net/admin_api 娴嬭瘯鏈�
- // http://10.10.99.63/admin_interface/ 鏈�鏂版祴璇曟湇锛堝唴缃戯級
- // http://218.23.218.228:8018/admin_interface 鏈�鏂版祴璇曟湇锛堝缃戯級
- // target: 'http://218.23.218.228:8018/admin_interface',
- // http://218.23.218.228:9912/admin_interface
- // http://facepay.huasunsolar.com/admin_interface
- target: 'http://facepay.huasunsolar.com/admin_interface',
+ target: process.env.VUE_APP_API_URL,
changeOrigin: true,
pathRewrite: {
[`^${[process.env.VUE_APP_API_PREFIX]}`]: ''
diff --git a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
index 2cbb365..7d06475 100644
--- a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
+++ b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java
@@ -10,6 +10,7 @@
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.dao.system.dto.LoginDTO;
+import com.doumee.service.common.CaptchaService;
import com.doumee.service.system.SystemLoginService;
import com.doumee.service.system.SystemUserService;
import io.swagger.annotations.Api;
@@ -39,6 +40,18 @@
@Autowired
private SystemLoginService systemLoginService;
+ @Autowired
+ private CaptchaService captchaService;
+
+ /**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+ @ApiOperation("鑾峰彇鍥剧墖楠岃瘉鐮�")
+ @GetMapping("/captcha")
+ public ApiResponse<CaptchaService.Captcha> getCaptcha() {
+ return ApiResponse.success(captchaService.genCaptcha());
+ }
@PreventRepeat(limit = 10, lockTime = 10000)
@ApiOperation("鐧诲綍")
@@ -63,7 +76,7 @@
*/
@PostMapping("/refreshtoken")
@ApiOperation("鍒锋柊token")
- public ApiResponse<String> refreshtoken(@RequestHeader("userToken") String oldToken){
+ public ApiResponse<String> refreshtoken(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken){
try {
if(!jwtTokenUtil.isTokenExpired(oldToken)){
return ApiResponse.success(jwtTokenUtil.refreshToken(oldToken));
@@ -76,6 +89,22 @@
}
}
+ /**
+ * 鍒锋柊JWT浠ょ墝,鐢ㄦ棫鐨勪护鐗屾崲鏂扮殑浠ょ墝
+ */
+ @PostMapping("/logout")
+ @ApiOperation("閫�鍑虹櫥闄�")
+ public ApiResponse<String> logout(@RequestHeader(Constants.HEADER_USER_TOKEN) String oldToken){
+ try {
+ jwtTokenUtil.logout(oldToken);
+ }catch (BusinessException e){
+ return ApiResponse.failed(e.getCode(),e.getMessage());
+ }catch (Exception e){
+ return ApiResponse.failed(ResponseStatus.SERVER_ERROR);
+ }
+ return ApiResponse.success(null);
+
+ }
/**
* 鍒锋柊JWT浠ょ墝,鐢ㄦ棫鐨勪护鐗屾崲鏂扮殑浠ょ墝
diff --git a/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
index 1faef7c..b4a3835 100644
--- a/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
+++ b/server/system_gateway/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -104,6 +104,19 @@
}
return refreshedToken;
}
+ /**
+ * 閫�鍑虹櫥闄�
+ *
+ * @param token 鍘熶护鐗�
+ * @return 鏂颁护鐗�
+ */
+ public void logout(String token) {
+ try {
+ redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token);//鍒犻櫎鑰佺殑token
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
/**
* 楠岃瘉浠ょ墝
diff --git a/server/system_gateway/src/main/resources/application.yml b/server/system_gateway/src/main/resources/application.yml
index 9be4661..dc68829 100644
--- a/server/system_gateway/src/main/resources/application.yml
+++ b/server/system_gateway/src/main/resources/application.yml
@@ -98,6 +98,7 @@
- /meetingAdmin/**
- /visitsAdmin/**
- /login
+ - /captcha
- /doc.html
- /v2/api-docs/**
- /**.js
diff --git a/server/system_service/src/main/java/com/doumee/api/BaseController.java b/server/system_service/src/main/java/com/doumee/api/BaseController.java
index a390450..61f1a43 100644
--- a/server/system_service/src/main/java/com/doumee/api/BaseController.java
+++ b/server/system_service/src/main/java/com/doumee/api/BaseController.java
@@ -1,8 +1,15 @@
package com.doumee.api;
+import com.alibaba.fastjson.JSONObject;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.utils.Constants;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -16,6 +23,8 @@
@Slf4j
public class BaseController {
+ @Autowired
+ private RedisTemplate<String,Object> stringRedisTemplate;
/**
* 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
* @author Eva.Caesar Liu
@@ -24,6 +33,25 @@
protected LoginUserInfo getLoginUser () {
return (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
}
+ /**
+ * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+ protected LoginUserInfo getLoginUser (String token) {
+ if (token == null || token.isEmpty()) {
+ throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
+ }
+ String userinfo =(String) stringRedisTemplate.opsForValue().get(Constants.REDIS_TOKEN_KEY + token);
+ if (StringUtils.isBlank(userinfo)) {
+ throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
+ }
+ LoginUserInfo user = JSONObject.toJavaObject(JSONObject.parseObject(userinfo),LoginUserInfo.class );
+ if(user ==null ){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛鐧婚檰宸插け鏁堬紝璇烽噸鏂扮櫥闄嗭紒");
+ }
+ return user;
+ }
/**
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/NoticesController.java b/server/system_service/src/main/java/com/doumee/api/cloud/NoticesController.java
new file mode 100644
index 0000000..6a4c93c
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/NoticesController.java
@@ -0,0 +1,91 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.model.Notices;
+import com.doumee.service.system.NoticesService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+@Api(tags = "绯荤粺娑堟伅淇℃伅琛�")
+@RestController
+@RequestMapping("/cloudService/business/notices")
+public class NoticesController extends BaseController {
+
+ @Autowired
+ private NoticesService noticesService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:notices:create")
+ public ApiResponse create(@RequestBody Notices notices) {
+ return ApiResponse.success(noticesService.create(notices));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:notices:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ noticesService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:notices:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ noticesService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:notices:update")
+ public ApiResponse updateById(@RequestBody Notices notices) {
+ noticesService.updateById(notices);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:notices:query")
+ public ApiResponse<PageData<Notices>> findPage (@RequestBody PageWrap<Notices> pageWrap) {
+ pageWrap.getModel().setPalt(Constants.ZERO);
+ return ApiResponse.success(noticesService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:notices:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<Notices> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(Notices.class).export(noticesService.findPage(pageWrap).getRecords(), "绯荤粺娑堟伅淇℃伅琛�", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:notices:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(noticesService.findById(id));
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemController.java
new file mode 100644
index 0000000..53ca39a
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemController.java
@@ -0,0 +1,50 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemUserBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.LoginDTO;
+import com.doumee.dao.system.dto.UpdatePwdDto;
+import com.doumee.service.system.SystemLoginService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.subject.Subject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "绯荤粺鍔熻兘")
+@Trace(exclude = true)
+@Slf4j
+@RestController
+@RequestMapping("/cloudService/system")
+public class SystemController extends BaseController {
+
+ @Autowired
+ private SystemUserBiz systemUserBiz;
+
+ @Autowired
+ private SystemLoginService systemLoginService;
+
+ @Trace(withRequestParameters = false)
+ @ApiOperation("淇敼褰撳墠鐢ㄦ埛瀵嗙爜")
+ @PostMapping("/updatePwd")
+ public ApiResponse updatePwd (@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated @RequestBody UpdatePwdDto dto) {
+ dto.setUserId(this.getLoginUser(token).getId());
+ systemUserBiz.updatePwd(dto);
+ return ApiResponse.success(null);
+ }
+
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDataPermissionController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDataPermissionController.java
new file mode 100644
index 0000000..cc5093d
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDataPermissionController.java
@@ -0,0 +1,109 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDataPermissionBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.constants.DataPermissionConstants;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.model.SystemDataPermission;
+import com.doumee.dao.system.vo.SystemDataPermissionListVO;
+import com.doumee.service.system.SystemDataPermissionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@RestController
+@RequestMapping("/cloudService/system/dataPermission")
+@Api(tags = "绯荤粺鏁版嵁鏉冮檺")
+public class SystemDataPermissionController extends BaseController {
+
+ @Autowired
+ private SystemDataPermissionService systemDataPermissionService;
+
+ @Autowired
+ private SystemDataPermissionBiz systemDataPermissionBiz;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:datapermission:create")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated(OperaType.Create.class) @RequestBody SystemDataPermission systemDataPermission) {
+ systemDataPermission.setCreateUser(this.getLoginUser(token).getId());
+ return ApiResponse.success(systemDataPermissionBiz.create(systemDataPermission));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:datapermission:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ systemDataPermissionService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:datapermission:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemDataPermissionService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:datapermission:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemDataPermission systemDataPermission) {
+ systemDataPermission.setCreateUser(this.getLoginUser(token).getId());
+ systemDataPermissionBiz.update(systemDataPermission);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼鐘舵��")
+ @PostMapping("/updateStatus")
+ @RequiresPermissions("system:datapermission:update")
+ public ApiResponse updateStatus(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.UpdateStatus.class) @RequestBody SystemDataPermission systemDataPermission) {
+ systemDataPermission.setCreateUser(this.getLoginUser(token).getId());
+ systemDataPermissionBiz.updateStatus(systemDataPermission);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("system:datapermission:query")
+ public ApiResponse<PageData<SystemDataPermissionListVO>> findPage (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestBody PageWrap<SystemDataPermission> pageWrap) {
+ return ApiResponse.success(systemDataPermissionService.findPage(pageWrap));
+ }
+
+ @Trace(exclude = true)
+ @ApiOperation("鏌ヨ鏁版嵁鏉冮檺绫诲瀷")
+ @GetMapping("/types")
+ public ApiResponse<List<Map<String, Object>>> findTypes (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(DataPermissionConstants.Type.valueList());
+ }
+ @Trace(exclude = true)
+ @ApiOperation("鏌ヨ鏁版嵁鏉冮檺妯″潡")
+ @GetMapping("/modules")
+ public ApiResponse<List<Map<String, Object>>> findModules (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(DataPermissionConstants.Module.valueList());
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDepartmentController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDepartmentController.java
new file mode 100644
index 0000000..315a229
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDepartmentController.java
@@ -0,0 +1,110 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDepartmentBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.QuerySystemUserDTO;
+import com.doumee.dao.system.model.SystemDepartment;
+import com.doumee.dao.system.vo.SystemDepartmentListVO;
+import com.doumee.dao.system.vo.SystemUserListVO;
+import com.doumee.service.system.SystemUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "閮ㄩ棬")
+@RestController
+@RequestMapping("/cloudService/system/department")
+public class SystemDepartmentController extends BaseController {
+
+ @Autowired
+ private SystemDepartmentBiz systemDepartmentBiz;
+
+ @Autowired
+ private SystemUserService systemUserService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:department:create")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Create.class) @RequestBody SystemDepartment systemDepartment) {
+ systemDepartment.setCreateUser(getLoginUser().getId());
+ systemDepartment.setUpdateUser(getLoginUser().getId());
+ return ApiResponse.success(systemDepartmentBiz.create(systemDepartment));
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:department:delete")
+ public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) {
+ systemDepartmentBiz.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @PreventRepeat
+ @RequiresPermissions("system:department:delete")
+ public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemDepartmentBiz.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:department:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemDepartment systemDepartment) {
+ systemDepartment.setCreateUser(getLoginUser().getId());
+ systemDepartment.setUpdateUser(getLoginUser().getId());
+ systemDepartmentBiz.updateById(systemDepartment);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏌ヨ閮ㄩ棬鍒楄〃")
+ @PostMapping("/tree")
+ @RequiresPermissions("system:department:query")
+ public ApiResponse<List<SystemDepartmentListVO>> findTree (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(systemDepartmentBiz.findTree());
+ }
+
+ @ApiOperation("鏌ヨ閮ㄩ棬鍒楄〃鍙婇儴闂ㄤ笅鐨勪汉鍛�")
+ @GetMapping("/findTreeUser")
+ @RequiresPermissions("system:department:query")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "parentId", value = "parentId", paramType = "query", dataType = "Integer"),
+ })
+ public ApiResponse<SystemDepartmentListVO> findTreeUser(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,Integer parentId) {
+ return ApiResponse.success(systemDepartmentBiz.findTreeUser(parentId));
+ }
+
+ @Trace(exclude = true)
+ @ApiOperation("鏌ヨ閮ㄩ棬浜哄憳")
+ @PostMapping("/users")
+ @RequiresPermissions("system:department:queryUsers")
+ public ApiResponse<PageData<SystemUserListVO>> findPage (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) {
+ return ApiResponse.success(systemUserService.findPage(pageWrap));
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictController.java
new file mode 100644
index 0000000..57c8f99
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictController.java
@@ -0,0 +1,83 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.QuerySystemDictDTO;
+import com.doumee.dao.system.model.SystemDict;
+import com.doumee.dao.system.vo.SystemDictListVO;
+import com.doumee.service.system.SystemDictService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "绯荤粺瀛楀吀")
+@RestController
+@RequestMapping("/cloudService/system/dict")
+public class SystemDictController extends BaseController {
+
+ @Autowired
+ private SystemDictService systemDictService;
+
+ @Autowired
+ private SystemDictBiz systemDictBiz;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:dict:create")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated(OperaType.Create.class) @RequestBody SystemDict systemDict) {
+ return ApiResponse.success(systemDictBiz.create(systemDict));
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:dict:delete")
+ public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) {
+ systemDictService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:dict:delete")
+ public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemDictService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:dict:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemDict systemDict) {
+ systemDictBiz.updateById(systemDict);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("system:dict:query")
+ public ApiResponse<PageData<SystemDictListVO>> findPage (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestBody PageWrap<QuerySystemDictDTO> pageWrap) {
+ return ApiResponse.success(systemDictService.findPage(pageWrap));
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataController.java
new file mode 100644
index 0000000..9adc371
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemDictDataController.java
@@ -0,0 +1,98 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.QuerySystemDictDataDTO;
+import com.doumee.dao.system.model.SystemDictData;
+import com.doumee.dao.system.vo.SystemDictDataListVO;
+import com.doumee.service.system.SystemDictDataService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "瀛楀吀鏁版嵁")
+@RestController
+@RequestMapping("/cloudService/system/dictData")
+public class SystemDictDataController extends BaseController {
+
+ @Autowired
+ private SystemDictDataService systemDictDataService;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:dict:update")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated(OperaType.Create.class) @RequestBody SystemDictData systemDictData) {
+ return ApiResponse.success(systemDictDataBiz.create(systemDictData));
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:dict:update")
+ public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) {
+ systemDictDataService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:dict:delete")
+ public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemDictDataService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:dict:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemDictData systemDictData) {
+ systemDictDataBiz.updateById(systemDictData);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("system:dict:update")
+ public ApiResponse<PageData<SystemDictDataListVO>> findPage (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestBody PageWrap<QuerySystemDictDataDTO> pageWrap) {
+ return ApiResponse.success(systemDictDataService.findPage(pageWrap));
+ }
+
+
+ @ApiOperation(value = "鏌ヨ瀛楀吀鍊兼暟鎹�" )
+ @GetMapping("/getSystemDictData")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "query", dataType = "String", name = "label", value = "鏁版嵁瀛楀吀鍊糎5_LINK_ADDR", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "String", name = "dictCode", value = "绯荤粺瀛楀吀鍊糞YSTEM", required = true)
+ })
+ public ApiResponse<SystemDictData> getSystemDictData(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String dictCode, @RequestParam String label) {
+ return ApiResponse.success(systemDictDataBiz.queryByCode(dictCode,label));
+ }
+
+
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemLoginLogController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemLoginLogController.java
new file mode 100644
index 0000000..b84ba28
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemLoginLogController.java
@@ -0,0 +1,47 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.system.dto.QuerySystemLoginLogDTO;
+import com.doumee.dao.system.model.SystemLoginLog;
+import com.doumee.service.system.SystemLoginLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@RestController
+@RequestMapping("/cloudService/system/loginLog")
+@Api(tags = "鐧诲綍鏃ュ織")
+public class SystemLoginLogController extends BaseController {
+
+ @Autowired
+ private SystemLoginLogService systemLoginLogService;
+
+ @PostMapping("/page")
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @RequiresPermissions("system:loginLog:query")
+ public ApiResponse<PageData<SystemLoginLog>> findPage (@RequestBody PageWrap<QuerySystemLoginLogDTO> pageWrap) {
+ return ApiResponse.success(systemLoginLogService.findPage(pageWrap));
+ }
+
+ @PostMapping("/exportExcel")
+ @ApiOperation("瀵煎嚭Excel")
+ @RequiresPermissions("system:loginLog:query")
+ public void export (@RequestBody PageWrap<QuerySystemLoginLogDTO> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(SystemLoginLog.class).export(systemLoginLogService.findPage(pageWrap).getRecords(), "鐧诲綍鏃ュ織", response);
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemMenuController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemMenuController.java
new file mode 100644
index 0000000..538915f
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemMenuController.java
@@ -0,0 +1,101 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemMenuBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.UpdateSystemMenuSortDTO;
+import com.doumee.dao.system.model.SystemMenu;
+import com.doumee.dao.system.vo.SystemMenuListVO;
+import com.doumee.dao.system.vo.SystemMenuNodeVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "绯荤粺鑿滃崟")
+@RestController
+@RequestMapping("/cloudService/system/menu")
+public class SystemMenuController extends BaseController {
+
+ @Autowired
+ private SystemMenuBiz systemMenuBiz;
+
+ @ApiOperation("鑿滃崟鎺掑簭")
+ @PostMapping("/updateSort")
+ @RequiresPermissions("system:menu:sort")
+ public ApiResponse updateSort (@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated @RequestBody UpdateSystemMenuSortDTO dto) {
+ systemMenuBiz.updateSort(dto);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏌ヨ鑿滃崟鏍�")
+ @GetMapping("/treeNodes")
+ public ApiResponse<List<SystemMenuNodeVO>> getTreeMenu (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(systemMenuBiz.findTree(this.getLoginUser().getId()));
+ }
+
+ @ApiOperation("鏌ヨ鍒楄〃鏍�")
+ @PostMapping("/treeList")
+ @RequiresPermissions("system:menu:query")
+ public ApiResponse<List<SystemMenuListVO>> findTree (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(systemMenuBiz.findTree());
+ }
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:menu:create")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Create.class) @RequestBody SystemMenu systemMenu) {
+ return ApiResponse.success(systemMenuBiz.create(systemMenu));
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:menu:delete")
+ public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) {
+ systemMenuBiz.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:menu:delete")
+ public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemMenuBiz.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:menu:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemMenu systemMenu) {
+ systemMenuBiz.updateById(systemMenu);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼鑿滃崟鐘舵��")
+ @PostMapping("/updateStatus")
+ @RequiresPermissions("system:menu:update")
+ public ApiResponse updateStatus(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.UpdateStatus.class) @RequestBody SystemMenu systemMenu) {
+ systemMenuBiz.updateById(systemMenu);
+ return ApiResponse.success(null);
+ }
+
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemMonitorController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemMonitorController.java
new file mode 100644
index 0000000..14c123d
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemMonitorController.java
@@ -0,0 +1,33 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Monitor;
+import com.doumee.core.utils.Utils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "绯荤粺鐩戝惉")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/cloudService/system/monitor")
+public class SystemMonitorController extends BaseController {
+
+ @ApiOperation("鑾峰彇绯荤粺淇℃伅")
+ @GetMapping("/getSystemInfo")
+ @RequiresPermissions("system:monitor:query")
+ public ApiResponse<Monitor> getSystemInfo (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(Utils.Monitor.current());
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemPermissionController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemPermissionController.java
new file mode 100644
index 0000000..341f835
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemPermissionController.java
@@ -0,0 +1,92 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemPermissionBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.QuerySystemPermissionDTO;
+import com.doumee.dao.system.model.SystemPermission;
+import com.doumee.dao.system.vo.SystemPermissionListVO;
+import com.doumee.service.system.SystemPermissionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "绯荤粺鏉冮檺")
+@RestController
+@RequestMapping("/cloudService/system/permission")
+public class SystemPermissionController extends BaseController {
+
+ @Autowired
+ private SystemPermissionService systemPermissionService;
+
+ @Autowired
+ private SystemPermissionBiz systemPermissionBiz;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:permission:create")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated(OperaType.Create.class) @RequestBody SystemPermission systemPermission) {
+ return ApiResponse.success(systemPermissionBiz.create(systemPermission));
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:permission:delete")
+ public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) {
+ systemPermissionBiz.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:permission:delete")
+ public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemPermissionBiz.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:permission:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemPermission systemPermission) {
+ systemPermissionBiz.updateById(systemPermission);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("system:permission:query")
+ public ApiResponse<PageData<SystemPermissionListVO>> findPage (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestBody PageWrap<QuerySystemPermissionDTO> pageWrap) {
+ return ApiResponse.success(systemPermissionService.findPage(pageWrap));
+ }
+
+ @ApiOperation("鏌ヨ鎵�鏈�")
+ @GetMapping("/all")
+ @RequiresPermissions("system:permission:query")
+ public ApiResponse<List<SystemPermission>> findAll (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ SystemPermission systemPermission = new SystemPermission();
+ systemPermission.setDeleted(Boolean.FALSE);
+ return ApiResponse.success(systemPermissionService.findList(systemPermission));
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemPositionController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemPositionController.java
new file mode 100644
index 0000000..c79f312
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemPositionController.java
@@ -0,0 +1,106 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemPositionBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.QuerySystemUserDTO;
+import com.doumee.dao.system.model.SystemPosition;
+import com.doumee.dao.system.vo.SystemPositionListVO;
+import com.doumee.dao.system.vo.SystemUserListVO;
+import com.doumee.service.system.SystemPositionService;
+import com.doumee.service.system.SystemUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+/**
+ * 宀椾綅鎺ュ彛
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "宀椾綅")
+@RestController
+@RequestMapping("/cloudService/system/position")
+public class SystemPositionController extends BaseController {
+
+ @Autowired
+ private SystemPositionService systemPositionService;
+
+ @Autowired
+ private SystemPositionBiz systemPositionBiz;
+
+ @Autowired
+ private SystemUserService systemUserService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:position:create")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated(OperaType.Create.class) @RequestBody SystemPosition systemPosition) {
+ return ApiResponse.success(systemPositionBiz.create(systemPosition));
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:position:delete")
+ public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) {
+ systemPositionBiz.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:position:delete")
+ public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemPositionBiz.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:position:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemPosition systemPosition) {
+ systemPositionBiz.updateById(systemPosition);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏌ヨ宀椾綅鏍戝垪琛�")
+ @PostMapping("/tree")
+ @RequiresPermissions("system:position:query")
+ public ApiResponse<List<SystemPositionListVO>> findTree (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(systemPositionBiz.findTree());
+ }
+
+ @ApiOperation("鏌ヨ宀椾綅鍒楄〃")
+ @PostMapping("/all")
+ @RequiresPermissions("system:position:query")
+ public ApiResponse<List<SystemPosition>> findList (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ SystemPosition systemPosition = new SystemPosition();
+ systemPosition.setDeleted(Boolean.FALSE);
+ return ApiResponse.success(systemPositionService.findList(systemPosition));
+ }
+
+ @Trace(exclude = true)
+ @ApiOperation("鏌ヨ宀椾綅浜哄憳")
+ @PostMapping("/users")
+ @RequiresPermissions("system:position:queryUsers")
+ public ApiResponse<PageData<SystemUserListVO>> findPage (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) {
+ return ApiResponse.success(systemUserService.findPage(pageWrap));
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemRoleController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemRoleController.java
new file mode 100644
index 0000000..9a89915
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemRoleController.java
@@ -0,0 +1,111 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemRoleBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.dao.system.dto.CreateRoleMenuDTO;
+import com.doumee.dao.system.dto.CreateRolePermissionDTO;
+import com.doumee.dao.system.dto.QuerySystemRoleDTO;
+import com.doumee.dao.system.model.SystemRole;
+import com.doumee.dao.system.vo.SystemRoleListVO;
+import com.doumee.service.system.SystemRoleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "绯荤粺瑙掕壊")
+@RestController
+@RequestMapping("/cloudService/system/role")
+public class SystemRoleController extends BaseController {
+
+ @Autowired
+ private SystemRoleService systemRoleService;
+
+ @Autowired
+ private SystemRoleBiz systemRoleBiz;
+
+ @PreventRepeat
+ @ApiOperation("閰嶇疆瑙掕壊鑿滃崟")
+ @PostMapping("/createRoleMenu")
+ @RequiresPermissions("system:role:createRoleMenu")
+ public ApiResponse createRoleMenu (@RequestHeader(Constants.HEADER_USER_TOKEN) String token, @Validated @RequestBody CreateRoleMenuDTO dto) {
+ systemRoleBiz.createRoleMenu(dto);
+ return ApiResponse.success(null);
+ }
+
+ @PreventRepeat
+ @ApiOperation("閰嶇疆瑙掕壊鏉冮檺")
+ @PostMapping("/createRolePermission")
+ @RequiresPermissions("system:role:createRolePermission")
+ public ApiResponse createRolePermission (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated @RequestBody CreateRolePermissionDTO dto) {
+ systemRoleBiz.createRolePermission(dto);
+ return ApiResponse.success(null);
+ }
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:role:create")
+ public ApiResponse create(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Create.class) @RequestBody SystemRole systemRole) {
+ return ApiResponse.success(systemRoleBiz.create(systemRole));
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:role:delete")
+ public ApiResponse deleteById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@PathVariable Integer id) {
+ systemRoleBiz.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:role:delete")
+ public ApiResponse deleteByIdInBatch(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemRoleBiz.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:role:update")
+ public ApiResponse updateById(@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@Validated(OperaType.Update.class) @RequestBody SystemRole systemRole) {
+ systemRoleBiz.updateById(systemRole);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("system:role:query")
+ public ApiResponse<PageData<SystemRoleListVO>> findPage (@RequestHeader(Constants.HEADER_USER_TOKEN) String token,@RequestBody PageWrap<QuerySystemRoleDTO> pageWrap) {
+ return ApiResponse.success(systemRoleService.findPage(pageWrap));
+ }
+
+ @ApiOperation("鏌ヨ鎵�鏈�")
+ @GetMapping("/all")
+ @RequiresPermissions("system:role:query")
+ public ApiResponse<List<SystemRole>> findAll (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ SystemRole systemRole = new SystemRole();
+ systemRole.setDeleted(Boolean.FALSE);
+ return ApiResponse.success(systemRoleService.findList(systemRole));
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemTraceLogController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemTraceLogController.java
new file mode 100644
index 0000000..3931748
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemTraceLogController.java
@@ -0,0 +1,46 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.system.dto.QuerySystemTraceLogDTO;
+import com.doumee.dao.system.model.SystemTraceLog;
+import com.doumee.service.system.SystemTraceLogService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "璺熻釜鏃ュ織")
+@RestController
+@RequestMapping("/cloudService/system/traceLog")
+public class SystemTraceLogController extends BaseController {
+
+ @Autowired
+ private SystemTraceLogService systemTraceLogService;
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("system:traceLog:query")
+ public ApiResponse findPage (@RequestBody PageWrap<QuerySystemTraceLogDTO> pageWrap) {
+ return ApiResponse.success(systemTraceLogService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("system:traceLog:query")
+ public void exportExcel (@RequestBody PageWrap<QuerySystemTraceLogDTO> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(SystemTraceLog.class).export(systemTraceLogService.findPage(pageWrap).getRecords(), "鎿嶄綔鏃ュ織", response);
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/api/cloud/SystemUserController.java b/server/system_service/src/main/java/com/doumee/api/cloud/SystemUserController.java
new file mode 100644
index 0000000..55d2c71
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/api/cloud/SystemUserController.java
@@ -0,0 +1,140 @@
+package com.doumee.api.cloud;
+
+import com.doumee.api.BaseController;
+import com.doumee.biz.system.SystemUserBiz;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.constants.OperaType;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.system.dto.CreateSystemUserDTO;
+import com.doumee.dao.system.dto.CreateUserRoleDTO;
+import com.doumee.dao.system.dto.QuerySystemUserDTO;
+import com.doumee.dao.system.dto.ResetSystemUserPwdDTO;
+import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.system.vo.SystemUserListVO;
+import com.doumee.service.system.SystemUserService;
+import io.swagger.annotations.*;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/03/21 14:49
+ */
+@Api(tags = "鐢ㄦ埛")
+@RestController
+@RequestMapping("/cloudService/system/user")
+public class SystemUserController extends BaseController {
+
+ @Autowired
+ private SystemUserService systemUserService;
+
+ @Autowired
+ private SystemUserBiz systemUserBiz;
+
+ @PreventRepeat
+ @ApiOperation("閰嶇疆鐢ㄦ埛瑙掕壊")
+ @PostMapping("/createUserRole")
+ @RequiresPermissions("system:user:createUserRole")
+ public ApiResponse createUserRole (@Validated @RequestBody CreateUserRoleDTO dto) {
+ systemUserBiz.createUserRole(dto);
+ return ApiResponse.success(null);
+ }
+
+ @Trace(withRequestParameters = false)
+ @PreventRepeat
+ @ApiOperation("閲嶇疆鐢ㄦ埛瀵嗙爜")
+ @PostMapping("/resetPwd")
+ @RequiresPermissions("system:user:resetPwd")
+ public ApiResponse resetPwd (@Validated @RequestBody ResetSystemUserPwdDTO dto) {
+ dto.setOperaUserId(this.getLoginUser().getId());
+ systemUserBiz.resetPwd(dto);
+ return ApiResponse.success(null);
+ }
+
+ @Trace(withRequestParameters = false)
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("system:user:create")
+ public ApiResponse create(@Validated(OperaType.Create.class) @RequestBody CreateSystemUserDTO systemUser) {
+ systemUser.setCreateUser(this.getLoginUser().getId());
+ systemUserBiz.create(systemUser);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("system:user:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ systemUserBiz.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("system:user:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ systemUserBiz.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @Trace(withRequestParameters = false)
+ @ApiOperation("淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("system:user:update")
+ public ApiResponse updateById( @RequestBody CreateSystemUserDTO systemUser) {
+ systemUser.setUpdateUser(this.getLoginUser().getId());
+ systemUserBiz.updateById(systemUser);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("system:user:query")
+ public ApiResponse<PageData<SystemUserListVO>> findPage (@RequestBody PageWrap<QuerySystemUserDTO> pageWrap) {
+ return ApiResponse.success(systemUserService.findPage(pageWrap));
+ }
+
+
+
+
+
+ @ApiOperation("鏌ヨ鎵�鏈夌郴缁熺敤鎴�")
+ @PostMapping("/findAllList")
+ @RequiresPermissions("system:user:query")
+ public ApiResponse<List<SystemUser>> findAllList (@RequestBody SystemUser pageWrap) {
+ return ApiResponse.success(systemUserService.findAllList(pageWrap));
+ }
+
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("system:user:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(systemUserService.findById(id));
+ }
+
+ @ApiOperation("鐢ㄦ埛瀵煎叆")
+ @PostMapping("/importSystemUserBatch")
+ @RequiresPermissions("system:user:query")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
+ })
+ public ApiResponse importSystemUserBatch(@ApiParam(value = "file") MultipartFile file){
+ return ApiResponse.success(systemUserBiz.importSystemUserBatch(file));
+ }
+}
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index 6b87b55..eeeea19 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -132,7 +132,7 @@
}
String pwd = Utils.Secure.encryptPassword(new String(dto.getPassword()), user.getSalt());
// 姣旇緝瀵嗙爜
- if( StringUtils.equals(pwd, user.getPassword())){
+ if( !StringUtils.equals(pwd, user.getPassword())){
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
}
// 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
--
Gitblit v1.9.3