zss
2025-03-04 f28daac250336673519f6d77dde59f45daa9863c
用户部分通用接口+时间全局配置
已修改5个文件
已添加1个文件
207 ■■■■■ 文件已修改
cnas-manage/src/main/java/com/ruoyi/manage/pojo/ManageReviewProgram.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dto/UpdateUserDto.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
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;
}
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));
    }
}
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);
    }
}
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);
}
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()));
    }
}