大家好,我是小孟!

最近忙的一头雾水,一边是家庭,一边是工作。

前端时间小孩手指腱鞘炎,做了个小手术,我跑了很多的医院,最终确认在妇女儿童医院做的小手术,前后还比较顺利。

看到孩子从手术间推出来的那一刻,我真的绷不住了,这是可能是近几年来第一次流泪。

上次流泪是爷爷走的时候。

小孩很坚强,就哭了一次。旁边做一样手术小孩一直嚎啕大哭。

小孩越听话,我心里更难受。

白天一直在前前后后跑手术的手续,中间有2个开发的客户也挺着急,我说明天系统一定给你。

幸运的是甲方通情达理!

小孩晚上睡得很晚,在医院走廊我码起了代码,熬了个通宵弄完了三个模块的开发!护士过来查房,问我:

都三点半了,你咋还不睡觉?

成年人的世界,没有谁是容易的。

后来小孩出院后,我爸过来照顾,然后我就投入到开发中,然后和小伙伴们开发了很多的项目!

这些小伙伴都是前面私活VIP进入的小伙伴,独乐乐不如众乐乐!我希望能帮助一些小伙伴多些收入。有些小伙伴技术很好,却不知如何变现,太可惜了!




更多的项目,我们会不断的开发,有一些小伙伴已经起飞了:

前面有很多的粉丝,技术非常的不错,但是不懂商业本质,空有一身武艺,没用。带了一些小伙伴,他们做的真的还不错!

方向对了,事半功倍!有个小伙伴搞的:

下一步他的计划:

核心代码分享:

@RestController
public class AccountController {@Value("${authority.info}")private String authorityStr;//我的vx:codemeng@Resourceprivate AdminInfoService adminInfoService;@Resourceprivate SallerInfoService sallerInfoService;@Resourceprivate UserInfoService userInfoService;@PostMapping("/login")public Result<Account> login(@RequestBody Account account, HttpServletRequest request) {if (StrUtil.isBlank(account.getName()) || StrUtil.isBlank(account.getPassword()) || account.getLevel() == null) {throw new CustomException(ResultCode.PARAM_LOST_ERROR);}String imgCode = (String) request.getSession().getAttribute("imgCode");if(!account.getCode().equalsIgnoreCase(imgCode)){throw new CustomException(ResultCode.CODE_ERROR);}Integer level = account.getLevel();Account login = new Account();if (1 == level) {login = adminInfoService.login(account.getName(), account.getPassword());}if (2 == level) {login = sallerInfoService.login(account.getName(), account.getPassword());}if (3 == level) {login = userInfoService.login(account.getName(), account.getPassword());}request.getSession().setAttribute("user", login);return Result.success(login);}@PostMapping("/register")public Result<Account> register(@RequestBody Account account) {Integer level = account.getLevel();Account login = new Account();if (1 == level) {AdminInfo info = new AdminInfo();BeanUtils.copyProperties(account, info);login = adminInfoService.add(info);}if (2 == level) {SallerInfo info = new SallerInfo();BeanUtils.copyProperties(account, info);login = sallerInfoService.add(info);}if (3 == level) {UserInfo info = new UserInfo();BeanUtils.copyProperties(account, info);login = userInfoService.add(info);}return Result.success(login);}@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(user);}@GetMapping("/getAccountInfo")public Result<Object> getAccountInfo(HttpServletRequest request) {Account account = (Account) request.getSession().getAttribute("user");if (account == null) {return Result.success(new Object());}Integer level = account.getLevel();if (1 == level) {return Result.success(adminInfoService.findById(account.getId()));}if (2 == level) {return Result.success(sallerInfoService.findById(account.getId()));}if (3 == level) {return Result.success(userInfoService.findById(account.getId()));}return Result.success(new Object());}@GetMapping("/getSession")public Result<Map<String, String>> getSession(HttpServletRequest request) {Account account = (Account) 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);}@GetMapping("/getAuthority")public Result<List<AuthorityInfo>> getAuthorityInfo() {List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);return Result.success(authorityInfoList);}/*** 获取当前用户所能看到的模块信息* @param request* @return*/@GetMapping("/authority")public Result<List<Integer>> getAuthorityInfo(HttpServletRequest request) {Account user = (Account) request.getSession().getAttribute("user");if (user == null) {return Result.success(new ArrayList<>());}JSONArray objects = JSONUtil.parseArray(authorityStr);for (Object object : objects) {JSONObject jsonObject = (JSONObject) object;if (user.getLevel().equals(jsonObject.getInt("level"))) {JSONArray array = JSONUtil.parseArray(jsonObject.getStr("models"));List<Integer> modelIdList = array.stream().map((o -> {JSONObject obj = (JSONObject) o;return obj.getInt("modelId");})).collect(Collectors.toList());return Result.success(modelIdList);}}return Result.success(new ArrayList<>());}@GetMapping("/permission/{modelId}")public Result<List<Integer>> getPermission(@PathVariable Integer modelId, HttpServletRequest request) {List<AuthorityInfo> authorityInfoList = JSONUtil.toList(JSONUtil.parseArray(authorityStr), AuthorityInfo.class);Account user = (Account) request.getSession().getAttribute("user");if (user == null) {return Result.success(new ArrayList<>());}Optional<AuthorityInfo> optional = authorityInfoList.stream().filter(x -> x.getLevel().equals(user.getLevel())).findFirst();if (optional.isPresent()) {Optional<AuthorityInfo.Model> firstOption = optional.get().getModels().stream().filter(x -> x.getModelId().equals(modelId)).findFirst();if (firstOption.isPresent()) {List<Integer> info = firstOption.get().getOperation();return Result.success(info);}}return Result.success(new ArrayList<>());}@PutMapping("/updatePassword")public Result updatePassword(@RequestBody Account info, HttpServletRequest request) {Account account = (Account) 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);}info.setPassword(SecureUtil.md5(info.getNewPassword()));Integer level = account.getLevel();if (1 == level) {AdminInfo adminInfo = new AdminInfo();BeanUtils.copyProperties(info, adminInfo);adminInfoService.update(adminInfo);}if (2 == level) {SallerInfo sallerInfo = new SallerInfo();BeanUtils.copyProperties(info, sallerInfo);sallerInfoService.update(sallerInfo);}if (3 == level) {UserInfo userInfo = new UserInfo();BeanUtils.copyProperties(info, userInfo);userInfoService.update(userInfo);}info.setLevel(level);info.setName(account.getName());// 清空session,让用户重新登录request.getSession().setAttribute("user", null);return Result.success();}@PostMapping("/resetPassword")public Result resetPassword(@RequestBody Account account) {Integer level = account.getLevel();if (1 == level) {AdminInfo info = adminInfoService.findByUserName(account.getName());if (info == null) {return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);}info.setPassword(SecureUtil.md5("123456"));adminInfoService.update(info);}if (2 == level) {SallerInfo info = sallerInfoService.findByUserName(account.getName());if (info == null) {return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);}info.setPassword(SecureUtil.md5("123456"));sallerInfoService.update(info);}if (3 == level) {UserInfo info = userInfoService.findByUserName(account.getName());if (info == null) {return Result.error(ResultCode.USER_NOT_EXIST_ERROR.code, ResultCode.USER_NOT_EXIST_ERROR.msg);}info.setPassword(SecureUtil.md5("123456"));userInfoService.update(info);}return Result.success();}
@RestController
@RequestMapping(value = "/addressInfo")
public class AddressInfoController {@Resourceprivate AddressInfoService addressInfoService;@PostMappingpublic Result<AddressInfo> add(@RequestBody AddressInfoVo addressInfo, HttpServletRequest request) {Account account = (Account) request.getSession().getAttribute("user");addressInfo.setUserId(account.getId());addressInfoService.add(addressInfo);return Result.success(addressInfo);}@DeleteMapping("/{id}")public Result delete(@PathVariable Long id) {addressInfoService.delete(id);return Result.success();}@PutMappingpublic Result update(@RequestBody AddressInfoVo addressInfo) {addressInfoService.update(addressInfo);return Result.success();}@GetMapping("/{id}")public Result<AddressInfo> detail(@PathVariable Long id) {AddressInfo addressInfo = addressInfoService.findById(id);return Result.success(addressInfo);}@GetMappingpublic Result<List<AddressInfoVo>> all() {return Result.success(addressInfoService.findAll());}@GetMapping("/user/{userId}")public Result<List<AddressInfoVo>> findByUserId(@PathVariable Long userId, HttpServletRequest request) {Account account = (Account) request.getSession().getAttribute("user");if(account.getLevel() == 1 || account.getLevel() == 2) {return Result.success(new ArrayList<>());}return Result.success(addressInfoService.findByUserId(userId));}@GetMapping("/page/{name}")public Result<PageInfo<AddressInfoVo>> page(@PathVariable String name,@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "5") Integer pageSize,HttpServletRequest request) {return Result.success(addressInfoService.findPage(name, pageNum, pageSize, request));}/*** 批量通过excel添加信息* @param file excel文件* @throws IOException*/@PostMapping("/upload")public Result upload(MultipartFile file) throws IOException {List<AddressInfo> infoList = ExcelUtil.getReader(file.getInputStream()).readAll(AddressInfo.class);if (!CollectionUtil.isEmpty(infoList)) {// 处理一下空数据List<AddressInfo> resultList = infoList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getName())).collect(Collectors.toList());for (AddressInfo info : resultList) {addressInfoService.add(info);}}return Result.success();}@GetMapping("/getExcelModel")public void getExcelModel(HttpServletResponse response) throws IOException {// 1. 生成excelMap<String, Object> row = new LinkedHashMap<>();row.put("name", "");row.put("phone", "");row.put("man", "");List<Map<String, Object>> list = CollUtil.newArrayList(row);// 2. 写excelExcelWriter 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=addressInfoModel.xlsx");ServletOutputStream out = response.getOutputStream();writer.flush(out, true);writer.close();IoUtil.close(System.out);}
}

还有其他的几个小伙伴做的也不错,就不一一截图了,后面看我们的成果!

但是这个招募是需要有技术经验的,如果没有2年以上技术经验,想学习的话,可以先努力努力学习技术:

这是个伟大的时代,别再抱怨职场PUA、程序员35岁了,为什么某皮一年星球可以几百w,为什么人家开软件公司可以一年几百w,要找对方向!

学习、模仿、执行,谁都可以!

我们要提高自己的学习能力、执行能力!

我搞过大量的项目,最高也搞过七位数的。所以只要渠道对了,开发的项目没问题了。收入肯定很nice。

当然我还有个想法:

以后我们项目共享,这样就可以更强,走地更远!现在有几个小伙伴已经开发了10套系统,如果10个人,就是100套。

我现在手里已经积累到了万套,所以我开发这么快!很多都是封装好的!

大家抱团,直接爽到爆!一群人才能走得更远!

当然我也会给大家一些我的东西,去运营我的东西,去搞钱,因为我自己的精力实在有限,例如网站、公众号、小程序,都放在那里,属实浪费!

来面试吧!

当然关于程序员的出路,都可以随时交流。做技术、管理哪个更好?

副业是做自媒体还是接开发私活更香?

总之大家要提前做好规划,就会避免即使被裁也不会陷入没收入的地步。

工作并不是生活的全部,工作只是更好的生活。

我是程序员小孟。码字不易,欢迎点赞关注,谢谢您!下方也可以联系我!

最近开发了亿点点小项目相关推荐

  1. 如何利用spring框架来开发一个简单的小项目——书店项目

    这里我将用spring来开发一个简单的书店项目 Step1:所用到的开发软件为 idea , 所用到的jar包为 这些jar的下载可在 官网 下载,选择5.2.6版本下载,不会的在下面评论私信 Ste ...

  2. Web前端开发:SQL Jsp小项目(一)

    Jsp的学习算是告一段落,针对这段时间的学习,写了一个Jsp小项目来巩固学到的知识. 框架示意图 User list process UserAdd process 需要的界面效果: 需要工具:Ecl ...

  3. Android开发之第一个小项目--我的MP3播放器(一)

    不知不觉学习android也已经有一段时间了,学习完了基础的android知识后,一时间有点迷茫不知道该干什么,于是想写个项目给自己练练手,本来我以为MP3播放器挺好写的,结果后来仔细看了看我3年都没 ...

  4. 前端开发笔记3-开发小项目,kline遇到的知识点及问题

    1.遇到需要弹出某些信息时的思路 今天遇到的需求是触发一个点击事件后弹出对应的信息,如何弹出较为合理的信息框呢. 整体思路是  点击事件-$('body').append('<div>.. ...

  5. 我写了一个Python小项目

    最近我写了一个 Python 练手小项目,它是一个 PC 桌面版的便签程序,很简陋.写这个小项目是为了熟悉一下用 Python 进行一个完整的项目开发,进一步熟练 Python 的使用. 界面是这样的 ...

  6. 100个vc小项目开发:二、一步一点设计音乐播放器 [I]

    100个vc小项目开发:二.一步一点设计音乐播放器 [源码解读] 文章作者: July 软件来源:开源 ================== 1.有不正之处,恳请指正. 2.本文贴出的是关键实现代码部 ...

  7. python小项目实例流程-Python小项目:快速开发出一个简单的学生管理系统

    原标题:Python小项目:快速开发出一个简单的学生管理系统 本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: ...

  8. python小项目案例-Python小项目:快速开发出一个简单的学生管理系统

    本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...

  9. 典型的开发国内小项目没失败的经验分享

    我们分公司不大不小有100来号人,开发人员有几十个,也算在国内是不大不小的那种吧,公司有一个优点就是清一色用.NET开发,这也正好一些优点可以派上用处了,我比较讨厌弄Java就是一个字折腾死人,何必跟 ...

最新文章

  1. MapReduce的数据去重功能
  2. char值序列是什么Java_CharSequence和java之间的确切区别
  3. 『Python基础-11』集合 (set)
  4. 比explain更加详细的分析计划:Query Profiler
  5. 数据科学家 数据工程师_数据科学家实际上赚了多少钱?
  6. mysql 修改引擎_修改MySQL的数据库引擎为INNODB的方法
  7. Spring Boot 永远滴神!10分钟快速入门
  8. socket()编程简介
  9. matlab2c使用c++实现matlab函数系列教程-conj函数
  10. 第 11 章 日志管理 - 090 - ELK 完整部署和使用
  11. 微信小程序sass不编译怎么办_不吹牛,四款免费实用的微信小程序,打开立即使用!...
  12. 文档——软件需求说明书
  13. 美团java笔试题_美团笔试题目(Java后端5题2小时)
  14. windows应用商店打不开,错误代码0x80131500
  15. MATLAB音乐十二平均律频谱分析与STM32电子琴(含源码)
  16. Java1.8开始为什么用元空间替换永久代
  17. Fiddler移动端代理设置(移动端抓包设置,包教会)
  18. 谷歌身份验证器验证码不对怎么回事_兼容谷歌验证器,开源的动态验证码小程序了解一下
  19. 那个全是成人游戏的Steam平台,可能真的要凉了!
  20. 关于Matlab中矩阵元素的表示方法

热门文章

  1. 小学音乐利用计算机教学设计,外婆的澎湖湾公开课,怎么利用技术多媒体小学音乐教学设计...
  2. linux dd flash,用dd命令生成bin文件,而不用拆flash读取文件
  3. 云储存将成未来大规模视频监控储存主要模式
  4. media queries 适配 iphone6s
  5. 数学文化赏析MOOC笔记【2023】
  6. 又一家金融科技公司走到了退市边缘
  7. python写web自动化_Web接口开发与自动化测试:基于Python语言
  8. Servlet MVC——CRUD
  9. 如何学习HTML5?
  10. html5 data src显示,srcdoc =“…”和src =“data:text/html,…”之间的区别是什么?