ADD file via upload

main
pe9vkn3zc 5 months ago
parent 9185120c16
commit 4bc67d6aaa

@ -0,0 +1,334 @@
package com.controller;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.KuaidiyuanEntity;
import com.entity.view.KuaidiyuanView;
import com.service.KuaidiyuanService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
/**
*
*
* @author
* @email
* @date 2023-02-17 16:59:28
*/
@RestController // 标识为RESTful控制器返回JSON数据
@RequestMapping("/kuaidiyuan") // 定义基础请求路径
public class KuaidiyuanController {
@Autowired // 自动注入快递员服务
private KuaidiyuanService kuaidiyuanService;
@Autowired // 自动注入Token服务用于生成和验证JWT token
private TokenService tokenService;
/**
*
* @param username
* @param password
* @param captcha 使
* @param request HTTP
* @return token
*/
@IgnoreAuth // 忽略认证,无需登录即可访问
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
// 根据员工账号查询用户信息
KuaidiyuanEntity u = kuaidiyuanService.selectOne(new EntityWrapper<KuaidiyuanEntity>().eq("yuangongzhanghao", username));
// 验证用户是否存在且密码是否正确
if(u == null || !u.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
// 生成JWT token包含用户ID、用户名、用户表和角色名称
String token = tokenService.generateToken(u.getId(), username, "kuaidiyuan", "快递员");
return R.ok().put("token", token); // 返回成功响应和token
}
/**
*
* @param kuaidiyuan
* @return
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody KuaidiyuanEntity kuaidiyuan){
// ValidatorUtils.validateEntity(kuaidiyuan); // 参数验证(已注释)
// 检查用户名是否已存在
KuaidiyuanEntity u = kuaidiyuanService.selectOne(new EntityWrapper<KuaidiyuanEntity>().eq("yuangongzhanghao", kuaidiyuan.getYuangongzhanghao()));
if(u != null) {
return R.error("注册用户已存在");
}
// 生成用户ID并保存
Long uId = new Date().getTime();
kuaidiyuan.setId(uId);
kuaidiyuanService.insert(kuaidiyuan);
return R.ok(); // 返回注册成功
}
/**
* 退
*/
@RequestMapping("/logout")
public R logout(HttpServletRequest request) {
// 使session失效清除登录状态
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
*
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
// 从session中获取用户ID
Long id = (Long)request.getSession().getAttribute("userId");
// 根据ID查询用户信息
KuaidiyuanEntity u = kuaidiyuanService.selectById(id);
return R.ok().put("data", u); // 返回用户信息
}
/**
*
* @param username
* @param request HTTP
* @return
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
// 检查用户是否存在
KuaidiyuanEntity u = kuaidiyuanService.selectOne(new EntityWrapper<KuaidiyuanEntity>().eq("yuangongzhanghao", username));
if(u == null) {
return R.error("账号不存在");
}
// 重置密码为默认值"123456"
u.setMima("123456");
kuaidiyuanService.updateById(u);
return R.ok("密码已重置为123456");
}
/**
* -
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, KuaidiyuanEntity kuaidiyuan,
HttpServletRequest request){
// 创建查询条件包装器
EntityWrapper<KuaidiyuanEntity> ew = new EntityWrapper<KuaidiyuanEntity>();
// 执行分页查询:模糊/等值查询 -> 范围查询 -> 排序 -> 分页
PageUtils page = kuaidiyuanService.queryPage(params,
MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kuaidiyuan), params), params));
return R.ok().put("data", page);
}
/**
* -
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, KuaidiyuanEntity kuaidiyuan,
HttpServletRequest request){
EntityWrapper<KuaidiyuanEntity> ew = new EntityWrapper<KuaidiyuanEntity>();
PageUtils page = kuaidiyuanService.queryPage(params,
MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, kuaidiyuan), params), params));
return R.ok().put("data", page);
}
/**
* -
*/
@RequestMapping("/lists")
public R list(KuaidiyuanEntity kuaidiyuan){
EntityWrapper<KuaidiyuanEntity> ew = new EntityWrapper<KuaidiyuanEntity>();
// 将所有非空属性转换为查询条件
ew.allEq(MPUtil.allEQMapPre(kuaidiyuan, "kuaidiyuan"));
return R.ok().put("data", kuaidiyuanService.selectListView(ew));
}
/**
* -
*/
@RequestMapping("/query")
public R query(KuaidiyuanEntity kuaidiyuan){
EntityWrapper<KuaidiyuanEntity> ew = new EntityWrapper<KuaidiyuanEntity>();
ew.allEq(MPUtil.allEQMapPre(kuaidiyuan, "kuaidiyuan"));
KuaidiyuanView kuaidiyuanView = kuaidiyuanService.selectView(ew);
return R.ok("查询快递员成功").put("data", kuaidiyuanView);
}
/**
* - ID
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
KuaidiyuanEntity kuaidiyuan = kuaidiyuanService.selectById(id);
return R.ok().put("data", kuaidiyuan);
}
/**
* - ID
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
KuaidiyuanEntity kuaidiyuan = kuaidiyuanService.selectById(id);
return R.ok().put("data", kuaidiyuan);
}
/**
* -
*/
@RequestMapping("/save")
public R save(@RequestBody KuaidiyuanEntity kuaidiyuan, HttpServletRequest request){
// 生成唯一ID时间戳 + 随机数
kuaidiyuan.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
// ValidatorUtils.validateEntity(kuaidiyuan); // 参数验证(已注释)
// 检查用户名是否已存在
KuaidiyuanEntity u = kuaidiyuanService.selectOne(new EntityWrapper<KuaidiyuanEntity>().eq("yuangongzhanghao", kuaidiyuan.getYuangongzhanghao()));
if(u != null) {
return R.error("用户已存在");
}
// 重新设置ID并保存
kuaidiyuan.setId(new Date().getTime());
kuaidiyuanService.insert(kuaidiyuan);
return R.ok();
}
/**
* -
*/
@RequestMapping("/add")
public R add(@RequestBody KuaidiyuanEntity kuaidiyuan, HttpServletRequest request){
// 生成唯一ID时间戳 + 随机数
kuaidiyuan.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
// ValidatorUtils.validateEntity(kuaidiyuan); // 参数验证(已注释)
// 检查用户名是否已存在
KuaidiyuanEntity u = kuaidiyuanService.selectOne(new EntityWrapper<KuaidiyuanEntity>().eq("yuangongzhanghao", kuaidiyuan.getYuangongzhanghao()));
if(u != null) {
return R.error("用户已存在");
}
// 重新设置ID并保存
kuaidiyuan.setId(new Date().getTime());
kuaidiyuanService.insert(kuaidiyuan);
return R.ok();
}
/**
* -
*/
@RequestMapping("/update")
@Transactional // 添加事务管理
public R update(@RequestBody KuaidiyuanEntity kuaidiyuan, HttpServletRequest request){
// ValidatorUtils.validateEntity(kuaidiyuan); // 参数验证(已注释)
kuaidiyuanService.updateById(kuaidiyuan); // 全字段更新
return R.ok();
}
/**
* -
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
// 将数组转换为List执行批量删除
kuaidiyuanService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* -
* @param columnName
* @param type
* @param map
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type, @RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
// 处理日期类型统计
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
// 处理开始日期
if(map.get("remindstart") != null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH, remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
// 处理结束日期
if(map.get("remindend") != null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH, remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
// 构建查询条件
Wrapper<KuaidiyuanEntity> wrapper = new EntityWrapper<KuaidiyuanEntity>();
if(map.get("remindstart") != null) {
wrapper.ge(columnName, map.get("remindstart")); // 大于等于开始值
}
if(map.get("remindend") != null) {
wrapper.le(columnName, map.get("remindend")); // 小于等于结束值
}
// 执行统计查询
int count = kuaidiyuanService.selectCount(wrapper);
return R.ok().put("count", count); // 返回统计结果
}
}
Loading…
Cancel
Save