feat():将operLog和notice以DDD的形式进项编码

boot3.0
zyf972 2025-02-25 00:21:52 +08:00
parent 9a4819aa9d
commit 33161db8c9
20 changed files with 1122 additions and 83 deletions

View File

@ -3,12 +3,7 @@ package com.muyu.common.system.domain;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.annotation.Excel.ColumnType; import com.muyu.common.core.annotation.Excel.ColumnType;
import com.muyu.common.core.web.domain.BaseEntity; import lombok.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date; import java.util.Date;
@ -18,11 +13,10 @@ import java.util.Date;
* @author muyu * @author muyu
*/ */
@Data @Data
@SuperBuilder @Builder
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@EqualsAndHashCode(callSuper = true) public class SysOperLog {
public class SysOperLog extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
@ -43,11 +37,6 @@ public class SysOperLog extends BaseEntity {
@Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据") @Excel(name = "业务类型", readConverterExp = "0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据")
private Integer businessType; private Integer businessType;
/**
*
*/
private Integer[] businessTypes;
/** /**
* *
*/ */

View File

@ -9,8 +9,11 @@ import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.system.domain.SysNotice; import com.muyu.system.domain.SysNotice;
import com.muyu.system.domain.model.SysNoticePageQueryModel; import com.muyu.system.domain.model.*;
import com.muyu.system.domain.rep.SysNoticeAddReq;
import com.muyu.system.domain.rep.SysNoticeListReq; import com.muyu.system.domain.rep.SysNoticeListReq;
import com.muyu.system.domain.rep.SysNoticeUpdReq;
import com.muyu.system.domain.resp.SysNoticeDetailResp;
import com.muyu.system.service.SysNoticeService; import com.muyu.system.service.SysNoticeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -34,8 +37,8 @@ public class SysNoticeController extends BaseController {
*/ */
@RequiresPermissions("system:notice:list") @RequiresPermissions("system:notice:list")
@PostMapping("/list") @PostMapping("/list")
public Result<DataPageResp<SysNotice>> list (@RequestBody SysNoticeListReq sysNoticeListReq) { public Result<DataPageResp<SysNoticeListModel>> list (@RequestBody SysNoticeListReq sysNoticeListReq) {
PageQueryModel<SysNotice> sysNoticePageQueryModel = noticeService.pageQuery(SysNoticePageQueryModel.reqBuild(sysNoticeListReq)); PageQueryModel<SysNoticeListModel> sysNoticePageQueryModel = noticeService.pageQuery(SysNoticePageQueryModel.reqBuild(sysNoticeListReq));
return Result.success( return Result.success(
DataPageResp.of(sysNoticePageQueryModel) DataPageResp.of(sysNoticePageQueryModel)
); );
@ -46,8 +49,9 @@ public class SysNoticeController extends BaseController {
*/ */
@RequiresPermissions("system:notice:query") @RequiresPermissions("system:notice:query")
@GetMapping(value = "/{noticeId}") @GetMapping(value = "/{noticeId}")
public Result getInfo (@PathVariable("noticeId") Long noticeId) { public Result<SysNoticeDetailResp> getInfo (@PathVariable("noticeId") Long noticeId) {
return success(noticeService.selectNoticeById(noticeId)); SysNoticeDetailModel sysNoticeDetailModel = noticeService.selectNoticeById(noticeId);
return Result.success(SysNoticeDetailResp.detailModelBuildToResp(sysNoticeDetailModel));
} }
/** /**
@ -56,9 +60,8 @@ public class SysNoticeController extends BaseController {
@RequiresPermissions("system:notice:add") @RequiresPermissions("system:notice:add")
@Log(title = "通知公告", businessType = BusinessType.INSERT) @Log(title = "通知公告", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public Result<String> add (@Validated @RequestBody SysNotice notice) { public Result<String> add (@Validated @RequestBody SysNoticeAddReq sysNoticeAddReq) {
notice.setCreateBy(SecurityUtils.getUsername()); noticeService.insertNotice(SysNoticeAddModel.addReqBuildToModel(sysNoticeAddReq,SecurityUtils::getUsername));
noticeService.insertNotice(notice);
return Result.success(); return Result.success();
} }
@ -67,10 +70,9 @@ public class SysNoticeController extends BaseController {
*/ */
@RequiresPermissions("system:notice:edit") @RequiresPermissions("system:notice:edit")
@Log(title = "通知公告", businessType = BusinessType.UPDATE) @Log(title = "通知公告", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping("/{id}")
public Result<String> edit (@Validated @RequestBody SysNotice notice) { public Result<String> edit (@PathVariable("id") Long id,@Validated @RequestBody SysNoticeUpdReq sysNoticeUpdReq) {
notice.setUpdateBy(SecurityUtils.getUsername()); noticeService.updateNotice(id, SysNoticeUpdModel.updReqBuildToModel(sysNoticeUpdReq,SecurityUtils::getUsername));
noticeService.updateNotice(notice);
return Result.success(); return Result.success();
} }

View File

@ -9,10 +9,13 @@ import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType; import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.security.annotation.InnerAuth; import com.muyu.common.security.annotation.InnerAuth;
import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.system.domain.SysOperLog; import com.muyu.system.domain.model.SysOperLogAddModel;
import com.muyu.system.domain.model.SysOperlogPageQueryModel; import com.muyu.system.domain.model.SysOperlogPageQueryModel;
import com.muyu.system.domain.rep.SysOperLogAddReq;
import com.muyu.system.domain.rep.SysOperlogListReq; import com.muyu.system.domain.rep.SysOperlogListReq;
import com.muyu.system.domain.resp.SysOperlogListResp;
import com.muyu.system.service.SysOperLogService; import com.muyu.system.service.SysOperLogService;
import io.jsonwebtoken.lang.Arrays;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -27,30 +30,51 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/operlog") @RequestMapping("/operlog")
public class SysOperlogController extends BaseController { public class SysOperlogController extends BaseController {
/**
*
*/
@Autowired @Autowired
private SysOperLogService operLogService; private SysOperLogService operLogService;
/**
*
*
* @param sysOperlogListReq
* @return
*/
@RequiresPermissions("system:operlog:list") @RequiresPermissions("system:operlog:list")
@PostMapping("/list") @PostMapping("/list")
public Result<DataPageResp<SysOperLog>> list (@RequestBody SysOperlogListReq sysOperlogListReq) { public Result<DataPageResp<SysOperlogListResp>> list (@RequestBody SysOperlogListReq sysOperlogListReq) {
PageQueryModel<SysOperLog> sysOperLogPageQueryModel = operLogService.pageQuery( PageQueryModel<SysOperlogListResp> sysOperLogPageQueryModel = operLogService.pageQuery(
SysOperlogPageQueryModel.reqBuild(sysOperlogListReq) SysOperlogPageQueryModel.reqBuild(sysOperlogListReq)
); );
return Result.success(DataPageResp.of(sysOperLogPageQueryModel)); return Result.success(DataPageResp.of(sysOperLogPageQueryModel));
} }
/**
*
*
* @param response
* @param sysOperlogListReq
*/
@Log(title = "操作日志", businessType = BusinessType.EXPORT) @Log(title = "操作日志", businessType = BusinessType.EXPORT)
@RequiresPermissions("system:operlog:export") @RequiresPermissions("system:operlog:export")
@PostMapping("/export") @PostMapping("/export")
public void export (HttpServletResponse response, SysOperlogListReq sysOperlogListReq) { public void export (HttpServletResponse response, SysOperlogListReq sysOperlogListReq) {
// TODO 导出需要重新编写 // TODO 导出需要重新编写
PageQueryModel<SysOperLog> sysOperLogPageQueryModel = operLogService.pageQuery( PageQueryModel<SysOperlogListResp> sysOperLogPageQueryModel = operLogService.pageQuery(
SysOperlogPageQueryModel.reqBuild(sysOperlogListReq) SysOperlogPageQueryModel.reqBuild(sysOperlogListReq)
); );
ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class); ExcelUtil<SysOperlogListResp> util = new ExcelUtil<>(SysOperlogListResp.class);
util.exportExcel(response, sysOperLogPageQueryModel.getDataList(), "操作日志"); util.exportExcel(response, sysOperLogPageQueryModel.getDataList(), "操作日志");
} }
/**
*
*
* @param operIds id
*/
@Log(title = "操作日志", businessType = BusinessType.DELETE) @Log(title = "操作日志", businessType = BusinessType.DELETE)
@RequiresPermissions("system:operlog:remove") @RequiresPermissions("system:operlog:remove")
@DeleteMapping("/{operIds}") @DeleteMapping("/{operIds}")
@ -59,7 +83,10 @@ public class SysOperlogController extends BaseController {
return Result.success(); return Result.success();
} }
@RequiresPermissions("system:operlog:remove") /**
*
*/
@RequiresPermissions("system:operlog:clean")
@Log(title = "操作日志", businessType = BusinessType.CLEAN) @Log(title = "操作日志", businessType = BusinessType.CLEAN)
@DeleteMapping("/clean") @DeleteMapping("/clean")
public Result<String> clean () { public Result<String> clean () {
@ -67,10 +94,15 @@ public class SysOperlogController extends BaseController {
return success(); return success();
} }
/**
*
*
* @param operLogAddReq
*/
@InnerAuth @InnerAuth
@PostMapping @PostMapping
public Result<String> add (@RequestBody SysOperLog operLog) { public Result<String> add (@RequestBody SysOperLogAddReq operLogAddReq) {
operLogService.insertOperlog(operLog); operLogService.insertOperlog(SysOperLogAddModel.addReqBuildToModel(operLogAddReq));
return Result.success(); return Result.success();
} }
} }

View File

@ -4,9 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.common.core.web.domain.BaseEntity; import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.xss.Xss; import com.muyu.system.domain.model.SysNoticeAddModel;
import jakarta.validation.constraints.NotBlank; import com.muyu.system.domain.model.SysNoticeDetailModel;
import jakarta.validation.constraints.Size; import com.muyu.system.domain.model.SysNoticeUpdModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -53,10 +53,48 @@ public class SysNotice extends BaseEntity {
*/ */
private String status; private String status;
@Xss(message = "公告标题不能包含脚本字符") /**
@NotBlank(message = "公告标题不能为空") * scope
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符") */
public String getNoticeTitle () { private String scope;
return noticeTitle;
/**
*
*
* @param sysNoticeAddModel
* @return
*/
public static SysNotice addModelBuildToInfo(SysNoticeAddModel sysNoticeAddModel){
return SysNotice.builder()
.noticeId(sysNoticeAddModel.getNoticeId())
.noticeTitle(sysNoticeAddModel.getNoticeTitle())
.noticeType(sysNoticeAddModel.getNoticeType())
.noticeContent(sysNoticeAddModel.getNoticeContent())
.status(sysNoticeAddModel.getStatus())
.scope(sysNoticeAddModel.getScope())
.createBy(sysNoticeAddModel.getCreateBy())
.createTime(sysNoticeAddModel.getCreateTime())
.build();
}
/**
*
*
* @param id ID
* @param sysNoticeUpdModel
* @return
*/
public static SysNotice updReqBuildToInfo(Long id, SysNoticeUpdModel sysNoticeUpdModel){
return SysNotice.builder()
.noticeId(id)
.noticeTitle(sysNoticeUpdModel.getNoticeTitle())
.noticeType(sysNoticeUpdModel.getNoticeType())
.noticeContent(sysNoticeUpdModel.getNoticeContent())
.status(sysNoticeUpdModel.getStatus())
.updateBy(sysNoticeUpdModel.getUpdateBy())
.updateTime(sysNoticeUpdModel.getUpdateTime())
.build();
} }
} }

View File

@ -0,0 +1,79 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.xss.Xss;
import com.muyu.system.domain.rep.SysNoticeAddReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.*;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.function.Supplier;
/**
*
*
* @author ?
* @Date 2025/2/24 12:25
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysNoticeAddModel extends BaseEntity {
/**
* ID
*/
private Long noticeId;
/**
*
*/
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
/**
* scope
*/
private String scope;
/**
*
*
* @param sysNoticeAddReq
* @param creatBy
* @return
*/
public static SysNoticeAddModel addReqBuildToModel(SysNoticeAddReq sysNoticeAddReq, Supplier<String> creatBy) {
return SysNoticeAddModel.builder()
.noticeTitle(sysNoticeAddReq.getNoticeTitle())
.noticeType(sysNoticeAddReq.getNoticeType())
.noticeContent(sysNoticeAddReq.getNoticeContent())
.status(sysNoticeAddReq.getStatus())
.scope("若依框架")
.createBy(creatBy.get())
.createTime(new Date())
.build();
}
}

View File

@ -0,0 +1,62 @@
package com.muyu.system.domain.model;
import com.muyu.system.domain.SysNotice;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*
* @author ?
* @Date 2025/2/24 19:41
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysNoticeDetailModel {
/**
* ID
*/
private Long noticeId;
/**
*
*/
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
/**
*
*
* @param sysNotice
* @return
*/
public static SysNoticeDetailModel infoBuildToDetailModel(SysNotice sysNotice) {
return SysNoticeDetailModel.builder()
.noticeId(sysNotice.getNoticeId())
.noticeTitle(sysNotice.getNoticeTitle())
.noticeType(sysNotice.getNoticeType())
.noticeContent(sysNotice.getNoticeContent())
.status(sysNotice.getStatus())
.build();
}
}

View File

@ -0,0 +1,65 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.system.domain.SysNotice;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author ?
* @Date 2025/2/24 12:01
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysNoticeListModel extends BaseEntity {
/**
* ID
*/
private Long noticeId;
/**
*
*/
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
/**
*
*
* @param sysNotice
* @return
*/
public static SysNoticeListModel listInfoBuildToModel(SysNotice sysNotice){
return SysNoticeListModel.builder()
.noticeId(sysNotice.getNoticeId())
.noticeTitle(sysNotice.getNoticeTitle())
.noticeType(sysNotice.getNoticeType())
.noticeContent(sysNotice.getNoticeContent())
.status(sysNotice.getStatus())
.createBy(sysNotice.getCreateBy())
.createTime(sysNotice.getCreateTime())
.remark(sysNotice.getRemark())
.build();
}
}

View File

@ -0,0 +1,72 @@
package com.muyu.system.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.xss.Xss;
import com.muyu.system.domain.rep.SysNoticeUpdReq;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.function.Supplier;
/**
*
*
* @author ?
* @Date 2025/2/24 15:58
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysNoticeUpdModel extends BaseEntity {
/**
*
*/
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
/**
*
*
* @param sysNoticeUpdReq
* @param updateBy
* @return
*/
public static SysNoticeUpdModel updReqBuildToModel(SysNoticeUpdReq sysNoticeUpdReq, Supplier<String> updateBy){
return SysNoticeUpdModel.builder()
.noticeTitle(sysNoticeUpdReq.getNoticeTitle())
.noticeType(sysNoticeUpdReq.getNoticeType())
.noticeContent(sysNoticeUpdReq.getNoticeContent())
.status(sysNoticeUpdReq.getStatus())
.remark(sysNoticeUpdReq.getRemark())
.updateBy(updateBy.get())
.updateTime(new Date())
.build();
}
}

View File

@ -0,0 +1,132 @@
package com.muyu.system.domain.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.system.domain.rep.SysOperLogAddReq;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
*
*
* @author ?
* @Date 2025/2/23 22:21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysOperLogAddModel {
/**
*
*/
private Long operId;
/**
*
*/
private String title;
/**
* 0 1 2 3
*/
private Integer businessType;
/**
*
*/
private String method;
/**
*
*/
private String requestMethod;
/**
* 0 1 2
*/
private Integer operatorType;
/**
*
*/
private String operName;
/**
*
*/
private String deptName;
/**
* url
*/
private String operUrl;
/**
*
*/
private String operIp;
/**
*
*/
private String operParam;
/**
*
*/
private String jsonResult;
/**
* 0 1
*/
private Integer status;
/**
*
*/
private String errorMsg;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date operTime;
/**
*
*/
private Long costTime;
/**
*
*
* @param sysOperLogAddReq
* @return
*/
public static SysOperLogAddModel addReqBuildToModel(SysOperLogAddReq sysOperLogAddReq){
return SysOperLogAddModel.builder()
.operId(sysOperLogAddReq.getOperId())
.title(sysOperLogAddReq.getTitle())
.businessType(sysOperLogAddReq.getBusinessType())
.method(sysOperLogAddReq.getMethod())
.requestMethod(sysOperLogAddReq.getRequestMethod())
.operatorType(sysOperLogAddReq.getOperatorType())
.operName(sysOperLogAddReq.getOperName())
.deptName(sysOperLogAddReq.getDeptName())
.operUrl(sysOperLogAddReq.getOperUrl())
.operIp(sysOperLogAddReq.getOperIp())
.operParam(sysOperLogAddReq.getOperParam())
.jsonResult(sysOperLogAddReq.getJsonResult())
.status(sysOperLogAddReq.getStatus())
.errorMsg(sysOperLogAddReq.getErrorMsg())
.operTime(new Date())
.costTime(sysOperLogAddReq.getCostTime())
.build();
}
}

View File

@ -0,0 +1,54 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.xss.Xss;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author ?
* @Date 2025/2/24 12:22
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysNoticeAddReq extends BaseEntity {
/**
* ID
*/
private Long noticeId;
/**
*
*/
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
/**
* scope
*/
private String scope;
}

View File

@ -0,0 +1,46 @@
package com.muyu.system.domain.rep;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.core.xss.Xss;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
*
*
* @author ?
* @Date 2025/2/24 15:57
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysNoticeUpdReq extends BaseEntity {
/**
*
*/
@Xss(message = "公告标题不能包含脚本字符")
@NotBlank(message = "公告标题不能为空")
@Size(min = 0, max = 50, message = "公告标题不能超过50个字符")
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
}

View File

@ -0,0 +1,103 @@
package com.muyu.system.domain.rep;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
*
*
* @author ?
* @Date 2025/2/23 22:10
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysOperLogAddReq {
/**
*
*/
private Long operId;
/**
*
*/
private String title;
/**
* 0 1 2 3
*/
private Integer businessType;
/**
*
*/
private String method;
/**
*
*/
private String requestMethod;
/**
* 0 1 2
*/
private Integer operatorType;
/**
*
*/
private String operName;
/**
*
*/
private String deptName;
/**
* url
*/
private String operUrl;
/**
*
*/
private String operIp;
/**
*
*/
private String operParam;
/**
*
*/
private String jsonResult;
/**
* 0 1
*/
private Integer status;
/**
*
*/
private String errorMsg;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date operTime;
/**
*
*/
private Long costTime;
}

View File

@ -0,0 +1,61 @@
package com.muyu.system.domain.resp;
import com.muyu.system.domain.model.SysNoticeDetailModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*
*
* @author ?
* @Date 2025/2/24 19:37
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysNoticeDetailResp {
/**
* ID
*/
private Long noticeId;
/**
*
*/
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
/**
*
* @param sysNoticeDetailModel
* @return
*/
public static SysNoticeDetailResp detailModelBuildToResp(SysNoticeDetailModel sysNoticeDetailModel){
return SysNoticeDetailResp.builder()
.noticeId(sysNoticeDetailModel.getNoticeId())
.noticeTitle(sysNoticeDetailModel.getNoticeTitle())
.noticeType(sysNoticeDetailModel.getNoticeType())
.noticeContent(sysNoticeDetailModel.getNoticeContent())
.status(sysNoticeDetailModel.getStatus())
.build();
}
}

View File

@ -0,0 +1,46 @@
package com.muyu.system.domain.resp;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.SuperBuilder;
/**
*
*
* @author ?
* @Date 2025/2/24 11:58
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysNoticeListResp extends BaseEntity {
/**
* ID
*/
private Long noticeId;
/**
*
*/
private String noticeTitle;
/**
* 1 2
*/
private String noticeType;
/**
*
*/
private String noticeContent;
/**
* 0 1
*/
private String status;
}

View File

@ -0,0 +1,103 @@
package com.muyu.system.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
*
*
* @author ?
* @Date 2025/2/23 22:34
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysOperLogDetailResp {
/**
*
*/
private Long operId;
/**
*
*/
private String title;
/**
* 0 1 2 3
*/
private Integer businessType;
/**
*
*/
private String method;
/**
*
*/
private String requestMethod;
/**
* 0 1 2
*/
private Integer operatorType;
/**
*
*/
private String operName;
/**
*
*/
private String deptName;
/**
* url
*/
private String operUrl;
/**
*
*/
private String operIp;
/**
*
*/
private String operParam;
/**
*
*/
private String jsonResult;
/**
* 0 1
*/
private Integer status;
/**
*
*/
private String errorMsg;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date operTime;
/**
*
*/
private Long costTime;
}

View File

@ -0,0 +1,126 @@
package com.muyu.system.domain.resp;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.common.system.domain.SysOperLog;
import lombok.*;
import java.util.Date;
/**
*
*
* @author ?
* @Date 2025/2/23 19:57
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SysOperlogListResp {
/**
*
*/
private Long operId;
/**
*
*/
private String title;
/**
* 0 1 2 3
*/
private Integer businessType;
/**
*
*/
private String method;
/**
*
*/
private String requestMethod;
/**
* 0 1 2
*/
private Integer operatorType;
/**
*
*/
private String operName;
/**
*
*/
private String deptName;
/**
* url
*/
private String operUrl;
/**
*
*/
private String operIp;
/**
*
*/
private String operParam;
/**
*
*/
private String jsonResult;
/**
* 0 1
*/
private Integer status;
/**
*
*/
private String errorMsg;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date operTime;
/**
*
*/
private Long costTime;
/**
*
*/
public static SysOperlogListResp infoBuildToResp(SysOperLog sysOperLog){
return SysOperlogListResp.builder()
.operId(sysOperLog.getOperId())
.title(sysOperLog.getTitle())
.businessType(sysOperLog.getBusinessType())
.method(sysOperLog.getMethod())
.requestMethod(sysOperLog.getRequestMethod())
.operatorType(sysOperLog.getOperatorType())
.operName(sysOperLog.getOperName())
.deptName(sysOperLog.getDeptName())
.operUrl(sysOperLog.getOperUrl())
.operIp(sysOperLog.getOperIp())
.operParam(sysOperLog.getOperParam())
.jsonResult(sysOperLog.getJsonResult())
.status(sysOperLog.getStatus())
.errorMsg(sysOperLog.getErrorMsg())
.operTime(sysOperLog.getOperTime())
.costTime(sysOperLog.getCostTime())
.build();
}
}

View File

@ -3,7 +3,8 @@ package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.system.domain.SysNotice; import com.muyu.system.domain.SysNotice;
import com.muyu.system.domain.model.SysNoticePageQueryModel; import com.muyu.system.domain.model.*;
import com.muyu.system.domain.rep.SysNoticeUpdReq;
import java.util.List; import java.util.List;
@ -20,7 +21,7 @@ public interface SysNoticeService extends IService<SysNotice> {
* @param sysNoticePageQueryModel * @param sysNoticePageQueryModel
* @return * @return
*/ */
PageQueryModel<SysNotice> pageQuery(SysNoticePageQueryModel sysNoticePageQueryModel); PageQueryModel<SysNoticeListModel> pageQuery(SysNoticePageQueryModel sysNoticePageQueryModel);
/** /**
* *
@ -29,25 +30,24 @@ public interface SysNoticeService extends IService<SysNotice> {
* *
* @return * @return
*/ */
public SysNotice selectNoticeById (Long noticeId); public SysNoticeDetailModel selectNoticeById (Long noticeId);
/** /**
* *
* *
* @param notice * @param sysNoticeAddModel
* *
* @return * @return
*/ */
public void insertNotice (SysNotice notice); public void insertNotice (SysNoticeAddModel sysNoticeAddModel);
/** /**
* *
* *
* @param notice * @param sysNoticeUpdModel
* * @param id id
* @return
*/ */
public void updateNotice (SysNotice notice); public void updateNotice (Long id, SysNoticeUpdModel sysNoticeUpdModel);
/** /**
* *

View File

@ -3,7 +3,9 @@ package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysOperLog; import com.muyu.common.system.domain.SysOperLog;
import com.muyu.system.domain.model.SysOperLogAddModel;
import com.muyu.system.domain.model.SysOperlogPageQueryModel; import com.muyu.system.domain.model.SysOperlogPageQueryModel;
import com.muyu.system.domain.resp.SysOperlogListResp;
import java.util.List; import java.util.List;
@ -16,18 +18,18 @@ public interface SysOperLogService extends IService<SysOperLog> {
/** /**
* *
* *
* @param operLog * @param sysOperLogAddModel
* *
* @return * @return
*/ */
public void insertOperlog (SysOperLog operLog); public void insertOperlog (SysOperLogAddModel sysOperLogAddModel);
/** /**
* *
* @param sysOperlogPageQueryModel * @param sysOperlogPageQueryModel
* @return * @return
*/ */
PageQueryModel<SysOperLog> pageQuery(SysOperlogPageQueryModel sysOperlogPageQueryModel); PageQueryModel<SysOperlogListResp> pageQuery(SysOperlogPageQueryModel sysOperlogPageQueryModel);
/** /**
* *

View File

@ -6,7 +6,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.system.domain.SysNotice; import com.muyu.system.domain.SysNotice;
import com.muyu.system.domain.model.SysNoticePageQueryModel; import com.muyu.system.domain.model.*;
import com.muyu.system.domain.rep.SysNoticeUpdReq;
import com.muyu.system.mapper.SysNoticeMapper; import com.muyu.system.mapper.SysNoticeMapper;
import com.muyu.system.service.SysNoticeService; import com.muyu.system.service.SysNoticeService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -21,9 +22,6 @@ import java.util.List;
*/ */
@Service @Service
public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice> implements SysNoticeService { public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice> implements SysNoticeService {
@Autowired
private SysNoticeMapper noticeMapper;
/** /**
* *
@ -31,13 +29,20 @@ public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice
* @return * @return
*/ */
@Override @Override
public PageQueryModel<SysNotice> pageQuery(SysNoticePageQueryModel sysNoticePageQueryModel) { public PageQueryModel<SysNoticeListModel> pageQuery(SysNoticePageQueryModel sysNoticePageQueryModel) {
LambdaQueryWrapper<SysNotice> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysNotice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(sysNoticePageQueryModel.getNoticeTitle()),SysNotice::getNoticeTitle, sysNoticePageQueryModel.getNoticeTitle()); queryWrapper.like(StringUtils.isNotEmpty(sysNoticePageQueryModel.getNoticeTitle()),SysNotice::getNoticeTitle, sysNoticePageQueryModel.getNoticeTitle());
queryWrapper.eq(StringUtils.isNotEmpty(sysNoticePageQueryModel.getNoticeType()),SysNotice::getNoticeType, sysNoticePageQueryModel.getNoticeType()); queryWrapper.eq(StringUtils.isNotEmpty(sysNoticePageQueryModel.getNoticeType()),SysNotice::getNoticeType, sysNoticePageQueryModel.getNoticeType());
queryWrapper.like(StringUtils.isNotEmpty(sysNoticePageQueryModel.getCreateBy()),SysNotice::getCreateBy, sysNoticePageQueryModel.getCreateBy()); queryWrapper.like(StringUtils.isNotEmpty(sysNoticePageQueryModel.getCreateBy()),SysNotice::getCreateBy, sysNoticePageQueryModel.getCreateBy());
Page<SysNotice> page = this.page(sysNoticePageQueryModel.buildPage(), queryWrapper); Page<SysNotice> page = this.page(sysNoticePageQueryModel.buildPage(), queryWrapper);
return PageQueryModel.of(page); List<SysNoticeListModel> noticeListModels = page.getRecords().stream()
.map(SysNoticeListModel::listInfoBuildToModel)
.toList();
Page<SysNoticeListModel> modelPage = new Page<>(page.getCurrent(), page.getSize());
modelPage.setRecords(noticeListModels);
modelPage.setTotal(page.getTotal());
modelPage.setOrders(page.orders());
return PageQueryModel.of(modelPage);
} }
/** /**
@ -48,40 +53,36 @@ public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice
* @return * @return
*/ */
@Override @Override
public SysNotice selectNoticeById (Long noticeId) { public SysNoticeDetailModel selectNoticeById (Long noticeId) {
return this.getById(noticeId); SysNotice sysNotice = this.getById(noticeId);
return SysNoticeDetailModel.infoBuildToDetailModel(sysNotice);
} }
/** /**
* *
* *
* @param notice * @param sysNoticeAddModel
*
* @return
*/ */
@Override @Override
public void insertNotice (SysNotice notice) { public void insertNotice (SysNoticeAddModel sysNoticeAddModel) {
this.save(notice); this.save(SysNotice.addModelBuildToInfo(sysNoticeAddModel));
} }
/** /**
* *
* *
* @param notice * @param id id
* * @param sysNoticeUpdModel
* @return
*/ */
@Override @Override
public void updateNotice (SysNotice notice) { public void updateNotice (Long id, SysNoticeUpdModel sysNoticeUpdModel) {
this.updateById(notice); this.updateById(SysNotice.updReqBuildToInfo(id, sysNoticeUpdModel));
} }
/** /**
* *
* *
* @param noticeId ID * @param noticeId ID
*
* @return
*/ */
@Override @Override
public void deleteNoticeById (Long noticeId) { public void deleteNoticeById (Long noticeId) {
@ -92,8 +93,6 @@ public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice
* *
* *
* @param noticeIds ID * @param noticeIds ID
*
* @return
*/ */
@Override @Override
public void deleteNoticeByIds (List<Long> noticeIds) { public void deleteNoticeByIds (List<Long> noticeIds) {

View File

@ -6,12 +6,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.core.web.page.PageQueryModel;
import com.muyu.common.system.domain.SysOperLog; import com.muyu.common.system.domain.SysOperLog;
import com.muyu.system.domain.model.SysOperLogAddModel;
import com.muyu.system.domain.model.SysOperlogPageQueryModel; import com.muyu.system.domain.model.SysOperlogPageQueryModel;
import com.muyu.system.domain.resp.SysOperlogListResp;
import com.muyu.system.mapper.SysOperLogMapper; import com.muyu.system.mapper.SysOperLogMapper;
import com.muyu.system.service.SysOperLogService; import com.muyu.system.service.SysOperLogService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@ -28,13 +32,30 @@ public class SysOperLogServiceImpl extends ServiceImpl<SysOperLogMapper, SysOper
/** /**
* *
* *
* @param operLog * @param sysOperLogAddModel
*
* @return
*/ */
@Override @Override
public void insertOperlog (SysOperLog operLog) { public void insertOperlog (SysOperLogAddModel sysOperLogAddModel) {
this.save(operLog); this.save(
SysOperLog.builder()
.operId(sysOperLogAddModel.getOperId())
.title(sysOperLogAddModel.getTitle())
.businessType(sysOperLogAddModel.getBusinessType())
.method(sysOperLogAddModel.getMethod())
.requestMethod(sysOperLogAddModel.getRequestMethod())
.operatorType(sysOperLogAddModel.getOperatorType())
.operName(sysOperLogAddModel.getOperName())
.deptName(sysOperLogAddModel.getDeptName())
.operUrl(sysOperLogAddModel.getOperUrl())
.operIp(sysOperLogAddModel.getOperIp())
.operParam(sysOperLogAddModel.getOperParam())
.jsonResult(sysOperLogAddModel.getJsonResult())
.status(sysOperLogAddModel.getStatus())
.errorMsg(sysOperLogAddModel.getErrorMsg())
.operTime(sysOperLogAddModel.getOperTime())
.costTime(sysOperLogAddModel.getCostTime())
.build()
);
} }
@ -44,7 +65,7 @@ public class SysOperLogServiceImpl extends ServiceImpl<SysOperLogMapper, SysOper
* @return * @return
*/ */
@Override @Override
public PageQueryModel<SysOperLog> pageQuery(SysOperlogPageQueryModel sysOperlogPageQueryModel) { public PageQueryModel<SysOperlogListResp> pageQuery(SysOperlogPageQueryModel sysOperlogPageQueryModel) {
LambdaQueryWrapper<SysOperLog> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysOperLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtils.isNotEmpty(sysOperlogPageQueryModel.getOperIp()),SysOperLog::getOperIp, sysOperlogPageQueryModel.getOperIp()); queryWrapper.like(StringUtils.isNotEmpty(sysOperlogPageQueryModel.getOperIp()),SysOperLog::getOperIp, sysOperlogPageQueryModel.getOperIp());
queryWrapper.like(StringUtils.isNotEmpty(sysOperlogPageQueryModel.getTitle()),SysOperLog::getTitle, sysOperlogPageQueryModel.getTitle()); queryWrapper.like(StringUtils.isNotEmpty(sysOperlogPageQueryModel.getTitle()),SysOperLog::getTitle, sysOperlogPageQueryModel.getTitle());
@ -54,7 +75,14 @@ public class SysOperLogServiceImpl extends ServiceImpl<SysOperLogMapper, SysOper
queryWrapper.gt(Objects.nonNull(sysOperlogPageQueryModel.getBeginTime()),SysOperLog::getOperTime, sysOperlogPageQueryModel.getBeginTime()); queryWrapper.gt(Objects.nonNull(sysOperlogPageQueryModel.getBeginTime()),SysOperLog::getOperTime, sysOperlogPageQueryModel.getBeginTime());
queryWrapper.lt(Objects.nonNull(sysOperlogPageQueryModel.getEndTime()),SysOperLog::getOperTime, sysOperlogPageQueryModel.getEndTime()); queryWrapper.lt(Objects.nonNull(sysOperlogPageQueryModel.getEndTime()),SysOperLog::getOperTime, sysOperlogPageQueryModel.getEndTime());
Page<SysOperLog> page = this.page(sysOperlogPageQueryModel.buildPage(), queryWrapper); Page<SysOperLog> page = this.page(sysOperlogPageQueryModel.buildPage(), queryWrapper);
return PageQueryModel.of(page); List<SysOperlogListResp> sysOperlogListResp = page.getRecords().stream()
.map(SysOperlogListResp::infoBuildToResp)
.toList();
Page<SysOperlogListResp> respPage = new Page<>(page.getCurrent(),page.getSize());
respPage.setRecords(sysOperlogListResp);
respPage.setTotal(page.getTotal());
respPage.setOrders(page.orders());
return PageQueryModel.of(respPage);
} }
/** /**