From da92f60f961b0c6ee5c509de1ca603edaaa85d06 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 06 六月 2024 10:00:47 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/BasCrnOptController.java | 2 src/main/java/com/zy/asrs/controller/LocMastController.java | 1 src/main/java/com/zy/common/config/AdminInterceptor.java | 12 +- src/main/resources/mapper/UserLoginMapper.xml | 2 src/main/java/com/zy/system/entity/OperateLog.java | 2 pom.xml | 4 + src/main/java/com/zy/asrs/controller/WaitPakinController.java | 6 src/main/java/com/zy/system/entity/UserLogin.java | 16 ++++ src/main/java/com/zy/common/web/AuthController.java | 1 src/main/java/com/zy/common/config/AspectConfig.java | 110 +++++++++++++++++++++++++++ src/main/java/com/zy/asrs/controller/WrkMastSplitTwinController.java | 6 src/main/java/com/zy/asrs/controller/WrkMastStaController.java | 6 src/main/webapp/static/js/userLogin/userLogin.js | 1 src/main/java/com/zy/asrs/controller/BasBoxTypeController.java | 2 src/main/java/com/zy/asrs/controller/BasJarController.java | 3 src/main/java/com/zy/asrs/controller/MatController.java | 2 src/main/java/com/zy/asrs/controller/BasJarMastStatusController.java | 6 17 files changed, 160 insertions(+), 22 deletions(-) diff --git a/pom.xml b/pom.xml index a97d95a..e7b9606 100644 --- a/pom.xml +++ b/pom.xml @@ -37,6 +37,10 @@ <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-aop</artifactId> + </dependency> + <dependency> <groupId>cn.cool</groupId> <artifactId>framework</artifactId> <version>${cool.version}</version> diff --git a/src/main/java/com/zy/asrs/controller/BasBoxTypeController.java b/src/main/java/com/zy/asrs/controller/BasBoxTypeController.java index e480a83..4b477ab 100644 --- a/src/main/java/com/zy/asrs/controller/BasBoxTypeController.java +++ b/src/main/java/com/zy/asrs/controller/BasBoxTypeController.java @@ -61,7 +61,7 @@ } @RequestMapping(value = "/basBoxType/add/auth") - @ManagerAuth + @ManagerAuth(memo = "basBoxType娣诲姞") public R add(BasBoxType basBoxType) { basBoxTypeService.insert(basBoxType); return R.ok(); diff --git a/src/main/java/com/zy/asrs/controller/BasCrnOptController.java b/src/main/java/com/zy/asrs/controller/BasCrnOptController.java index dbec856..d79b554 100644 --- a/src/main/java/com/zy/asrs/controller/BasCrnOptController.java +++ b/src/main/java/com/zy/asrs/controller/BasCrnOptController.java @@ -63,7 +63,7 @@ } @RequestMapping(value = "/basCrnOpt/add/auth") - @ManagerAuth + @ManagerAuth(memo = "basCrnOpt娣诲姞") public R add(BasCrnOpt basCrnOpt) { basCrnOptService.insert(basCrnOpt); return R.ok(); diff --git a/src/main/java/com/zy/asrs/controller/BasJarController.java b/src/main/java/com/zy/asrs/controller/BasJarController.java index 72717f7..1a956d9 100644 --- a/src/main/java/com/zy/asrs/controller/BasJarController.java +++ b/src/main/java/com/zy/asrs/controller/BasJarController.java @@ -15,6 +15,7 @@ import com.core.common.Cools; import com.core.common.R; import com.zy.common.web.BaseController; +import com.zy.system.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -125,7 +126,7 @@ } @PostMapping("/table/jar/state") - @ManagerAuth(memo = "JAR淇℃伅琛�") +// @ManagerAuth(memo = "JAR淇℃伅琛�") public R jarStateTable(){ List<JarStateTableVo> list = new ArrayList<>(); List<BasJar> jars = basJarService.selectList(new EntityWrapper<BasJar>().orderBy("jar_no")); diff --git a/src/main/java/com/zy/asrs/controller/BasJarMastStatusController.java b/src/main/java/com/zy/asrs/controller/BasJarMastStatusController.java index b223420..3caaa2c 100644 --- a/src/main/java/com/zy/asrs/controller/BasJarMastStatusController.java +++ b/src/main/java/com/zy/asrs/controller/BasJarMastStatusController.java @@ -60,14 +60,14 @@ } @RequestMapping(value = "/basJarMastStatus/add/auth") - @ManagerAuth + @ManagerAuth(memo = "纭寲缃愮姸鎬佹坊鍔�") public R add(BasJarMastStatus basJarMastStatus) { basJarMastStatusService.insert(basJarMastStatus); return R.ok(); } @RequestMapping(value = "/basJarMastStatus/update/auth") - @ManagerAuth + @ManagerAuth(memo = "纭寲缃愮姸鎬佹洿鏂�") public R update(BasJarMastStatus basJarMastStatus){ if (Cools.isEmpty(basJarMastStatus) || null==basJarMastStatus.getId()){ return R.error(); @@ -77,7 +77,7 @@ } @RequestMapping(value = "/basJarMastStatus/delete/auth") - @ManagerAuth + @ManagerAuth(memo = "纭寲缃愮姸鎬佸垹闄�") public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ basJarMastStatusService.deleteById(id); diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java index 8bfe17e..5be4130 100644 --- a/src/main/java/com/zy/asrs/controller/LocMastController.java +++ b/src/main/java/com/zy/asrs/controller/LocMastController.java @@ -34,6 +34,7 @@ private LocDetlService locDetlService; @RequestMapping(value = "/locMast/init/pwd") + @ManagerAuth(memo = "鍒濆鍖栧彛浠ら獙璇�") public R locMastInitPwd(@RequestParam(required = false) String pwd) { if (Cools.isEmpty(pwd)) { return R.error("璇疯緭鍏ュ彛浠�"); diff --git a/src/main/java/com/zy/asrs/controller/MatController.java b/src/main/java/com/zy/asrs/controller/MatController.java index 9c53503..a339187 100644 --- a/src/main/java/com/zy/asrs/controller/MatController.java +++ b/src/main/java/com/zy/asrs/controller/MatController.java @@ -119,7 +119,7 @@ } @RequestMapping(value = "/mat/add/auth") - @ManagerAuth + @ManagerAuth(memo = "鏂板鍟嗗搧妗f") public R add(Mat mat) { if (null != matService.selectByMatnr(mat.getMatnr())) { return R.error("缂栧彿宸插瓨鍦�"); diff --git a/src/main/java/com/zy/asrs/controller/WaitPakinController.java b/src/main/java/com/zy/asrs/controller/WaitPakinController.java index 7d994d8..afe9882 100644 --- a/src/main/java/com/zy/asrs/controller/WaitPakinController.java +++ b/src/main/java/com/zy/asrs/controller/WaitPakinController.java @@ -73,14 +73,14 @@ } @RequestMapping(value = "/waitPakin/add/auth") - @ManagerAuth + @ManagerAuth(memo = "鍏ュ簱閫氱煡妗f娣诲姞") public R add(WaitPakin waitPakin) { waitPakinService.insert(waitPakin); return R.ok(); } @RequestMapping(value = "/waitPakin/update/auth") - @ManagerAuth + @ManagerAuth(memo = "鍏ュ簱閫氱煡妗f淇敼") public R update(WaitPakin waitPakin){ if (Cools.isEmpty(waitPakin)){ return R.error(); @@ -90,7 +90,7 @@ } @RequestMapping(value = "/waitPakin/delete/auth") - @ManagerAuth + @ManagerAuth(memo = "鍏ュ簱閫氱煡妗f鍒犻櫎") @Transactional public R delete(@RequestParam String param){ List<WaitPakin> list = JSONArray.parseArray(param, WaitPakin.class); diff --git a/src/main/java/com/zy/asrs/controller/WrkMastSplitTwinController.java b/src/main/java/com/zy/asrs/controller/WrkMastSplitTwinController.java index 9cf236d..254db2e 100644 --- a/src/main/java/com/zy/asrs/controller/WrkMastSplitTwinController.java +++ b/src/main/java/com/zy/asrs/controller/WrkMastSplitTwinController.java @@ -60,14 +60,14 @@ } @RequestMapping(value = "/wrkMastSplitTwin/add/auth") - @ManagerAuth + @ManagerAuth(memo = "鎷嗗垎鍙屽伐浣嶄换鍔℃坊鍔�") public R add(WrkMastSplitTwin wrkMastSplitTwin) { wrkMastSplitTwinService.insert(wrkMastSplitTwin); return R.ok(); } @RequestMapping(value = "/wrkMastSplitTwin/update/auth") - @ManagerAuth + @ManagerAuth(memo = "鎷嗗垎鍙屽伐浣嶄换鍔′慨鏀�") public R update(WrkMastSplitTwin wrkMastSplitTwin){ if (Cools.isEmpty(wrkMastSplitTwin) || null==wrkMastSplitTwin.getId()){ return R.error(); @@ -77,7 +77,7 @@ } @RequestMapping(value = "/wrkMastSplitTwin/delete/auth") - @ManagerAuth + @ManagerAuth(memo = "鎷嗗垎鍙屽伐浣嶄换鍔″垹闄�") public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ wrkMastSplitTwinService.deleteById(id); diff --git a/src/main/java/com/zy/asrs/controller/WrkMastStaController.java b/src/main/java/com/zy/asrs/controller/WrkMastStaController.java index f5277d8..677ccbd 100644 --- a/src/main/java/com/zy/asrs/controller/WrkMastStaController.java +++ b/src/main/java/com/zy/asrs/controller/WrkMastStaController.java @@ -60,14 +60,14 @@ } @RequestMapping(value = "/wrkMastSta/add/auth") - @ManagerAuth + @ManagerAuth(memo = "RGV浠诲姟娣诲姞") public R add(WrkMastSta wrkMastSta) { wrkMastStaService.insert(wrkMastSta); return R.ok(); } @RequestMapping(value = "/wrkMastSta/update/auth") - @ManagerAuth + @ManagerAuth(memo = "RGV浠诲姟淇敼") public R update(WrkMastSta wrkMastSta){ if (Cools.isEmpty(wrkMastSta) || null==wrkMastSta.getId()){ return R.error(); @@ -77,7 +77,7 @@ } @RequestMapping(value = "/wrkMastSta/delete/auth") - @ManagerAuth + @ManagerAuth(memo = "RGV浠诲姟鍒犻櫎") public R delete(@RequestParam(value="ids[]") Long[] ids){ for (Long id : ids){ wrkMastStaService.deleteById(id); diff --git a/src/main/java/com/zy/common/config/AdminInterceptor.java b/src/main/java/com/zy/common/config/AdminInterceptor.java index 3932e07..212aef6 100644 --- a/src/main/java/com/zy/common/config/AdminInterceptor.java +++ b/src/main/java/com/zy/common/config/AdminInterceptor.java @@ -138,12 +138,12 @@ return false; } // 璁板綍鎿嶄綔鏃ュ織 - OperateLog operateLog = new OperateLog(); - operateLog.setAction(Cools.isEmpty(memo)?request.getRequestURI():memo); - operateLog.setIp(request.getRemoteAddr()); - operateLog.setUserId(user.getId()); - operateLog.setRequest(JSON.toJSONString(request.getParameterMap())); - request.setAttribute("operateLog", operateLog); +// OperateLog operateLog = new OperateLog(); +// operateLog.setAction(Cools.isEmpty(memo)?request.getRequestURI():memo); +// operateLog.setIp(request.getRemoteAddr()); +// operateLog.setUserId(user.getId()); +// operateLog.setRequest(JSON.toJSONString(request.getParameterMap())); +// request.setAttribute("operateLog", operateLog); } return true; } catch (Exception e){ diff --git a/src/main/java/com/zy/common/config/AspectConfig.java b/src/main/java/com/zy/common/config/AspectConfig.java new file mode 100644 index 0000000..780eb46 --- /dev/null +++ b/src/main/java/com/zy/common/config/AspectConfig.java @@ -0,0 +1,110 @@ +package com.zy.common.config; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.annotations.ManagerAuth; +import com.core.common.Cools; +import com.zy.system.entity.OperateLog; +import com.zy.system.entity.User; +import com.zy.system.entity.UserLogin; +import com.zy.system.service.OperateLogService; +import com.zy.system.service.UserLoginService; +import com.zy.system.service.UserService; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.Method; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@Component +@Aspect +@Slf4j +public class AspectConfig { + + @Autowired + private UserLoginService userLoginService; + @Autowired + private UserService userService; + @Autowired + private OperateLogService operateLogService; + + @Pointcut("execution(* com.zy.asrs.controller.*(..))") + private void webLog() { + } + + @Around("@within(org.springframework.web.bind.annotation.RestController)" + + "||@within(org.springframework.stereotype.Controller)") + public Object after(ProceedingJoinPoint joinPoint) throws Throwable{ + ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + //if(requestAttributes != null){ + // return joinPoint.proceed(); + //} + HttpServletRequest request = requestAttributes.getRequest(); + long start = System.currentTimeMillis(); + Object result = joinPoint.proceed(joinPoint.getArgs()); + + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Method method = signature.getMethod(); + if (method.isAnnotationPresent(ManagerAuth.class)){ + ManagerAuth annotation = method.getAnnotation(ManagerAuth.class); + if (annotation.value().equals(ManagerAuth.Auth.CHECK)){ + if (!Cools.isEmpty(annotation.memo())) { + saveLog(joinPoint, request, result,annotation.memo()); + } + } + } + + long end = System.currentTimeMillis(); + +// log.info("璇锋眰鏃ュ織鐨勬墦鍗�"); +// log.info("璇锋眰鍦板潃:{}", Optional.ofNullable(request.getRequestURI().toString()).orElse(null)); +// log.info("璇锋眰鏂瑰紡:{}",request.getMethod()); +// log.info("璇锋眰绫绘柟娉�:{}",joinPoint.getSignature()); +// log.info("璇锋眰绫绘柟娉曞弬鏁�:{}", JSONObject.toJSONString(filterArgs(joinPoint.getArgs()))); +// log.info("璇锋眰鍝嶅簲鍙傛暟{}", JSONObject.toJSONString(result)); +// log.info("鎵ц鑰楁椂:{}", end - start); + + return result; + } + + private List<Object> filterArgs(Object[] objects) { + return Arrays.stream(objects).filter(obj -> !(obj instanceof MultipartFile) + && !(obj instanceof HttpServletResponse) + && !(obj instanceof HttpServletRequest)).collect(Collectors.toList()); + } + + private void saveLog(ProceedingJoinPoint joinPoint, HttpServletRequest request, Object result,String memo) { + Long userId = 9527L; + String token = request.getHeader("token"); + UserLogin userLogin = userLoginService.selectOne(new EntityWrapper<UserLogin>().eq("token", token).eq("system", "WMS")); + if (userLogin != null) { + User user = userService.selectById(userLogin.getUserId()); + if (user != null) { + userId = user.getId(); + } + } + + // 璁板綍鎿嶄綔鏃ュ織 + OperateLog operateLog = new OperateLog(); + operateLog.setAction(Cools.isEmpty(memo)?request.getRequestURI():memo); + operateLog.setIp(request.getRemoteAddr()); + operateLog.setUserId(userId); + operateLog.setRequest(JSONObject.toJSONString(filterArgs(joinPoint.getArgs()))); + operateLog.setResponse(JSONObject.toJSONString(result)); + operateLogService.insert(operateLog); + } + +} \ No newline at end of file diff --git a/src/main/java/com/zy/common/web/AuthController.java b/src/main/java/com/zy/common/web/AuthController.java index 48cf254..6f00fff 100644 --- a/src/main/java/com/zy/common/web/AuthController.java +++ b/src/main/java/com/zy/common/web/AuthController.java @@ -80,6 +80,7 @@ userLogin.setUserId(user.getId()); userLogin.setToken(token); userLogin.setCreateTime(new Date()); + userLogin.setSystem("WMS"); userLoginService.insert(userLogin); Map<String, Object> res = new HashMap<>(); res.put("username", user.getUsername()); diff --git a/src/main/java/com/zy/system/entity/OperateLog.java b/src/main/java/com/zy/system/entity/OperateLog.java index abee522..1f30f84 100644 --- a/src/main/java/com/zy/system/entity/OperateLog.java +++ b/src/main/java/com/zy/system/entity/OperateLog.java @@ -80,6 +80,8 @@ User user = service.selectById(this.userId); if (!Cools.isEmpty(user)){ return user.getUsername(); + } else if (this.userId==9527L){ + return "鑷姩"; } return null; } diff --git a/src/main/java/com/zy/system/entity/UserLogin.java b/src/main/java/com/zy/system/entity/UserLogin.java index 9c11c8d..a585ee8 100644 --- a/src/main/java/com/zy/system/entity/UserLogin.java +++ b/src/main/java/com/zy/system/entity/UserLogin.java @@ -8,12 +8,14 @@ import com.core.common.Cools; import com.core.common.SpringUtils; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @TableName("sys_user_login") +@Data public class UserLogin implements Serializable { private static final long serialVersionUID = 1L; @@ -30,6 +32,7 @@ @ApiModelProperty(value= "鎵�灞為」鐩�") @TableField("host_id") private Long hostId; + /** * 鍛樺伐 */ @@ -47,6 +50,12 @@ @TableField("create_time") private Date createTime; + /** + * 鐧诲綍绯荤粺 + */ + @TableField("system") + private String system; + public Long getId() { return id; } @@ -62,6 +71,7 @@ public void setHostId(Long hostId) { this.hostId = hostId; } + public Long getUserId() { return userId; } @@ -101,5 +111,11 @@ this.createTime = createTime; } + public String getSystem() { + return system; + } + public void setSystem(String system) { + this.system = system; + } } diff --git a/src/main/resources/mapper/UserLoginMapper.xml b/src/main/resources/mapper/UserLoginMapper.xml index 3fdd032..b30171f 100644 --- a/src/main/resources/mapper/UserLoginMapper.xml +++ b/src/main/resources/mapper/UserLoginMapper.xml @@ -5,9 +5,11 @@ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> <resultMap id="BaseResultMap" type="com.zy.system.entity.UserLogin"> <id column="id" property="id" /> + <result column="host_id" property="hostId" /> <result column="user_id" property="userId" /> <result column="token" property="token" /> <result column="create_time" property="createTime" /> + <result column="system" property="system" /> </resultMap> diff --git a/src/main/webapp/static/js/userLogin/userLogin.js b/src/main/webapp/static/js/userLogin/userLogin.js index f0907ef..e6ac5e6 100644 --- a/src/main/webapp/static/js/userLogin/userLogin.js +++ b/src/main/webapp/static/js/userLogin/userLogin.js @@ -21,6 +21,7 @@ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80} ,{field: 'userUsername', align: 'center',title: '鍛樺伐',event: 'User', style: 'text-decoration: underline;cursor:pointer'} ,{field: 'token', align: 'center',title: '鍑瘉鍊�'} + ,{field: 'memo', align: 'center',title: '璁板綍'} ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'} ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150} -- Gitblit v1.9.1