From be74f03cd8ffdb198fccbe6a7870ee8f846e0724 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 13 九月 2023 16:21:41 +0800 Subject: [PATCH] 添加资源操作日志 --- src/main/java/com/moon/server/controller/sys/ResOpController.java | 236 +++++++++++++++++++++++ src/main/java/com/moon/server/service/sys/ResOpService.java | 70 +++++++ src/main/java/com/moon/server/entity/shujian/ImageResultEntity.java | 10 + src/main/java/com/moon/server/mapper/sys/ResOpMapper.java | 96 +++++++++ src/main/resources/mapper/sys/ResOpMapper.xml | 84 ++++++++ src/main/java/com/moon/server/entity/sys/ResOpEntity.java | 94 +++++++++ 6 files changed, 590 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/moon/server/controller/sys/ResOpController.java b/src/main/java/com/moon/server/controller/sys/ResOpController.java new file mode 100644 index 0000000..e7fce1e --- /dev/null +++ b/src/main/java/com/moon/server/controller/sys/ResOpController.java @@ -0,0 +1,236 @@ +package com.moon.server.controller.sys; + +import com.moon.server.annotation.SysLog; +import com.moon.server.controller.all.BaseController; +import com.moon.server.entity.all.ResponseMsg; +import com.moon.server.entity.sys.ResOpEntity; +import com.moon.server.entity.sys.UserEntity; +import com.moon.server.service.sys.ResOpService; +import com.moon.server.service.sys.TokenService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.sql.Timestamp; +import java.util.List; + +/** + * 璧勬簮鎿嶄綔 + * @author SWS + * @date 2022-09.28 + */ +@Api(tags = "杩愮淮绠$悊\\璧勬簮鎿嶄綔") +@RestController +@RequestMapping("/resOp") +public class ResOpController extends BaseController { + @Resource + ResOpService resOpService; + + @Resource + TokenService tokenService; + + @SysLog() + @ApiOperation(value = "鏌ヨ璁板綍鏁�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "璧勬簮鍚嶇О", dataType = "String", paramType = "query", example = "澶╁湴鍥�"), + @ApiImplicitParam(name = "type", value = "鎿嶄綔绫诲瀷", dataType = "Integer", paramType = "query", example = "1"), + @ApiImplicitParam(name = "start", value = "寮�濮嬫椂闂�", dataType = "Timestamp", paramType = "query", example = "2022-10-09 09:00:00"), + @ApiImplicitParam(name = "end", value = "缁撴潫鏃堕棿", dataType = "Timestamp", paramType = "query", example = "2022-10-10 18:00:00"), + }) + @GetMapping({"/selectCount"}) + public ResponseMsg<Integer> selectCount(String name, Integer type, Timestamp start, Timestamp end) { + try { + int count = resOpService.selectCount(name, type, start, end); + + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() + @ApiOperation(value = "鍒嗛〉鏌ヨ") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "璧勬簮鍚嶇О", dataType = "String", paramType = "query", example = "澶╁湴鍥�"), + @ApiImplicitParam(name = "type", value = "鎿嶄綔绫诲瀷", dataType = "Integer", paramType = "query", example = "1"), + @ApiImplicitParam(name = "start", value = "寮�濮嬫椂闂�", dataType = "Timestamp", paramType = "query", example = "2022-10-09 09:00:00"), + @ApiImplicitParam(name = "end", value = "缁撴潫鏃堕棿", dataType = "Timestamp", paramType = "query", example = "2022-10-10 18:00:00"), + @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"), + @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1") + }) + @GetMapping(value = "/selectByPage") + public ResponseMsg<List<ResOpEntity>> selectByPage(String name, Integer type, Timestamp start, Timestamp end, Integer pageSize, Integer pageIndex) { + try { + if (pageSize < 1 || pageIndex < 1) { + return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null); + } + List<ResOpEntity> rs = resOpService.selectByPage(name, type, start, end, pageSize, pageSize * (pageIndex - 1)); + return success(rs); + } catch (Exception ex) { + return fail(ex, null); + } + } + + @SysLog() + @ApiOperation(value = "鍒嗛〉鏌ヨ骞惰繑鍥炶褰曟暟") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "璧勬簮鍚嶇О", dataType = "String", paramType = "query", example = "澶╁湴鍥�"), + @ApiImplicitParam(name = "type", value = "鎿嶄綔绫诲瀷", dataType = "Integer", paramType = "query", example = "1"), + @ApiImplicitParam(name = "start", value = "寮�濮嬫椂闂�", dataType = "Timestamp", paramType = "query", example = "2022-10-09 09:00:00"), + @ApiImplicitParam(name = "end", value = "缁撴潫鏃堕棿", dataType = "Timestamp", paramType = "query", example = "2022-10-10 18:00:00"), + @ApiImplicitParam(name = "pageSize", value = "姣忛〉鏉℃暟", dataType = "Integer", paramType = "query", example = "10"), + @ApiImplicitParam(name = "pageIndex", value = "鍒嗛〉鏁帮紙浠�1寮�濮嬶級", dataType = "Integer", paramType = "query", example = "1") + }) + @GetMapping(value = "/selectByPageAndCount") + public ResponseMsg<List<ResOpEntity>> selectByPageAndCount(String name, Integer type, Timestamp start, Timestamp end, Integer pageSize, Integer pageIndex) { + try { + if (pageSize < 1 || pageIndex < 1) { + return fail("姣忛〉椤垫暟鎴栧垎椤垫暟灏忎簬1", null); + } + + int count = resOpService.selectCount(name, type, start, end); + if (count == 0) { + return success(0, null); + } + + List<ResOpEntity> rs = resOpService.selectByPage(name, type, start, end, pageSize, pageSize * (pageIndex - 1)); + + return success(count, rs); + } catch (Exception ex) { + return fail(ex, null); + } + } + + @SysLog() + @ApiOperation(value = "鎻掑叆涓�鏉�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "entity", value = "瀹炰綋绫�", dataType = "com.lf.server.entity.sys.ResOpEntity", paramType = "body", example = "") + }) + @PostMapping(value = "/insertResOp", produces = "application/json; charset=UTF-8") + public ResponseMsg<Integer> insertResOp(@RequestBody ResOpEntity entity, HttpServletRequest req) { + try { + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + entity.setUserid(ue.getId()); + } + + int count = resOpService.insertResOp(entity); + + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() + @ApiOperation(value = "鎻掑叆澶氭潯") + @ApiImplicitParams({ + @ApiImplicitParam(name = "list", value = "瀹炰綋绫婚泦鍚�", dataType = "List<ResOpEntity>", paramType = "body", example = "") + }) + @PostMapping(value = "/insertResOps", produces = "application/json; charset=UTF-8") + public ResponseMsg<Integer> insertResOps(@RequestBody List<ResOpEntity> list, HttpServletRequest req) { + try { + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + for (ResOpEntity entity : list) { + entity.setUserid(ue.getId()); + } + } + + int count = resOpService.insertResOps(list); + + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() + @ApiOperation(value = "鍒犻櫎涓�鏉�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1") + }) + @GetMapping(value = "/deleteLogin") + public ResponseMsg<Integer> deleteResOp(int id) { + try { + int count = resOpService.deleteResOp(id); + + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() + @ApiOperation(value = "鍒犻櫎澶氭潯") + @ApiImplicitParams({ + @ApiImplicitParam(name = "ids", value = "ID鏁扮粍", dataType = "List<Integer>", paramType = "query", example = "1,2") + }) + @GetMapping(value = "/deleteResOps") + public ResponseMsg<Integer> deleteResOps(@RequestParam List<Integer> ids) { + try { + if (ids == null || ids.isEmpty()) { + return fail("id鏁扮粍涓嶈兘涓虹┖", -1); + } + int count = resOpService.deleteResOps(ids); + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() + @ApiOperation(value = "鏇存柊涓�鏉�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "entity", value = "ID鏁扮粍", dataType = "LoginEntity", paramType = "body", example = "") + }) + @ResponseBody + @PostMapping(value = "/updateResOp", produces = "application/json; charset=UTF-8") + public ResponseMsg<Integer> updateResOp(@RequestBody ResOpEntity entity, HttpServletRequest req) { + try { + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + entity.setUserid(ue.getId()); + } + + int count = resOpService.updateResOp(entity); + + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() + @ApiOperation(value = "鏍规嵁ID鏌ヨ") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1") + }) + @GetMapping(value = "/selectResOp") + public ResponseMsg<ResOpEntity> selectResOp(int id) { + try { + ResOpEntity resOpEntity = resOpService.selectResOp(id); + + return success(resOpEntity); + } catch (Exception ex) { + return fail(ex, null); + } + } + + @SysLog() + @ApiOperation(value = "鏌ヨ鎵�鏈�") + @GetMapping(value = "/selectResOpAll") + public ResponseMsg<List<ResOpEntity>> selectResOpAll() { + try { + List<ResOpEntity> list = resOpService.selectResOpAll(); + + return success(list); + } catch (Exception ex) { + return fail(ex, null); + } + } +} diff --git a/src/main/java/com/moon/server/entity/shujian/ImageResultEntity.java b/src/main/java/com/moon/server/entity/shujian/ImageResultEntity.java new file mode 100644 index 0000000..58ac3de --- /dev/null +++ b/src/main/java/com/moon/server/entity/shujian/ImageResultEntity.java @@ -0,0 +1,10 @@ +package com.moon.server.entity.shujian; + +/** + * 鏁扮畝.褰卞儚缁撴灉绫� + * @author WWW + * @date 2023-08-31 + */ +@SuppressWarnings("AlibabaLowerCamelCaseVariableNaming") +public class ImageResultEntity { +} diff --git a/src/main/java/com/moon/server/entity/sys/ResOpEntity.java b/src/main/java/com/moon/server/entity/sys/ResOpEntity.java new file mode 100644 index 0000000..5971972 --- /dev/null +++ b/src/main/java/com/moon/server/entity/sys/ResOpEntity.java @@ -0,0 +1,94 @@ +package com.moon.server.entity.sys; + +import java.io.Serializable; +import java.sql.Timestamp; + +/** + * 璧勬簮鎿嶄綔 + * @author sws + * @date 2022-09-28 + */ + +public class ResOpEntity implements Serializable { + private static final long serialVersionUID = -7322438248126715583L; + + private int id; + + private String uname; + + private String name; + + private int resid; + + private int type; + + private String ip; + + private int userid; + + private Timestamp optime; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getUname() { + return uname; + } + + public void setUname(String uname) { + this.uname = uname; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getResid() { + return resid; + } + + public void setResid(int resid) { + this.resid = resid; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public int getUserid() { + return userid; + } + + public void setUserid(int userid) { + this.userid = userid; + } + + public Timestamp getOptime() { + return optime; + } + + public void setOptime(Timestamp optime) { + this.optime = optime; + } +} diff --git a/src/main/java/com/moon/server/mapper/sys/ResOpMapper.java b/src/main/java/com/moon/server/mapper/sys/ResOpMapper.java new file mode 100644 index 0000000..af94f0a --- /dev/null +++ b/src/main/java/com/moon/server/mapper/sys/ResOpMapper.java @@ -0,0 +1,96 @@ +package com.moon.server.mapper.sys; + +import com.moon.server.entity.sys.ResOpEntity; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 璧勬簮鎿嶄綔 + * @author sws + * @date 2022-09-28 + */ +@Mapper +@ResponseBody +public interface ResOpMapper { + /** + * 鏌ヨ璁板綍鏁� + * + * @param name + * @param type + * @param start + * @param end + * @return + */ + public Integer selectCount(String name, Integer type, Timestamp start, Timestamp end); + + /** + * 鍒嗛〉鏌ヨ + * + * @param name + * @param type + * @param start + * @param end + * @param limit + * @param offset + * @return + */ + public List<ResOpEntity> selectByPage(String name, Integer type, Timestamp start, Timestamp end, Integer limit, Integer offset); + + /** + * 鎻掑叆涓�鏉� + * + * @param resOpEntity + * @return + */ + public Integer insertResOp(ResOpEntity resOpEntity); + + /** + * 鎻掑叆澶氭潯 + * + * @param list + * @return + */ + public Integer insertResOps(List<ResOpEntity> list); + + /** + * 鍒犻櫎涓�鏉� + * + * @param id + * @return + */ + public Integer deleteResOp(int id); + + /** + * 鍒犻櫎澶氭潯 + * + * @param ids + * @return + */ + public Integer deleteResOps(List<Integer> ids); + + /** + * 鏇存柊涓�鏉� + * + * @param resOpEntity + * @return + */ + public Integer updateResOp(ResOpEntity resOpEntity); + + /** + * 鏌ヨ鍗曟潯鏁版嵁 + * + * @param id + * @return + */ + public ResOpEntity selectResOp(int id); + + /** + * 鏌ヨ鎵�鏈� + * + * @return + */ + public List<ResOpEntity> selectResOpAll(); +} diff --git a/src/main/java/com/moon/server/service/sys/ResOpService.java b/src/main/java/com/moon/server/service/sys/ResOpService.java new file mode 100644 index 0000000..2ec8c0c --- /dev/null +++ b/src/main/java/com/moon/server/service/sys/ResOpService.java @@ -0,0 +1,70 @@ +package com.moon.server.service.sys; + +import com.moon.server.entity.sys.ResOpEntity; +import com.moon.server.helper.StringHelper; +import com.moon.server.mapper.sys.ResOpMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; +import java.util.List; + +/** + * 璧勬簮鎿嶄綔琛� + * @author sws + * @date 2022-09-28 + */ +@Service +public class ResOpService implements ResOpMapper { + @Autowired + ResOpMapper resOpMapper; + + @Override + public Integer selectCount(String name, Integer type, Timestamp start, Timestamp end) { + name = StringHelper.getLikeUpperStr(name); + + return resOpMapper.selectCount(name, type, start, end); + } + + @Override + public List<ResOpEntity> selectByPage(String name, Integer type, Timestamp start, Timestamp end, Integer limit, Integer offset) { + name = StringHelper.getLikeUpperStr(name); + + return resOpMapper.selectByPage(name, type, start, end, limit, offset); + } + + @Override + public Integer insertResOp(ResOpEntity resOpEntity) { + return resOpMapper.insertResOp(resOpEntity); + } + + @Override + public Integer insertResOps(List<ResOpEntity> resOpEntity) { + return resOpMapper.insertResOps(resOpEntity); + } + + @Override + public Integer deleteResOp(int id) { + return resOpMapper.deleteResOp(id); + } + + @Override + public Integer deleteResOps(List<Integer> ids) { + return resOpMapper.deleteResOps(ids); + } + + @Override + public Integer updateResOp(ResOpEntity resOpEntity) { + return resOpMapper.updateResOp(resOpEntity); + } + + @Override + public ResOpEntity selectResOp(int id) { + return resOpMapper.selectResOp(id); + } + + @Override + public List<ResOpEntity> selectResOpAll() { + return resOpMapper.selectResOpAll(); + } +} diff --git a/src/main/resources/mapper/sys/ResOpMapper.xml b/src/main/resources/mapper/sys/ResOpMapper.xml new file mode 100644 index 0000000..b418b59 --- /dev/null +++ b/src/main/resources/mapper/sys/ResOpMapper.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.moon.server.mapper.sys.ResOpMapper"> + <select id="selectCount" resultType="java.lang.Integer"> + select count(*) from lf.sys_res_op a inner join lf.sys_user b on a.userid = b.id inner join lf.sys_res c on a.resid=c.id + <where> + 1 = 1 + <if test="name != null"> + and upper(c.cn_name) like #{name} + </if> + <if test="type != null"> + and a.type = #{type} + </if> + <if test="start != null"> + and a.optime >= #{start} + </if> + <if test="end != null"> + and a.optime <= #{end} + </if> + </where> + </select> + + <select id="selectByPage" resultType="com.moon.server.entity.sys.ResOpEntity"> + select a.*, b.uname, c.cn_name "name" + from lf.sys_res_op a + inner join lf.sys_user b on a.userid = b.id inner join lf.sys_res c on a.resid=c.id + <where> + 1 = 1 + <if test="name != null"> + and upper(c.cn_name) like #{name} + </if> + <if test="type != null"> + and a.type = #{type} + </if> + <if test="start != null"> + and a.optime >= #{start} + </if> + <if test="end != null"> + and a.optime <= #{end} + </if> + </where> + order by a.id desc + limit #{limit} offset #{offset} + </select> + + <select id="selectResOpAll" resultType="com.moon.server.entity.sys.ResOpEntity"> + select * from lf.sys_res_op order by id desc; + </select> + + <select id="selectResOp" resultType="com.moon.server.entity.sys.ResOpEntity"> + select * from lf.sys_res_op where id = #{id} + </select> + + <insert id="insertResOp" parameterType="com.moon.server.entity.sys.ResOpEntity"> + insert into lf.sys_res_op + (resid,type,ip,userid,optime) + values + (#{resid},#{type},#{ip},#{userid},now()); + </insert> + + <insert id="insertResOps"> + insert into lf.sys_res_op + (resid,type,ip,userid,optime) + values + <foreach collection="list" item="item" index="index" separator="," > + (#{item.resid},#{item.type},#{item.ip},#{item.userid},now()); + </foreach> + </insert> + + <delete id="deleteResOp"> + delete from lf.sys_res_op where id = #{id} + </delete> + + <delete id="deleteResOps"> + delete from lf.sys_res_op where id in + <foreach item="id" collection="ids" index="index" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + + <update id="updateResOp"> + update lf.sys_res_op set resid=#{resid},type=#{type},ip=#{ip},userid=#{userid},optime=now() where id=#{id} + </update> +</mapper> \ No newline at end of file -- Gitblit v1.9.3