农场日志信息
This commit is contained in:
+6
@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
|
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
@@ -200,4 +201,9 @@ public interface AdminUserService {
|
|||||||
*/
|
*/
|
||||||
List<AdminUserDO> getUsersByStatus(Integer status);
|
List<AdminUserDO> getUsersByStatus(Integer status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据系统用户id获取cpUser用户
|
||||||
|
**/
|
||||||
|
List<CpUserDO> getCpUserByAdminUser(List<Long> adminUserIdList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+21
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.system.service.user;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
||||||
@@ -12,13 +13,16 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi
|
|||||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
|
import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
|
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
|
||||||
import cn.iocoder.yudao.module.system.convert.user.UserConvert;
|
import cn.iocoder.yudao.module.system.convert.user.UserConvert;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper;
|
||||||
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
||||||
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
||||||
import cn.iocoder.yudao.module.system.service.dept.PostService;
|
import cn.iocoder.yudao.module.system.service.dept.PostService;
|
||||||
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
||||||
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
|
import cn.iocoder.yudao.module.system.service.tenant.TenantService;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
@@ -29,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
||||||
@@ -61,6 +66,8 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private FileApi fileApi;
|
private FileApi fileApi;
|
||||||
|
@Resource
|
||||||
|
private CpUserMapper cpUserMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
||||||
@@ -398,4 +405,18 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
return adminUserMapper.selectListByStatus(status);
|
return adminUserMapper.selectListByStatus(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<CpUserDO> getCpUserByAdminUser(List<Long> adminUserIdList){
|
||||||
|
List<AdminUserDO> adminUserList = adminUserMapper.selectList(Wrappers.<AdminUserDO>lambdaQuery().in(AdminUserDO::getId, adminUserIdList));
|
||||||
|
if (ObjectUtil.isEmpty(adminUserList)){
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
List<String> usernameList = adminUserList.stream().map(AdminUserDO::getUsername).collect(Collectors.toList());
|
||||||
|
List<CpUserDO> cpUserList = cpUserMapper.selectList(Wrappers.<CpUserDO>lambdaQuery().in(CpUserDO::getUserId, usernameList));
|
||||||
|
if (ObjectUtil.isEmpty(cpUserList)){
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
return cpUserList;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,22 @@
|
|||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
<artifactId>yudao-spring-boot-starter-mybatis</artifactId>
|
<artifactId>yudao-spring-boot-starter-mybatis</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjweaver</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>aopalliance</groupId>
|
||||||
|
<artifactId>aopalliance</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjrt</artifactId>
|
||||||
|
<version>1.9.5</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -24,7 +24,10 @@ public interface ErrorCodeConstants{
|
|||||||
ErrorCode CROP_RECORD_NOT_EXISTS = new ErrorCode(1000007009, "农场作物出入记录不存在");
|
ErrorCode CROP_RECORD_NOT_EXISTS = new ErrorCode(1000007009, "农场作物出入记录不存在");
|
||||||
|
|
||||||
ErrorCode WORK_HOUR_NOT_EXISTS = new ErrorCode(1000007010, "工时不存在");
|
ErrorCode WORK_HOUR_NOT_EXISTS = new ErrorCode(1000007010, "工时不存在");
|
||||||
ErrorCode TASK_CATE_NOT_EXISTS = new ErrorCode(1000007010, "任务类型不存在");
|
ErrorCode TASK_CATE_NOT_EXISTS = new ErrorCode(1000007011, "任务类型不存在");
|
||||||
|
|
||||||
|
|
||||||
|
ErrorCode LOG_MSG_NOT_EXISTS = new ErrorCode(1000007012, "农场日志信息不存在");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Created by jiu on 2022/6/13.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Target({ElementType.METHOD, ElementType.PARAMETER})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public @interface FarmMsg {
|
||||||
|
|
||||||
|
String type() default "";
|
||||||
|
|
||||||
|
String title() default "";
|
||||||
|
}
|
||||||
+76
@@ -0,0 +1,76 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.annotation;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
||||||
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.logMsg.LogMsgMapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.service.logMsg.LogMsgService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.AfterReturning;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
import org.aspectj.lang.reflect.MethodSignature;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.bind.annotation.RequestAttribute;
|
||||||
|
import org.springframework.web.context.request.RequestAttributes;
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Created by jiu on 2022/6/13.
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class FarmMsgAspect {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private LogMsgMapper logMsgMapper;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定义切入点 @PointCut
|
||||||
|
* 使用了@FarmMsg注解的地方切入
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
@Pointcut("@annotation(cn.iocoder.yudao.module.farm.annotation.FarmMsg)")
|
||||||
|
public void farmMsgPointCut(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拦截用户操作日志, 连接点执行完成后记录, 如果连接点异常,则不会执行
|
||||||
|
* @param jointPoint 切入点
|
||||||
|
* @param result 返回结果
|
||||||
|
**/
|
||||||
|
@AfterReturning(value = "farmMsgPointCut()", returning = "result")
|
||||||
|
public void saveFarmMsg(JoinPoint jointPoint, Object result){
|
||||||
|
|
||||||
|
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
|
||||||
|
HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
|
||||||
|
|
||||||
|
//从切入点通过反射获取切入点方法
|
||||||
|
MethodSignature signature = (MethodSignature) jointPoint.getSignature();
|
||||||
|
|
||||||
|
//获取切入点的方法
|
||||||
|
Method method = signature.getMethod();
|
||||||
|
|
||||||
|
//获取操作的type, title
|
||||||
|
FarmMsg farmMsg = method.getAnnotation(FarmMsg.class);
|
||||||
|
|
||||||
|
//插入农场日志信息
|
||||||
|
LogMsgDO msg = LogMsgDO.builder()
|
||||||
|
.type(farmMsg.type())
|
||||||
|
.title(farmMsg.title())
|
||||||
|
.userId(getLoginUserId())
|
||||||
|
.build();
|
||||||
|
logMsgMapper.insert(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
+112
@@ -0,0 +1,112 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageDTO;
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.dto.LogMsgDTO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.statistical.dto.WorkStaticDTO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.workHour.dto.WorkTotalDTO;
|
||||||
|
import com.zsw.base.R;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import javax.servlet.http.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||||
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
|
import cn.iocoder.yudao.module.farm.convert.logMsg.LogMsgConvert;
|
||||||
|
import cn.iocoder.yudao.module.farm.service.logMsg.LogMsgService;
|
||||||
|
|
||||||
|
@Api(tags = "管理后台 - 农场日志信息")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/farm/log-msg")
|
||||||
|
@Validated
|
||||||
|
public class LogMsgController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private LogMsgService logMsgService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@ApiOperation("创建")
|
||||||
|
@PreAuthorize("@ss.hasPermission('farm:log-msg:create')")
|
||||||
|
public CommonResult<Long> createLogMsg(@Valid @RequestBody LogMsgCreateReqVO createReqVO) {
|
||||||
|
return success(logMsgService.createLogMsg(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@ApiOperation("更新")
|
||||||
|
@PreAuthorize("@ss.hasPermission('farm:log-msg:update')")
|
||||||
|
public CommonResult<Boolean> updateLogMsg(@Valid @RequestBody LogMsgUpdateReqVO updateReqVO) {
|
||||||
|
logMsgService.updateLogMsg(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@ApiOperation("删除")
|
||||||
|
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
|
||||||
|
@PreAuthorize("@ss.hasPermission('farm:log-msg:delete')")
|
||||||
|
public CommonResult<Boolean> deleteLogMsg(@RequestParam("id") Long id) {
|
||||||
|
logMsgService.deleteLogMsg(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@ApiOperation("获得")
|
||||||
|
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
||||||
|
@PreAuthorize("@ss.hasPermission('farm:log-msg:query')")
|
||||||
|
public CommonResult<LogMsgRespVO> getLogMsg(@RequestParam("id") Long id) {
|
||||||
|
LogMsgDO logMsg = logMsgService.getLogMsg(id);
|
||||||
|
return success(LogMsgConvert.INSTANCE.convert(logMsg));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
@ApiOperation("获得列表")
|
||||||
|
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
|
||||||
|
@PreAuthorize("@ss.hasPermission('farm:log-msg:query')")
|
||||||
|
public CommonResult<List<LogMsgRespVO>> getLogMsgList(@RequestParam("ids") Collection<Long> ids) {
|
||||||
|
List<LogMsgDO> list = logMsgService.getLogMsgList(ids);
|
||||||
|
return success(LogMsgConvert.INSTANCE.convertList(list));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@ApiOperation("获得分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('farm:log-msg:query')")
|
||||||
|
public CommonResult<PageResult<LogMsgRespVO>> getLogMsgPage(@Valid LogMsgPageReqVO pageVO) {
|
||||||
|
PageResult<LogMsgDO> pageResult = logMsgService.getLogMsgPage(pageVO);
|
||||||
|
return success(LogMsgConvert.INSTANCE.convertPage(pageResult));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@ApiOperation("导出 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('farm:log-msg:export')")
|
||||||
|
@OperateLog(type = EXPORT)
|
||||||
|
public void exportLogMsgExcel(@Valid LogMsgExportReqVO exportReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
List<LogMsgDO> list = logMsgService.getLogMsgList(exportReqVO);
|
||||||
|
// 导出 Excel
|
||||||
|
List<LogMsgExcelVO> datas = LogMsgConvert.INSTANCE.convertList02(list);
|
||||||
|
ExcelUtils.write(response, ".xls", "数据", LogMsgExcelVO.class, datas);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/logMsgList")
|
||||||
|
@ApiOperation("农场日志信息")
|
||||||
|
public R<PageVO<LogMsgDTO>> logMsgList(@RequestBody PageDTO pageDTO){
|
||||||
|
return logMsgService.logMsgList(pageDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.dto;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Created by jiu on 2022/6/14.
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class LogMsgDTO extends LogMsgDO {
|
||||||
|
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
private String userIcon;
|
||||||
|
}
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base VO,提供给添加、修改、详细的子 VO 使用
|
||||||
|
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class LogMsgBaseVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
}
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@ApiModel("管理后台 - 创建 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class LogMsgCreateReqVO extends LogMsgBaseVO {
|
||||||
|
|
||||||
|
}
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Excel VO
|
||||||
|
*
|
||||||
|
* @author 尚筱璇
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class LogMsgExcelVO {
|
||||||
|
|
||||||
|
@ExcelProperty("")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ExcelProperty("类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ExcelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ExcelProperty("用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
}
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@ApiModel(value = "管理后台 - Excel 导出 Request VO", description = "参数和 LogMsgPageReqVO 是一致的")
|
||||||
|
@Data
|
||||||
|
public class LogMsgExportReqVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "开始创建时间")
|
||||||
|
private Date beginCreateTime;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "结束创建时间")
|
||||||
|
private Date endCreateTime;
|
||||||
|
|
||||||
|
}
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@ApiModel("管理后台 - 分页 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class LogMsgPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "开始创建时间")
|
||||||
|
private Date beginCreateTime;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
@ApiModelProperty(value = "结束创建时间")
|
||||||
|
private Date endCreateTime;
|
||||||
|
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
|
@ApiModel("管理后台 - Response VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class LogMsgRespVO extends LogMsgBaseVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "", required = true)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间", required = true)
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
}
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.annotations.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@ApiModel("管理后台 - 更新 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class LogMsgUpdateReqVO extends LogMsgBaseVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "", required = true)
|
||||||
|
@NotNull(message = "不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
||||||
+4
@@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.project;
|
package cn.iocoder.yudao.module.farm.controller.admin.project;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.page.PageVO;
|
import cn.iocoder.yudao.framework.common.page.PageVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.annotation.FarmMsg;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO;
|
||||||
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectPageDTO;
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectPageDTO;
|
||||||
import com.zsw.base.R;
|
import com.zsw.base.R;
|
||||||
@@ -38,6 +39,7 @@ public class ProjectController {
|
|||||||
@Resource
|
@Resource
|
||||||
private ProjectService projectService;
|
private ProjectService projectService;
|
||||||
|
|
||||||
|
@FarmMsg(type = "项目", title = "创建项目")
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@ApiOperation("创建农场项目")
|
@ApiOperation("创建农场项目")
|
||||||
@PreAuthorize("@ss.hasPermission('farm:project:create')")
|
@PreAuthorize("@ss.hasPermission('farm:project:create')")
|
||||||
@@ -45,6 +47,7 @@ public class ProjectController {
|
|||||||
return success(projectService.createProject(createReqVO));
|
return success(projectService.createProject(createReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FarmMsg(type = "项目", title = "更新项目")
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@ApiOperation("更新农场项目")
|
@ApiOperation("更新农场项目")
|
||||||
@PreAuthorize("@ss.hasPermission('farm:project:update')")
|
@PreAuthorize("@ss.hasPermission('farm:project:update')")
|
||||||
@@ -62,6 +65,7 @@ public class ProjectController {
|
|||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FarmMsg(type = "项目", title = "查看项目#{id}")
|
||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@ApiOperation("获得农场项目")
|
@ApiOperation("获得农场项目")
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
||||||
|
|||||||
+4
@@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.farm.controller.admin.task;
|
package cn.iocoder.yudao.module.farm.controller.admin.task;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.annotation.FarmMsg;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -35,6 +36,7 @@ public class TaskController {
|
|||||||
@Resource
|
@Resource
|
||||||
private TaskService taskService;
|
private TaskService taskService;
|
||||||
|
|
||||||
|
@FarmMsg(type = "任务", title = "创建任务")
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@ApiOperation("创建农场项目")
|
@ApiOperation("创建农场项目")
|
||||||
@PreAuthorize("@ss.hasPermission('farm:task:create')")
|
@PreAuthorize("@ss.hasPermission('farm:task:create')")
|
||||||
@@ -42,6 +44,7 @@ public class TaskController {
|
|||||||
return success(taskService.createTask(createReqVO));
|
return success(taskService.createTask(createReqVO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FarmMsg(type = "任务", title = "更新任务")
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
@ApiOperation("更新农场项目")
|
@ApiOperation("更新农场项目")
|
||||||
@PreAuthorize("@ss.hasPermission('farm:task:update')")
|
@PreAuthorize("@ss.hasPermission('farm:task:update')")
|
||||||
@@ -59,6 +62,7 @@ public class TaskController {
|
|||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FarmMsg(type = "任务", title = "查看任务")
|
||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@ApiOperation("获得农场项目")
|
@ApiOperation("获得农场项目")
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
||||||
|
|||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.convert.logMsg;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert
|
||||||
|
*
|
||||||
|
* @author 尚筱璇
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface LogMsgConvert {
|
||||||
|
|
||||||
|
LogMsgConvert INSTANCE = Mappers.getMapper(LogMsgConvert.class);
|
||||||
|
|
||||||
|
LogMsgDO convert(LogMsgCreateReqVO bean);
|
||||||
|
|
||||||
|
LogMsgDO convert(LogMsgUpdateReqVO bean);
|
||||||
|
|
||||||
|
LogMsgRespVO convert(LogMsgDO bean);
|
||||||
|
|
||||||
|
List<LogMsgRespVO> convertList(List<LogMsgDO> list);
|
||||||
|
|
||||||
|
PageResult<LogMsgRespVO> convertPage(PageResult<LogMsgDO> page);
|
||||||
|
|
||||||
|
List<LogMsgExcelVO> convertList02(List<LogMsgDO> list);
|
||||||
|
|
||||||
|
}
|
||||||
+40
@@ -0,0 +1,40 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.dal.dataobject.logMsg;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DO
|
||||||
|
*
|
||||||
|
* @author 尚筱璇
|
||||||
|
*/
|
||||||
|
@TableName("farm_log_msg")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class LogMsgDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 类型
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
private String title;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
}
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.dal.mysql.logMsg;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mapper
|
||||||
|
*
|
||||||
|
* @author 尚筱璇
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface LogMsgMapper extends BaseMapperX<LogMsgDO> {
|
||||||
|
|
||||||
|
default PageResult<LogMsgDO> selectPage(LogMsgPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<LogMsgDO>()
|
||||||
|
.eqIfPresent(LogMsgDO::getType, reqVO.getType())
|
||||||
|
.eqIfPresent(LogMsgDO::getTitle, reqVO.getTitle())
|
||||||
|
.eqIfPresent(LogMsgDO::getUserId, reqVO.getUserId())
|
||||||
|
.betweenIfPresent(LogMsgDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
||||||
|
.orderByDesc(LogMsgDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default List<LogMsgDO> selectList(LogMsgExportReqVO reqVO) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<LogMsgDO>()
|
||||||
|
.eqIfPresent(LogMsgDO::getType, reqVO.getType())
|
||||||
|
.eqIfPresent(LogMsgDO::getTitle, reqVO.getTitle())
|
||||||
|
.eqIfPresent(LogMsgDO::getUserId, reqVO.getUserId())
|
||||||
|
.betweenIfPresent(LogMsgDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
|
||||||
|
.orderByDesc(LogMsgDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+79
@@ -0,0 +1,79 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.service.logMsg;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageDTO;
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.dto.LogMsgDTO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import com.zsw.base.R;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service 接口
|
||||||
|
*
|
||||||
|
* @author 尚筱璇
|
||||||
|
*/
|
||||||
|
public interface LogMsgService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createLogMsg(@Valid LogMsgCreateReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateLogMsg(@Valid LogMsgUpdateReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteLogMsg(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
LogMsgDO getLogMsg(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得列表
|
||||||
|
*
|
||||||
|
* @param ids 编号
|
||||||
|
* @return 列表
|
||||||
|
*/
|
||||||
|
List<LogMsgDO> getLogMsgList(Collection<Long> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 分页
|
||||||
|
*/
|
||||||
|
PageResult<LogMsgDO> getLogMsgPage(LogMsgPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得列表, 用于 Excel 导出
|
||||||
|
*
|
||||||
|
* @param exportReqVO 查询条件
|
||||||
|
* @return 列表
|
||||||
|
*/
|
||||||
|
List<LogMsgDO> getLogMsgList(LogMsgExportReqVO exportReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
R<PageVO<LogMsgDTO>> logMsgList(PageDTO pageDTO);
|
||||||
|
|
||||||
|
}
|
||||||
+137
@@ -0,0 +1,137 @@
|
|||||||
|
package cn.iocoder.yudao.module.farm.service.logMsg;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.db.Page;
|
||||||
|
import cn.hutool.system.oshi.CpuInfo;
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageDTO;
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageUtil;
|
||||||
|
import cn.iocoder.yudao.framework.common.page.PageVO;
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.dto.LogMsgDTO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
|
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper;
|
||||||
|
import cn.iocoder.yudao.module.system.service.CpUser.CpUserService;
|
||||||
|
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.zsw.base.R;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.controller.admin.logMsg.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.dataobject.logMsg.LogMsgDO;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.farm.convert.logMsg.LogMsgConvert;
|
||||||
|
import cn.iocoder.yudao.module.farm.dal.mysql.logMsg.LogMsgMapper;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.farm.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service 实现类
|
||||||
|
*
|
||||||
|
* @author 尚筱璇
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class LogMsgServiceImpl implements LogMsgService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private LogMsgMapper logMsgMapper;
|
||||||
|
@Resource
|
||||||
|
private CpUserMapper cpUserMapper;
|
||||||
|
@Resource
|
||||||
|
private CpUserService cpUserService;
|
||||||
|
@Resource
|
||||||
|
private AdminUserService adminUserService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createLogMsg(LogMsgCreateReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
LogMsgDO logMsg = LogMsgConvert.INSTANCE.convert(createReqVO);
|
||||||
|
logMsgMapper.insert(logMsg);
|
||||||
|
// 返回
|
||||||
|
return logMsg.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateLogMsg(LogMsgUpdateReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
this.validateLogMsgExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
LogMsgDO updateObj = LogMsgConvert.INSTANCE.convert(updateReqVO);
|
||||||
|
logMsgMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteLogMsg(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
this.validateLogMsgExists(id);
|
||||||
|
// 删除
|
||||||
|
logMsgMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateLogMsgExists(Long id) {
|
||||||
|
if (logMsgMapper.selectById(id) == null) {
|
||||||
|
throw exception(LOG_MSG_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LogMsgDO getLogMsg(Long id) {
|
||||||
|
return logMsgMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<LogMsgDO> getLogMsgList(Collection<Long> ids) {
|
||||||
|
return logMsgMapper.selectBatchIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<LogMsgDO> getLogMsgPage(LogMsgPageReqVO pageReqVO) {
|
||||||
|
return logMsgMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<LogMsgDO> getLogMsgList(LogMsgExportReqVO exportReqVO) {
|
||||||
|
return logMsgMapper.selectList(exportReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public R<PageVO<LogMsgDTO>> logMsgList(PageDTO pageDTO){
|
||||||
|
PageUtil.startPage(pageDTO);
|
||||||
|
List<LogMsgDO> list = logMsgMapper.selectList();
|
||||||
|
|
||||||
|
List<LogMsgDTO> dtoList = BeanUtil.copyToList(list, LogMsgDTO.class);
|
||||||
|
|
||||||
|
List<Long> systemUserIdList = dtoList.stream().map(LogMsgDTO::getUserId).collect(Collectors.toList());
|
||||||
|
List<AdminUserDO> adminUserList = adminUserService.getUsers(systemUserIdList);
|
||||||
|
List<CpUserDO> cpUserList = adminUserService.getCpUserByAdminUser(systemUserIdList);
|
||||||
|
|
||||||
|
Map<Long, CpUserDO> map = new HashMap<>();
|
||||||
|
adminUserList.forEach(systemUser ->{
|
||||||
|
cpUserList.forEach(cpUser ->{
|
||||||
|
if (systemUser.getUsername().equals(cpUser.getUserId())){
|
||||||
|
map.put(systemUser.getId(), cpUser);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
dtoList.forEach(msg ->{
|
||||||
|
if (map.containsKey(msg.getUserId())){
|
||||||
|
CpUserDO user = map.get(msg.getUserId());
|
||||||
|
msg.setUserName(user.getName());
|
||||||
|
msg.setUserIcon(user.getAvatar());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
PageVO<LogMsgDTO> returnList = PageUtil.convertPageInfo(dtoList);
|
||||||
|
return R.success(returnList);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?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="cn.iocoder.yudao.module.farm.dal.mysql.logMsg.LogMsgMapper">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
|
||||||
|
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
|
||||||
|
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
|
||||||
|
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||||
|
-->
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user