dongdingding
杜函宇 1 year ago
parent a3551454eb
commit aca60186e0

@ -34,6 +34,11 @@
<!-- 依赖声明 --> <!-- 依赖声明 -->
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
<!-- SpringBoot的依赖配置--> <!-- SpringBoot的依赖配置-->
<dependency> <dependency>
@ -72,18 +77,6 @@
<version>${oshi.version}</version> <version>${oshi.version}</version>
</dependency> </dependency>
<!-- Swagger3依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${swagger.version}</version>
<exclusions>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- io常用工具类 --> <!-- io常用工具类 -->
<dependency> <dependency>

@ -16,27 +16,22 @@
</description> </description>
<dependencies> <dependencies>
<!-- spring-boot-devtools -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>cn.hutool</groupId>
<artifactId>spring-boot-devtools</artifactId> <artifactId>hutool-all</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 --> <version>5.8.23</version>
</dependency> </dependency>
<!-- swagger3-->
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>com.github.xiaoymin</groupId>
<artifactId>springfox-boot-starter</artifactId> <artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency> </dependency>
<!-- spring-boot-devtools -->
<!-- 防止进入swagger页面报类型转换错误排除3.0.0中的引用手动增加1.6.2版本 -->
<dependency> <dependency>
<groupId>io.swagger</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>swagger-models</artifactId> <artifactId>spring-boot-devtools</artifactId>
<version>1.6.2</version> <optional>true</optional> <!-- 表示依赖不会传递 -->
</dependency> </dependency>
<!-- Mysql驱动包 --> <!-- Mysql驱动包 -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
@ -60,6 +55,10 @@
<groupId>com.ruoyi</groupId> <groupId>com.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId> <artifactId>ruoyi-generator</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies> </dependencies>

@ -3,6 +3,11 @@ package com.ruoyi;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;
import java.net.InetAddress;
import java.net.UnknownHostException;
/** /**
* *
@ -14,17 +19,21 @@ public class RuoYiApplication
{ {
public static void main(String[] args) public static void main(String[] args)
{ {
// System.setProperty("spring.devtools.restart.enabled", "false"); ConfigurableApplicationContext application = SpringApplication.run(RuoYiApplication.class, args);
SpringApplication.run(RuoYiApplication.class, args); Environment env = application.getEnvironment();
System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" + String ip = null;
" .-------. ____ __ \n" + try {
" | _ _ \\ \\ \\ / / \n" + ip = InetAddress.getLocalHost().getHostAddress();
" | ( ' ) | \\ _. / ' \n" + } catch (UnknownHostException e) {
" |(_ o _) / _( )_ .' \n" + throw new RuntimeException(e);
" | (_,_).' __ ___(_ o _)' \n" + }
" | |\\ \\ | || |(_,_)' \n" + String port = env.getProperty("server.port");
" | | \\ `' /| `-' / \n" + String path = env.getProperty("server.servlet.context-path");
" | | \\ / \\ / \n" + path = path.isEmpty() ? "" : path;
" ''-' `'-' `-..-' "); System.out.println("\n----------------------------------------------------------\n\t"
+ "Application is running! Access URLs:\n\t"
+ "swagger-ui: http://localhost:" + port + path + "doc.html\n\t"
+ "swagger-ui: http://" + ip + ":" + port + path + "doc.html\n\t"
+ "----------------------------------------------------------");
} }
} }

@ -0,0 +1,98 @@
package com.ruoyi.jjh.ent.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
import com.ruoyi.jjh.ent.service.JMemorandumService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* (JMemorandum)
*
* @author makejava
* @since 2024-03-26 10:34:03
*/
@RestController
@RequestMapping("/jjh/jMemorandum")
@Api(tags = "备忘录表")
public class JMemorandumController extends BaseController {
/**
*
*/
@Resource
private JMemorandumService jMemorandumService;
/**
*
*
* @param page
* @param jMemorandumRequest
* @return
*/
@ApiOperation(value = "分页查询所有数据", response = JMemorandum.class)
@GetMapping
public AjaxResult selectAll(Page<JMemorandum> page, JMemorandumRequest jMemorandumRequest) {
return success(jMemorandumService.page(page,jMemorandumRequest));
}
/**
*
*
* @param id
* @return
*/
@ApiOperation(value = "通过主键查询单条数据", response = JMemorandum.class)
@GetMapping("{id}")
public AjaxResult selectOne(@PathVariable Serializable id) {
return success(this.jMemorandumService.getById(id));
}
/**
*
*
* @param jMemorandum
* @return
*/
@ApiOperation(value = "新增数据")
@PostMapping
public AjaxResult insert(@RequestBody JMemorandum jMemorandum) {
jMemorandum.setCreateTime(new Date());
return success(this.jMemorandumService.save(jMemorandum));
}
/**
*
*
* @param jMemorandum
* @return
*/
@ApiOperation(value = "修改数据")
@PutMapping
public AjaxResult update(@RequestBody JMemorandum jMemorandum) {
jMemorandum.setUpdateTime(new Date());
return success(this.jMemorandumService.updateById(jMemorandum));
}
/**
*
*
* @param idList
* @return
*/
@ApiOperation(value = "删除数据")
@DeleteMapping
public AjaxResult delete(@RequestParam("idList") List<Long> idList) {
return success(this.jMemorandumService.removeByIds(idList));
}
}

@ -0,0 +1,127 @@
package com.ruoyi.jjh.ent.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.poi.ProjectExcelUtil;
import com.ruoyi.jjh.ent.entity.JProject;
import com.ruoyi.jjh.ent.service.JProjectService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.util.List;
/**
* (JProject)
*
* @author makejava
* @since 2024-03-25 11:49:34
*/
@RestController
@RequestMapping("/jjh/jProject")
@Api(tags = "项目表")
public class JProjectController extends BaseController {
/**
*
*/
@Resource
private JProjectService jProjectService;
/**
*
*
* @param page
* @param jProject
* @return
*/
@ApiOperation(value = "分页查询项目", response = JProject.class)
@GetMapping
public AjaxResult selectAll(Page<JProject> page, JProject jProject) {
return success(jProjectService.page(page,jProject));
}
/**
*
*
* @param id
* @return
*/
@ApiOperation(value = "通过主键查询单条项目", response = JProject.class)
@GetMapping("{id}")
public AjaxResult selectOne(@PathVariable Serializable id) {
return success(this.jProjectService.getById(id));
}
/**
*
*
* @param jProject
* @return
*/
@ApiOperation(value = "新增项目")
@PostMapping
public AjaxResult insert(@RequestBody JProject jProject) {
return success(this.jProjectService.save(jProject));
}
/**
*
*
* @param jProject
* @return
*/
@ApiOperation(value = "修改项目")
@PutMapping
public AjaxResult update(@RequestBody JProject jProject) {
return success(this.jProjectService.updateById(jProject));
}
/**
*
*
* @param idList
* @return
*/
@ApiOperation(value = "删除项目")
@DeleteMapping
public AjaxResult delete(@RequestParam("idList") List<Long> idList) {
return success(this.jProjectService.removeByIds(idList));
}
/**
* excel
*
*/
@ApiOperation(value = "导入excel项目数据")
@PostMapping(value = "/export",consumes ="multipart/form-data")
public AjaxResult importProject(@RequestPart("file") MultipartFile file) throws Exception {
HttpServletRequest req = ServletUtils.getRequest();
// String token = req.getHeader("Authentication");
// if (StrUtil.isEmpty(token)) {
// throw new BaseException("用户未登录");
// }
ProjectExcelUtil<JProject> util = new ProjectExcelUtil<>(JProject.class);
List<JProject> proList = util.importExcel(file.getInputStream());
StringBuilder successMsg = new StringBuilder();
if(proList == null && proList.isEmpty()){
throw new ServiceException("项目导入数据不能为空");
}else {
if (!proList.isEmpty()) {
jProjectService.saveBatch(proList);
successMsg.append("导入成功");
} else {
successMsg.append("导入失败,文件为空");
}
}
return AjaxResult.success(successMsg);
}
}

@ -0,0 +1,72 @@
package com.ruoyi.jjh.ent.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* (JMemorandum)
*
* @author makejava
* @since 2024-03-26 10:34:03
*/
@ApiModel("备忘录表")
@TableName(value = "j_memorandum")
@Data
public class JMemorandum {
/**
* Id
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty("Id")
private Long id;
/**
* id
*/
@ApiModelProperty("项目表关联id")
private Long projectId;
/**
*
*/
@ApiModelProperty("名字")
private String name;
/**
* /
*/
@ApiModelProperty("主题/关键字")
private String keywords;
/**
*
*/
@ApiModelProperty("备忘内容")
private String content;
private Long createId;
private String createBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private Date createTime;
private Long updateId;
private String updateBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("更新时间")
private Date updateTime;
}

@ -0,0 +1,76 @@
package com.ruoyi.jjh.ent.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* (JProject)
*
* @author makejava
* @since 2024-03-25 11:49:34
*/
@ApiModel("项目表")
@TableName(value = "j_project")
@Data
public class JProject{
/**
* Id
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty("Id")
private Long id;
/**
*
*/
@Excel(name = "项目名称")
@ApiModelProperty("项目名称")
private String projectName;
/**
*
*/
// @Excel(name = "项目分类", readConverterExp = "0=省现代服务业重点项目,1=两业融合试点单位")
@Excel(name = "项目分类")
@ApiModelProperty("项目分类")
private String projectClassify;
/**
*
*/
@Excel(name = "申报单位")
@ApiModelProperty("申报单位")
private String declareUnit;
/**
*
*/
@Excel(name = "年份")
private String projectYear;
/**
*
*/
@Excel(name = "其余字段和数据")
@ApiModelProperty("其余字段和数据")
private String otherJson;
/**
*
*/
@ApiModelProperty("状态")
private Integer status;
}

@ -0,0 +1,39 @@
package com.ruoyi.jjh.ent.entity.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author du
* @since 2024/3/26 10:48
*/
@Data
@ApiModel("备忘录请求类")
public class JMemorandumRequest {
/**
*
*/
@ApiModelProperty("名字")
private String name;
/**
*
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private Date startTime;
/**
*
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private Date endTime;
}

@ -0,0 +1,26 @@
package com.ruoyi.jjh.ent.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
import org.apache.ibatis.annotations.Param;
/**
* (JMemorandum)访
*
* @author makejava
* @since 2024-03-26 10:34:03
*/
public interface JMemorandumMapper extends BaseMapper<JMemorandum> {
/**
*
*
* @param page
* @param jMemorandumRequest
* @return
*/
Page<JMemorandum> page(Page<JMemorandum> page, @Param("req") JMemorandumRequest jMemorandumRequest);
}

@ -0,0 +1,25 @@
package com.ruoyi.jjh.ent.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.jjh.ent.entity.JProject;
import org.apache.ibatis.annotations.Param;
/**
* (JProject)访
*
* @author makejava
* @since 2024-03-25 11:49:34
*/
public interface JProjectMapper extends BaseMapper<JProject> {
/**
*
*
* @param page
* @param jProject
* @return
*/
Page<JProject> page(Page<JProject> page,@Param("req") JProject jProject);
}

@ -0,0 +1,25 @@
package com.ruoyi.jjh.ent.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
/**
* (JMemorandum)
*
* @author makejava
* @since 2024-03-26 10:34:03
*/
public interface JMemorandumService extends IService<JMemorandum> {
/**
*
*
* @param page
* @param jMemorandumRequest
* @return
*/
Page<JMemorandum> page(Page<JMemorandum> page, JMemorandumRequest jMemorandumRequest);
}

@ -0,0 +1,26 @@
package com.ruoyi.jjh.ent.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.jjh.ent.entity.JProject;
/**
* (JProject)
*
* @author makejava
* @since 2024-03-25 11:49:34
*/
public interface JProjectService extends IService<JProject> {
/**
*
*
* @param page
* @param jProject
* @return
*/
Page<JProject> page(Page<JProject> page, JProject jProject);
}

@ -0,0 +1,33 @@
package com.ruoyi.jjh.ent.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.jjh.ent.entity.request.JMemorandumRequest;
import com.ruoyi.jjh.ent.mapper.JMemorandumMapper;
import com.ruoyi.jjh.ent.entity.JMemorandum;
import com.ruoyi.jjh.ent.service.JMemorandumService;
import org.springframework.stereotype.Service;
/**
* (JMemorandum)
*
* @author makejava
* @since 2024-03-26 10:34:03
*/
@Service("jMemorandumService")
public class JMemorandumServiceImpl extends ServiceImpl<JMemorandumMapper, JMemorandum> implements JMemorandumService {
/**
*
*
* @param page
* @param jMemorandumRequest
* @return
*/
@Override
public Page<JMemorandum> page(Page<JMemorandum> page, JMemorandumRequest jMemorandumRequest) {
return baseMapper.page(page,jMemorandumRequest);
}
}

@ -0,0 +1,34 @@
package com.ruoyi.jjh.ent.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.jjh.ent.mapper.JProjectMapper;
import com.ruoyi.jjh.ent.entity.JProject;
import com.ruoyi.jjh.ent.service.JProjectService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* (JProject)
*
* @author makejava
* @since 2024-03-25 11:49:34
*/
@Service("jProjectService")
public class JProjectServiceImpl extends ServiceImpl<JProjectMapper, JProject> implements JProjectService {
/**
*
*
* @param page
* @param jProject
* @return
*/
@Override
public Page<JProject> page(Page<JProject> page, JProject jProject) {
return baseMapper.page(page,jProject);
}
}

@ -1,183 +0,0 @@
package com.ruoyi.web.controller.tool;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
/**
* swagger
*
* @author ruoyi
*/
@Api("用户信息管理")
@RestController
@RequestMapping("/test/user")
public class TestController extends BaseController
{
private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>();
{
users.put(1, new UserEntity(1, "admin", "admin123", "15888888888"));
users.put(2, new UserEntity(2, "ry", "admin123", "15666666666"));
}
@ApiOperation("获取用户列表")
@GetMapping("/list")
public R<List<UserEntity>> userList()
{
List<UserEntity> userList = new ArrayList<UserEntity>(users.values());
return R.ok(userList);
}
@ApiOperation("获取用户详细")
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
@GetMapping("/{userId}")
public R<UserEntity> getUser(@PathVariable Integer userId)
{
if (!users.isEmpty() && users.containsKey(userId))
{
return R.ok(users.get(userId));
}
else
{
return R.fail("用户不存在");
}
}
@ApiOperation("新增用户")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", dataTypeClass = Integer.class),
@ApiImplicitParam(name = "username", value = "用户名称", dataType = "String", dataTypeClass = String.class),
@ApiImplicitParam(name = "password", value = "用户密码", dataType = "String", dataTypeClass = String.class),
@ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String", dataTypeClass = String.class)
})
@PostMapping("/save")
public R<String> save(UserEntity user)
{
if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
{
return R.fail("用户ID不能为空");
}
users.put(user.getUserId(), user);
return R.ok();
}
@ApiOperation("更新用户")
@PutMapping("/update")
public R<String> update(@RequestBody UserEntity user)
{
if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
{
return R.fail("用户ID不能为空");
}
if (users.isEmpty() || !users.containsKey(user.getUserId()))
{
return R.fail("用户不存在");
}
users.remove(user.getUserId());
users.put(user.getUserId(), user);
return R.ok();
}
@ApiOperation("删除用户信息")
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
@DeleteMapping("/{userId}")
public R<String> delete(@PathVariable Integer userId)
{
if (!users.isEmpty() && users.containsKey(userId))
{
users.remove(userId);
return R.ok();
}
else
{
return R.fail("用户不存在");
}
}
}
@ApiModel(value = "UserEntity", description = "用户实体")
class UserEntity
{
@ApiModelProperty("用户ID")
private Integer userId;
@ApiModelProperty("用户名称")
private String username;
@ApiModelProperty("用户密码")
private String password;
@ApiModelProperty("用户手机")
private String mobile;
public UserEntity()
{
}
public UserEntity(Integer userId, String username, String password, String mobile)
{
this.userId = userId;
this.username = username;
this.password = password;
this.mobile = mobile;
}
public Integer getUserId()
{
return userId;
}
public void setUserId(Integer userId)
{
this.userId = userId;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getMobile()
{
return mobile;
}
public void setMobile(String mobile)
{
this.mobile = mobile;
}
}

@ -2,6 +2,9 @@ package com.ruoyi.web.core.config;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -28,26 +31,30 @@ import springfox.documentation.spring.web.plugins.Docket;
* @author ruoyi * @author ruoyi
*/ */
@Configuration @Configuration
public class SwaggerConfig public class SwaggerConfig {
{ /**
/** 系统基础配置 */ *
*/
@Autowired @Autowired
private RuoYiConfig ruoyiConfig; private RuoYiConfig ruoyiConfig;
/** 是否开启swagger */ /**
@Value("${swagger.enabled}") * swagger
*/
@Value("${knife4j.enable}")
private boolean enabled; private boolean enabled;
/** 设置请求的统一前缀 */ /**
@Value("${swagger.pathMapping}") *
*/
@Value("${server.servlet.context-path}")
private String pathMapping; private String pathMapping;
/** /**
* API * API
*/ */
@Bean @Bean
public Docket createRestApi() public Docket createRestApi() {
{
return new Docket(DocumentationType.OAS_30) return new Docket(DocumentationType.OAS_30)
// 是否启用Swagger // 是否启用Swagger
.enable(enabled) .enable(enabled)
@ -65,24 +72,24 @@ public class SwaggerConfig
/* 设置安全模式swagger可以设置访问token */ /* 设置安全模式swagger可以设置访问token */
.securitySchemes(securitySchemes()) .securitySchemes(securitySchemes())
.securityContexts(securityContexts()) .securityContexts(securityContexts())
.pathMapping(pathMapping); .pathMapping(pathMapping)
// 排除mybatis-plus的分页参数
.ignoredParameterTypes(Page.class, IPage.class);
} }
/** /**
* tokenAuthorization * tokenAuthorization
*/ */
private List<SecurityScheme> securitySchemes() private List<SecurityScheme> securitySchemes() {
{
List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>(); List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); // apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
return apiKeyList; return apiKeyList;
} }
/** /**
* *
*/ */
private List<SecurityContext> securityContexts() private List<SecurityContext> securityContexts() {
{
List<SecurityContext> securityContexts = new ArrayList<>(); List<SecurityContext> securityContexts = new ArrayList<>();
securityContexts.add( securityContexts.add(
SecurityContext.builder() SecurityContext.builder()
@ -95,8 +102,7 @@ public class SwaggerConfig
/** /**
* *
*/ */
private List<SecurityReference> defaultAuth() private List<SecurityReference> defaultAuth() {
{
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope; authorizationScopes[0] = authorizationScope;
@ -108,12 +114,11 @@ public class SwaggerConfig
/** /**
* *
*/ */
private ApiInfo apiInfo() private ApiInfo apiInfo() {
{
// 用ApiInfoBuilder进行定制 // 用ApiInfoBuilder进行定制
return new ApiInfoBuilder() return new ApiInfoBuilder()
// 设置标题 // 设置标题
.title("标题若依管理系统_接口文档") .title("金鸡湖品牌管理")
// 描述 // 描述
.description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
// 作者信息 // 作者信息

@ -97,8 +97,8 @@ token:
# 令牌有效期默认30分钟 # 令牌有效期默认30分钟
expireTime: 30 expireTime: 30
# MyBatis配置 # mybatis-plus配置
mybatis: mybatis-plus:
# 搜索指定包别名 # 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描找到所有的mapper.xml映射文件 # 配置mapper的扫描找到所有的mapper.xml映射文件
@ -112,12 +112,10 @@ pagehelper:
supportMethodsArguments: true supportMethodsArguments: true
params: count=countSql params: count=countSql
# Swagger配置 # 文档配置
swagger: knife4j:
# 是否开启swagger # 开启增强配置
enabled: true enable: true
# 请求前缀
pathMapping: /dev-api
# 防止XSS攻击 # 防止XSS攻击
xss: xss:

@ -0,0 +1,21 @@
<?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="com.ruoyi.jjh.ent.mapper.JMemorandumMapper">
<select id="page" resultType="com.ruoyi.jjh.ent.entity.JMemorandum">
select * from j_memorandum
<where>
<if test="req.name != null and req.name != '' ">
and name like concat('%',#{req.name},'%') or keywords like concat('%',#{req.name},'%')
</if>
<if test="req.startTime != null ">
and create_time &gt;= #{req.startTime}
</if>
<if test="req.endTime != null">
and create_time &lt;= #{req.endTime}
</if>
</where>
</select>
</mapper>

@ -0,0 +1,27 @@
<?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="com.ruoyi.jjh.ent.mapper.JProjectMapper">
<select id="page" resultType="com.ruoyi.jjh.ent.entity.JProject">
select * from j_project
<where>
<if test="req.projectName != null and req.projectName != '' ">
and project_name like concat('%',#{req.projectName},'%')
</if>
<if test="req.projectClassify != null and req.projectClassify != '' ">
and project_classify = #{req.projectClassify}
</if>
<if test="req.declareUnit != null and req.declareUnit != '' ">
and declare_unit like concat('%',#{req.declareUnit},'%')
</if>
<if test="req.status != null and req.status != '' ">
and status = #{req.status}
</if>
<if test="req.projectYear != null">
and project_year = #{req.projectYear}
</if>
</where>
</select>
</mapper>

@ -17,6 +17,12 @@
<dependencies> <dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<!-- Spring框架基本的核心工具 --> <!-- Spring框架基本的核心工具 -->
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>

@ -1,20 +1,13 @@
package com.ruoyi.framework.config; package com.ruoyi.framework.config;
import java.io.IOException; import com.baomidou.mybatisplus.annotation.DbType;
import java.util.ArrayList; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import java.util.Arrays; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import java.util.HashSet; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import java.util.List;
import javax.sql.DataSource;
import org.apache.ibatis.io.VFS;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.boot.autoconfigure.SpringBootVFS;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver;
@ -22,7 +15,12 @@ import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.MetadataReader;
import org.springframework.core.type.classreading.MetadataReaderFactory; import org.springframework.core.type.classreading.MetadataReaderFactory;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
import com.ruoyi.common.utils.StringUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
/** /**
* Mybatis* * Mybatis*
@ -114,19 +112,10 @@ public class MyBatisConfig
} }
@Bean @Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception public MybatisPlusInterceptor mybatisPlusInterceptor() {
{ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage"); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
String mapperLocations = env.getProperty("mybatis.mapperLocations"); interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
String configLocation = env.getProperty("mybatis.configLocation"); return interceptor;
typeAliasesPackage = setTypeAliasesPackage(typeAliasesPackage);
VFS.addImplClass(SpringBootVFS.class);
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setTypeAliasesPackage(typeAliasesPackage);
sessionFactory.setMapperLocations(resolveMapperLocations(StringUtils.split(mapperLocations, ",")));
sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
return sessionFactory.getObject();
} }
} }

@ -115,6 +115,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 静态资源,可匿名访问 // 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
.antMatchers("/jjh/**").permitAll()
// 除上面外的所有请求全部需要鉴权认证 // 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated() .anyRequest().authenticated()
.and() .and()

Loading…
Cancel
Save