commit:VO支持以及bug修复

This commit is contained in:
Jerry
2020-12-18 22:52:35 +08:00
parent ecec5ae30a
commit d86ae86f1c
558 changed files with 8019 additions and 10785 deletions

View File

@@ -25,11 +25,5 @@
<artifactId>application-common</artifactId>
<version>1.0.0</version>
</dependency>
<!-- knife4j 接口文档框架 -->
<dependency>
<groupId>com.orange.demo</groupId>
<artifactId>common-swagger</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>

View File

@@ -5,6 +5,7 @@ import com.orange.demo.common.core.config.FeignConfig;
import com.orange.demo.common.core.base.client.BaseClient;
import com.orange.demo.common.core.object.*;
import com.orange.demo.upmsinterface.dto.SysUserDto;
import com.orange.demo.upmsinterface.vo.SysUserVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
@@ -22,7 +23,7 @@ import java.util.*;
name = "upms",
configuration = FeignConfig.class,
fallbackFactory = SysUserClient.SysUserClientFallbackFactory.class)
public interface SysUserClient extends BaseClient<SysUserDto, Long> {
public interface SysUserClient extends BaseClient<SysUserDto, SysUserVo, Long> {
/**
* 基于主键的(In-list)条件获取远程数据接口。
@@ -33,7 +34,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/listByIds")
ResponseResult<List<SysUserDto>> listByIds(
ResponseResult<List<SysUserVo>> listByIds(
@RequestParam("userIds") Set<Long> userIds,
@RequestParam("withDict") Boolean withDict);
@@ -46,7 +47,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/getById")
ResponseResult<SysUserDto> getById(
ResponseResult<SysUserVo> getById(
@RequestParam("userId") Long userId,
@RequestParam("withDict") Boolean withDict);
@@ -98,7 +99,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/listBy")
ResponseResult<List<SysUserDto>> listBy(@RequestBody MyQueryParam queryParam);
ResponseResult<MyPageData<SysUserVo>> listBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的单条数据对象。
@@ -108,7 +109,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/getBy")
ResponseResult<SysUserDto> getBy(@RequestBody MyQueryParam queryParam);
ResponseResult<SysUserVo> getBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据列表。
@@ -119,7 +120,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
*/
@Override
@PostMapping("/sysUser/listMapBy")
ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
ResponseResult<MyPageData<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam);
/**
* 获取远程主对象中符合查询条件的数据数量。
@@ -144,7 +145,7 @@ public interface SysUserClient extends BaseClient<SysUserDto, Long> {
@Component("UpmsSysUserClientFallbackFactory")
@Slf4j
class SysUserClientFallbackFactory
extends BaseFallbackFactory<SysUserDto, Long, SysUserClient> implements SysUserClient {
extends BaseFallbackFactory<SysUserDto, SysUserVo, Long, SysUserClient> implements SysUserClient {
@Override
public SysUserClient create(Throwable throwable) {

View File

@@ -6,14 +6,11 @@ import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.upmsinterface.constant.SysUserType;
import com.orange.demo.upmsinterface.constant.SysUserStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.Map;
/**
* SysUserDto对象。
@@ -21,42 +18,36 @@ import java.util.Map;
* @author Jerry
* @date 2020-08-08
*/
@ApiModel("SysUserDto实体对象")
@Data
public class SysUserDto {
/**
* 用户Id。
*/
@ApiModelProperty(value = "用户Id", required = true)
@NotNull(message = "数据验证失败用户Id不能为空", groups = {UpdateGroup.class})
private Long userId;
/**
* 登录用户名。
*/
@ApiModelProperty(value = "登录用户名", required = true)
@NotBlank(message = "数据验证失败,登录用户名不能为空!")
private String loginName;
/**
* 用户密码。
*/
@ApiModelProperty(value = "用户密码", required = true)
@NotBlank(message = "数据验证失败,用户密码不能为空!", groups = {AddGroup.class})
private String password;
/**
* 用户显示名称。
*/
@ApiModelProperty(value = "用户显示名称", required = true)
@NotBlank(message = "数据验证失败,用户显示名称不能为空!")
private String showName;
/**
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
*/
@ApiModelProperty(value = "用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)", required = true)
@NotNull(message = "数据验证失败,用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)不能为空!")
@ConstDictRef(constDictClass = SysUserType.class, message = "数据验证失败,用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)为无效值!")
private Integer userType;
@@ -64,13 +55,11 @@ public class SysUserDto {
/**
* 用户头像的Url。
*/
@ApiModelProperty(value = "用户头像的Url")
private String headImageUrl;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
@ApiModelProperty(value = "用户状态(0: 正常 1: 锁定)", required = true)
@NotNull(message = "数据验证失败,用户状态(0: 正常 1: 锁定)不能为空!")
@ConstDictRef(constDictClass = SysUserStatus.class, message = "数据验证失败,用户状态(0: 正常 1: 锁定)为无效值!")
private Integer userStatus;
@@ -78,48 +67,30 @@ public class SysUserDto {
/**
* 创建用户Id。
*/
@ApiModelProperty(value = "创建用户Id")
private Long createUserId;
/**
* 创建用户名。
*/
@ApiModelProperty(value = "创建用户名")
private String createUsername;
/**
* 创建时间。
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间。
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* createTime 范围过滤起始值(>=)。
*/
@ApiModelProperty(value = "createTime 范围过滤起始值(>=)")
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
@ApiModelProperty(value = "createTime 范围过滤结束值(<=)")
private String createTimeEnd;
/**
* userType 常量字典关联数据。
*/
@ApiModelProperty(hidden = true)
private Map<String, Object> userTypeDictMap;
/**
* userStatus 常量字典关联数据。
*/
@ApiModelProperty(hidden = true)
private Map<String, Object> userStatusDictMap;
}

View File

@@ -0,0 +1,81 @@
package com.orange.demo.upmsinterface.vo;
import lombok.Data;
import java.util.Date;
import java.util.Map;
/**
* SysUserVO对象。
*
* @author Jerry
* @date 2020-08-08
*/
@Data
public class SysUserVo {
/**
* 用户Id。
*/
private Long userId;
/**
* 登录用户名。
*/
private String loginName;
/**
* 用户密码。
*/
private String password;
/**
* 用户显示名称。
*/
private String showName;
/**
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
*/
private Integer userType;
/**
* 用户头像的Url。
*/
private String headImageUrl;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
private Integer userStatus;
/**
* 创建用户Id。
*/
private Long createUserId;
/**
* 创建用户名。
*/
private String createUsername;
/**
* 创建时间。
*/
private Date createTime;
/**
* 更新时间。
*/
private Date updateTime;
/**
* userType 常量字典关联数据。
*/
private Map<String, Object> userTypeDictMap;
/**
* userStatus 常量字典关联数据。
*/
private Map<String, Object> userStatusDictMap;
}

View File

@@ -91,24 +91,6 @@
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.11" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.0" level="project" />
<orderEntry type="module" module-name="application-common" />
<orderEntry type="module" module-name="common-swagger" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-micro-spring-boot-starter:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-autoconfigure:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.5" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" />
@@ -265,7 +247,7 @@
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.13.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.1.0" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.8" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.10.8" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.8" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />

View File

@@ -1,10 +1,6 @@
package com.orange.demo.upmsservice.controller;
import com.alibaba.fastjson.JSONObject;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import lombok.extern.slf4j.Slf4j;
import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.constant.ErrorCodeEnum;
@@ -32,8 +28,6 @@ import java.nio.charset.StandardCharsets;
* @author Jerry
* @date 2020-08-08
*/
@ApiSupport(order = 1)
@Api(tags = "登录接口")
@Slf4j
@RestController
@RequestMapping("/login")
@@ -55,12 +49,6 @@ public class LoginController {
* @param password 密码。
* @return 应答结果对象其中包括JWT的Token数据以及菜单列表。
*/
@ApiImplicitParams({
// 这里包含密码密文,仅用于方便开发期间的接口测试,集成测试和发布阶段,需要将当前注解去掉。
// 如果您重新生成了公钥和私钥请替换password的缺省值。
@ApiImplicitParam(name = "loginName", defaultValue = "admin"),
@ApiImplicitParam(name = "password", defaultValue = "IP3ccke3GhH45iGHB5qP9p7iZw6xUyj28Ju10rnBiPKOI35sc%2BjI7%2FdsjOkHWMfUwGYGfz8ik31HC2Ruk%2Fhkd9f6RPULTHj7VpFdNdde2P9M4mQQnFBAiPM7VT9iW3RyCtPlJexQ3nAiA09OqG%2F0sIf1kcyveSrulxembARDbDo%3D")
})
@PostMapping("/doLogin")
public ResponseResult<JSONObject> doLogin(
@MyRequestBody String loginName, @MyRequestBody String password) throws Exception {
@@ -91,10 +79,10 @@ public class LoginController {
*/
@PostMapping("/doLogout")
public ResponseResult<Void> doLogout() {
cacheHelper.removeAllSessionCache();
TokenData tokenData = TokenData.takeFromRequest();
cacheHelper.removeAllSessionCache(tokenData.getSessionId());
return ResponseResult.success();
}
/**
* 用户修改自己的密码。
*

View File

@@ -1,10 +1,10 @@
package com.orange.demo.upmsservice.controller;
import com.github.pagehelper.Page;
import com.github.pagehelper.page.PageMethod;
import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsservice.service.*;
import com.orange.demo.upmsinterface.dto.*;
import com.orange.demo.upmsinterface.vo.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.constant.*;
@@ -14,9 +14,6 @@ import com.orange.demo.common.core.annotation.MyRequestBody;
import com.orange.demo.common.core.validator.AddGroup;
import com.orange.demo.common.core.validator.UpdateGroup;
import com.orange.demo.upmsservice.config.ApplicationConfig;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -30,11 +27,10 @@ import java.util.*;
* @author Jerry
* @date 2020-08-08
*/
@Api(tags = "用户管理管理接口")
@Slf4j
@RestController
@RequestMapping("/sysUser")
public class SysUserController extends BaseController<SysUser, SysUserDto, Long> {
public class SysUserController extends BaseController<SysUser, SysUserVo, Long> {
@Autowired
private SysUserService sysUserService;
@@ -42,7 +38,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
private ApplicationConfig appConfig;
@Override
protected BaseService<SysUser, SysUserDto, Long> service() {
protected BaseService<SysUser, Long> service() {
return sysUserService;
}
@@ -52,17 +48,13 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param sysUserDto 新增用户对象。
* @return 应答结果对象包含新增用户的主键Id。
*/
@ApiOperationSupport(ignoreParameters = {
"sysUser.userId",
"sysUser.createTimeStart",
"sysUser.createTimeEnd"})
@PostMapping("/add")
public ResponseResult<Long> add(@MyRequestBody("sysUser") SysUserDto sysUserDto) {
String errorMessage = MyCommonUtil.getModelValidationError(sysUserDto, Default.class, AddGroup.class);
if (errorMessage != null) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
}
SysUser sysUser = SysUser.INSTANCE.toModel(sysUserDto);
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
CallResult result = sysUserService.verifyRelatedData(sysUser, null);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
@@ -77,9 +69,6 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param sysUserDto 更新用户对象。
* @return 应答结果对象。
*/
@ApiOperationSupport(ignoreParameters = {
"sysUser.createTimeStart",
"sysUser.createTimeEnd"})
@PostMapping("/update")
public ResponseResult<Void> update(@MyRequestBody("sysUser") SysUserDto sysUserDto) {
String errorMessage = MyCommonUtil.getModelValidationError(sysUserDto, Default.class, UpdateGroup.class);
@@ -90,7 +79,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
if (originalUser == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysUser sysUser = SysUser.INSTANCE.toModel(sysUserDto);
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
CallResult result = sysUserService.verifyRelatedData(sysUser, originalUser);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
@@ -153,25 +142,18 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @return 应答结果对象,包含查询结果集。
*/
@PostMapping("/list")
public ResponseResult<MyPageData<SysUserDto>> list(
public ResponseResult<MyPageData<SysUserVo>> list(
@MyRequestBody("sysUserFilter") SysUserDto sysUserDtoFilter,
@MyRequestBody MyOrderParam orderParam,
@MyRequestBody MyPageParam pageParam) {
if (pageParam != null) {
PageMethod.startPage(pageParam.getPageNum(), pageParam.getPageSize());
}
SysUser sysUserFilter = SysUser.INSTANCE.toModel(sysUserDtoFilter);
SysUser sysUserFilter = MyModelUtil.copyTo(sysUserDtoFilter, SysUser.class);
String orderBy = MyOrderParam.buildOrderBy(orderParam, SysUser.class);
List<SysUser> sysUserList =
sysUserService.getSysUserListWithRelation(sysUserFilter, orderBy);
long totalCount = 0L;
if (sysUserList instanceof Page) {
totalCount = ((Page<SysUser>) sysUserList).getTotal();
}
// 分页连同对象数据转换copy工作下面的方法一并完成。
Tuple2<List<SysUserDto>, Long> responseData =
new Tuple2<>(SysUser.INSTANCE.fromModelList(sysUserList), totalCount);
return ResponseResult.success(MyPageUtil.makeResponseData(responseData));
return ResponseResult.success(MyPageUtil.makeResponseData(sysUserList, SysUser.INSTANCE));
}
/**
@@ -181,7 +163,7 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @return 应答结果对象,包含对象详情。
*/
@GetMapping("/view")
public ResponseResult<SysUserDto> view(@RequestParam Long userId) {
public ResponseResult<SysUserVo> view(@RequestParam Long userId) {
if (MyCommonUtil.existBlankArgument(userId)) {
return ResponseResult.error(ErrorCodeEnum.ARGUMENT_NULL_EXIST);
}
@@ -191,8 +173,8 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
if (sysUser == null) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysUserDto sysUserDto = SysUser.INSTANCE.fromModel(sysUser);
return ResponseResult.success(sysUserDto);
SysUserVo sysUserVo = SysUser.INSTANCE.fromModel(sysUser);
return ResponseResult.success(sysUserVo);
}
/**
@@ -202,9 +184,8 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象集合。
*/
@ApiOperation(hidden = true, value = "listByIds")
@PostMapping("/listByIds")
public ResponseResult<List<SysUserDto>> listByIds(
public ResponseResult<List<SysUserVo>> listByIds(
@RequestParam Set<Long> userIds, @RequestParam Boolean withDict) {
return super.baseListByIds(userIds, withDict, SysUser.INSTANCE);
}
@@ -216,9 +197,8 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param withDict 是否包含字典关联。
* @return 应答结果对象,包含主对象数据。
*/
@ApiOperation(hidden = true, value = "getById")
@PostMapping("/getById")
public ResponseResult<SysUserDto> getById(
public ResponseResult<SysUserVo> getById(
@RequestParam Long userId, @RequestParam Boolean withDict) {
return super.baseGetById(userId, withDict, SysUser.INSTANCE);
}
@@ -229,7 +209,6 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param userIds 主键Id集合。
* @return 应答结果对象包含true全部存在否则false。
*/
@ApiOperation(hidden = true, value = "existIds")
@PostMapping("/existIds")
public ResponseResult<Boolean> existIds(@RequestParam Set<Long> userIds) {
return super.baseExistIds(userIds);
@@ -241,7 +220,6 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param userId 主键Id。
* @return 应答结果对象包含true表示存在否则false。
*/
@ApiOperation(hidden = true, value = "existId")
@PostMapping("/existId")
public ResponseResult<Boolean> existId(@RequestParam Long userId) {
return super.baseExistId(userId);
@@ -253,33 +231,30 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param filter 过滤对象。
* @return 删除数量。
*/
@ApiOperation(hidden = true, value = "deleteBy")
@PostMapping("/deleteBy")
public ResponseResult<Integer> deleteBy(@RequestBody SysUserDto filter) throws Exception {
return super.baseDeleteBy(filter, SysUser.INSTANCE);
return super.baseDeleteBy(MyModelUtil.copyTo(filter, SysUser.class));
}
/**
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含符合查询过滤条件的对象结果
* @return 分页数据集合对象。如MyQueryParam参数的分页属性为空则不会执行分页操作只是基于MyPageData对象返回数据结果。
*/
@ApiOperation(hidden = true, value = "listBy")
@PostMapping("/listBy")
public ResponseResult<List<SysUserDto>> listBy(@RequestBody MyQueryParam queryParam) {
public ResponseResult<MyPageData<SysUserVo>> listBy(@RequestBody MyQueryParam queryParam) {
return super.baseListBy(queryParam, SysUser.INSTANCE);
}
/**
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
* 复杂的查询调用,包括(in list)过滤,对象条件过滤,分和排序等。主要用于微服务间远程过程调用。
*
* @param queryParam 查询参数。
* @return 应答结果对象,包含符合查询过滤条件的对象结果
* @return 分页数据集合对象。如MyQueryParam参数的分页属性为空则不会执行分页操作只是基于MyPageData对象返回数据结果。
*/
@ApiOperation(hidden = true, value = "listMapBy")
@PostMapping("/listMapBy")
public ResponseResult<List<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam) {
public ResponseResult<MyPageData<Map<String, Object>>> listMapBy(@RequestBody MyQueryParam queryParam) {
return super.baseListMapBy(queryParam, SysUser.INSTANCE);
}
@@ -289,9 +264,8 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param queryParam 查询参数。
* @return 应答结果对象,包含符合查询过滤条件的对象结果集。
*/
@ApiOperation(hidden = true, value = "getBy")
@PostMapping("/getBy")
public ResponseResult<SysUserDto> getBy(@RequestBody MyQueryParam queryParam) {
public ResponseResult<SysUserVo> getBy(@RequestBody MyQueryParam queryParam) {
return super.baseGetBy(queryParam, SysUser.INSTANCE);
}
@@ -301,7 +275,6 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param queryParam 查询参数。
* @return 应答结果对象,包含结果数量。
*/
@ApiOperation(hidden = true, value = "countBy")
@PostMapping("/countBy")
public ResponseResult<Integer> countBy(@RequestBody MyQueryParam queryParam) {
return super.baseCountBy(queryParam);
@@ -313,7 +286,6 @@ public class SysUserController extends BaseController<SysUser, SysUserDto, Long>
* @param aggregationParam 聚合参数。
* @return 应该结果对象包含聚合计算后的分组Map列表。
*/
@ApiOperation(hidden = true, value = "aggregateBy")
@PostMapping("/aggregateBy")
public ResponseResult<List<Map<String, Object>>> aggregateBy(@RequestBody MyAggregationParam aggregationParam) {
return super.baseAggregateBy(aggregationParam);

View File

@@ -15,8 +15,14 @@
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<!-- 如果有逻辑删除字段过滤,请写到这里 -->
<sql id="filterRef">
<!-- 这里必须加上全包名否则当filterRef被其他Mapper.xml包含引用的时候就会调用Mapper.xml中的该SQL片段 -->
<include refid="com.orange.demo.upmsservice.dao.SysUserMapper.inputFilterRef"/>
AND zz_sys_user.deleted_flag = ${@com.orange.demo.common.core.constant.GlobalDeletedFlag@NORMAL}
</sql>
<!-- 这里仅包含调用接口输入的主表过滤条件 -->
<sql id="inputFilterRef">
<if test="sysUserFilter != null">
<if test="sysUserFilter.loginName != null and sysUserFilter.loginName != ''">
<bind name = "safeLoginName" value = "'%' + sysUserFilter.loginName + '%'" />

View File

@@ -7,7 +7,7 @@ import com.orange.demo.common.core.annotation.RelationConstDict;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.validator.ConstDictRef;
import com.orange.demo.upmsinterface.dto.SysUserDto;
import com.orange.demo.upmsinterface.vo.SysUserVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
@@ -134,23 +134,23 @@ public class SysUser {
private Map<String, Object> userStatusDictMap;
@Mapper
public interface SysUserModelMapper extends BaseModelMapper<SysUserDto, SysUser> {
public interface SysUserModelMapper extends BaseModelMapper<SysUserVo, SysUser> {
/**
* 转换Dto对象到实体对象。
* 转换Vo对象到实体对象。
*
* @param sysUserDto 域对象。
* @param sysUserVo 域对象。
* @return 实体对象。
*/
@Override
SysUser toModel(SysUserDto sysUserDto);
SysUser toModel(SysUserVo sysUserVo);
/**
* 转换实体对象到Dto对象。
* 转换实体对象到VO对象。
*
* @param sysUser 实体对象。
* @return 域对象。
*/
@Override
SysUserDto fromModel(SysUser sysUser);
SysUserVo fromModel(SysUser sysUser);
}
public static final SysUserModelMapper INSTANCE = Mappers.getMapper(SysUserModelMapper.class);
}

View File

@@ -3,7 +3,6 @@ package com.orange.demo.upmsservice.service;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.upmsservice.dao.*;
import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsinterface.dto.*;
import com.orange.demo.common.core.util.*;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
@@ -26,7 +25,7 @@ import java.util.*;
* @date 2020-08-08
*/
@Service
public class SysUserService extends BaseService<SysUser, SysUserDto, Long> {
public class SysUserService extends BaseService<SysUser, Long> {
@Autowired
private SysUserMapper sysUserMapper;
@@ -108,8 +107,9 @@ public class SysUserService extends BaseService<SysUser, SysUserDto, Long> {
@Transactional(rollbackFor = Exception.class)
public boolean changePassword(Long userId, String newPass) {
Example e = new Example(SysUser.class);
e.createCriteria().andEqualTo(super.idFieldName, userId);
e.createCriteria().andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
e.createCriteria()
.andEqualTo(super.idFieldName, userId)
.andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
SysUser updatedUser = new SysUser();
updatedUser.setPassword(passwordEncoder.encode(newPass));
return sysUserMapper.updateByExampleSelective(updatedUser, e) == 1;

View File

@@ -59,9 +59,6 @@
<Root level="${OUTPUT_LOG_LEVEL}">
<AppenderRef ref="console"/>
</Root>
<Logger name="springfox.documentation" additivity="false" level="error">
<AppenderRef ref="console"/>
</Logger>
<!-- AsyncLogger 是基于Disruptor的全量异步队列性能极高队列默认大小4096。-->
<!-- 队列默认值可通过JVM参数设置参考博客https://www.jianshu.com/p/82469047acbf -->
<AsyncLogger name="com.orange.demo" additivity="false" level="info">

View File

@@ -89,23 +89,6 @@
<orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.11" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.0" level="project" />
<orderEntry type="module" module-name="application-common" />
<orderEntry type="module" module-name="common-swagger" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-micro-spring-boot-starter:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-boot-autoconfigure:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.5" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" />
<orderEntry type="module" module-name="common-redis" />
<orderEntry type="library" name="Maven: redis.clients:jedis:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.7.0" level="project" />