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

@@ -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">