From f28daac250336673519f6d77dde59f45daa9863c Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 04 三月 2025 11:38:53 +0800 Subject: [PATCH] 用户部分通用接口+时间全局配置 --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java | 45 +++++++++++ ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java | 66 +++++++++++++-- ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java | 27 ++++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/dto/UpdateUserDto.java | 11 ++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java | 54 +++++++++++++ cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java | 4 + 6 files changed, 194 insertions(+), 13 deletions(-) diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java b/cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java index d78f41b..c177e62 100644 --- a/cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java +++ b/cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java @@ -1,6 +1,7 @@ package com.ruoyi.manage.pojo; import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -29,6 +30,7 @@ private Integer id; @ApiModelProperty("璇勫鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime reviewTime; @ApiModelProperty("璇勫鍦扮偣") @@ -59,12 +61,14 @@ private String editor; @ApiModelProperty("缂栧埗鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime editorDate; @ApiModelProperty("鎵瑰噯") private String approve; @ApiModelProperty("鎵瑰噯鏃ユ湡") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime approveDate; @TableField(fill = FieldFill.INSERT) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/dto/UpdateUserDto.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/dto/UpdateUserDto.java new file mode 100644 index 0000000..474b874 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/dto/UpdateUserDto.java @@ -0,0 +1,11 @@ +package com.ruoyi.web.controller.dto; + +import lombok.Data; + +@Data +public class UpdateUserDto { + + private String id; + + private String ids; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java index eb0bfd5..2205351 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java @@ -1,9 +1,12 @@ package com.ruoyi.web.controller.system; +import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.system.service.UserService; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.web.controller.dto.UpdateUserDto; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -21,5 +24,52 @@ @Resource private UserService userService; + /** + * todo: type : 1: 鑾峰彇妫�娴嬩汉鍛樹俊鎭� + type : 2: 鑾峰彇褰撳墠閮ㄩ棬(瀹為獙瀹や汉鍛�) + * @param user + * @param type + * @return + */ + @ApiOperation(value = "鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃") + @GetMapping("/selectUserCondition") + public Result selectUserCondition(User user, String type){ + return Result.success(userService.selectUserCondition(user, type)); + } + + /** + * 鑾峰彇褰撳墠鐧诲綍鐨勫鎴蜂俊鎭� + * @return + */ + @GetMapping("/getUserNow") + @ApiOperation(value = "鑾峰彇褰撳墠鐧诲綍鐨勫鎴蜂俊鎭�") + public Result<?> getUserNow(){ + return Result.success(userService.getUserNow()); + } + + /** + * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬 + * @return + */ + @GetMapping("/selectUserDepartmentLimsName") + @ApiOperation(value = "鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬") + public Result<?> selectUserDepartmentLimsName(){ + return Result.success("鎴愬姛", userService.selectUserDepartmentLimsName()); + } + + @PostMapping("/upUserDepardLimsId") + @ApiOperation(value = "淇敼浜哄憳鏄庣粏鎵�鍦ㄧ粍缁囨灦鏋�") + public Result<?> upUserDepardLimsId(@RequestBody UpdateUserDto dto){ + return Result.success(userService.upUserDepardLimsId(dto.getIds(), dto.getId())); + } + + @DeleteMapping("/delUserDepardLimsId") + @ApiOperation(value = "鍒犻櫎浜哄憳鏄庣粏鎵�鍦ㄧ粍缁囨灦鏋�") + public Result<?> delUserDepardLimsId(Integer id){ + return Result.success(userService.delUserDepardLimsId(id)); + } + + + } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java index 7b0300c..0db1b6b 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -1,10 +1,25 @@ package com.ruoyi.framework.config; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; import java.util.concurrent.TimeUnit; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.CacheControl; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @@ -26,29 +41,33 @@ @Autowired private RepeatSubmitInterceptor repeatSubmitInterceptor; + @Value("${file.path}") + private String filePath; + + @Value("${wordUrl}") + private String wordUrl; + @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) - { + public void addResourceHandlers(ResourceHandlerRegistry registry) { /** 鏈湴鏂囦欢涓婁紶璺緞 */ registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**") .addResourceLocations("file:" + RuoYiConfig.getProfile() + "/"); -// -// /** swagger閰嶇疆 */ -// registry.addResourceHandler("/swagger-ui/**") -// .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/") -// .setCacheControl(CacheControl.maxAge(5, TimeUnit.HOURS).cachePublic()); + registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/favicon.ico").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + + //璁剧疆鏂囦欢铏氭嫙璺緞鏄犲皠 + registry.addResourceHandler("/img/**").addResourceLocations("file:" + filePath + "/"); + registry.addResourceHandler("/word/**").addResourceLocations("file:" + wordUrl + "/"); } /** * 鑷畾涔夋嫤鎴鍒� */ @Override - public void addInterceptors(InterceptorRegistry registry) - { + public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**"); } @@ -56,8 +75,7 @@ * 璺ㄥ煙閰嶇疆 */ @Bean - public CorsFilter corsFilter() - { + public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); // 璁剧疆璁块棶婧愬湴鍧� @@ -74,4 +92,30 @@ // 杩斿洖鏂扮殑CorsFilter return new CorsFilter(source); } + + // 鍏ㄥ眬鏍煎紡鍖栧鐞� + @Override + public void extendMessageConverters(List<HttpMessageConverter<?>> converters) { + String dateFormat = "yyyy-MM-dd HH:mm:ss"; + + Jackson2ObjectMapperBuilder json = Jackson2ObjectMapperBuilder.json(); + MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); + + //localDateTime鏍煎紡鍖� + JavaTimeModule module = new JavaTimeModule(); + LocalDateTimeDeserializer dateTimeDeserializer = new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(dateFormat)); + LocalDateTimeSerializer dateTimeSerializer = new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateFormat)); + module.addDeserializer(LocalDateTime.class, dateTimeDeserializer); + module.addSerializer(LocalDateTime.class, dateTimeSerializer); + ObjectMapper objectMapper = json.modules(module) + .featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build(); + + //date鏃堕棿鏍煎紡鍖� + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.setDateFormat(new SimpleDateFormat(dateFormat.split(" ")[0])); + + // 璁剧疆鏍煎紡鍖栧唴瀹� + converter.setObjectMapper(objectMapper); + converters.add(0, converter); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java index b073d56..65d660a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.entity.User; +import java.util.List; + /** * 鐢ㄦ埛淇℃伅琛� * @@ -11,5 +13,30 @@ */ public interface UserService extends IService<User> { + /** + * 鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃 + * @param user + * @param type + * @return + */ + List<User> selectUserCondition(User user, String type); + + /** + * 鑾峰彇褰撳墠鐧诲綍鐨勫鎴蜂俊鎭� + * @return + */ + User getUserNow(); + + /** + * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬 + * @return + */ + String selectUserDepartmentLimsName(); + + + int upUserDepardLimsId(String ids, String id); + + int delUserDepardLimsId(Integer id); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java index acc052e..f097b32 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java @@ -1,10 +1,17 @@ package com.ruoyi.system.service.impl; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.mapper.UserMapper; import com.ruoyi.system.service.UserService; import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; /** * 鐢ㄦ埛淇℃伅琛� @@ -14,6 +21,44 @@ */ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { + /** + * 鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃 + * @param user + * @param type + * @return + */ + @Override + public List<User> selectUserCondition(User user, String type) { + return baseMapper.selectUserCondition(QueryWrappers.queryWrappers(user), type); + } + /** + * 鑾峰彇褰撳墠鐧诲綍鐨勫鎴蜂俊鎭� + * @return + */ + @Override + public User getUserNow() { + return baseMapper.getUserNow(SecurityUtils.getUserId().intValue()); + } + + /** + * 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛閮ㄩ棬 + * @return + */ + @Override + public String selectUserDepartmentLimsName() { + return baseMapper.selectUserDepartmentLimsName(SecurityUtils.getUserId().intValue()); + } + + @Override + public int upUserDepardLimsId(String ids, String id) { + List<Integer> userIds = JSON.parseArray(ids, Integer.class); + return baseMapper.update(null, Wrappers.<User>lambdaUpdate().in(User::getId, userIds).set(User::getDepartLimsId, id).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy,SecurityUtils.getLoginUser().getUsername())); + } + + @Override + public int delUserDepardLimsId(Integer id) { + return baseMapper.update(null, Wrappers.<User>lambdaUpdate().eq(User::getId, id).set(User::getDepartLimsId, null).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy, SecurityUtils.getUsername())); + } } -- Gitblit v1.9.3