ADD file via upload

meyum3vjr 9 months ago
parent cac6ce0297
commit 080ad4b08b

@ -0,0 +1,401 @@
package com.controller;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
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 java.io.IOException;
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.YonghuEntity;
import com.entity.view.YonghuView;
import com.service.YonghuService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
*
*
* @author
* @email
* @date 2023-02-21 09:46:06
*/
@RestController
@RequestMapping("/yonghu")
public class YonghuController {
// 自动注入用户服务类,用于处理与用户相关的业务逻辑
@Autowired
private YonghuService yonghuService;
// 自动注入令牌服务类,用于生成和管理用户令牌
@Autowired
private TokenService tokenService;
/**
*
* @param username
* @param password
* @param captcha
* @param request Http
* @return R
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
// 根据用户名查询用户实体
YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", username));
if (u == null ||!u.getMima().equals(password)) {
// 若用户不存在或密码不匹配,返回错误信息
return R.error("账号或密码不正确");
}
// 生成用户令牌
String token = tokenService.generateToken(u.getId(), username, "yonghu", "用户");
return R.ok().put("token", token);
}
/**
*
* @param yonghu YonghuEntity
* @return R
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody YonghuEntity yonghu) {
// 此处原本应有对用户实体的验证逻辑,但被注释掉了
//ValidatorUtils.validateEntity(yonghu);
// 根据用户名查询是否已存在该用户
YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", yonghu.getZhanghao()));
if (u!= null) {
// 若用户已存在,返回错误信息
return R.error("注册用户已存在");
}
// 设置用户ID为当前时间戳
Long uId = new Date().getTime();
yonghu.setId(uId);
// 插入新用户信息到数据库
yonghuService.insert(yonghu);
return R.ok();
}
/**
* 退
* @param request Http
* @return 退R
*/
@RequestMapping("/logout")
public R logout(HttpServletRequest request) {
// 使当前会话失效,实现用户退出
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
*
* @param request Http
* @return R
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request) {
// 从会话中获取用户ID
Long id = (Long) request.getSession().getAttribute("userId");
// 根据用户ID查询用户实体
YonghuEntity u = yonghuService.selectById(id);
return R.ok().put("data", u);
}
/**
*
* @param username
* @param request Http
* @return R
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request) {
// 根据用户名查询用户实体
YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", username));
if (u == null) {
// 若用户不存在,返回错误信息
return R.error("账号不存在");
}
// 将用户密码重置为"123456"
u.setMima("123456");
// 更新用户信息到数据库
yonghuService.updateById(u);
return R.ok("密码已重置为123456");
}
/**
*
* @param params Map
* @param yonghu YonghuEntity
* @param request Http
* @return R
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, YonghuEntity yonghu,
HttpServletRequest request) {
// 创建用于构建查询条件的EntityWrapper对象
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
// 调用服务类的方法进行分页查询,并进行排序、条件筛选等操作
PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
*
* page@IgnoreAuth访
* @param params Map
* @param yonghu YonghuEntity
* @param request Http
* @return R
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, YonghuEntity yonghu,
HttpServletRequest request) {
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
*
* @param yonghu YonghuEntity
* @return R
*/
@RequestMapping("/lists")
public R list(YonghuEntity yonghu) {
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
ew.allEq(MPUtil.allEQMapPre(yonghu, "yonghu"));
return R.ok().put("data", yonghuService.selectListView(ew));
}
/**
*
* @param yonghu YonghuEntity
* @return R
*/
@RequestMapping("/query")
public R query(YonghuEntity yonghu) {
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
ew.allEq(MPUtil.allEQMapPre(yonghu, "yonghu"));
YonghuView yonghuView = yonghuService.selectView(ew);
return R.ok("查询用户成功").put("data", yonghuView);
}
/**
*
* @param id ID
* @return R
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id) {
YonghuEntity yonghu = yonghuService.selectById(id);
return R.ok().put("data", yonghu);
}
/**
*
* info@IgnoreAuth访
* @param id ID
* @return R
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id) {
YonghuEntity yonghu = yonghuService.selectById(id);
return R.ok().put("data", yonghu);
}
/**
*
* @param yonghu YonghuEntity
* @param request Http
* @return R
*/
@RequestMapping("/save")
public R save(@RequestBody YonghuEntity yonghu, HttpServletRequest request) {
// 设置用户ID为当前时间戳加上一个随机数
yonghu.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
// 此处原本应有对用户实体的验证逻辑,但被注释掉了
//ValidatorUtils.validateEntity(yonghu);
YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", yonghu.getZhanghao()));
if (u!= null) {
// 若用户已存在,返回错误信息
return R.error("用户已存在");
}
yonghu.setId(new Date().getTime());
yonghuService.insert(yonghu);
return R.ok();
}
/**
*
* save
* @param yonghu YonghuEntity
* @param request Http
* @return R
*/
@RequestMapping("/add")
public R add(@RequestBody YonghuEntity yonghu, HttpServletRequest request) {
yonghu.setId(new Date().getTime() + new Double(Math.floor(Math.random() * 1000)).longValue());
// 此处原本应有对用户实体的验证逻辑,但被注释掉了
//ValidatorUtils.validateEntity(yonghu);
YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("zhanghao", yonghu.getZhanghao()));
if (u!= null) {
// 若用户已存在,返回错误信息
return R.error("用户已存在");
}
yonghu.setId(new Date().getTime());
yonghuService.insert(yonghu);
return R.ok();
}
/**
*
* @param yonghu YonghuEntity
* @param request Http
* @return R
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody YonghuEntity yonghu, HttpServletRequest request) {
// 此处原本应有对用户实体的验证逻辑,但被注释掉了
//ValidatorUtils.validateEntity(yonghu);
yonghuService.updateById(yonghu); // 全部更新
return R.ok();
}
/**
*
* @param ids ID
* @return R
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids) {
yonghuService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
*
* @param columnName
* @param request Http
* @param type
* @param map Map
* @return R
*/
@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<YonghuEntity> wrapper = new EntityWrapper<YonghuEntity>();
if (map.get("remindstart")!= null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if (map.get("remindend")!= null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = yonghuService.selectCount(wrapper);
return R.ok().put("count", count);
}
/**
*
* @param yColumnName
* @param xColumnName
* @param request Http
* @return R
*/
@RequestMapping("/value/{xColumnName}/{yColumnName}")
public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, HttpServletRequest request) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("xColumn", xColumnName);
params.put("yColumn", yColumnName);
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
List<Map<String, Object>> result = yonghuService.selectValue(params, ew);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for (Map<String, Object> m : result) {
for (String k : m.keySet()) {
if (m.get(k) instanceof Date) {
m.put(k, sdf.format((Date) m.get(k)));
}
}
}
return R.ok().put("data", result);
}
/**
*
* @param yColumnName
* @param xColumnName
* @param timeStatType
* @param request Http
* @return R
*/
@RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")
public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType, HttpServletRequest request) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("xColumn", xColumnName);
params.put("yColumn", yColumnName);
params.put("timeStatType", timeStatType);
EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();
List<Map<String, Object>> result
Loading…
Cancel
Save