# yunji-root
**Repository Path**: White-lby/yunji-root
## Basic Information
- **Project Name**: yunji-root
- **Description**: 云迹项目服务端功能开发
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2022-11-29
- **Last Updated**: 2022-12-09
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 分布式
## README
# 全局图库组件
## 联动前端 https://gitee.com/White-lby/YunJI.git
# 1. 新建SpriingBoot项目,引入对应依赖包包
```
com.alibaba
druid-spring-boot-starter
1.2.9
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.4
mysql
mysql-connector-java
runtime
cn.hutool
hutool-all
5.8.10
```
# 2. 在 application.properties配置文件设置图片物理存放地址
```
web.uploadPath= D:/workspace3/images/
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root123
spring.datasource.password=Root_123
spring.datasource.url=jdbc:mysql://rm-bp169j3q9n43kxauzco.mysql.rds.aliyuncs.com:3306/mall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&allowMultiQueries=true
spring.datasource.druid.initial-size=8
spring.datasource.druid.min-idle=5
spring.datasource.druid.maxActive=200
spring.datasource.druid.maxWait=60000
```
# 3.数据库表结构
```
CREATE TABLE `a_tuku` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '唯一编号',
`name` varchar(100) DEFAULT NULL COMMENT '图片名称',
`img` varchar(200) NOT NULL COMMENT '图片地址',
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
)
```
# 4.新建配置类config/WebMvcConfig
```
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${web.uploadPath}")
private String baseUploadPath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/images/**").addResourceLocations("file:"+baseUploadPath);
WebMvcConfigurer.super.addResourceHandlers(registry);
}
}
```
# 5.上传功能开发
## 5.1 dao层
```
@Mapper
public interface TukuDao {
@Insert("insert scm_tuku (name,img) value (#{name},#{img})")
int insert(String name,String img);
@Select(" select * from scm_tuku ")
List select();
}
```
## 5.2 Controller层
```
@RestController
@RequestMapping("/tuku-api/tuku")
public class TukuController {
@Value("${web.uploadPath}")
private String baseUploadPath;
@Autowired
private TukuDao tukuDao;
@PostMapping("/add")
public Integer add(@RequestBody Tuku model){
String base64 = model.getBase64();
String[] dataArray = StrUtil.splitToArray(base64, "base64,");
byte[] bytes = Base64.decode(dataArray[1]);
String imgName = model.getName();
imgName = IdUtil.fastSimpleUUID() +"_"+ imgName;
FileUtil.writeBytes(bytes,baseUploadPath+imgName);
int rowNum = tukuDao.insert(imgName,"http://123.57.206.19:8083/images/"+imgName);
return rowNum;
}
@GetMapping("/select")
public List select(){
return tukuDao.select();
}
```
# 6. 前端代码
```
```
# 7. 分页插件使用
## 7.1. 分页插件引文
在root的pom文件导入依赖,同样在yuji-app的pom文件导入("其中版本号可不写")
```
com.github.pagehelper
pagehelper-spring-boot-starter
1.4.5
```
## 7.2. 使用
update修改:在VenueDao中添加:
```
@Update( "update a_venue set name = #{name} ,img = #{img},province = #{province},city = #{city}," +
"country = #{country},address = #{address},lng = #{lng},lat = #{lat}," +
" brief = #{brief},seq = #{seq} where id = #{id}")
int update(Venue venue);
```
这里首先对select方法进行一个更新,针对空格查询,代码更新多一个:trim
```
" and name like concat ('%',trim(#{name}),'%') "
```
然后在VenueController层新增并修改:
```
@PutMapping("/update")
public Integer update(@RequestBody Venue venue){
return venueDao.update(venue);
}
@GetMapping("/select")
public PageInfo select(VenueQuery query){
if(ObjectUtil.isNotEmpty(query.getPageNum()) && ObjectUtil.isNotEmpty(query.getPageSize())){
PageHelper.startPage(query.getPageNum(), query.getPageSize());
}
List venues = venueDao.select(query);
PageInfo PageInfo = new PageInfo(venues);
return PageInfo;
}
```