diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java index 21e08ac12..76b863f23 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/enums/DicDataEnum.java @@ -468,6 +468,8 @@ public enum DicDataEnum { USER_MANUAL("使用手册","User_Manual"), USER_AGREEMENT("用户协议","User_Agreement"), COMPANY_PROFILE("公司简介","Company_Profile"), + PERSONAL_INFOR_PROTECT("个人信息保护政策","Personal_Infor_Protect"), + /** * app设备事件类型权限转移,数据恢复 */ diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/DictTreeParam.java b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/DictTreeParam.java index 2de9a54ec..369d1d14e 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/DictTreeParam.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/param/DictTreeParam.java @@ -31,24 +31,24 @@ public class DictTreeParam { * 名称 */ @ApiModelProperty(value = "名称") + @NotBlank(message = ValidMessage.NAME_NOT_BLANK) private String name; /** * 编码 */ @TableField(value = "编码") + @NotBlank(message = ValidMessage.CODE_NOT_BLANK) private String code; /** * 排序 */ - @TableField(value = "sort") private Integer sort; /** * 描述 */ - @TableField(value = "remark") private String remark; diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/UserLogController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/UserLogController.java index d80a2a3ba..c95d34d58 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/UserLogController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/UserLogController.java @@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.stream.Collectors; import java.util.stream.Stream; @@ -70,7 +71,7 @@ public class UserLogController extends BaseController { ServerInfo.CS_REPORT_BOOT, ServerInfo.CS_EVENT_BOOT, ServerInfo.CS_WARN_BOOT, - ServerInfo.CS_SYSTEM_BOOT)).orderByDesc(UserLog::getCreateTime).last("limit 100").list(); + ServerInfo.CS_SYSTEM_BOOT).collect(Collectors.toList())).orderByDesc(UserLog::getCreateTime).last("limit 100").list(); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); } } diff --git a/pqs-user/user-api/src/main/java/com/njcn/user/pojo/param/UserInfoParm.java b/pqs-user/user-api/src/main/java/com/njcn/user/pojo/param/UserInfoParm.java new file mode 100644 index 000000000..f39440bc6 --- /dev/null +++ b/pqs-user/user-api/src/main/java/com/njcn/user/pojo/param/UserInfoParm.java @@ -0,0 +1,31 @@ +package com.njcn.user.pojo.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.user.pojo.constant.UserValidMessage; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * Description: + * Date: 2023/8/10 15:36【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class UserInfoParm { + +// @ApiModelProperty("用户表Id") +// @NotNull(message = UserValidMessage.ID_NOT_BLANK) +// private String id; + + @ApiModelProperty("移动端用户头像") + private String headSculpture; + + @ApiModelProperty("用户名") + private String name; +} diff --git a/pqs-user/user-boot/pom.xml b/pqs-user/user-boot/pom.xml index 18b38781d..ea47e0536 100644 --- a/pqs-user/user-boot/pom.xml +++ b/pqs-user/user-boot/pom.xml @@ -55,6 +55,18 @@ aliyun-java-sdk-core 4.1.0 + + com.njcn + minioss-springboot-starter + 1.0.0 + compile + + + com.njcn + common-oss + 1.0.0 + compile + diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java index 7d272a7b8..db9d5c4f8 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/controller/UserController.java @@ -15,10 +15,12 @@ import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.sm.DesUtils; import com.njcn.common.utils.sm.Sm2; +import com.njcn.minioss.bo.MinIoUploadResDTO; import com.njcn.poi.util.PoiUtil; import com.njcn.redis.utils.RedisUtil; import com.njcn.user.enums.UserResponseEnum; import com.njcn.user.pojo.dto.UserDTO; +import com.njcn.user.pojo.param.UserInfoParm; import com.njcn.user.pojo.param.UserParam; import com.njcn.user.pojo.param.UserPasswordParam; import com.njcn.user.pojo.po.User; @@ -34,6 +36,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletRequest; @@ -171,6 +174,39 @@ public class UserController extends BaseController { } } + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE) + @PutMapping("/updateAppUser") + @ApiOperation("修改用户头像,昵称") + @ApiImplicitParam(name = "userInfoParm", value = "修改用户", required = true) + public HttpResult update(@RequestBody @Validated UserInfoParm userInfoParm) { + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},用户数据为:{}", methodDescribe, userInfoParm); + boolean result = userService.updateAppUser(userInfoParm); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); + } + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD) + @PostMapping("/uploadImage") + @ApiOperation("上传头像") + public HttpResult uploadImage( MultipartFile issuesFile){ + String methodDescribe = getMethodDescribe("uploadImage"); + String filePath = userService.uploadImage(issuesFile); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,new MinIoUploadResDTO(issuesFile.getOriginalFilename(),filePath), methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD) + @PostMapping("/getUrl") + @ApiOperation("获取头像url") + public HttpResult getUrl(@RequestParam("headSculpture") String headSculpture){ + String methodDescribe = getMethodDescribe("getUrl"); + String url = userService.getUrl(headSculpture); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,url, methodDescribe); + } + + @OperateInfo(info = LogEnum.SYSTEM_COMMON) @PostMapping("/list") @ApiOperation("列表分页") diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java index 2b9d05976..b254de63e 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/IUserService.java @@ -3,11 +3,13 @@ package com.njcn.user.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.njcn.common.pojo.response.HttpResult; +import com.njcn.user.pojo.param.UserInfoParm; import com.njcn.user.pojo.param.UserParam; import com.njcn.user.pojo.po.User; import com.njcn.user.pojo.dto.UserDTO; import com.njcn.user.pojo.vo.UserVO; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -178,4 +180,9 @@ public interface IUserService extends IService { List getUserListByDeptId(String deptId); + boolean updateAppUser(UserInfoParm userInfoParm); + + String uploadImage(MultipartFile issuesFile); + + String getUrl(String headSculpture); } diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java index 615d92233..d2ced519b 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/service/impl/UserServiceImpl.java @@ -22,6 +22,8 @@ import com.njcn.common.utils.sm.Sm4Utils; import com.njcn.db.constant.DbConstant; import com.njcn.device.pq.api.PqsTerminalLogsClient; import com.njcn.device.pq.pojo.po.PqsTerminalLogs; +import com.njcn.oss.constant.OssPath; +import com.njcn.oss.utils.FileStorageUtil; import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.pojo.bo.BaseLineProExcelBody; import com.njcn.system.api.AreaFeignClient; @@ -37,6 +39,7 @@ import com.njcn.user.pojo.constant.UserState; import com.njcn.user.pojo.constant.UserType; import com.njcn.user.pojo.dto.UserDTO; import com.njcn.user.pojo.dto.excel.UserExcel; +import com.njcn.user.pojo.param.UserInfoParm; import com.njcn.user.pojo.param.UserParam; import com.njcn.user.pojo.po.*; import com.njcn.user.pojo.vo.UserVO; @@ -47,6 +50,7 @@ import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotNull; import java.io.File; @@ -86,6 +90,7 @@ public class UserServiceImpl extends ServiceImpl implements IU // private final PqsTerminalLogsClient pqsTerminalLogsClient; private final AreaFeignClient areaFeignClient; + private final FileStorageUtil fileStorageUtil; @Override public UserDTO getUserByName(String loginName) { @@ -484,6 +489,26 @@ public class UserServiceImpl extends ServiceImpl implements IU return this.list(new LambdaQueryWrapper().in(User::getDeptId,deptIds).select(User::getId,User::getName,User::getLoginName)); } + @Override + public boolean updateAppUser(UserInfoParm userInfoParm) { + boolean update = this.lambdaUpdate().eq(User::getId, RequestUtil.getUserIndex()). + set(StringUtils.isNotBlank(userInfoParm.getName()), User::getName, userInfoParm.getName()). + set(StringUtils.isNotBlank(userInfoParm.getHeadSculpture()), User::getHeadSculpture, userInfoParm.getHeadSculpture()).update(); + return update; + } + + @Override + public String uploadImage(MultipartFile issuesFile) { + + return fileStorageUtil.uploadMultipart(issuesFile, OssPath.RESOURCEDATA); + + } + + @Override + public String getUrl(String headSculpture) { + return fileStorageUtil.getFileUrl(headSculpture); + } + /** * 根据登录名查询用户 *