suntianwu 3 anos atrás
pai
commit
e880c6f18f

+ 17 - 0
src/main/java/com/iden/bms/controller/CameraController.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.iden.bms.service.CameraService;
 import com.iden.bms.service.CameraService;
 import com.iden.common.annotation.Permission;
 import com.iden.common.annotation.Permission;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
+import com.iden.common.logaspect.LogAnnotation;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.Result;
 import com.iden.common.util.Result;
 import com.iden.common.util.WebPageUtils;
 import com.iden.common.util.WebPageUtils;
@@ -71,6 +73,11 @@ public class CameraController {
 
 
     @PostMapping("/addCamera")
     @PostMapping("/addCamera")
     @ApiOperation(value = "新增摄像头")
     @ApiOperation(value = "新增摄像头")
+    @LogAnnotation(
+            type = OperateType.ADD,
+            moduleName = "新增摄像头",
+            description = "新增摄像头"
+    )
     public Result<Object> addCamera(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> addCamera(HttpServletRequest request,@RequestHeader("token") String token,
                                    @RequestBody CameraVO vo){
                                    @RequestBody CameraVO vo){
         try {
         try {
@@ -98,6 +105,11 @@ public class CameraController {
 
 
     @PostMapping("/updateCamera")
     @PostMapping("/updateCamera")
     @ApiOperation(value = "修改摄像头")
     @ApiOperation(value = "修改摄像头")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "修改摄像头",
+            description = "修改摄像头"
+    )
     public Result<Object> updateCamera(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> updateCamera(HttpServletRequest request,@RequestHeader("token") String token,
                                  @RequestBody CameraVO vo){
                                  @RequestBody CameraVO vo){
         try {
         try {
@@ -121,6 +133,11 @@ public class CameraController {
 
 
     @PostMapping("/deleteCamera/{id}")
     @PostMapping("/deleteCamera/{id}")
     @ApiOperation(value = "删除摄像头")
     @ApiOperation(value = "删除摄像头")
+    @LogAnnotation(
+            type = OperateType.REMOVE,
+            moduleName = "删除摄像头",
+            description = "删除摄像头"
+    )
     public Result<Object> deleteCamera(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> deleteCamera(HttpServletRequest request,@RequestHeader("token") String token,
                                  @PathVariable("id") Long id){
                                  @PathVariable("id") Long id){
         try {
         try {

+ 17 - 0
src/main/java/com/iden/bms/controller/CommunityController.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.iden.bms.service.CommunityService;
 import com.iden.bms.service.CommunityService;
 import com.iden.common.annotation.Permission;
 import com.iden.common.annotation.Permission;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
+import com.iden.common.logaspect.LogAnnotation;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.Result;
 import com.iden.common.util.Result;
 import com.iden.common.util.WebPageUtils;
 import com.iden.common.util.WebPageUtils;
@@ -66,6 +68,11 @@ public class CommunityController {
 
 
     @PostMapping("/addCommunity")
     @PostMapping("/addCommunity")
     @ApiOperation(value = "新增小区")
     @ApiOperation(value = "新增小区")
+    @LogAnnotation(
+            type = OperateType.ADD,
+            moduleName = "新增小区",
+            description = "新增小区"
+    )
     public Result<Object> addCommunity(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> addCommunity(HttpServletRequest request,@RequestHeader("token") String token,
                                    @RequestBody CommunityVO vo){
                                    @RequestBody CommunityVO vo){
         try {
         try {
@@ -93,6 +100,11 @@ public class CommunityController {
 
 
     @PostMapping("/updateCommunity")
     @PostMapping("/updateCommunity")
     @ApiOperation(value = "修改小区")
     @ApiOperation(value = "修改小区")
+    @LogAnnotation(
+            type = OperateType.EDIT,
+            moduleName = "修改小区",
+            description = "修改小区"
+    )
     public Result<Object> updateCommunity(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> updateCommunity(HttpServletRequest request,@RequestHeader("token") String token,
                                  @RequestBody CommunityVO vo){
                                  @RequestBody CommunityVO vo){
         try {
         try {
@@ -116,6 +128,11 @@ public class CommunityController {
 
 
     @PostMapping("/deleteCommunity/{id}")
     @PostMapping("/deleteCommunity/{id}")
     @ApiOperation(value = "删除小区")
     @ApiOperation(value = "删除小区")
+    @LogAnnotation(
+            type = OperateType.REMOVE,
+            moduleName = "删除小区",
+            description = "删除小区"
+    )
     public Result<Object> deleteCommunity(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> deleteCommunity(HttpServletRequest request,@RequestHeader("token") String token,
                                  @PathVariable("id") Long id){
                                  @PathVariable("id") Long id){
         try {
         try {

+ 17 - 0
src/main/java/com/iden/bms/controller/CrowdController.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.iden.bms.service.CrowdService;
 import com.iden.bms.service.CrowdService;
 import com.iden.common.annotation.Permission;
 import com.iden.common.annotation.Permission;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
+import com.iden.common.logaspect.LogAnnotation;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.Result;
 import com.iden.common.util.Result;
 import com.iden.common.util.WebPageUtils;
 import com.iden.common.util.WebPageUtils;
@@ -63,6 +65,11 @@ public class CrowdController {
 
 
     @PostMapping("/addCrowd")
     @PostMapping("/addCrowd")
     @ApiOperation(value = "新增人群")
     @ApiOperation(value = "新增人群")
+    @LogAnnotation(
+            type = OperateType.ADD,
+            moduleName = "新增人群",
+            description = "新增人群"
+    )
     public Result<Object> addCrowd(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> addCrowd(HttpServletRequest request,@RequestHeader("token") String token,
                                    @RequestBody CrowdVO vo){
                                    @RequestBody CrowdVO vo){
         try {
         try {
@@ -90,6 +97,11 @@ public class CrowdController {
 
 
     @PostMapping("/updateCrowd")
     @PostMapping("/updateCrowd")
     @ApiOperation(value = "修改人群")
     @ApiOperation(value = "修改人群")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "修改人群",
+            description = "修改人群"
+    )
     public Result<Object> updateCrowd(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> updateCrowd(HttpServletRequest request,@RequestHeader("token") String token,
                                  @RequestBody CrowdVO vo){
                                  @RequestBody CrowdVO vo){
         try {
         try {
@@ -113,6 +125,11 @@ public class CrowdController {
 
 
     @PostMapping("/deleteCrowd/{id}")
     @PostMapping("/deleteCrowd/{id}")
     @ApiOperation(value = "删除人群")
     @ApiOperation(value = "删除人群")
+    @LogAnnotation(
+            type = OperateType.REMOVE,
+            moduleName = "删除人群",
+            description = "删除人群"
+    )
     public Result<Object> deleteCrowd(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> deleteCrowd(HttpServletRequest request,@RequestHeader("token") String token,
                                  @PathVariable("id") Long id){
                                  @PathVariable("id") Long id){
         try {
         try {

+ 6 - 2
src/main/java/com/iden/bms/controller/LoginController.java

@@ -52,7 +52,7 @@ public class LoginController {
     public Result<Object> login(HttpServletRequest request, @RequestBody UserLoginParams userLoginParams) {
     public Result<Object> login(HttpServletRequest request, @RequestBody UserLoginParams userLoginParams) {
         try {
         try {
             //验证用户名密码
             //验证用户名密码
-            UserLoginedConvertVO loginUser = sysUserService.getLoginUser(userLoginParams.getUsername(),userLoginParams.getPassword(),userLoginParams.getSecurityCode());
+            UserLoginedConvertVO loginUser = sysUserService.getLoginUser(userLoginParams.getUsername(),userLoginParams.getPassword(),userLoginParams.getSecurityCode(),request);
             if (loginUser == null) {
             if (loginUser == null) {
                 return Result.error("未找到相关用户");
                 return Result.error("未找到相关用户");
             }
             }
@@ -93,7 +93,7 @@ public class LoginController {
                     dataType = "String", paramType = "query",
                     dataType = "String", paramType = "query",
                     required = true)
                     required = true)
     })
     })
-    public void getVerifyCode(HttpServletRequest request,HttpServletResponse response,
+    public void getVerifyCode(HttpServletResponse response,
                          @RequestParam(name = "username", required = true) String username) {
                          @RequestParam(name = "username", required = true) String username) {
         try {
         try {
             //生成验证码
             //生成验证码
@@ -103,6 +103,10 @@ public class LoginController {
 
 
             //生成图片
             //生成图片
             BufferedImage image = VerifyCodeUtil.createImage(securityCode);
             BufferedImage image = VerifyCodeUtil.createImage(securityCode);
+
+            response.reset(); // 非常重要
+            response.setContentType("image/png");
+
             //输出图片
             //输出图片
             ServletOutputStream outputStream = response.getOutputStream();
             ServletOutputStream outputStream = response.getOutputStream();
 
 

+ 17 - 0
src/main/java/com/iden/bms/controller/PersonController.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.iden.bms.service.PersonService;
 import com.iden.bms.service.PersonService;
 import com.iden.common.annotation.Permission;
 import com.iden.common.annotation.Permission;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
+import com.iden.common.logaspect.LogAnnotation;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.Result;
 import com.iden.common.util.Result;
 import com.iden.common.util.WebPageUtils;
 import com.iden.common.util.WebPageUtils;
@@ -98,6 +100,11 @@ public class PersonController {
 
 
     @PostMapping("/addPerson")
     @PostMapping("/addPerson")
     @ApiOperation(value = "新增人员")
     @ApiOperation(value = "新增人员")
+    @LogAnnotation(
+            type = OperateType.ADD,
+            moduleName = "新增人员",
+            description = "新增人员"
+    )
     public Result<Object> addPerson(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> addPerson(HttpServletRequest request,@RequestHeader("token") String token,
                                    @RequestBody PersonVO vo){
                                    @RequestBody PersonVO vo){
         try {
         try {
@@ -123,6 +130,11 @@ public class PersonController {
 
 
     @PostMapping("/updatePerson")
     @PostMapping("/updatePerson")
     @ApiOperation(value = "修改人员")
     @ApiOperation(value = "修改人员")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "修改人员",
+            description = "修改人员"
+    )
     public Result<Object> updatePerson(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> updatePerson(HttpServletRequest request,@RequestHeader("token") String token,
                                  @RequestBody PersonVO vo){
                                  @RequestBody PersonVO vo){
         try {
         try {
@@ -146,6 +158,11 @@ public class PersonController {
 
 
     @PostMapping("/deletePerson/{id}")
     @PostMapping("/deletePerson/{id}")
     @ApiOperation(value = "删除人员")
     @ApiOperation(value = "删除人员")
+    @LogAnnotation(
+            type = OperateType.REMOVE,
+            moduleName = "删除人员",
+            description = "删除人员"
+    )
     public Result<Object> deletePerson(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> deletePerson(HttpServletRequest request,@RequestHeader("token") String token,
                                  @PathVariable("id") Long id){
                                  @PathVariable("id") Long id){
         try {
         try {

+ 27 - 2
src/main/java/com/iden/bms/controller/SysRoleController.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.iden.bms.service.SysRoleService;
 import com.iden.bms.service.SysRoleService;
 import com.iden.common.annotation.Permission;
 import com.iden.common.annotation.Permission;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
+import com.iden.common.logaspect.LogAnnotation;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.Result;
 import com.iden.common.util.Result;
 import com.iden.common.util.WebPageUtils;
 import com.iden.common.util.WebPageUtils;
@@ -34,8 +36,6 @@ public class SysRoleController {
     @Autowired
     @Autowired
     private SysRoleService sysRoleService;
     private SysRoleService sysRoleService;
 
 
-
-
     @GetMapping("/listSysRole")
     @GetMapping("/listSysRole")
     @ApiOperation(value = "角色列表分页 ")
     @ApiOperation(value = "角色列表分页 ")
     public PageResult<List<SysRoleVO>> listSysRole(HttpServletRequest request, @RequestHeader(value = "token") String token,
     public PageResult<List<SysRoleVO>> listSysRole(HttpServletRequest request, @RequestHeader(value = "token") String token,
@@ -55,6 +55,11 @@ public class SysRoleController {
 
 
     @PostMapping("/addSysRole")
     @PostMapping("/addSysRole")
     @ApiOperation(value = "新增角色")
     @ApiOperation(value = "新增角色")
+    @LogAnnotation(
+            type = OperateType.ADD,
+            moduleName = "新增角色",
+            description = "新增角色"
+    )
     public Result<Object> addSysRole(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> addSysRole(HttpServletRequest request,@RequestHeader("token") String token,
                                    @RequestBody SysRoleVO vo){
                                    @RequestBody SysRoleVO vo){
         try {
         try {
@@ -82,6 +87,11 @@ public class SysRoleController {
 
 
     @PostMapping("/updateSysRole")
     @PostMapping("/updateSysRole")
     @ApiOperation(value = "修改角色")
     @ApiOperation(value = "修改角色")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "修改角色",
+            description = "修改角色"
+    )
     public Result<Object> updateSysRole(@RequestHeader("token") String token,
     public Result<Object> updateSysRole(@RequestHeader("token") String token,
                                         @RequestBody SysRoleVO vo){
                                         @RequestBody SysRoleVO vo){
         try {
         try {
@@ -98,6 +108,11 @@ public class SysRoleController {
 
 
     @PostMapping("/invalidSysRole")
     @PostMapping("/invalidSysRole")
     @ApiOperation(value = "启用停用(只设置id和validStatus(0启用,1停用))")
     @ApiOperation(value = "启用停用(只设置id和validStatus(0启用,1停用))")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "启用停用",
+            description = "启用停用"
+    )
     public Result<Object> invalidSysRole(@RequestHeader("token") String token,
     public Result<Object> invalidSysRole(@RequestHeader("token") String token,
                                               @RequestBody SysRoleVO vo){
                                               @RequestBody SysRoleVO vo){
         try {
         try {
@@ -121,6 +136,11 @@ public class SysRoleController {
 
 
     @PostMapping("/deleteSysRole/{id}")
     @PostMapping("/deleteSysRole/{id}")
     @ApiOperation(value = "删除角色")
     @ApiOperation(value = "删除角色")
+    @LogAnnotation(
+            type = OperateType.REMOVE,
+            moduleName = "删除角色",
+            description = "删除角色"
+    )
     public Result<Object> deleteSysRole(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> deleteSysRole(HttpServletRequest request,@RequestHeader("token") String token,
                                  @PathVariable("id") Long id){
                                  @PathVariable("id") Long id){
         try {
         try {
@@ -174,6 +194,11 @@ public class SysRoleController {
 
 
     @PostMapping("/saveSysRoleMenu")
     @PostMapping("/saveSysRoleMenu")
     @ApiOperation(value = "保存角色拥有的菜单,SysRoleVO设置菜单id和hasSysMenuVOList")
     @ApiOperation(value = "保存角色拥有的菜单,SysRoleVO设置菜单id和hasSysMenuVOList")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "保存角色拥有的菜单",
+            description = "保存角色拥有的菜单"
+    )
     public Result<Object> saveSysRoleMenu(HttpServletRequest request,
     public Result<Object> saveSysRoleMenu(HttpServletRequest request,
                                           @RequestHeader("token") String token,
                                           @RequestHeader("token") String token,
                                         @RequestBody SysRoleVO vo){
                                         @RequestBody SysRoleVO vo){

+ 32 - 0
src/main/java/com/iden/bms/controller/SysUserController.java

@@ -5,6 +5,8 @@ import com.iden.bms.params.ModifyPasswordParams;
 import com.iden.bms.service.SysUserService;
 import com.iden.bms.service.SysUserService;
 import com.iden.common.annotation.Permission;
 import com.iden.common.annotation.Permission;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
+import com.iden.common.logaspect.LogAnnotation;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.service.IdenSysUserService;
 import com.iden.common.service.IdenSysUserService;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.PageResult;
 import com.iden.common.util.Result;
 import com.iden.common.util.Result;
@@ -66,6 +68,11 @@ public class SysUserController {
 
 
     @PostMapping("/addSysUser")
     @PostMapping("/addSysUser")
     @ApiOperation(value = "新增系统用户")
     @ApiOperation(value = "新增系统用户")
+    @LogAnnotation(
+            type = OperateType.ADD,
+            moduleName = "新增系统用户",
+            description = "新增系统用户"
+    )
     public Result<Object> addSysUser(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> addSysUser(HttpServletRequest request,@RequestHeader("token") String token,
                                    @RequestBody SysUserVO vo){
                                    @RequestBody SysUserVO vo){
         try {
         try {
@@ -93,6 +100,11 @@ public class SysUserController {
 
 
     @PostMapping("/updateSysUser")
     @PostMapping("/updateSysUser")
     @ApiOperation(value = "修改系统用户")
     @ApiOperation(value = "修改系统用户")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "修改系统用户",
+            description = "修改系统用户"
+    )
     public Result<Object> updateSysUser(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> updateSysUser(HttpServletRequest request,@RequestHeader("token") String token,
                                  @RequestBody SysUserVO vo){
                                  @RequestBody SysUserVO vo){
         try {
         try {
@@ -109,6 +121,11 @@ public class SysUserController {
 
 
     @PostMapping("/invalidSysUser")
     @PostMapping("/invalidSysUser")
     @ApiOperation(value = "启用停用(只设置id和validStatus(0启用,1停用))")
     @ApiOperation(value = "启用停用(只设置id和validStatus(0启用,1停用))")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "启用停用",
+            description = "启用停用"
+    )
     public Result<Object> invalidSysUser(@RequestHeader("token") String token,
     public Result<Object> invalidSysUser(@RequestHeader("token") String token,
                                          @RequestBody SysUserVO vo){
                                          @RequestBody SysUserVO vo){
         try {
         try {
@@ -132,6 +149,11 @@ public class SysUserController {
 
 
     @PostMapping("/deleteSysUser/{id}")
     @PostMapping("/deleteSysUser/{id}")
     @ApiOperation(value = "删除系统用户")
     @ApiOperation(value = "删除系统用户")
+    @LogAnnotation(
+            type = OperateType.REMOVE,
+            moduleName = "删除系统用户",
+            description = "删除系统用户"
+    )
     public Result<Object> deleteSysUser(HttpServletRequest request,@RequestHeader("token") String token,
     public Result<Object> deleteSysUser(HttpServletRequest request,@RequestHeader("token") String token,
                                  @PathVariable("id") Long id){
                                  @PathVariable("id") Long id){
         try {
         try {
@@ -150,6 +172,11 @@ public class SysUserController {
 
 
     @PostMapping("/resetPassword/{id}")
     @PostMapping("/resetPassword/{id}")
     @ApiOperation(value = "重置密码")
     @ApiOperation(value = "重置密码")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "重置密码",
+            description = "重置密码"
+    )
     public Result<Object> resetPassword(@RequestHeader("token") String token,
     public Result<Object> resetPassword(@RequestHeader("token") String token,
                                                       @PathVariable("id") Long id){
                                                       @PathVariable("id") Long id){
         try {
         try {
@@ -171,6 +198,11 @@ public class SysUserController {
 
 
     @PostMapping("/modifyPassword")
     @PostMapping("/modifyPassword")
     @ApiOperation(value = "修改密码")
     @ApiOperation(value = "修改密码")
+    @LogAnnotation(
+            type = OperateType.MODIFY,
+            moduleName = "修改密码",
+            description = "修改密码"
+    )
     public Result<Object> modifyPassword(HttpServletRequest request,
     public Result<Object> modifyPassword(HttpServletRequest request,
                                          @RequestHeader("token") String token,
                                          @RequestHeader("token") String token,
                                          @RequestBody ModifyPasswordParams parmas){
                                          @RequestBody ModifyPasswordParams parmas){

+ 7 - 0
src/main/java/com/iden/bms/controller/TraceController.java

@@ -6,6 +6,8 @@ import com.iden.bms.service.TraceService;
 import com.iden.common.annotation.Permission;
 import com.iden.common.annotation.Permission;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
 
 
+import com.iden.common.logaspect.LogAnnotation;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.util.Result;
 import com.iden.common.util.Result;
 import com.iden.common.util.WebPageUtils;
 import com.iden.common.util.WebPageUtils;
 import com.iden.common.vo.TraceVO;
 import com.iden.common.vo.TraceVO;
@@ -42,6 +44,11 @@ public class TraceController {
     })
     })
     @CrossOrigin
     @CrossOrigin
     @PostMapping(value = "/uploadImage", headers="content-type=multipart/form-data",produces = "application/json;charset=UTF-8")
     @PostMapping(value = "/uploadImage", headers="content-type=multipart/form-data",produces = "application/json;charset=UTF-8")
+    @LogAnnotation(
+            type = OperateType.UPLOAD,
+            moduleName = "上传图像获取目标轨迹",
+            description = "上传图像获取目标轨迹"
+    )
     public Result<String> uploadImage( @ApiParam(value="图像",required=true) MultipartFile file,
     public Result<String> uploadImage( @ApiParam(value="图像",required=true) MultipartFile file,
                                        @RequestHeader(name = "token") String token) {
                                        @RequestHeader(name = "token") String token) {
         try {
         try {

+ 21 - 1
src/main/java/com/iden/bms/service/SysUserService.java

@@ -3,6 +3,7 @@ package com.iden.bms.service;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -15,9 +16,11 @@ import com.iden.common.entity.*;
 import com.iden.common.enums.UserRoleEnum;
 import com.iden.common.enums.UserRoleEnum;
 import com.iden.common.enums.ValidStatusEnum;
 import com.iden.common.enums.ValidStatusEnum;
 import com.iden.common.exception.BDException;
 import com.iden.common.exception.BDException;
+import com.iden.common.logaspect.OperateType;
 import com.iden.common.service.*;
 import com.iden.common.service.*;
 
 
 import com.iden.common.util.MyBeanUtils;
 import com.iden.common.util.MyBeanUtils;
+import com.iden.common.util.WebPageUtils;
 import com.iden.common.vo.PageReqVO;
 import com.iden.common.vo.PageReqVO;
 import com.iden.common.vo.UserLoginedConvertVO;
 import com.iden.common.vo.UserLoginedConvertVO;
 
 
@@ -29,6 +32,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
@@ -44,10 +48,12 @@ public class SysUserService {
     @Resource
     @Resource
     private IdenSysUserService idenSysUserService;
     private IdenSysUserService idenSysUserService;
     @Resource
     @Resource
+    private IdenSysLogService idenSysLogService;
+    @Resource
     RedisUtil redisUtil;
     RedisUtil redisUtil;
 
 
 
 
-    public UserLoginedConvertVO getLoginUser(String username, String password, String securityCode) throws BDException {
+    public UserLoginedConvertVO getLoginUser(String username, String password, String securityCode, HttpServletRequest request) throws BDException {
 
 
         if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password) || StringUtils.isEmpty(securityCode)) {
         if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password) || StringUtils.isEmpty(securityCode)) {
             throw new BDException("登录参数不能为空");
             throw new BDException("登录参数不能为空");
@@ -75,6 +81,20 @@ public class SysUserService {
                 throw new BDException("用户已经停用");
                 throw new BDException("用户已经停用");
             }
             }
 
 
+            IdenSysLog idenSysLog = new IdenSysLog();
+
+            idenSysLog.setUsername(username);
+            idenSysLog.setContent("用户登录系统");
+            idenSysLog.setLogType(OperateType.LOGIN.getValue());
+            try {
+                String ip = WebPageUtils.getIpAddr(request);
+                idenSysLog.setIp(ip);
+
+            } catch (Exception e){
+                e.printStackTrace();
+            }
+            idenSysLog.setCreateTime(new Date());
+            idenSysLogService.save(idenSysLog);
         }
         }
         return userLoginedConvertVO;
         return userLoginedConvertVO;
     }
     }

+ 16 - 0
src/main/java/com/iden/common/logaspect/LogAnnotation.java

@@ -0,0 +1,16 @@
+package com.iden.common.logaspect;
+
+
+import java.lang.annotation.*;
+
+/**
+ * Created by wuyzh on 15-3-24.
+ */
+@Target({ElementType.METHOD, ElementType.PARAMETER})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface LogAnnotation {
+    OperateType type() default OperateType.SEARCH;
+    String moduleName() default "";
+    String description() default "";
+}

+ 158 - 0
src/main/java/com/iden/common/logaspect/LogAspect.java

@@ -0,0 +1,158 @@
+package com.iden.common.logaspect;
+
+
+import cn.hutool.json.JSONUtil;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import com.iden.common.entity.IdenSysLog;
+import com.iden.common.service.IdenSysLogService;
+
+import com.iden.common.util.StringUtil;
+import com.iden.common.util.WebPageUtils;
+import com.iden.common.vo.UserLoginedConvertVO;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.After;
+import org.aspectj.lang.annotation.AfterThrowing;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.stereotype.Service;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+@Aspect
+public class LogAspect {
+   private static final Logger logger = LogManager.getLogger(LogAspect.class);
+    @Resource
+    private IdenSysLogService idenSysLogService;
+
+    @Pointcut("@annotation(com.iden.common.logaspect.LogAnnotation)")
+    public void logAspect() {
+
+    }
+
+   @After("logAspect()")
+   public void doBefore(JoinPoint jp) {
+       doSaveLog(jp, null);
+   }
+
+    @AfterThrowing(pointcut = "logAspect()", throwing = "t")
+    public void doAfterThrowing(JoinPoint jp, Throwable t) {
+        doSaveLog(jp, t);
+    }
+
+    private Method getTargetMethod(JoinPoint jp) {
+        String methodName = jp.getSignature().getName();
+        Object[] args = jp.getArgs();
+        Method[] methods = jp.getTarget().getClass() == null ? new Method[0] : jp.getTarget().getClass().getDeclaredMethods();
+        for (Method method : methods) {
+            if (method.getName().equals(methodName)
+                    && method.isAnnotationPresent(LogAnnotation.class)) {
+                Class<?>[] clazz = method.getParameterTypes();
+                if (clazz.length == args.length) {
+                    return method;
+                }
+            }
+        }
+        return null;
+    }
+
+    private void doSaveLog(JoinPoint jp, Throwable t) {
+
+        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = requestAttributes.getRequest();
+
+        Method method = getTargetMethod(jp);
+        if (method == null) {
+            logger.warn("没有找到匹配的方法名:"
+                    + jp.getSignature().getName()
+                    + '(' + StringUtil.join(jp.getArgs(), ',') + ')');
+            return ;
+        }
+
+        LogAnnotation logAnnotation = method.getAnnotation(LogAnnotation.class);
+
+        String moduleName = logAnnotation.moduleName();
+        String description = logAnnotation.description();
+        //String uri = request.getRequestURI();
+        //String ctx = request.getContextPath();
+        //String opUrl = StringUtil.substringAfter(uri, ctx);
+
+        Object[] args = jp.getArgs();
+
+        Map<String, Object> params = Maps.newHashMap();
+        for (int i = 0, len = args.length; i < len; ++i) {
+            params.put("p" + (i + 1), args[i]);
+        }
+
+        if ("用户登录".equals(moduleName)) {
+            return;
+        }
+        IdenSysLog idenSysLog = new IdenSysLog();
+
+        idenSysLog.setContent(description);
+        //idenSysLog.setModuleName(moduleName);
+        idenSysLog.setLogType(logAnnotation.type().getValue());
+       // idenSysLog.setOpUrl(opUrl);
+        List<Object> argList = Lists.newArrayList();
+        for (Object arg : args) {
+            if (arg instanceof HttpServletRequest
+                    || arg instanceof HttpServletResponse) {
+                continue;
+            }
+            if (arg instanceof MultipartFile) {
+                argList.add(((MultipartFile)arg).getOriginalFilename());
+            } else {
+                argList.add(arg);
+            }
+        }
+        //idenSysLog.setOpParams(JSONUtil.toJsonStr(argList));
+
+        try {
+
+            UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
+            if (loginUser != null){
+                idenSysLog.setUsername(loginUser.getUsername());
+            } else {
+                logger.error("记录日志出现错误:token为空");
+                return;
+            }
+
+        } catch (Exception e) {
+            logger.error("记录日志出现错误:" + e.getMessage(), e);
+            return;
+        }
+
+        if (logger.isDebugEnabled()) {
+            StringBuilder sb = new StringBuilder();
+            sb.append("\n类名:").append(jp.getTarget().getClass().getName())
+                    .append("\n方法名:").append(method.getName())
+                    .append("\n参数:").append(JSONUtil.toJsonStr(argList))
+                    .append("\n日志对象:").append(JSONUtil.toJsonStr(idenSysLog));
+            logger.debug(sb.toString());
+        }
+        try {
+            String ip = WebPageUtils.getIpAddr(request);
+            idenSysLog.setIp(ip);
+            idenSysLog.setCreateTime(new Date());
+            idenSysLogService.save(idenSysLog);
+        } catch (Throwable tx) {
+            logger.error("记录日志出现错误:" + tx.getMessage(), tx);
+        }
+    }
+
+}

+ 30 - 0
src/main/java/com/iden/common/logaspect/OperateType.java

@@ -0,0 +1,30 @@
+package com.iden.common.logaspect;
+
+
+public enum OperateType {
+    LOGIN("登录", "登录"),
+    LOGOUT("登出", "登出"),
+    SEARCH("查询", "查询"),
+    ADD("添加", "添加"),
+    MODIFY("修改", "修改"),
+    REMOVE("删除", "删除"),
+    IMPORT("批量导入", "批量导入"),
+    EXPORT("批量导出", "批量导出"),
+    UPLOAD("上传", "上传"),
+    DOWNLOAD("下载", "下载"),
+    EDIT("编辑", "编辑")
+    ;
+
+    private String value;
+    private String desc;
+
+    OperateType(String value, String desc) {
+        this.value = value;
+        this.desc = desc;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+}

+ 90 - 0
src/main/java/com/iden/common/util/StringUtil.java

@@ -0,0 +1,90 @@
+package com.iden.common.util;
+
+import com.google.common.base.Joiner;
+
+import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class StringUtil {
+
+    public static String getUUID(){
+        return UUID.randomUUID().toString();
+    }
+
+
+    public static String int2chineseNum(int num) {
+        String src = String.valueOf(num);
+
+        //定义转换后显示数组
+        String[] alabo = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
+        String[] zwhz = {"十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千"};
+        String digital = "";
+        int n = src.length();
+        for (int i = 0; i < n; i++) {
+            int o = src.charAt(i) - '0';
+            if (i != n - 1 && o != 0) {
+                digital += alabo[o] + zwhz[n - 2 - i];
+            } else {
+                digital += alabo[o];
+            }
+        }
+        //把开头一十换成十
+        if (digital.indexOf("一十") == 0) {
+            digital = digital.substring(1);
+        }
+        return digital;
+    }
+
+    public static String Html2TextFormat(String inputString) {
+        String htmlStr = inputString;
+        String textStr = "";
+        try
+        {
+            String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>";
+            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>";
+            String regEx_html = "(?!<(img).*?>)<.*?>";
+            Pattern p_script = Pattern.compile(regEx_script, 2);
+            Matcher m_script = p_script.matcher(htmlStr);
+            htmlStr = m_script.replaceAll("");
+
+            Pattern p_style = Pattern.compile(regEx_style, 2);
+            Matcher m_style = p_style.matcher(htmlStr);
+            htmlStr = m_style.replaceAll("");
+
+            Pattern p_html = Pattern.compile(regEx_html, 2);
+            Matcher m_html = p_html.matcher(htmlStr);
+            htmlStr = m_html.replaceAll("");
+
+            textStr = htmlStr;
+        }
+        catch (Exception e) {
+            System.err.println("Html2Text: " + e.getMessage());
+        }
+
+        return textStr;
+    }
+
+    public static String getRandom(){
+       return  System.currentTimeMillis() + String.valueOf((int)((Math.random()*9+1)*1000));
+    }
+
+    public static <T> String join(T[] arr, char joiner) {
+        return Joiner.on(joiner).skipNulls().join(arr);
+    }
+
+    public static boolean isEmpty(String str) {
+        return str == null || str.length() == 0;
+    }
+
+    public static String substringAfter(String str, String separator) {
+        if(isEmpty(str)) {
+            return str;
+        } else if(separator == null) {
+            return "";
+        } else {
+            int pos = str.indexOf(separator);
+            return pos == -1?"":str.substring(pos + separator.length());
+        }
+    }
+}

+ 1 - 1
src/main/resources/application.properties

@@ -2,7 +2,7 @@
 spring.profiles.active=dev
 spring.profiles.active=dev
 
 
 # 配置服务端口号
 # 配置服务端口号
-server.port=8890
+    server.port=8890
 
 
 ### spring配置
 ### spring配置
 # 配置服务名称
 # 配置服务名称