parent
1c0b0fec16
commit
5223e513d6
16 changed files with 527 additions and 2 deletions
@ -0,0 +1,32 @@ |
||||
package com.kob.backend.controller.pojo; |
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@Data |
||||
@NoArgsConstructor |
||||
@AllArgsConstructor |
||||
public class Bot { |
||||
|
||||
// pojo中对应数据库表中的变量要使用驼峰命名法,不能照抄
|
||||
@TableId(type = IdType.AUTO) |
||||
private Integer id; |
||||
private Integer userId; |
||||
private String title; |
||||
private String description; |
||||
private String content; |
||||
private Integer rating; |
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||
private Date createTime; |
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
||||
private Date modifyTime; |
||||
} |
@ -0,0 +1,78 @@ |
||||
package com.kob.backend.controller.service.impl.user.bot; |
||||
|
||||
import com.kob.backend.controller.pojo.Bot; |
||||
import com.kob.backend.controller.pojo.User; |
||||
import com.kob.backend.controller.service.impl.utils.UserDetailsImpl; |
||||
import com.kob.backend.controller.service.user.bot.AddService; |
||||
import com.kob.backend.mapper.BotMapper; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@Service |
||||
public class AddServiceImpl implements AddService { |
||||
@Autowired |
||||
private BotMapper botMapper; |
||||
|
||||
@Override |
||||
public Map<String, String> add(Map<String, String> data) { |
||||
// 获取当前登录的是哪个用户(三条语句)
|
||||
UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) |
||||
SecurityContextHolder.getContext().getAuthentication(); |
||||
UserDetailsImpl loginUser = (UserDetailsImpl) authenticationToken.getPrincipal(); |
||||
User user = loginUser.getUser(); |
||||
|
||||
String title = data.get("title"); |
||||
String description = data.get("description"); |
||||
String content = data.get("content"); |
||||
|
||||
Map<String, String> map = new HashMap<>(); |
||||
if (title == null || title.length() == 0) { |
||||
map.put("error_msg", "标题不能为空!"); |
||||
return map; |
||||
} |
||||
|
||||
int TITLE_MAX_LEN = 100; |
||||
if (title.length() > TITLE_MAX_LEN) { |
||||
map.put("error_msg", "标题长度不能大于100!"); |
||||
return map; |
||||
} |
||||
|
||||
if (description == null || description.length() == 0) { |
||||
description = "这个用户很懒,什么也没留下~"; |
||||
} |
||||
|
||||
int DESCRIPTION_MAX_LEN = 300; |
||||
if (description.length() > DESCRIPTION_MAX_LEN) { |
||||
map.put("error_msg", "bot的描述不能大于300!"); |
||||
return map; |
||||
} |
||||
|
||||
|
||||
if (content == null || content.length() == 0) { |
||||
map.put("error_msg", "代码不能为空!"); |
||||
return map; |
||||
} |
||||
|
||||
int CONTENT_MAX_LEN = 10000; |
||||
if (content.length() > CONTENT_MAX_LEN) { |
||||
map.put("error_msg", "代码长度不能大于10000!"); |
||||
return map; |
||||
} |
||||
|
||||
Date now = new Date(); |
||||
Bot bot = new Bot(null, user.getId(), title, description, content, 1500, now, now); |
||||
botMapper.insert(bot); |
||||
|
||||
map.put("error_msg", "success"); |
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,38 @@ |
||||
package com.kob.backend.controller.service.impl.user.bot; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
import com.kob.backend.controller.pojo.Bot; |
||||
import com.kob.backend.controller.pojo.User; |
||||
import com.kob.backend.controller.service.impl.utils.UserDetailsImpl; |
||||
import com.kob.backend.controller.service.user.bot.GetListService; |
||||
import com.kob.backend.mapper.BotMapper; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@Service |
||||
public class GetListServiceImpl implements GetListService { |
||||
|
||||
@Autowired |
||||
private BotMapper botMapper; |
||||
|
||||
@Override |
||||
public List<Bot> getList() { |
||||
// 每个用户只能查自己的bot,所以先要获取登录的用户信息
|
||||
UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) |
||||
SecurityContextHolder.getContext().getAuthentication(); |
||||
UserDetailsImpl loginUser = (UserDetailsImpl) authenticationToken.getPrincipal(); |
||||
User user = loginUser.getUser(); |
||||
|
||||
QueryWrapper<Bot> qw = new QueryWrapper<>(); |
||||
qw.eq("user_id", user.getId()); // 第一个参数要和数据库的列名相同
|
||||
return botMapper.selectList(qw); |
||||
} |
||||
} |
@ -0,0 +1,54 @@ |
||||
package com.kob.backend.controller.service.impl.user.bot; |
||||
|
||||
import com.kob.backend.controller.pojo.Bot; |
||||
import com.kob.backend.controller.pojo.User; |
||||
import com.kob.backend.controller.service.impl.utils.UserDetailsImpl; |
||||
import com.kob.backend.controller.service.user.bot.RemoveService; |
||||
import com.kob.backend.mapper.BotMapper; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
||||
|
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@Service |
||||
public class RemoveServiceImpl implements RemoveService { |
||||
@Autowired |
||||
private BotMapper botMapper; |
||||
|
||||
|
||||
@Override |
||||
public Map<String, String> remove(Map<String, String> data) { |
||||
// 获取当前登录的用户
|
||||
UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) |
||||
SecurityContextHolder.getContext().getAuthentication(); |
||||
UserDetailsImpl loginUser = (UserDetailsImpl) authenticationToken.getPrincipal(); |
||||
User user = loginUser.getUser(); |
||||
|
||||
int bot_id = Integer.parseInt(data.get("bot_id")); |
||||
Bot bot = botMapper.selectById(bot_id); |
||||
|
||||
Map<String,String> map = new HashMap<>(); |
||||
|
||||
if (bot == null) { |
||||
map.put("error_msg","bot不存在或已被删除"); |
||||
return map; |
||||
} |
||||
|
||||
if (!bot.getUserId().equals(user.getId())) { |
||||
map.put("error_msg","您没有权限删除该bot"); |
||||
return map; |
||||
} |
||||
// 删除成功
|
||||
botMapper.deleteById(bot_id); |
||||
map.put("error_msg","success"); |
||||
|
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,95 @@ |
||||
package com.kob.backend.controller.service.impl.user.bot; |
||||
|
||||
import com.kob.backend.controller.pojo.Bot; |
||||
import com.kob.backend.controller.pojo.User; |
||||
import com.kob.backend.controller.service.impl.utils.UserDetailsImpl; |
||||
import com.kob.backend.controller.service.user.bot.UpdateService; |
||||
import com.kob.backend.mapper.BotMapper; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; |
||||
import org.springframework.security.core.context.SecurityContextHolder; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.util.Date; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@Service |
||||
public class UpdateServiceImpl implements UpdateService { |
||||
@Autowired |
||||
private BotMapper botMapper; |
||||
|
||||
|
||||
@Override |
||||
public Map<String, String> update(Map<String, String> data) { |
||||
// 获得登录的用户信息
|
||||
UsernamePasswordAuthenticationToken authenticationToken = (UsernamePasswordAuthenticationToken) |
||||
SecurityContextHolder.getContext().getAuthentication(); |
||||
UserDetailsImpl loginUser = (UserDetailsImpl) authenticationToken.getPrincipal(); |
||||
User user = loginUser.getUser(); |
||||
// 需要知道更新哪个bot,所以要传入bot_id
|
||||
int bot_id = Integer.parseInt(data.get("bot_id")); |
||||
|
||||
Map<String,String> map = new HashMap<>(); |
||||
|
||||
String title = data.get("title"); |
||||
String description = data.get("description"); |
||||
String content = data.get("content"); |
||||
|
||||
if (title == null || title.length() == 0) { |
||||
map.put("error_msg", "标题不能为空!"); |
||||
return map; |
||||
} |
||||
|
||||
int TITLE_MAX_LEN = 100; |
||||
if (title.length() > TITLE_MAX_LEN) { |
||||
map.put("error_msg", "标题长度不能大于100!"); |
||||
return map; |
||||
} |
||||
|
||||
if (description == null || description.length() == 0) { |
||||
description = "这个用户很懒,什么也没留下~"; |
||||
} |
||||
|
||||
int DESCRIPTION_MAX_LEN = 300; |
||||
if (description.length() > DESCRIPTION_MAX_LEN) { |
||||
map.put("error_msg", "bot的描述不能大于300!"); |
||||
return map; |
||||
} |
||||
|
||||
|
||||
if (content == null || content.length() == 0) { |
||||
map.put("error_msg", "代码不能为空!"); |
||||
return map; |
||||
} |
||||
|
||||
int CONTENT_MAX_LEN = 10000; |
||||
if (content.length() > CONTENT_MAX_LEN) { |
||||
map.put("error_msg", "代码长度不能大于10000!"); |
||||
return map; |
||||
} |
||||
|
||||
// 根据用户传入的bot_id查询数据库中是否存在该bot
|
||||
Bot bot = botMapper.selectById(bot_id); |
||||
|
||||
if (bot == null) { |
||||
map.put("error_msg","bot不存在或已被删除"); |
||||
return map; |
||||
} |
||||
|
||||
// 如果该bot不属于发出更新请求的用户,提示无权限
|
||||
if (!bot.getUserId().equals(user.getId())){ |
||||
map.put("error_msg","您没有权限更新该bot的信息"); |
||||
return map; |
||||
} |
||||
|
||||
// 如果可以修改该bot
|
||||
Bot newBot = new Bot(bot.getId(), user.getId(), title,description,content,bot.getRating(),bot.getCreateTime(),new Date()); |
||||
botMapper.updateById(newBot); |
||||
map.put("error_msg","success"); |
||||
return map; |
||||
} |
||||
} |
@ -0,0 +1,10 @@ |
||||
package com.kob.backend.controller.service.user.bot; |
||||
|
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
public interface AddService { |
||||
Map<String,String> add(Map<String,String> data); |
||||
} |
@ -0,0 +1,12 @@ |
||||
package com.kob.backend.controller.service.user.bot; |
||||
|
||||
import com.kob.backend.controller.pojo.Bot; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
public interface GetListService { |
||||
List<Bot> getList(); |
||||
} |
@ -0,0 +1,10 @@ |
||||
package com.kob.backend.controller.service.user.bot; |
||||
|
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
public interface RemoveService { |
||||
Map<String,String> remove(Map<String,String> data); |
||||
} |
@ -0,0 +1,10 @@ |
||||
package com.kob.backend.controller.service.user.bot; |
||||
|
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
public interface UpdateService { |
||||
Map<String ,String > update(Map<String,String> data); |
||||
} |
@ -0,0 +1,24 @@ |
||||
package com.kob.backend.controller.user.bot; |
||||
|
||||
import com.kob.backend.controller.service.user.bot.AddService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestParam; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@RestController |
||||
public class AddController { |
||||
@Autowired |
||||
private AddService addService; |
||||
|
||||
@PostMapping("/user/bot/add/") |
||||
public Map<String, String> add(@RequestParam Map<String,String> data){ |
||||
return addService.add(data); |
||||
} |
||||
} |
@ -0,0 +1,24 @@ |
||||
package com.kob.backend.controller.user.bot; |
||||
|
||||
import com.kob.backend.controller.pojo.Bot; |
||||
import com.kob.backend.controller.service.user.bot.GetListService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.util.List; |
||||
|
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@RestController |
||||
public class GetListController { |
||||
@Autowired |
||||
private GetListService getListService; |
||||
|
||||
@GetMapping("/user/bot/getlist") |
||||
public List<Bot> getList() { |
||||
return getListService.getList(); |
||||
} |
||||
} |
@ -0,0 +1,24 @@ |
||||
package com.kob.backend.controller.user.bot; |
||||
|
||||
import com.kob.backend.controller.service.user.bot.RemoveService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestParam; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@RestController |
||||
public class RemoveController { |
||||
@Autowired |
||||
private RemoveService removeService; |
||||
|
||||
@PostMapping("/user/bot/remove/") |
||||
public Map<String, String> remove(@RequestParam Map<String, String> data) { |
||||
return removeService.remove(data); |
||||
} |
||||
} |
||||
|
@ -0,0 +1,23 @@ |
||||
package com.kob.backend.controller.user.bot; |
||||
|
||||
import com.kob.backend.controller.service.user.bot.UpdateService; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.PostMapping; |
||||
import org.springframework.web.bind.annotation.RequestParam; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.util.Map; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@RestController |
||||
public class UpdateController { |
||||
@Autowired |
||||
private UpdateService updateService; |
||||
|
||||
@PostMapping("/user/bot/update/") |
||||
public Map<String, String> update(@RequestParam Map<String, String> data) { |
||||
return updateService.update(data); |
||||
} |
||||
} |
@ -0,0 +1,12 @@ |
||||
package com.kob.backend.mapper; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.kob.backend.controller.pojo.Bot; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
/** |
||||
* @author zfp |
||||
*/ |
||||
@Mapper |
||||
public interface BotMapper extends BaseMapper<Bot> { |
||||
} |
Loading…
Reference in new issue