文章目录
- 一,系统演示
- 二,系统核心代码介绍
最近开发了一个垃圾分类的小程序。
因为导师一直也是要学生做创新点,前前后改了几个版本,好在过了,也算不错。
我每天基本5点半起床,晚上11点睡觉,基本天天如此,大年三十也一样。
白天我的时间不是我的,因为我要服务别人,人家花了钱或者加入VIP,就得服务。
我这里就是个早市。5点半,到7点半,我可以干自己的事,这个时间大家都没起床,我写代码、学习都很安静。
8点半之后,开门了,有各种小伙伴开始问我问题了。
有的找不到工作怎么办,有的offer太多怎么办,有的qq被盗了怎么办,有的项目有bug了怎么办,有的加入vip咨询,有的买项目,有的被骗钱了怎么办,有的失恋抑郁了怎么办,有的被带绿帽子怎么办……
您别笑,这是真事,还有更离谱的!
目前找工作行情不好,但是需求还是很大的,很多公司都说找不到合适的人。
同时一时间,有两个小伙伴找我私聊:
一个工作offer爆满,不知道选哪一个:
一个投出去的简历,石沉大海:
还是要根据招聘的需求,不断完善简历,多刷项目,多刷八股文。但是一些还很坑的公司也不要去。
一,系统演示
二,系统核心代码介绍
/**
小孟v:codingxm
*/
@RestController
public class AccountController {
@Resource
private UserInfoService userInfoService;
@Resource
private AdminInfoService adminInfoService;
@GetMapping("/logout")
public Result logout(HttpServletRequest request) {
request.getSession().setAttribute("user", null);
return Result.success();
}
@GetMapping("/auth")
public Result getAuth(HttpServletRequest request) {
Object user = request.getSession().getAttribute("user");
if(user == null) {
return Result.error("401", "未登录");
}
return Result.success((UserInfo)user);
}
/**
* 注册
*/
@PostMapping("/register")
public Result<UserInfo> register(@RequestBody UserInfo userInfo, HttpServletRequest request) {
if (StrUtil.isBlank(userInfo.getName()) || StrUtil.isBlank(userInfo.getPassword())) {
throw new CustomException(ResultCode.PARAM_ERROR);
}
UserInfo register = userInfoService.add(userInfo);
HttpSession session = request.getSession();
session.setAttribute("user", register);
session.setMaxInactiveInterval(120 * 60);
return Result.success(register);
}
/**
* 登录
*/
@PostMapping("/login")
public Result<UserInfo> login(@RequestBody UserInfo userInfo, HttpServletRequest request) {
if (StrUtil.isBlank(userInfo.getName()) || StrUtil.isBlank(userInfo.getPassword())) {
throw new CustomException(ResultCode.USER_ACCOUNT_ERROR);
}
UserInfo login = userInfoService.login(userInfo.getName(), userInfo.getPassword());
HttpSession session = request.getSession();
session.setAttribute("user", login);
session.setMaxInactiveInterval(120 * 60);
return Result.success(login);
}
/**
* 登录
*/
@PostMapping("/login2")
public Result<UserInfo> login2(@RequestBody UserInfo userInfo, HttpServletRequest request) {
if (StrUtil.isBlank(userInfo.getName()) || StrUtil.isBlank(userInfo.getPassword())) {
throw new CustomException(ResultCode.USER_ACCOUNT_ERROR);
}
UserInfo login = adminInfoService.login(userInfo.getName(), userInfo.getPassword());
HttpSession session = request.getSession();
session.setAttribute("user", login);
session.setMaxInactiveInterval(120 * 60);
return Result.success(login);
}
/**
* 重置密码为123456
*/
@PutMapping("/resetPassword")
public Result<UserInfo> resetPassword(@RequestParam String username) {
return Result.success(userInfoService.resetPassword(username));
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody UserInfo info, HttpServletRequest request) {
UserInfo account = (UserInfo) request.getSession().getAttribute("user");
if (account == null) {
return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);
}
String oldPassword = SecureUtil.md5(info.getPassword());
if (!oldPassword.equals(account.getPassword())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
if(account.getLevel()==1){
UserInfo userInfo = userInfoService.findById(account.getId());
userInfo.setPassword(SecureUtil.md5(info.getNewPassword()));
userInfoService.update(userInfo);
}
// 清空session,让用户重新登录
request.getSession().setAttribute("user", null);
return Result.success();
}
@PutMapping("/wxUpdateMima")
public Result wxUpdateMima(@RequestBody Account info) {
UserInfo account = userInfoService.findById(info.getId());
String oldMima = SecureUtil.md5(info.getPassword());
if (!oldMima.equals(account.getPassword())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setPassword(SecureUtil.md5(info.getNewPassword()));
UserInfo yuangongxinxiInfo = new UserInfo();
BeanUtils.copyProperties(info, yuangongxinxiInfo);
userInfoService.update(yuangongxinxiInfo);
return Result.success();
}
@GetMapping("/mini/userInfo/{id}/{level}")
public Result<Account> miniLogin(@PathVariable Long id, @PathVariable Integer level) {
Account account = userInfoService.findByIdAndLevel(id, level);
return Result.success(account);
}
/**
* 修改密码
*/
@PutMapping("/changePassword")
public Result<Boolean> changePassword(@RequestParam Long id,
@RequestParam String newPassword) {
return Result.success(userInfoService.changePassword(id, newPassword));
}
@GetMapping("/getSession")
public Result<Map<String, String>> getSession(HttpServletRequest request) {
UserInfo account = (UserInfo) request.getSession().getAttribute("user");
if (account == null) {
return Result.success(new HashMap<>(1));
}
Map<String, String> map = new HashMap<>(1);
map.put("username", account.getName());
return Result.success(map);
}
}
@RestController
@RequestMapping(value = "/adminInfo")
public class AdminInfoController {
@Resource
private AdminInfoService adminInfoService;
@PostMapping
public Result<UserInfo> add(@RequestBody UserInfo userInfo) {
adminInfoService.add(userInfo);
return Result.success(userInfo);
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
adminInfoService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody UserInfo userInfo) {
adminInfoService.update(userInfo);
return Result.success();
}
@GetMapping("/{id}")
public Result<UserInfo> detail(@PathVariable Long id) {
UserInfo userInfo = adminInfoService.findById(id);
return Result.success(userInfo);
}
@GetMapping
public Result<List<UserInfo>> all() {
return Result.success(adminInfoService.findAll());
}
@GetMapping("/page/{name}")
public Result<PageInfo<UserInfo>> page(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@PathVariable String name) {
return Result.success(adminInfoService.findPage(pageNum, pageSize, name));
}
/**
* 注册
*/
@PostMapping("/register")
public Result<UserInfo> register(@RequestBody UserInfo userInfo) {
if (StrUtil.isBlank(userInfo.getName()) || StrUtil.isBlank(userInfo.getPassword())) {
throw new CustomException(ResultCode.PARAM_ERROR);
}
return Result.success(adminInfoService.add(userInfo));
}
/**
* 登录
*/
@PostMapping("/login")
public Result<UserInfo> login(@RequestBody UserInfo userInfo) {
if (StrUtil.isBlank(userInfo.getName()) || StrUtil.isBlank(userInfo.getPassword())) {
throw new CustomException(ResultCode.USER_ACCOUNT_ERROR);
}
return Result.success(adminInfoService.login(userInfo.getName(), userInfo.getPassword()));
}
/**
* 重置密码为123456
*/
@PutMapping("/resetPassword")
public Result<UserInfo> resetPassword(@RequestParam String name) {
return Result.success(adminInfoService.resetPassword(name));
}
/**
* 修改密码
*/
@PutMapping("/changePassword")
public Result<Boolean> changePassword(@RequestParam Long id,
@RequestParam String newPassword) {
return Result.success(adminInfoService.changePassword(id, newPassword));
}
/**
* 批量通过excel添加信息
* @param file excel文件
* @throws IOException
*/
@PostMapping("/upload")
public Result upload(MultipartFile file) throws IOException {
List<UserInfo> infoList = ExcelUtil.getReader(file.getInputStream()).readAll(UserInfo.class);
if (!CollectionUtil.isEmpty(infoList)) {
// 处理一下空数据
List<UserInfo> resultList = infoList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getName())).collect(Collectors.toList());
for (UserInfo info : resultList) {
adminInfoService.add(info);
}
}
return Result.success();
}
@GetMapping("/getExcelModel")
public void getExcelModel(HttpServletResponse response) throws IOException {
// 1. 生成excel
Map<String, Object> row = new LinkedHashMap<>();
row.put("name", "张天志");
row.put("password", "123456");
row.put("nickname", "老张");
row.put("sex", "男");
row.put("age", 22);
row.put("phone", "18843232356");
row.put("address", "上海市");
row.put("level", 3);
List<Map<String, Object>> list = CollUtil.newArrayList(row);
// 2. 写excel
ExcelWriter writer = ExcelUtil.getWriter(true);
writer.write(list, true);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename=userInfoModel.xlsx");
ServletOutputStream out = response.getOutputStream();
writer.flush(out, true);
writer.close();
IoUtil.close(System.out);
}
@RestController
@RequestMapping(value = "/advertiserInfo")
public class AdvertiserInfoController {
@Resource
private AdvertiserInfoService advertiserInfoService;
@PostMapping
public Result<AdvertiserInfo> add(@RequestBody AdvertiserInfo advertiserInfo) {
advertiserInfoService.add(advertiserInfo);
return Result.success(advertiserInfo);
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
advertiserInfoService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody AdvertiserInfo advertiserInfo) {
advertiserInfoService.update(advertiserInfo);
return Result.success();
}
@GetMapping("/{id}")
public Result<AdvertiserInfo> detail(@PathVariable Long id) {
AdvertiserInfo advertiserInfo = advertiserInfoService.findById(id);
return Result.success(advertiserInfo);
}
@GetMapping
public Result<List<AdvertiserInfo>> all() {
return Result.success(advertiserInfoService.findAll());
}
@GetMapping("/page/{name}")
public Result<PageInfo<AdvertiserInfo>> page(@PathVariable String name,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "5") Integer pageSize,
HttpServletRequest request) {
return Result.success(advertiserInfoService.findPage(name, pageNum, pageSize, request));
}
}
有需要开发的也可以找我。
不管是社招还是校招基础都是非常重要的。
虽然招聘要求上写的要精通很多的技术,但是其实对于开发来说,如果基础不行,直接pass。
我曾经面试过一个三年开发经验的人,当时项目经验表现非常好,但是有几个基础的问题没有回答好,十分的拉胯。
例如不知道http和https、存储过程表达不清、TCP和UDP的过程不清,redis应用场景不知道。
下面都是面试常问的:
Java:集合、反射、并发、多线程、字符区别、jvm、内存运行、垃圾回收。
Mysql:索引、优化、存储过程、事务、日志。
Spring:AOP、IOC、Bean、配置方式、事务管理。
当然还有计算机408的,也得刷。
总之,没事的时候多去刷题。好多公司的题目重复率极高,公司来来回回就那些题。
题刷多了,可以试着给自己出套题。
我是程序员小孟,感谢点赞、关注、评论。