发布笔记 随机生成头像和id
This commit is contained in:
parent
e6e35fda7e
commit
1420c8862f
@ -1,6 +1,8 @@
|
|||||||
package com.dd.admin.business.api;
|
package com.dd.admin.business.api;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.io.file.FileNameUtil;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.dd.admin.business.card.domain.CardDto;
|
import com.dd.admin.business.card.domain.CardDto;
|
||||||
import com.dd.admin.business.card.domain.CardVo;
|
import com.dd.admin.business.card.domain.CardVo;
|
||||||
@ -12,20 +14,30 @@ import com.dd.admin.common.aop.operationLog.aop.OperLog;
|
|||||||
import com.dd.admin.common.aop.operationLog.aop.OperType;
|
import com.dd.admin.common.aop.operationLog.aop.OperType;
|
||||||
import com.dd.admin.common.model.result.ResultBean;
|
import com.dd.admin.common.model.result.ResultBean;
|
||||||
import com.dd.admin.common.security.SecurityUtil;
|
import com.dd.admin.common.security.SecurityUtil;
|
||||||
|
import com.dd.admin.common.utils.AddressUtils;
|
||||||
|
import com.dd.admin.common.utils.IPUtils;
|
||||||
|
import com.dd.admin.common.utils.RandomXiaohongshuAuthorName;
|
||||||
|
import com.dd.admin.common.utils.StringUtil;
|
||||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
public class ApiController {
|
public class ApiController {
|
||||||
@Autowired
|
@Autowired
|
||||||
NoteService noteService;
|
NoteService noteService;
|
||||||
|
@Autowired
|
||||||
|
HttpServletRequest request;
|
||||||
|
|
||||||
@ApiOperation(value = "获取所有笔记")
|
@ApiOperation(value = "获取所有笔记")
|
||||||
@ApiOperationSupport(order = 1)
|
@ApiOperationSupport(order = 1)
|
||||||
@ -52,4 +64,23 @@ public class ApiController {
|
|||||||
return ResultBean.success(noteVo);
|
return ResultBean.success(noteVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "创建笔记")
|
||||||
|
@ApiOperationSupport(order = 1)
|
||||||
|
@PostMapping("/api/addNote")
|
||||||
|
@OperLog(operModule = "创建笔记",operType = OperType.ADD,operDesc = "创建笔记")
|
||||||
|
public ResultBean addNote(@RequestBody NoteDto noteDto) {
|
||||||
|
Note note = BeanUtil.copyProperties(noteDto, Note.class);
|
||||||
|
if(CollectionUtil.isNotEmpty(noteDto.getImgs())){
|
||||||
|
note.setFirstPicture(noteDto.getImgs().get(0));
|
||||||
|
}
|
||||||
|
note.setAuthorName(RandomXiaohongshuAuthorName.generateAuthorName());
|
||||||
|
note.setAuthorAvatar("http://8.146.211.120:8080/upload/avatar/avatar ("+ StringUtil.createCode(1) +").jpg");
|
||||||
|
note.setIpAddress(IPUtils.getIpAddr(request)); // 请求IP
|
||||||
|
note.setIpRealAddress(AddressUtils.getRealAddress(note.getIpAddress()));
|
||||||
|
noteService.save(note);
|
||||||
|
return ResultBean.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package com.dd.admin.business.file.controller;
|
package com.dd.admin.business.file.controller;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.dd.admin.common.model.result.UploadResultBean;
|
||||||
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@ -10,6 +12,8 @@ import com.dd.admin.common.model.result.ResultBean;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import com.dd.admin.business.file.entity.File;
|
import com.dd.admin.business.file.entity.File;
|
||||||
import com.dd.admin.business.file.domain.FileVo;
|
import com.dd.admin.business.file.domain.FileVo;
|
||||||
@ -36,6 +40,10 @@ public class FileController {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
FileService fileService;
|
FileService fileService;
|
||||||
|
@Autowired
|
||||||
|
HttpServletRequest request;
|
||||||
|
@Value("${server.port}")
|
||||||
|
String port;
|
||||||
|
|
||||||
@ApiOperation(value = "文件-分页列表")
|
@ApiOperation(value = "文件-分页列表")
|
||||||
@ApiOperationSupport(order = 1)
|
@ApiOperationSupport(order = 1)
|
||||||
@ -101,4 +109,19 @@ public class FileController {
|
|||||||
map.put("filePath",filePath);
|
map.put("filePath",filePath);
|
||||||
return ResultBean.success(map);
|
return ResultBean.success(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "文件-上传")
|
||||||
|
@PostMapping("/appUpload")
|
||||||
|
@ResponseBody
|
||||||
|
public UploadResultBean<FileVo> appUpload(@RequestPart("file") MultipartFile file, String fileSavePath) {
|
||||||
|
FileVo uploadResult = fileService.uploadFile(file,fileSavePath);
|
||||||
|
String fileId = uploadResult.getFileId();
|
||||||
|
String filePath = uploadResult.getFileSavePath();
|
||||||
|
UploadResultBean resultBean = new UploadResultBean();
|
||||||
|
resultBean.setResult(uploadResult);
|
||||||
|
String serverName = request.getServerName();
|
||||||
|
System.out.println(serverName);
|
||||||
|
resultBean.setData("http://" + serverName + ":" + port + filePath);
|
||||||
|
return resultBean;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -85,5 +87,6 @@ public class NoteDto {
|
|||||||
@ApiModelProperty(value = "收藏数")
|
@ApiModelProperty(value = "收藏数")
|
||||||
private Long starCount;
|
private Long starCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "图片列表")
|
||||||
|
private List<String> imgs;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.dd.admin.common.model.result;
|
||||||
|
|
||||||
|
|
||||||
|
import com.dd.admin.common.exception.enums.AbstractBaseExceptionEnum;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UploadResultBean<T> implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("返回的状态码")
|
||||||
|
private String status = "ok";
|
||||||
|
@ApiModelProperty("返回的信息")
|
||||||
|
private String data;
|
||||||
|
@ApiModelProperty("返回的数据")
|
||||||
|
private T result ;
|
||||||
|
}
|
@ -14,6 +14,8 @@ import org.springframework.security.config.http.SessionCreationPolicy;
|
|||||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||||
|
import org.springframework.security.web.firewall.DefaultHttpFirewall;
|
||||||
|
import org.springframework.security.web.firewall.HttpFirewall;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SecurityConfig 配置类
|
* SecurityConfig 配置类
|
||||||
@ -36,6 +38,13 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
|||||||
@Bean
|
@Bean
|
||||||
public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); }
|
public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); }
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public HttpFirewall allowUrlEncodedSlashHttpFirewall() {
|
||||||
|
DefaultHttpFirewall firewall = new DefaultHttpFirewall();
|
||||||
|
firewall.setAllowUrlEncodedSlash(true);
|
||||||
|
return firewall;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure(HttpSecurity httpSecurity) throws Exception {
|
protected void configure(HttpSecurity httpSecurity) throws Exception {
|
||||||
httpSecurity
|
httpSecurity
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.dd.admin.common.utils;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class RandomXiaohongshuAuthorName {
|
||||||
|
// 定义一些风格词汇数组
|
||||||
|
private static final String[] ADJECTIVES = {"甜系", "酷盖", "元气", "文艺", "清新", "时尚", "复古", "个性", "慵懒", "灵动"};
|
||||||
|
private static final String[] NOUNS = {"喵星人", "星辰", "云朵", "花田", "森林", "梦境", "清风", "暖阳", "微光", "小确幸"};
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String authorName = generateAuthorName();
|
||||||
|
System.out.println(authorName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String generateAuthorName() {
|
||||||
|
Random random = new Random();
|
||||||
|
// 随机选择一个形容词
|
||||||
|
int adjectiveIndex = random.nextInt(ADJECTIVES.length);
|
||||||
|
String adjective = ADJECTIVES[adjectiveIndex];
|
||||||
|
// 随机选择一个名词
|
||||||
|
int nounIndex = random.nextInt(NOUNS.length);
|
||||||
|
String noun = NOUNS[nounIndex];
|
||||||
|
// 随机生成一个数字后缀
|
||||||
|
int number = random.nextInt(100);
|
||||||
|
|
||||||
|
return adjective + noun + number;
|
||||||
|
}
|
||||||
|
}
|
@ -52,6 +52,7 @@ public class StringUtil {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String getQuotesStr(String v){
|
public static String getQuotesStr(String v){
|
||||||
if(isEmpty(v)){
|
if(isEmpty(v)){
|
||||||
return v;
|
return v;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user