package per.kirito.pack.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;
import per.kirito.pack.myEnum.Status;
import per.kirito.pack.pojo.User;
import per.kirito.pack.service.inter.UserService;
import per.kirito.pack.util.TypeConversion;
import java.util.HashMap;
import java.util.Map;
/**
* @author kirito
* @version 1.0
* @date 2020/12/4 21:04
* @description:
*/
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private StringRedisTemplate stringRedisTemplate;
private static final int LOGIN_CODE = Status.LOGIN_SUCCESS.getCode();
private static final int EXIT_CODE = Status.EXIT_SUCCESS.getCode();
private static final int INFO_CODE = Status.INFO_SUCCESS.getCode();
private static final int REGISTER_CODE = Status.REGISTER_SUCCESS.getCode();
private static final int EXIST_CODE = Status.IS_EXIST.getCode();
private static final int PWD_CODE = Status.PWD_SUCCESS.getCode();
private static final String LOGIN_SUCCESS = Status.LOGIN_SUCCESS.getMsg();
private static final String LOGIN_FAIL = Status.LOGIN_FAIL.getMsg();
private static final String EXIT_SUCCESS = Status.EXIT_SUCCESS.getMsg();
private static final String EXIT_FAIL = Status.EXIT_FAIL.getMsg();
private static final String INFO_SUCCESS = Status.INFO_SUCCESS.getMsg();
private static final String INFO_FAIL = Status.INFO_FAIL.getMsg();
private static final String REGISTER_SUCCESS = Status.REGISTER_SUCCESS.getMsg();
private static final String REGISTER_FAIL = Status.REGISTER_FAIL.getMsg();
private static final String IS_EXIST = Status.IS_EXIST.getMsg();
private static final String NOT_EXIST = Status.NOT_EXIST.getMsg();
private static final String PWD_SUCCESS = Status.PWD_SUCCESS.getMsg();
private static final String PWD_FAIL = Status.PWD_FAIL.getMsg();
@CrossOrigin
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@RequestParam(value = "card") String card,
@RequestParam(value = "password") String password) {
String encrypt = TypeConversion.base64Encode(password.getBytes());
User user = new User();
user.setCard(card);
user.setPassword(encrypt);
int flag = userService.findUserByCardAndPwd(user);
if (flag == LOGIN_CODE) {
stringRedisTemplate.opsForValue().set("card", card);
return LOGIN_SUCCESS;
} else {
return LOGIN_FAIL;
}
}
@CrossOrigin
@RequestMapping(value = "/exit", method = RequestMethod.POST)
public String userExit() {
stringRedisTemplate.delete("card");
return stringRedisTemplate.hasKey("card") ? EXIT_FAIL : EXIT_SUCCESS;
}
@CrossOrigin
@RequestMapping(value = "/getInfo", method = RequestMethod.POST)
public Map<String, Object> getUserInfo() {
String card = stringRedisTemplate.opsForValue().get("card");
Map<String, Object> map = new HashMap<>();
if (card == null || card == "") {
map.put("result", INFO_FAIL);
} else {
User user = userService.getUser(card);
map.put("user", user);
}
return map;
}
@CrossOrigin
@RequestMapping(value = "/addUser")
public String addUser(@RequestBody User user) {
String pwd = user.getPassword();
String encrypt = TypeConversion.base64Encode(pwd.getBytes());
user.setPassword(encrypt);
int flag = userService.addUser(user);
if (flag == REGISTER_CODE) {
String card = user.getCard();
stringRedisTemplate.opsForValue().set("card", card);
return REGISTER_SUCCESS;
} else {
return REGISTER_FAIL;
}
}
@CrossOrigin
@RequestMapping(value = "/forgetPwd")
public Map<String, String> forgetPwd(@RequestParam(value = "card") String card,
@RequestParam(value = "phone") String phone,
@RequestParam(value = "password") String password) {
System.out.println("card: " + card);
System.out.println("phone: " + phone);
System.out.println("password: " + password);
User user = new User();
user.setCard(card);
user.setPhone(phone);
int ifExit = userService.findUserByCardAndPhone(user);
Map<String, String> map = new HashMap<>();
if (ifExit == EXIST_CODE) {
String encrypt = TypeConversion.base64Encode(password.getBytes());
user = userService.getUser(card);
user.setPassword(encrypt);
int flag = userService.updateUser(user);
if (flag == PWD_CODE) {
map.put("flag", PWD_SUCCESS);
stringRedisTemplate.opsForValue().set("card", card);
} else {
map.put("flag", PWD_FAIL);
}
} else {
map.put("flag", NOT_EXIST);
}
return map;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
毕业设计是高等教育阶段学生在完成学业前所进行的一项重要学术任务,旨在检验学生通过学习所获得的知识、技能以及对特定领域的深刻理解能力。这项任务通常要求学生运用所学专业知识,通过独立研究和创新,完成一个实际问题的解决方案或者开展一项有价值的项目。 首先,毕业设计的选择通常由学生根据个人兴趣、专业方向以及实际需求来确定。学生需要在导师的指导下明确研究目标、问题陈述,确立研究的范围和深度。毕业设计可以包括文献综述、需求分析、方案设计、实施与测试等多个阶段,以确保整个过程的科学性和系统性。 其次,毕业设计的完成通常需要学生具备一定的独立思考和解决问题的能力。在研究过程中,学生可能需要采用各种研究方法,如实验、调查、案例分析等,以获取必要的数据和信息。通过这些活动,学生能够培养扎实的专业技能,提升解决实际问题的实际能力。 第三,毕业设计的撰写是整个过程的重要组成部分。学生需要将研究过程、方法、结果以及结论等详细记录在毕业论文中,以展示其研究的全貌和成果。同时,撰写毕业设计还有助于提高学生的学术写作水平,培养清晰、逻辑的表达能力。 最后,毕业设计的评价通常由导师和相关专业人士进行。评价标准包括研究的创新性、实用性、方法的科学性以及论文的质量等方面。学生在毕业设计中获得的成绩也将直接影响其最终的学业成绩和学位授予。 总的来说,毕业设计是高等教育中的一项重要环节,通过此过程,学生不仅能够巩固所学知识,还能培养独立思考和解决问题的能力,为将来的职业发展奠定坚实的基础。
资源推荐
资源详情
资源评论
收起资源包目录
校园快递管理系统-Spring Boot.zip (36个子文件)
SJT-code
src
test
java
per
kirito
pack
PackApplicationTests.java 329B
main
resources
mapper
PackMapper.xml 1KB
UserMapper.xml 1KB
CodeMapper.xml 583B
AdminMapper.xml 877B
conf
mybatis-config.xml 1KB
application.yml 1KB
java
per
kirito
pack
ServletInitializer.java 403B
mapper
UserMapper.java 409B
PackMapper.java 344B
AdminMapper.java 353B
CodeMapper.java 314B
myEnum
Status.java 2KB
Express.java 746B
controller
AdminController.java 3KB
PackController.java 4KB
UserController.java 5KB
pojo
Message.java 940B
Send.java 732B
Admin.java 604B
Pack.java 1KB
User.java 654B
Code.java 555B
PackApplication.java 524B
service
inter
CodeService.java 260B
UserService.java 355B
AdminService.java 299B
PackService.java 290B
impl
UserServiceImpl.java 949B
CodeServiceImpl.java 656B
PackServiceImpl.java 744B
AdminServiceImpl.java 777B
util
UUIDUtil.java 3KB
TypeConversion.java 2KB
PickCodeUtil.java 2KB
PackUtil.java 4KB
共 36 条
- 1
资源评论
JJJ69
- 粉丝: 6223
- 资源: 5780
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 电赛数据集-数字5,6,7,8识别
- 基于Vue的长沙理工大学Java大作业设计源码
- matlab基于线性准则的考虑风力发电不确定性的分布鲁棒优化机组组合
- 基于C语言+stm32f4的modbus tcp上下位机通信项目+上位机由LabVIEW编写+源码+开发文档+视频教程(高分项目
- 基于Python的Struts2漏洞扫描器设计源码
- HTML+CSS制作的个人博客网页.zip
- 基于htmlde 爱心代码,但HTML网页源码.zip
- 51单片机实现LED流水灯
- 基于Python的obEspoir分布式游戏框架设计源码
- 基于python的机械设计实用计算器,可计算电动机,传动装置,V带轮,齿轮,轴,轴承的几何或者力,运动学参数数值+源码+开发文档
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功