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