mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 05:42:06 +08:00
detail修改
This commit is contained in:
+3
@@ -223,5 +223,8 @@ public interface ErrorCodeConstants {
|
||||
//=========== 柜体信息 1-002-035-000 ============
|
||||
ErrorCode ORDER_GROUP_NOT_EXISTS = new ErrorCode(1_002_036_001, "加工组信息不存在");
|
||||
|
||||
//=========== 应用信息 1-002-037-000 ============
|
||||
ErrorCode APPLICATION_NOT_EXISTS = new ErrorCode(1_002_037_001, "应用信息不存在");
|
||||
ErrorCode APPLICATION_LOGIN_USER_DISABLED = new ErrorCode(1_002_037_001, "应用登陆失败");
|
||||
|
||||
}
|
||||
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
package com.cf.imes.module.system.controller.admin.application;
|
||||
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationPageReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationRespVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationSaveReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.auth.ApplicationLoginRespVO;
|
||||
import com.cf.imes.module.system.dal.dataobject.application.ApplicationDO;
|
||||
import com.cf.imes.module.system.service.application.ApplicationService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
|
||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@Tag(name = "管理后台 - 应用注册信息")
|
||||
@RestController
|
||||
@RequestMapping("/system/application")
|
||||
@Validated
|
||||
public class ApplicationController {
|
||||
|
||||
@Resource
|
||||
private ApplicationService applicationService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "新建应用注册")
|
||||
@PreAuthorize("@ss.hasPermission('system:application:create')")
|
||||
public CommonResult<Integer> createApplication(@Valid @RequestBody ApplicationSaveReqVO createReqVO) {
|
||||
return success(applicationService.createApplication(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新应用注册")
|
||||
@PreAuthorize("@ss.hasPermission('system:application:update')")
|
||||
public CommonResult<Boolean> updateApplication(@Valid @RequestBody ApplicationSaveReqVO updateReqVO) {
|
||||
applicationService.updateApplication(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除应用注册")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('system:application:delete')")
|
||||
public CommonResult<Boolean> deleteApplication(@RequestParam("id") Long id) {
|
||||
applicationService.deleteApplication(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得应用注册")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('system:application:query')")
|
||||
public CommonResult<ApplicationRespVO> getApplication(@RequestParam("id") Long id) {
|
||||
ApplicationDO applicationDO = applicationService.getApplication(id);
|
||||
return success(BeanUtils.toBean(applicationDO, ApplicationRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得应用注册分页")
|
||||
@PreAuthorize("@ss.hasPermission('system:application:query')")
|
||||
public CommonResult<PageResult<ApplicationRespVO>> getApplicationPage(@Valid ApplicationPageReqVO pageReqVO) {
|
||||
PageResult<ApplicationDO> pageResult = applicationService.getApplicationPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, ApplicationRespVO.class));
|
||||
}
|
||||
|
||||
@PostMapping("/appLogin")
|
||||
@Operation(summary = "应用登陆")
|
||||
@PreAuthorize("@ss.hasPermission('system:application:create')")
|
||||
public CommonResult<ApplicationLoginRespVO> loginApplication(@Valid @RequestBody ApplicationRespVO applicationRespVO) {
|
||||
return success(applicationService.loginApplication(applicationRespVO));
|
||||
}
|
||||
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package com.cf.imes.module.system.controller.admin.application.vo.application;
|
||||
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 应用注册表分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class ApplicationPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "应用标识", example = "okk")
|
||||
private String appId;
|
||||
|
||||
@Schema(description = "应用密钥", example = "121gfrsg5sb4gs")
|
||||
private String appKey;
|
||||
|
||||
@Schema(description = "服务器IP列表", example = "0.0.0.0")
|
||||
private String serverIp;
|
||||
|
||||
@Schema(description = "应用简称")
|
||||
private String code;
|
||||
|
||||
@Schema(description = "应用名")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "应用主体")
|
||||
private String company;
|
||||
|
||||
@Schema(description = "状态: 0停用,1正常")
|
||||
private Boolean status;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
package com.cf.imes.module.system.controller.admin.application.vo.application;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.excel.annotation.*;
|
||||
|
||||
import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 应用注册表 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class ApplicationRespVO {
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4109")
|
||||
@ExcelProperty("主键")
|
||||
private int id;
|
||||
|
||||
@Schema(description = "应用标识", example = "okk")
|
||||
@ExcelProperty("应用标识")
|
||||
private String appId;
|
||||
|
||||
@Schema(description = "应用密钥", example = "121gfrsg5sb4gs")
|
||||
@ExcelProperty("应用密钥")
|
||||
private String appKey;
|
||||
|
||||
@Schema(description = "服务器IP列表", example = "0.0.0.0")
|
||||
@ExcelProperty("服务器IP列表")
|
||||
private String serverIp;
|
||||
|
||||
@Schema(description = "应用简称")
|
||||
@ExcelProperty("应用简称")
|
||||
private String code;
|
||||
|
||||
@Schema(description = "应用名")
|
||||
@ExcelProperty("应用名")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "应用主体")
|
||||
@ExcelProperty("应用主体")
|
||||
private String company;
|
||||
|
||||
@Schema(description = "状态: 0停用,1正常")
|
||||
@ExcelProperty("状态")
|
||||
private Boolean status;
|
||||
|
||||
@Schema(description = "备注")
|
||||
@ExcelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@ExcelProperty("创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.cf.imes.module.system.controller.admin.application.vo.application;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Schema(description = "管理后台 - 应用注册表新增/修改 Request VO")
|
||||
@Data
|
||||
public class ApplicationSaveReqVO{
|
||||
|
||||
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "4109")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "应用标识", example = "okk")
|
||||
@NotNull(message = "应用标识不能为空")
|
||||
private String appId;
|
||||
|
||||
// @Schema(description = "应用密钥", example = "121gfrsg5sb4gs")
|
||||
// @NotNull(message = "应用密钥不能为空")
|
||||
// private String appKey;
|
||||
|
||||
// private String appSecret;
|
||||
|
||||
@Schema(description = "服务器IP列表", example = "0.0.0.0")
|
||||
@NotNull(message = "服务器IP列表不能为空")
|
||||
private String serverIp;
|
||||
|
||||
@Schema(description = "应用简称")
|
||||
@NotNull(message = "应用简称不能为空")
|
||||
private String code;
|
||||
|
||||
@Schema(description = "应用名")
|
||||
@NotNull(message = "应用名不能为空")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "应用主体")
|
||||
@NotNull(message = "应用主体不能为空")
|
||||
private String company;
|
||||
|
||||
@Schema(description = "状态: 0停用,1正常")
|
||||
@NotNull(message = "不能为空")
|
||||
private Boolean status;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.cf.imes.module.system.controller.admin.application.vo.auth;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 应用登录 Response VO")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class ApplicationLoginRespVO {
|
||||
|
||||
@Schema(description = "应用编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
|
||||
private Integer appId;
|
||||
|
||||
@Schema(description = "访问令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "happy")
|
||||
private String accessToken;
|
||||
|
||||
@Schema(description = "刷新令牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "nice")
|
||||
private String refreshToken;
|
||||
|
||||
@Schema(description = "过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime expiresTime;
|
||||
|
||||
}
|
||||
-2
@@ -5,7 +5,6 @@ import javax.validation.Valid;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -103,5 +102,4 @@ public class ProcessController {
|
||||
List<ProcessDO> processUser = processService.getAllProcess();
|
||||
return success(BeanUtils.toBean(processUser, ProcessDO.class));
|
||||
}
|
||||
|
||||
}
|
||||
+8
@@ -5,6 +5,7 @@ import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||
import com.cf.imes.framework.common.pojo.PageParam;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.excel.core.util.ExcelUtils;
|
||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
@@ -175,4 +176,11 @@ public class UserController {
|
||||
return success(userService.importUserList(list, updateSupport));
|
||||
}
|
||||
|
||||
@GetMapping("/list-terms-simple")
|
||||
@Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项")
|
||||
@Parameter(name = "name", description = "用户名称", required = false, example = "晨丰")
|
||||
public CommonResult<List<UserRespVO>> getSimpleUserList(@RequestParam(value = "name", required = false) String name) {
|
||||
List<AdminUserDO> list = userService.getUserListByTerms(CommonStatusEnum.ENABLE.getStatus() , name);
|
||||
return success(BeanUtils.toBean(list, UserRespVO.class));
|
||||
}
|
||||
}
|
||||
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.cf.imes.module.system.controller.admin.user.vo.user;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "管理后台 - 用户信息 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class UserTermsReqVO extends UserRespVO{
|
||||
|
||||
/**
|
||||
* 拼音首字母
|
||||
*/
|
||||
private String pyFirstChar;
|
||||
/**
|
||||
* 全拼
|
||||
*/
|
||||
private String pyAll;
|
||||
|
||||
private Long organId;
|
||||
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package com.cf.imes.module.system.dal.dataobject.application;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.*;
|
||||
|
||||
/**
|
||||
* 应用信息 process DO
|
||||
*
|
||||
* @author 晨丰科技
|
||||
*/
|
||||
@TableName("application")
|
||||
@KeySequence("application_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ApplicationDO extends BaseDO {
|
||||
|
||||
/**
|
||||
* 应用 ID
|
||||
*/
|
||||
@TableId
|
||||
private int id;
|
||||
/**
|
||||
* 应用标识
|
||||
*/
|
||||
private String appId;
|
||||
/**
|
||||
* 应用密钥
|
||||
*/
|
||||
private String appKey;
|
||||
/**
|
||||
* 应用私钥
|
||||
*/
|
||||
private String appSecret;
|
||||
/**
|
||||
* 服务器IP列表
|
||||
*/
|
||||
private String serverIp;
|
||||
/**
|
||||
* 应用简称
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
* 应用名
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 应用主体
|
||||
*/
|
||||
private String company;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Boolean status;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package com.cf.imes.module.system.dal.mysql.application;
|
||||
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationPageReqVO;
|
||||
import com.cf.imes.module.system.dal.dataobject.application.ApplicationDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 应用信息表 process Mapper
|
||||
*
|
||||
* @author 晨丰科技
|
||||
*/
|
||||
@Mapper
|
||||
public interface ApplicationMapper extends BaseMapperX<ApplicationDO> {
|
||||
|
||||
default PageResult<ApplicationDO> selectPage(ApplicationPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ApplicationDO>()
|
||||
.likeIfPresent(ApplicationDO::getName, reqVO.getName())
|
||||
.eqIfPresent(ApplicationDO::getAppId, reqVO.getAppId())
|
||||
.eqIfPresent(ApplicationDO::getAppKey, reqVO.getAppKey())
|
||||
.eqIfPresent(ApplicationDO::getCode, reqVO.getCode())
|
||||
.eqIfPresent(ApplicationDO::getServerIp, reqVO.getServerIp())
|
||||
.eqIfPresent(ApplicationDO::getCompany, reqVO.getCompany())
|
||||
.eqIfPresent(ApplicationDO::getStatus, reqVO.getStatus())
|
||||
.eqIfPresent(ApplicationDO::getRemark, reqVO.getRemark())
|
||||
.betweenIfPresent(ApplicationDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(ApplicationDO::getId));
|
||||
}
|
||||
|
||||
default ApplicationDO selectByAppId(String appId) {
|
||||
return selectOne(ApplicationDO::getAppId, appId);
|
||||
}
|
||||
}
|
||||
+3
-17
@@ -1,11 +1,13 @@
|
||||
package com.cf.imes.module.system.dal.mysql.process;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessPageReqVO;
|
||||
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -35,23 +37,7 @@ public interface ProcessMapper extends BaseMapperX<ProcessDO> {
|
||||
.orderByDesc(ProcessDO::getId));
|
||||
}
|
||||
|
||||
// default PageResult<ProcessPageReqVO> selectPage(ProcessPageReqVO reqVO) {
|
||||
// return selectPage(reqVO, new LambdaQueryWrapperX<ProcessPageReqVO>()
|
||||
// .likeIfPresent(ProcessPageReqVO::getName, reqVO.getName())
|
||||
// .eqIfPresent(ProcessPageReqVO::getPieceRate, reqVO.getPieceRate())
|
||||
// .eqIfPresent(ProcessPageReqVO::getPieceType, reqVO.getPieceType())
|
||||
// .eqIfPresent(ProcessPageReqVO::getType, reqVO.getType())
|
||||
// .eqIfPresent(ProcessPageReqVO::getIsCustom, reqVO.getIsCustom())
|
||||
// .eqIfPresent(ProcessPageReqVO::getIsDealer, reqVO.getIsDealer())
|
||||
// .eqIfPresent(ProcessPageReqVO::getSort, reqVO.getSort())
|
||||
// .eqIfPresent(ProcessPageReqVO::getHourCapacity, reqVO.getHourCapacity())
|
||||
// .eqIfPresent(ProcessPageReqVO::getUnit, reqVO.getUnit())
|
||||
// .eqIfPresent(ProcessPageReqVO::getIsEnabled, reqVO.getIsEnabled())
|
||||
// .betweenIfPresent(ProcessPageReqVO::getPrepareTime, reqVO.getPrepareTime())
|
||||
// .eqIfPresent(ProcessPageReqVO::getDescription, reqVO.getDescription())
|
||||
// .betweenIfPresent(ProcessPageReqVO::getCreateTime, reqVO.getCreateTime())
|
||||
// .orderByDesc(ProcessPageReqVO::getId));
|
||||
// }
|
||||
IPage<ProcessDO> selectProcessPage(@Param("page") IPage<ProcessDO> page , @Param("page") ProcessPageReqVO reqVO);
|
||||
|
||||
default List<ProcessDO> selectAll() {
|
||||
return selectList(new LambdaQueryWrapperX<ProcessDO>()
|
||||
|
||||
+11
@@ -1,6 +1,7 @@
|
||||
package com.cf.imes.module.system.dal.mysql.user;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
@@ -69,4 +70,14 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
|
||||
return selectList(AdminUserDO::getDeptId, deptIds);
|
||||
}
|
||||
|
||||
default List<AdminUserDO> selectListByTerms(Integer status, String namePyAll,String namePyFirstChar,String name) {
|
||||
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
|
||||
.eqIfPresent(AdminUserDO::getStatus, status)
|
||||
.likeIfPresent(AdminUserDO::getNickname, name)
|
||||
.or(StrUtil.isNotBlank(name))
|
||||
.likeIfPresent(AdminUserDO::getPinyinFull, namePyAll)
|
||||
.or(StrUtil.isNotBlank(namePyAll))
|
||||
.likeIfPresent(AdminUserDO::getPinyinInitial, namePyFirstChar)
|
||||
.orderByDesc(AdminUserDO::getId));
|
||||
}
|
||||
}
|
||||
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package com.cf.imes.module.system.service.application;
|
||||
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationPageReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationRespVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationSaveReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.auth.ApplicationLoginRespVO;
|
||||
import com.cf.imes.module.system.dal.dataobject.application.ApplicationDO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
public interface ApplicationService {
|
||||
|
||||
/**
|
||||
* 创建应用信息表 application
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Integer createApplication(@Valid ApplicationSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新应用信息表 application
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateApplication(@Valid ApplicationSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除应用信息表 application
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteApplication(Long id);
|
||||
|
||||
/**
|
||||
* 获得应用信息表 application
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 工序信息表 application
|
||||
*/
|
||||
ApplicationDO getApplication(Long id);
|
||||
|
||||
/**
|
||||
* 获得应用信息表 application
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 工序信息表 application
|
||||
*/
|
||||
PageResult<ApplicationDO> getApplicationPage(ApplicationPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得所有应用信息表 application
|
||||
*
|
||||
* @return 工序信息表 application
|
||||
*/
|
||||
List<ApplicationDO> getAllApplication();
|
||||
|
||||
/**
|
||||
* 应用登陆
|
||||
* @param reqVO: 登陆信息
|
||||
* @return 登录结果
|
||||
*/
|
||||
ApplicationLoginRespVO loginApplication(@Valid ApplicationRespVO reqVO);
|
||||
}
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
package com.cf.imes.module.system.service.application;
|
||||
|
||||
import com.cf.imes.framework.common.exception.ServerException;
|
||||
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.monitor.TracerUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.common.util.servlet.ServletUtils;
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
import com.cf.imes.module.system.api.logger.dto.LoginLogCreateReqDTO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationPageReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationRespVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.application.ApplicationSaveReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.application.vo.auth.ApplicationLoginRespVO;
|
||||
import com.cf.imes.module.system.controller.admin.auth.vo.AuthLoginRespVO;
|
||||
import com.cf.imes.module.system.convert.auth.AuthConvert;
|
||||
import com.cf.imes.module.system.dal.dataobject.application.ApplicationDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO;
|
||||
import com.cf.imes.module.system.dal.mysql.application.ApplicationMapper;
|
||||
import com.cf.imes.module.system.enums.ErrorCodeConstants;
|
||||
import com.cf.imes.module.system.enums.logger.LoginLogTypeEnum;
|
||||
import com.cf.imes.module.system.enums.logger.LoginResultEnum;
|
||||
import com.cf.imes.module.system.enums.oauth2.OAuth2ClientConstants;
|
||||
import com.cf.imes.module.system.service.oauth2.OAuth2TokenService;
|
||||
import com.cf.imes.module.system.util.rsa.AsymmetricAlgorithmUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.APPLICATION_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* 应用信息表 application Service 实现类
|
||||
*
|
||||
* @author 晨丰科技
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ApplicationServiceImpl implements ApplicationService{
|
||||
|
||||
@Resource
|
||||
private ApplicationMapper applicationMapper;
|
||||
|
||||
@Resource
|
||||
private OAuth2TokenService oauth2TokenService;
|
||||
|
||||
@Override
|
||||
public Integer createApplication(ApplicationSaveReqVO createReqVO) {
|
||||
// 插入
|
||||
LinkedList<String> priKeyAndPubKey = AsymmetricAlgorithmUtil.getPriKeyAndPubKey();
|
||||
String privateKey = priKeyAndPubKey.get(0);
|
||||
String publicKey = priKeyAndPubKey.get(1);
|
||||
String appKey = AsymmetricAlgorithmUtil.encryptByPublic(createReqVO.getAppId(), publicKey);
|
||||
// 公钥加密,私钥解密
|
||||
ApplicationDO applicationDO = BeanUtils.toBean(createReqVO, ApplicationDO.class)
|
||||
.setAppKey(appKey).setAppSecret(privateKey);
|
||||
applicationMapper.insert(applicationDO);
|
||||
// 返回
|
||||
return applicationDO.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateApplication(ApplicationSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateApplicationExists(updateReqVO.getId());
|
||||
// 更新
|
||||
ApplicationDO updateObj = BeanUtils.toBean(updateReqVO, ApplicationDO.class);
|
||||
applicationMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteApplication(Long id) {
|
||||
// 校验存在
|
||||
validateApplicationExists(id);
|
||||
// 删除
|
||||
applicationMapper.deleteById(id);
|
||||
}
|
||||
|
||||
private void validateApplicationExists(Long id) {
|
||||
if (applicationMapper.selectById(id) == null) {
|
||||
throw exception(APPLICATION_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplicationDO getApplication(Long id) {
|
||||
return applicationMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ApplicationDO> getApplicationPage(ApplicationPageReqVO pageReqVO) {
|
||||
return applicationMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ApplicationDO> getAllApplication() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApplicationLoginRespVO loginApplication(ApplicationRespVO reqVO) {
|
||||
ApplicationDO app = applicationMapper.selectByAppId(reqVO.getAppId());
|
||||
if (Objects.isNull(app)) {
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.APPLICATION_NOT_EXISTS);
|
||||
}
|
||||
// 公钥加密,私钥解密
|
||||
String appId = AsymmetricAlgorithmUtil.encryptByPublic(reqVO.getAppKey(), app.getAppSecret());
|
||||
if (!appId.equals(app.getAppId())) {
|
||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.APPLICATION_LOGIN_USER_DISABLED);
|
||||
}
|
||||
// 创建 Token 令牌,记录登录日志
|
||||
return BeanUtils.toBean(createTokenAfterLoginSuccess(app.getId(), app.getAppId(), LoginLogTypeEnum.LOGIN_USERNAME), ApplicationLoginRespVO.class).setAppId(app.getId());
|
||||
}
|
||||
|
||||
private AuthLoginRespVO createTokenAfterLoginSuccess(Integer userId, String username, LoginLogTypeEnum logType) {
|
||||
// Long organId = OrganContextHolder.getOrganId();
|
||||
// OrganizationDO organ = organService.getOrgan(organId);
|
||||
// if(Objects.isNull(organ)) {
|
||||
// throw new ServerException(10023,"组织不存在");
|
||||
// }
|
||||
// 创建访问令牌
|
||||
OAuth2AccessTokenDO accessTokenDO = oauth2TokenService.createAccessToken(
|
||||
1L,
|
||||
null,
|
||||
OAuth2ClientConstants.CLIENT_ID_DEFAULT,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null);
|
||||
// 构建返回结果
|
||||
return AuthConvert.INSTANCE.convert(accessTokenDO);
|
||||
}
|
||||
|
||||
}
|
||||
+5
-25
@@ -1,6 +1,8 @@
|
||||
package com.cf.imes.module.system.service.process;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
import com.cf.imes.framework.common.util.pinyin.PinYinUtils;
|
||||
import com.cf.imes.module.system.controller.admin.process.vo.process.*;
|
||||
import com.cf.imes.module.system.controller.admin.process.vo.processUser.ProcessAndUserSaveReqVO;
|
||||
@@ -142,31 +144,9 @@ public class ProcessServiceImpl implements ProcessService {
|
||||
|
||||
@Override
|
||||
public PageResult<ProcessRespVO> getProcessPageAll(ProcessPageReqVO pageReqVO) {
|
||||
PageResult<ProcessDO> processList = processMapper.selectPage(pageReqVO);
|
||||
PageResult<ProcessRespVO> processRespVOPageResult = new PageResult<ProcessRespVO>();
|
||||
|
||||
processRespVOPageResult.setTotal(processList.getTotal());
|
||||
processList.getList().forEach(processDO -> {
|
||||
ProcessRespVO processRespVO = BeanUtils.toBean(processDO, ProcessRespVO.class);
|
||||
StringBuilder userIdBuilder = new StringBuilder();
|
||||
List<ProcessUserDO> userIdListsByProcessId = processUserService.getProcessUser(processDO.getId());
|
||||
if (userIdListsByProcessId != null) {
|
||||
for (ProcessUserDO processUser : userIdListsByProcessId) {
|
||||
if (processUser != null && processUser.getUserId() != null) {
|
||||
if (adminUserService.getUser(processUser.getUserId()) != null) {
|
||||
userIdBuilder.append(",").append(processUser.getUserId());
|
||||
}
|
||||
if (pageReqVO.getUserId() != null && pageReqVO.getUserId().equals("")) {
|
||||
if (processUser.getUserId().equals(pageReqVO.getUserId()))
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
processRespVO.setUsers(userIdBuilder.length() > 0 ? userIdBuilder.substring(1) : "");
|
||||
processRespVOPageResult.getList().add(processRespVO);
|
||||
});
|
||||
return processRespVOPageResult;
|
||||
PageDTO<ProcessDO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||
IPage<ProcessDO> processRespVOPageResult = processMapper.selectProcessPage(page,BeanUtils.toBean(pageReqVO, ProcessPageReqVO.class));
|
||||
return new PageResult<ProcessRespVO>(BeanUtils.toBean(processRespVOPageResult.getRecords(), ProcessRespVO.class), processRespVOPageResult.getTotal());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+9
@@ -207,4 +207,13 @@ public interface AdminUserService {
|
||||
*/
|
||||
boolean isPasswordMatch(String rawPassword, String encodedPassword);
|
||||
|
||||
/**
|
||||
* 获得指定状态和名称的用户们
|
||||
*
|
||||
* @param status 状态
|
||||
* @param name 用户名称
|
||||
* @return 用户们
|
||||
*/
|
||||
List<AdminUserDO> getUserListByTerms(Integer status , String name);
|
||||
|
||||
}
|
||||
|
||||
+11
@@ -475,6 +475,17 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
return passwordEncoder.matches(rawPassword, encodedPassword);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdminUserDO> getUserListByTerms(Integer status, String name) {
|
||||
String namePyFirstChar = "";
|
||||
String namePyAll = "";
|
||||
if(StrUtil.isNotBlank(name)) {
|
||||
namePyFirstChar = PinYinUtils.convertToPinyin(name);
|
||||
namePyAll = PinYinUtils.convertToPinyin(name).replaceAll(" ", "");
|
||||
}
|
||||
return userMapper.selectListByTerms(status, namePyAll, namePyFirstChar, name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 对密码进行加密
|
||||
*
|
||||
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
<?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.cf.imes.module.system.dal.mysql.process.ProcessMapper">
|
||||
<select id="selectProcessPage" resultType="com.cf.imes.module.system.dal.dataobject.process.ProcessDO">
|
||||
select
|
||||
p.id,
|
||||
p.organ_id,
|
||||
p.name,
|
||||
p.piece_rate,
|
||||
p.piece_type,
|
||||
p.type,
|
||||
p.is_custom,
|
||||
p.is_dealer,
|
||||
p.hour_capacity,
|
||||
p.sort,
|
||||
p.unit,
|
||||
p.is_enabled,
|
||||
p.prepare_time,
|
||||
p.description,
|
||||
p.creator,
|
||||
p.create_time,
|
||||
p.updater,
|
||||
p.update_time,
|
||||
p.deleted
|
||||
from process p
|
||||
<where>
|
||||
|
||||
<if test="page.userId != null and page.userId != '' ">
|
||||
and p.id in (select process_id from process_user where user_id = #{page.userId})
|
||||
</if>
|
||||
<if test="page.name != null and page.name != '' ">
|
||||
and p.name like concat('%', #{page.name}, '%')
|
||||
</if>
|
||||
<if test="page.isEnabled != null">
|
||||
and p.is_enabled = #{page.isEnabled}
|
||||
</if>
|
||||
<if test="page.type != null">
|
||||
and p.type = #{page.type}
|
||||
</if>
|
||||
<if test="page.pieceType != null">
|
||||
and p.piece_type = #{page.pieceType}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user