package com.alatus.web;
import com.alatus.constant.Constants;
import com.alatus.model.TClue;
import com.alatus.query.ClueQuery;
import com.alatus.result.Result;
import com.alatus.service.ClueService;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@RestController
public class ClueController {
@Resource
private ClueService clueService;
@GetMapping(value = "/api/clues")
public Result cluePage(@RequestParam(value = Constants.CURRENT,required = false)Integer current){
if(current == null){
current = 1;
}
PageInfo<TClue> pageInfo = clueService.getClueByPage(current);
return Result.OK(pageInfo);
}
@PostMapping(value = "/api/clue/importExcel")
public Result importExcel(MultipartFile file, @RequestHeader(value = Constants.TOKEN_NAME)String token) throws IOException {
// 接收到的文件名字需要和前端提交的名字相同,否则无法接收
clueService.importExcel(file.getInputStream(),token);
return Result.OK();
}
@DeleteMapping(value = "/api/clue/delete/{id}")
public Result clueDel(@PathVariable(value = Constants.ID)Integer id){
Integer result = clueService.deleteClue(id);
return result >= 1 ? Result.OK() : Result.FAIL();
}
@DeleteMapping(value = "/api/clue/batchDel")
public Result batchDelClue(@RequestParam(value = Constants.IDS)String ids,@RequestHeader(value = Constants.TOKEN_NAME)String token){
List<String> idsList = Arrays.asList(ids.split(","));
int result = clueService.delClueByIds(idsList);
return result >= idsList.size() ? Result.OK() : Result.FAIL();
}
@GetMapping(value = "/api/clue/phone/{phone}")
public Result checkPhone(@PathVariable(value = Constants.PHONE)String phone){
Boolean check = clueService.checkPhone(phone);
return check ? Result.OK() : Result.FAIL();
}
@PostMapping(value = "/api/clue/add")
public Result addClue(@RequestHeader(value = Constants.TOKEN_NAME)String token, ClueQuery clueQuery){
clueQuery.setToken(token);
int save = clueService.saveClue(clueQuery);
return save >= 1 ? Result.OK() : Result.FAIL();
}
@GetMapping(value = "/api/clue/{id}")
public Result getClue(@PathVariable(value = Constants.ID)Integer id){
TClue tClue = clueService.getClueById(id);
return Result.OK(tClue);
}
@PutMapping(value = "/api/clue/edit")
public Result editClue(@RequestHeader(value = Constants.TOKEN_NAME)String token, ClueQuery clueQuery){
clueQuery.setToken(token);
int update = clueService.editClue(clueQuery);
return update >= 1 ? Result.OK() : Result.FAIL();
}
}
package com.alatus.web;
import com.alatus.constant.Constants;
import com.alatus.model.TClue;
import com.alatus.query.ClueQuery;
import com.alatus.result.Result;
import com.alatus.service.ClueService;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@RestController
public class ClueController {
@Resource
private ClueService clueService;
@GetMapping(value = "/api/clues")
public Result cluePage(@RequestParam(value = Constants.CURRENT,required = false)Integer current){
if(current == null){
current = 1;
}
PageInfo<TClue> pageInfo = clueService.getClueByPage(current);
return Result.OK(pageInfo);
}
@PostMapping(value = "/api/clue/importExcel")
public Result importExcel(MultipartFile file, @RequestHeader(value = Constants.TOKEN_NAME)String token) throws IOException {
// 接收到的文件名字需要和前端提交的名字相同,否则无法接收
clueService.importExcel(file.getInputStream(),token);
return Result.OK();
}
@DeleteMapping(value = "/api/clue/delete/{id}")
public Result clueDel(@PathVariable(value = Constants.ID)Integer id){
Integer result = clueService.deleteClue(id);
return result >= 1 ? Result.OK() : Result.FAIL();
}
@DeleteMapping(value = "/api/clue/batchDel")
public Result batchDelClue(@RequestParam(value = Constants.IDS)String ids,@RequestHeader(value = Constants.TOKEN_NAME)String token){
List<String> idsList = Arrays.asList(ids.split(","));
int result = clueService.delClueByIds(idsList);
return result >= idsList.size() ? Result.OK() : Result.FAIL();
}
@GetMapping(value = "/api/clue/phone/{phone}")
public Result checkPhone(@PathVariable(value = Constants.PHONE)String phone){
Boolean check = clueService.checkPhone(phone);
return check ? Result.OK() : Result.FAIL();
}
@PostMapping(value = "/api/clue/add")
public Result addClue(@RequestHeader(value = Constants.TOKEN_NAME)String token, ClueQuery clueQuery){
clueQuery.setToken(token);
int save = clueService.saveClue(clueQuery);
return save >= 1 ? Result.OK() : Result.FAIL();
}
@GetMapping(value = "/api/clue/{id}")
public Result getClue(@PathVariable(value = Constants.ID)Integer id){
TClue tClue = clueService.getClueById(id);
return Result.OK(tClue);
}
@PutMapping(value = "/api/clue/edit")
public Result editClue(@RequestHeader(value = Constants.TOKEN_NAME)String token, ClueQuery clueQuery){
clueQuery.setToken(token);
int update = clueService.editClue(clueQuery);
return update >= 1 ? Result.OK() : Result.FAIL();
}
}
package com.alatus.service;
import com.alatus.model.TClue;
import com.alatus.query.ClueQuery;
import com.github.pagehelper.PageInfo;
import java.io.InputStream;
import java.util.List;
public interface ClueService {
PageInfo<TClue> getClueByPage(Integer current);
void importExcel(InputStream inputStream,String token);
Integer deleteClue(Integer id);
int delClueByIds(List<String> idsList);
Boolean checkPhone(String phone);
int saveClue(ClueQuery clueQuery);
TClue getClueById(Integer id);
int editClue(ClueQuery clueQuery);
}
package com.alatus.service;
import com.alatus.model.TClue;
import com.alatus.query.ClueQuery;
import com.github.pagehelper.PageInfo;
import java.io.InputStream;
import java.util.List;
public interface ClueService {
PageInfo<TClue> getClueByPage(Integer current);
void importExcel(InputStream inputStream,String token);
Integer deleteClue(Integer id);
int delClueByIds(List<String> idsList);
Boolean checkPhone(String phone);
int saveClue(ClueQuery clueQuery);
TClue getClueById(Integer id);
int editClue(ClueQuery clueQuery);
}
package com.alatus.service.impl;
import com.alatus.config.listener.UploadDataListener;
import com.alatus.constant.Constants;
import com.alatus.mapper.TClueMapper;
import com.alatus.model.TClue;
import com.alatus.query.BaseQuery;
import com.alatus.query.ClueQuery;
import com.alatus.service.ClueService;
import com.alatus.util.JWTUtils;
import com.alibaba.excel.EasyExcel;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
@Service
public class ClueServiceImpl implements ClueService {
@Resource
private TClueMapper tClueMapper;
@Override
public PageInfo<TClue> getClueByPage(Integer current) {
// 1.设置PageHelper
PageHelper.startPage(current, Constants.PAGE_SIZE);
// 2.查询
List<TClue> list = tClueMapper.selectClueByPage(BaseQuery.builder().build());
// 3.封装分页数据到PageInfo
PageInfo<TClue> info = new PageInfo<>(list);
return info;
}
@Override
public void importExcel(InputStream inputStream,String token) {
// 第一个参数是文件,第二个参数是excel模板类,第三个是监听器
EasyExcel.read(inputStream,TClue.class,new UploadDataListener(tClueMapper,token)).sheet().doRead();
}
@Override
public Integer deleteClue(Integer id) {
return tClueMapper.deleteByPrimaryKey(id);
}
@Override
public int delClueByIds(List<String> idsList) {
return tClueMapper.deleteByIds(idsList);
}
@Override
public Boolean checkPhone(String phone) {
return !(tClueMapper.selectByCount(phone) > 0);
}
@Override
public int saveClue(ClueQuery clueQuery) {
TClue tClue = new TClue();
// 这个工具类的复制要求是两个对象的属性名要相同,属性要相同
BeanUtils.copyProperties(clueQuery,tClue);
tClue.setCreateTime(new Date());
// 通过token解析出的用户获取ID作为创建者的ID
Integer loginId = JWTUtils.parseUserFromJWT(clueQuery.getToken()).getId();
tClue.setCreateBy(loginId);
return tClueMapper.insertSelective(tClue);
}
@Override
public TClue getClueById(Integer id) {
return tClueMapper.selectByPrimaryKey(id);
}
@Override
public int editClue(ClueQuery clueQuery) {
TClue tClue = new TClue();
// 这个工具类的复制要求是两个对象的属性名要相同,属性要相同
BeanUtils.copyProperties(clueQuery,tClue);
tClue.setEditTime(new Date());
// 通过token解析出的用户获取ID作为创建者的ID
Integer loginId = JWTUtils.parseUserFromJWT(clueQuery.getToken()).getId();
tClue.setEditBy(loginId);
return tClueMapper.updateByPrimaryKey(tClue);
}
}
package com.alatus.service.impl;
import com.alatus.config.listener.UploadDataListener;
import com.alatus.constant.Constants;
import com.alatus.mapper.TClueMapper;
import com.alatus.model.TClue;
import com.alatus.query.BaseQuery;
import com.alatus.query.ClueQuery;
import com.alatus.service.ClueService;
import com.alatus.util.JWTUtils;
import com.alibaba.excel.EasyExcel;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import jakarta.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
@Service
public class ClueServiceImpl implements ClueService {
@Resource
private TClueMapper tClueMapper;
@Override
public PageInfo<TClue> getClueByPage(Integer current) {
// 1.设置PageHelper
PageHelper.startPage(current, Constants.PAGE_SIZE);
// 2.查询
List<TClue> list = tClueMapper.selectClueByPage(BaseQuery.builder().build());
// 3.封装分页数据到PageInfo
PageInfo<TClue> info = new PageInfo<>(list);
return info;
}
@Override
public void importExcel(InputStream inputStream,String token) {
// 第一个参数是文件,第二个参数是excel模板类,第三个是监听器
EasyExcel.read(inputStream,TClue.class,new UploadDataListener(tClueMapper,token)).sheet().doRead();
}
@Override
public Integer deleteClue(Integer id) {
return tClueMapper.deleteByPrimaryKey(id);
}
@Override
public int delClueByIds(List<String> idsList) {
return tClueMapper.deleteByIds(idsList);
}
@Override
public Boolean checkPhone(String phone) {
return !(tClueMapper.selectByCount(phone) > 0);
}
@Override
public int saveClue(ClueQuery clueQuery) {
TClue tClue = new TClue();
// 这个工具类的复制要求是两个对象的属性名要相同,属性要相同
BeanUtils.copyProperties(clueQuery,tClue);
tClue.setCreateTime(new Date());
// 通过token解析出的用户获取ID作为创建者的ID
Integer loginId = JWTUtils.parseUserFromJWT(clueQuery.getToken()).getId();
tClue.setCreateBy(loginId);
return tClueMapper.insertSelective(tClue);
}
@Override
public TClue getClueById(Integer id) {
return tClueMapper.selectByPrimaryKey(id);
}
@Override
public int editClue(ClueQuery clueQuery) {
TClue tClue = new TClue();
// 这个工具类的复制要求是两个对象的属性名要相同,属性要相同
BeanUtils.copyProperties(clueQuery,tClue);
tClue.setEditTime(new Date());
// 通过token解析出的用户获取ID作为创建者的ID
Integer loginId = JWTUtils.parseUserFromJWT(clueQuery.getToken()).getId();
tClue.setEditBy(loginId);
return tClueMapper.updateByPrimaryKey(tClue);
}
}