基本完成

This commit is contained in:
cuianbing
2026-01-02 10:08:57 +08:00
parent 5990a4f052
commit cdf19f2314
120 changed files with 147 additions and 591 deletions

4
.idea/compiler.xml generated
View File

@@ -8,13 +8,13 @@
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="rensijin-cchs" />
<module name="rensijin-cchs-server" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="rensijin-cchs" options="-parameters" />
<module name="rensijin-cchs-server" options="-parameters" />
</option>
</component>
</project>

View File

@@ -1,6 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />

2
.idea/misc.xml generated
View File

@@ -8,5 +8,5 @@
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="temurin-17" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>

4
.idea/vcs.xml generated
View File

@@ -1,4 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings" defaultProject="true" />
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -11,7 +11,7 @@
</parent>
<groupId>com.rensijin.cchs</groupId>
<artifactId>rensijin-cchs</artifactId>
<artifactId>rensijin-cchs-server</artifactId>
<version>1.0.0</version>
<name>rensijin-cchs</name>
<description>任思瑾的客户投诉处理系统</description>

View File

@@ -1,9 +1,7 @@
package cn.wujiangbo;
package cn.rensijin.cchs;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
/**
* @desc系统启动类

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.annotation;
package cn.rensijin.cchs.annotation;
import java.lang.annotation.*;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.annotation;
package cn.rensijin.cchs.annotation;
import java.lang.annotation.*;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.config.cors;
package cn.rensijin.cchs.config.cors;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.config.date;
package cn.rensijin.cchs.config.date;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.config.date;
package cn.rensijin.cchs.config.date;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.config.mp;
package cn.rensijin.cchs.config.mp;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
* @description: MyBatiesPlus配置类
*/
@Configuration
@MapperScan("cn.wujiangbo.mapper")
@MapperScan("cn.rensijin.cchs.mapper")
public class MyBatiesPlusConfiguration {
/*

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.config.redis;
package cn.rensijin.cchs.config.redis;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.config.swagger;
package cn.rensijin.cchs.config.swagger;
import io.swagger.models.auth.In;
import org.springframework.context.annotation.Bean;
@@ -33,7 +33,7 @@ public class Swagger2 {
.select()
//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))//扫描所有有注解的api
//.apis(RequestHandlerSelectors.any())//扫描所有
.apis(RequestHandlerSelectors.basePackage("cn.wujiangbo.controller"))//扫描包
.apis(RequestHandlerSelectors.basePackage("cn.rensijin.cchs.controller"))//扫描包
.paths(PathSelectors.any())
.build()
/* 设置安全模式swagger可以设置访问token */

View File

@@ -1,8 +1,8 @@
package cn.wujiangbo.config.web;
package cn.rensijin.cchs.config.web;
import cn.wujiangbo.config.date.JacksonObjectMapper;
import cn.wujiangbo.interceptor.LoginInterceptor;
import cn.wujiangbo.interceptor.RateLimitInterceptor;
import cn.rensijin.cchs.config.date.JacksonObjectMapper;
import cn.rensijin.cchs.interceptor.LoginInterceptor;
import cn.rensijin.cchs.interceptor.RateLimitInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.constants;
package cn.rensijin.cchs.constants;
/**
* 系统错误码

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.constants;
package cn.rensijin.cchs.constants;
/**
* @description 系统常量类

View File

@@ -1,15 +1,15 @@
package cn.wujiangbo.controller;
package cn.rensijin.cchs.controller;
import cn.hutool.crypto.SecureUtil;
import cn.wujiangbo.annotation.IgnoreAuth;
import cn.wujiangbo.constants.ErrorCode;
import cn.wujiangbo.constants.SystemConstants;
import cn.wujiangbo.domain.system.SysUser;
import cn.wujiangbo.exception.MyException;
import cn.wujiangbo.mapper.system.SysUserMapper;
import cn.wujiangbo.result.JSONResult;
import cn.wujiangbo.util.MyTools;
import cn.wujiangbo.vo.UserTokenVo;
import cn.rensijin.cchs.annotation.IgnoreAuth;
import cn.rensijin.cchs.constants.ErrorCode;
import cn.rensijin.cchs.constants.SystemConstants;
import cn.rensijin.cchs.domain.system.SysUser;
import cn.rensijin.cchs.exception.MyException;
import cn.rensijin.cchs.mapper.system.SysUserMapper;
import cn.rensijin.cchs.result.JSONResult;
import cn.rensijin.cchs.util.MyTools;
import cn.rensijin.cchs.vo.UserTokenVo;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wf.captcha.SpecCaptcha;

View File

@@ -1,32 +1,21 @@
package cn.wujiangbo.controller;
package cn.rensijin.cchs.controller;
import cn.hutool.crypto.SecureUtil;
import cn.wujiangbo.annotation.IgnoreAuth;
import cn.wujiangbo.constants.ErrorCode;
import cn.wujiangbo.constants.SystemConstants;
import cn.wujiangbo.domain.app.AppUser;
import cn.wujiangbo.domain.system.SysUser;
import cn.wujiangbo.exception.MyException;
import cn.wujiangbo.result.JSONResult;
import cn.wujiangbo.service.system.SysUserService;
import cn.wujiangbo.util.DateUtils;
import cn.wujiangbo.util.MyTools;
import cn.wujiangbo.vo.UserTokenVo;
import com.alibaba.fastjson.JSONObject;
import cn.rensijin.cchs.annotation.IgnoreAuth;
import cn.rensijin.cchs.domain.system.SysUser;
import cn.rensijin.cchs.exception.MyException;
import cn.rensijin.cchs.result.JSONResult;
import cn.rensijin.cchs.service.system.SysUserService;
import cn.rensijin.cchs.util.MyTools;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* @desc 用户注册
*/

View File

@@ -1,7 +1,7 @@
package cn.wujiangbo.controller;
package cn.rensijin.cchs.controller;
import cn.wujiangbo.annotation.RateLimit;
import cn.wujiangbo.result.JSONResult;
import cn.rensijin.cchs.annotation.RateLimit;
import cn.rensijin.cchs.result.JSONResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

View File

@@ -1,13 +1,12 @@
package cn.wujiangbo.controller.app;
package cn.rensijin.cchs.controller.app;
import cn.wujiangbo.domain.app.AppSuggestion;
import cn.wujiangbo.result.PageList;
import cn.wujiangbo.service.app.AppSuggestionService;
import cn.wujiangbo.query.app.AppSuggestionQuery;
import cn.wujiangbo.controller.base.BaseController;
import cn.wujiangbo.util.DateUtils;
import cn.wujiangbo.result.JSONResult;
import cn.wujiangbo.result.PageList;
import cn.rensijin.cchs.domain.app.AppSuggestion;
import cn.rensijin.cchs.result.PageList;
import cn.rensijin.cchs.service.app.AppSuggestionService;
import cn.rensijin.cchs.query.app.AppSuggestionQuery;
import cn.rensijin.cchs.controller.base.BaseController;
import cn.rensijin.cchs.util.DateUtils;
import cn.rensijin.cchs.result.JSONResult;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,13 +1,11 @@
package cn.wujiangbo.controller.base;
package cn.rensijin.cchs.controller.base;
import cn.wujiangbo.constants.ErrorCode;
import cn.wujiangbo.constants.SystemConstants;
import cn.wujiangbo.domain.app.AppUser;
import cn.wujiangbo.domain.system.SysUser;
import cn.wujiangbo.exception.MyException;
import cn.wujiangbo.service.app.AppUserService;
import cn.wujiangbo.util.MyTools;
import cn.wujiangbo.util.RedisCache;
import cn.rensijin.cchs.constants.ErrorCode;
import cn.rensijin.cchs.constants.SystemConstants;
import cn.rensijin.cchs.domain.system.SysUser;
import cn.rensijin.cchs.exception.MyException;
import cn.rensijin.cchs.util.MyTools;
import cn.rensijin.cchs.util.RedisCache;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@@ -23,40 +21,8 @@ public class BaseController {
@Resource
private RedisCache redisCache;
@Resource
private AppUserService appUserService;
/**
* 获取APP用户昵称
*/
public String getAppNickName() {
Long appUserId = getAppUserId();
if (appUserId != null) {
AppUser one = appUserService.getById(appUserId);
if (one != null) {
return one.getNickName();
}
}
return null;
}
/**
* 获取APP用户ID
*/
public Long getAppUserId() {
HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
if (request != null) {
String headerToken = request.getHeader("token");
if (MyTools.hasLength(headerToken)) {
String userInfo = redisCache.getCacheObject(SystemConstants.LOGIN_TOKEN_KEY_APP + headerToken);
AppUser user = JSONObject.parseObject(userInfo, AppUser.class);
return user.getId();
} else {
throw new MyException("您没有权限进行此操作!");
}
}
return null;
}
/**
* 获取登录人的信息

View File

@@ -1,21 +1,20 @@
package cn.wujiangbo.controller.system;
package cn.rensijin.cchs.controller.system;
import cn.hutool.crypto.SecureUtil;
import cn.wujiangbo.constants.SystemConstants;
import cn.wujiangbo.controller.base.BaseController;
import cn.wujiangbo.domain.system.SysUser;
import cn.wujiangbo.query.system.SysUserQuery;
import cn.wujiangbo.result.JSONResult;
import cn.wujiangbo.result.PageList;
import cn.wujiangbo.service.system.SysUserService;
import cn.wujiangbo.util.DateUtils;
import cn.wujiangbo.util.MyTools;
import cn.rensijin.cchs.constants.SystemConstants;
import cn.rensijin.cchs.controller.base.BaseController;
import cn.rensijin.cchs.domain.system.SysUser;
import cn.rensijin.cchs.query.system.SysUserQuery;
import cn.rensijin.cchs.result.JSONResult;
import cn.rensijin.cchs.result.PageList;
import cn.rensijin.cchs.service.system.SysUserService;
import cn.rensijin.cchs.util.DateUtils;
import cn.rensijin.cchs.util.MyTools;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;

View File

@@ -1,11 +1,11 @@
package cn.wujiangbo.domain.app;
package cn.rensijin.cchs.domain.app;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField;
import cn.wujiangbo.domain.base.BaseDomain;
import cn.rensijin.cchs.domain.base.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.domain.base;
package cn.rensijin.cchs.domain.base;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -1,11 +1,11 @@
package cn.wujiangbo.domain.system;
package cn.rensijin.cchs.domain.system;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField;
import cn.wujiangbo.domain.base.BaseDomain;
import cn.rensijin.cchs.domain.base.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.dto;
package cn.rensijin.cchs.dto;
import java.time.LocalDateTime;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.dto;
package cn.rensijin.cchs.dto;
import lombok.Data;

View File

@@ -1,7 +1,7 @@
package cn.wujiangbo.exception;
package cn.rensijin.cchs.exception;
import cn.wujiangbo.constants.ErrorCode;
import cn.wujiangbo.result.JSONResult;
import cn.rensijin.cchs.constants.ErrorCode;
import cn.rensijin.cchs.result.JSONResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

View File

@@ -1,6 +1,6 @@
package cn.wujiangbo.exception;
package cn.rensijin.cchs.exception;
import cn.wujiangbo.constants.ErrorCode;
import cn.rensijin.cchs.constants.ErrorCode;
import lombok.Data;
/**

View File

@@ -1,11 +1,10 @@
package cn.wujiangbo.interceptor;
package cn.rensijin.cchs.interceptor;
import cn.wujiangbo.annotation.IgnoreAuth;
import cn.wujiangbo.constants.ErrorCode;
import cn.wujiangbo.constants.SystemConstants;
import cn.wujiangbo.exception.MyException;
import cn.wujiangbo.util.MyTools;
import org.springframework.beans.factory.annotation.Autowired;
import cn.rensijin.cchs.annotation.IgnoreAuth;
import cn.rensijin.cchs.constants.ErrorCode;
import cn.rensijin.cchs.constants.SystemConstants;
import cn.rensijin.cchs.exception.MyException;
import cn.rensijin.cchs.util.MyTools;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;

View File

@@ -1,7 +1,7 @@
package cn.wujiangbo.interceptor;
package cn.rensijin.cchs.interceptor;
import cn.wujiangbo.annotation.RateLimit;
import cn.wujiangbo.exception.MyException;
import cn.rensijin.cchs.annotation.RateLimit;
import cn.rensijin.cchs.exception.MyException;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;

View File

@@ -1,8 +1,8 @@
package cn.wujiangbo.mapper.app;
package cn.rensijin.cchs.mapper.app;
import cn.wujiangbo.domain.app.AppSuggestion;
import cn.wujiangbo.dto.AppSuggestionVO;
import cn.wujiangbo.query.app.AppSuggestionQuery;
import cn.rensijin.cchs.domain.app.AppSuggestion;
import cn.rensijin.cchs.dto.AppSuggestionVO;
import cn.rensijin.cchs.query.app.AppSuggestionQuery;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

View File

@@ -1,6 +1,6 @@
package cn.wujiangbo.mapper.system;
package cn.rensijin.cchs.mapper.system;
import cn.wujiangbo.domain.system.SysUser;
import cn.rensijin.cchs.domain.system.SysUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**

View File

@@ -1,6 +1,6 @@
package cn.wujiangbo.query.app;
package cn.rensijin.cchs.query.app;
import cn.wujiangbo.query.base.BaseQuery;
import cn.rensijin.cchs.query.base.BaseQuery;
/**
* 意见反馈表-查询对象

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.query.base;
package cn.rensijin.cchs.query.base;
import lombok.Data;
import java.io.Serializable;

View File

@@ -1,6 +1,6 @@
package cn.wujiangbo.query.system;
package cn.rensijin.cchs.query.system;
import cn.wujiangbo.query.base.BaseQuery;
import cn.rensijin.cchs.query.base.BaseQuery;
/**
* @desc 用户信息表-查询对象

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.result;
package cn.rensijin.cchs.result;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.result;
package cn.rensijin.cchs.result;
import lombok.Data;

View File

@@ -1,10 +1,10 @@
package cn.wujiangbo.service.app;
package cn.rensijin.cchs.service.app;
import cn.wujiangbo.domain.app.AppSuggestion;
import cn.wujiangbo.dto.AppSuggestionVO;
import cn.wujiangbo.mapper.app.AppSuggestionMapper;
import cn.wujiangbo.query.app.AppSuggestionQuery;
import cn.wujiangbo.util.MyTools;
import cn.rensijin.cchs.domain.app.AppSuggestion;
import cn.rensijin.cchs.dto.AppSuggestionVO;
import cn.rensijin.cchs.mapper.app.AppSuggestionMapper;
import cn.rensijin.cchs.query.app.AppSuggestionQuery;
import cn.rensijin.cchs.util.MyTools;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

View File

@@ -1,6 +1,6 @@
package cn.wujiangbo.service.system;
package cn.rensijin.cchs.service.system;
import cn.wujiangbo.vo.UploadFileVo;
import cn.rensijin.cchs.vo.UploadFileVo;
import org.springframework.web.multipart.MultipartFile;
/**

View File

@@ -1,20 +1,19 @@
package cn.wujiangbo.service.system;
package cn.rensijin.cchs.service.system;
import cn.wujiangbo.constants.ErrorCode;
import cn.wujiangbo.constants.SystemConstants;
import cn.wujiangbo.domain.system.SysUser;
import cn.wujiangbo.exception.MyException;
import cn.wujiangbo.mapper.system.SysUserMapper;
import cn.wujiangbo.query.system.SysUserQuery;
import cn.wujiangbo.result.JSONResult;
import cn.wujiangbo.util.MyTools;
import cn.rensijin.cchs.constants.ErrorCode;
import cn.rensijin.cchs.constants.SystemConstants;
import cn.rensijin.cchs.domain.system.SysUser;
import cn.rensijin.cchs.exception.MyException;
import cn.rensijin.cchs.mapper.system.SysUserMapper;
import cn.rensijin.cchs.query.system.SysUserQuery;
import cn.rensijin.cchs.result.JSONResult;
import cn.rensijin.cchs.util.MyTools;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

View File

@@ -1,9 +1,9 @@
package cn.wujiangbo.service.system.impl;
package cn.rensijin.cchs.service.system.impl;
import cn.wujiangbo.exception.MyException;
import cn.wujiangbo.service.system.FileService;
import cn.wujiangbo.util.DateUtils;
import cn.wujiangbo.vo.UploadFileVo;
import cn.rensijin.cchs.exception.MyException;
import cn.rensijin.cchs.service.system.FileService;
import cn.rensijin.cchs.util.DateUtils;
import cn.rensijin.cchs.vo.UploadFileVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Value;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.util;
package cn.rensijin.cchs.util;
import org.apache.commons.lang3.time.DateFormatUtils;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.util;
package cn.rensijin.cchs.util;
import cn.hutool.core.lang.UUID;
import org.apache.commons.lang3.StringUtils;

View File

@@ -1,8 +1,8 @@
package cn.wujiangbo.util;
package cn.rensijin.cchs.util;
import cn.hutool.core.codec.Base64Encoder;
import cn.hutool.crypto.SecureUtil;
import cn.wujiangbo.constants.SystemConstants;
import cn.rensijin.cchs.constants.SystemConstants;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.multipart.MultipartFile;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.util;
package cn.rensijin.cchs.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.BoundSetOperations;

View File

@@ -1,6 +1,5 @@
package cn.wujiangbo.vo;
package cn.rensijin.cchs.vo;
import cn.wujiangbo.domain.app.AppUser;
import lombok.Data;
/**
@@ -12,5 +11,4 @@ public class LoginSuccessVo {
private String refToken;//刷新token
private Long userId;//用户ID
private Integer roleId;
private AppUser appUser;//APP用户信息
}

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.vo;
package cn.rensijin.cchs.vo;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package cn.wujiangbo.vo;
package cn.rensijin.cchs.vo;
import lombok.Data;

View File

@@ -1,99 +0,0 @@
package cn.wujiangbo.domain.app;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField;
import cn.wujiangbo.domain.base.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* APP用户信息表
* </p>
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="app_user 表对应的实体对象", description="APP用户信息表")
public class AppUser extends BaseDomain implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "更新时间")
@TableField(value = "update_time")
private LocalDateTime updateTime;
@ApiModelProperty(value = "登录账号")
@TableField(value = "login_name")
private String loginName;
@ApiModelProperty(value = "登录密码")
@TableField(value = "login_pass")
private String loginPass;
@ApiModelProperty(value = "昵称")
@TableField(value = "nick_name")
private String nickName;
@ApiModelProperty(value = "用户头像")
@TableField(value = "user_img")
private String userImg;
@ApiModelProperty(value = "用户性别01")
@TableField(value = "user_sex")
private Integer userSex;
@ApiModelProperty(value = "用户手机号")
@TableField(value = "user_phone")
private String userPhone;
@ApiModelProperty(value = "用户状态1正常2限制登录")
@TableField(value = "user_status")
private Integer userStatus;
@ApiModelProperty(value = "限制登录原因")
@TableField(value = "user_error")
private String userError;
@ApiModelProperty(value = "用户个人简介")
@TableField(value = "user_brief")
private String userBrief;
@ApiModelProperty(value = "最后一次登录时间")
@TableField(value = "last_login_time")
private LocalDateTime lastLoginTime;
@ApiModelProperty(value = "注册时间")
@TableField(value = "register_time")
private LocalDateTime registerTime;
@ApiModelProperty(value = "账户余额")
@TableField(value = "user_money")
private BigDecimal userMoney;
@ApiModelProperty(value = "是否是管理员12")
@TableField(value = "admin_flag")
private Integer adminFlag;
/***********************************************************************************
***********************************************************************************/
@ApiModelProperty(value = "新密码")
@TableField(exist = false)
private String password2;
@ApiModelProperty(value = "短信验证码")
@TableField(exist = false)
private String smsCode;
}

View File

@@ -1,28 +0,0 @@
package cn.wujiangbo.mapper.app;
import cn.wujiangbo.domain.app.AppUser;
import cn.wujiangbo.dto.AppSuggestionVO;
import cn.wujiangbo.query.app.AppSuggestionQuery;
import cn.wujiangbo.query.app.AppUserQuery;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
* APP用户信息表 Mapper接口
* </p>
*/
public interface AppUserMapper extends BaseMapper<AppUser> {
//查询分页列表数据
List<AppUser> selectMySqlPage(Page<AppUser> page, @Param("query") AppUserQuery query);
}

View File

@@ -1,15 +0,0 @@
package cn.wujiangbo.query.app;
import cn.wujiangbo.query.base.BaseQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 轮播图表-查询对象
*/
@Data
public class AppSwiperQuery extends BaseQuery{
@ApiModelProperty(value = "轮播图业务类型")
private String busType;
}

View File

@@ -1,9 +0,0 @@
package cn.wujiangbo.query.app;
import cn.wujiangbo.query.base.BaseQuery;
/**
* APP用户信息表-查询对象
*/
public class AppUserQuery extends BaseQuery{
}

View File

@@ -1,48 +0,0 @@
package cn.wujiangbo.service.app;
import cn.wujiangbo.domain.app.AppUser;
import cn.wujiangbo.mapper.app.AppUserMapper;
import cn.wujiangbo.query.app.AppUserQuery;
import cn.wujiangbo.util.MyTools;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* APP用户信息表 服务实现类
* </p>
*/
@Transactional
@Service
@Slf4j
public class AppUserService extends ServiceImpl<AppUserMapper, AppUser>{
@Resource
private AppUserMapper appuserMapper;
//查询分页列表数据(使用QueryWrapper操作)
public Page<AppUser> selectMyPage(AppUserQuery query) {
QueryWrapper<AppUser> wrapper = new QueryWrapper<>();
if (MyTools.hasLength(query.getKeyword())) {
wrapper.and(i -> i.like("id", query.getKeyword()));
}
//排序
wrapper.orderByDesc("id");
Page<AppUser> page = new Page<>(query.getCurrent(), query.getSize());
return super.page(page, wrapper);
}
//查询分页列表数据(自己写SQL)
public Page<AppUser> selectMySqlPage(AppUserQuery query) {
Page<AppUser> page = new Page<>(query.getCurrent(), query.getSize());
List<AppUser> list = appuserMapper.selectMySqlPage(page, query);
return page.setRecords(list);
}
}

View File

@@ -1,127 +0,0 @@
//package cn.wujiangbo.service.system.impl;
//
//import cn.wujiangbo.dto.OssDto;
//import cn.wujiangbo.exception.MyException;
//import cn.wujiangbo.service.system.FileService;
//import cn.wujiangbo.util.DateUtils;
//import cn.wujiangbo.util.MyTools;
//import cn.wujiangbo.vo.UploadFileVo;
//import com.aliyun.oss.OSS;
//import com.aliyun.oss.OSSClientBuilder;
//import com.aliyun.oss.model.PutObjectRequest;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//import org.springframework.web.multipart.MultipartFile;
//import javax.annotation.Resource;
//
///**
// * <p>文件上传实现类</p>
// */
//@Service
//@Slf4j
//public class FileServiceOssImpl implements FileService {
//
// @Resource
// private OssDto ossDto;
//
// /**
// * 文件存储方案(1文件本地2存阿里云OSS)
// */
// @Value("${file.filescheme}")
// private String filescheme;
//
// @Value("${server.port}")
// private String port;
//
// @Value("${file.download.ip}")
// private String downloadIp;
//
// /**
// * 上传文件
// * @param multipartFile 文件
// * @param folderName 保存文件的路径
// * @return UploadFileVo
// */
// @Override
// public UploadFileVo uploadFile(MultipartFile multipartFile, String folderName) {
// System.out.println("上传文件存储方案:" + ("1".equals(filescheme) ? "本地" : "OSS"));
// if ("1".equals(filescheme)) {
// /**
// * 注意如果是存本地的话files下面必须直接存文件不能有其他层级了否则下载时无法下载或预览图片了
// */
// //上传文件存本地方案
// if (multipartFile.isEmpty()) {
// throw new MyException("上传文件不能为空!");
// }
// //获取文件名
// String fileName = extractFilename(multipartFile);
// // 封装完整的文件路径获取方法
// String fileUploadPath = MyTools.getFileUploadPath(fileName);
// System.out.println("上传文件磁盘保存路径=" + fileUploadPath);
// try {
// java.io.File uploadFile = new java.io.File(fileUploadPath);
// java.io.File parentFile = uploadFile.getParentFile();
// if (!parentFile.exists()) { // 如果父级不存在也就是说files目录不存在那么我要创建出来
// parentFile.mkdirs();
// }
// multipartFile.transferTo(uploadFile);
// } catch (Exception e) {
// log.error("文件上传失败", e);
// throw new MyException("上传文件失败!");
// }
// String filePath = "http://" + downloadIp + ":" + port + "/file/download/" + fileName;
// System.out.println("上传文件完整访问路径=" + filePath);
// UploadFileVo vo = new UploadFileVo();
// vo.setFileName(fileName);
// vo.setFilePrefix("http://" + downloadIp + ":" + port + "/file/download/");
// vo.setFileFullPath(filePath);
// vo.setFileSize(multipartFile.getSize());
// return vo;
// } else {
// //上传文件存OSS方案
// if (ossDto.getEnable()) {
// if (multipartFile.isEmpty()) {
// throw new MyException("上传文件不能为空!");
// }
// //获取文件名
// String fileName = extractFilename(multipartFile);
// //所有文件存储必需带上年月信息
// fileName = DateUtils.getCurrentYearMonth() + "/" + folderName + "/" + fileName;
// OSS build = new OSSClientBuilder().build(ossDto.getEndpoint(), ossDto.getAccessKey(), ossDto.getSecretKey());
// try {
// PutObjectRequest putObjectRequest = new PutObjectRequest(ossDto.getBucketName(), fileName, multipartFile.getInputStream());
// //将文件推到OSS服务器
// build.putObject(putObjectRequest);
// String imagePath = "https://" + ossDto.getBucketName() + "." + ossDto.getEndpoint() + "/" + fileName;
// UploadFileVo vo = new UploadFileVo();
// vo.setFileName(fileName);
// vo.setFilePrefix("https://" + ossDto.getBucketName() + "." + ossDto.getEndpoint() + "/");
// vo.setFileFullPath(imagePath);
// vo.setFileSize(multipartFile.getSize());
// return vo;
// } catch (Exception e) {
// e.printStackTrace();
// log.error("上传文件到阿里OSS服务器发生异常{}", e.getMessage());
// throw new MyException("文件上传至OSS异常");
// } finally {
// //关闭OSSClient
// build.shutdown();
// }
// }
// }
// return null;
// }
//
// /**
// * 编码文件名源文件名_当前时间戳
// * 如用户上传的文件名是dog.png那么此方法返回值为dog_20231212112323.png
// */
// public static final String extractFilename(MultipartFile file) {
// String fileName = file.getOriginalFilename();
// fileName = fileName.substring(0, fileName.lastIndexOf(".")) + "_" + DateUtils.getCurrentDateString(DateUtils.YYYYMMDDHHMMSS) + "." + fileName.substring(fileName.lastIndexOf(".") + 1);
// return fileName;
// }
//
//
//}

View File

@@ -10,14 +10,14 @@ spring:
name: EasyJavaTemplate
#MySQL数据库相关配置信息
datasource:
url: jdbc:mysql://10.232.112.35:3306/rensijin-cchs?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://192.168.100.201:3306/rensijin-cchs?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root #数据库账号
password: -w9M627JZeYo5p^3lbH0mqDa #数据库密码
password: Abc123654 #数据库密码
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#Redis 缓存相关参数配置
redis:
host: 10.232.12.111
host: 127.0.0.1
port: 6379 #端口
timeout: 5000 #连接超时 毫秒
password: Redis11 #密码

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wujiangbo.mapper.app.AppSuggestionMapper">
<mapper namespace="cn.rensijin.cchs.mapper.app.AppSuggestionMapper">
<select id="selectMySqlPage" resultType="cn.wujiangbo.domain.app.AppSuggestion">
<select id="selectMySqlPage" resultType="cn.rensijin.cchs.domain.app.AppSuggestion">
select t1.*, t2.real_name as createUserName
from app_suggestion t1
left join sys_user t2 on t1.user_id = t2.id

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wujiangbo.mapper.system.SysUserMapper">
<mapper namespace="cn.rensijin.cchs.mapper.system.SysUserMapper">
</mapper>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wujiangbo.mapper.app.AppUserMapper">
<select id="selectMySqlPage" resultType="cn.wujiangbo.domain.app.AppUser">
select t1.*
from app_user t1
<where>
<if test="query.keyword != null and query.keyword != '' ">
and t1.login_name like concat('%', #{query.keyword}, '%')
</if>
</where>
</select>
</mapper>

View File

@@ -10,14 +10,14 @@ spring:
name: EasyJavaTemplate
#MySQL数据库相关配置信息
datasource:
url: jdbc:mysql://10.232.112.35:3306/rensijin-cchs?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://192.168.100.201:3306/rensijin-cchs?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root #数据库账号
password: -w9M627JZeYo5p^3lbH0mqDa #数据库密码
password: Abc123654 #数据库密码
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#Redis 缓存相关参数配置
redis:
host: 10.232.12.111
host: 127.0.0.1
port: 6379 #端口
timeout: 5000 #连接超时 毫秒
password: Redis11 #密码

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wujiangbo.mapper.app.AppSuggestionMapper">
<select id="selectMySqlPage" resultType="cn.wujiangbo.domain.app.AppSuggestion">
select t1.*, t2.real_name as createUserName
from app_suggestion t1
left join sys_user t2 on t1.user_id = t2.id
<where>
<if test="query.keyword != null and query.keyword != '' ">
and t1.complaint like concat('%', #{query.keyword}, '%')
</if>
</where>
order by t1.id desc
</select>
</mapper>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wujiangbo.mapper.app.AppSwiperMapper">
<select id="selectMySqlPage" resultType="cn.wujiangbo.domain.app.AppSwiper">
select t1.*
from app_swiper t1
<where>
<if test="query.keyword != null and query.keyword != '' ">
and t1.img_desc like concat('%', #{query.keyword}, '%')
</if>
</where>
</select>
</mapper>

View File

@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wujiangbo.mapper.app.AppUserMapper">
<select id="selectMySqlPage" resultType="cn.wujiangbo.domain.app.AppUser">
select t1.*
from app_user t1
<where>
<if test="query.keyword != null and query.keyword != '' ">
and t1.login_name like concat('%', #{query.keyword}, '%')
</if>
</where>
</select>
</mapper>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wujiangbo.mapper.system.SysUserMapper">
</mapper>

Some files were not shown because too many files have changed in this diff Show More