源码获取:博客首页 "资源" 里下载!

该系统有三个角色,分别是:普通用户、房屋中介、管理员普通用户的功能:浏览房屋信息、预约看房、和中介聊天、申请成为中介等等。房屋中介的功能:发布房屋信息、和用户聊天、回复预约信息等等。管理员的功能:管理所有用户信息、管理权限信息、管理所有房屋信息、管理所有预约信息等等。

应用技术:SpringBoot + Redis + MySQL + Vue + SpringSecurity + JWT + ElasticSearch + WebSocket + FreeMarker + MyBatis-Plus等等

运行环境:Eclipse/IntelliJ IDEA + MySQL5.7 + Maven3.6.3(项目压缩包中自带) + JDK1.8 + Redis5.0.5(项目压缩包中自带)+ ElasticSearch6.8.0

个人中心控制器:

/*** 个人中心控制器* * @author yy**/
@Controller
@RequestMapping("/personacentermvc")
public class PersonacenterController {@Resourceprivate RentwithdrawnService rentwithdrawnService;@Resourceprivate UserlistService userlistService;@Resourceprivate LeaseinformationService leaseinformationService;@Resourceprivate CheckoutapplicationService checkoutapplicationService;@Resourceprivate RentcollectionService rentcollectionService;@Resourceprivate FaultService faultService;@Resourceprivate HeadPortraitImgService headPortraitImgService;/*** 个人信息切换页面*/@RequestMapping("/personal_switch")public void temp(String txt, HttpServletResponse response) throws IOException {response.setCharacterEncoding("UTF-8");switch (txt) {case "租赁信息":response.getWriter().print("/jsp/personalInformation/information.jsp");break;case "我的申请":response.getWriter().print("/jsp/personalInformation/myapplication.jsp");break;case "代缴租金":response.getWriter().print("/jsp/personalInformation/rentpayment.jsp");break;case "报障模块":response.getWriter().print("/jsp/personalInformation/faultreportingmodule.jsp");break;case "其他操作":response.getWriter().print("/jsp/personalInformation/otheroperations.jsp");break;}}/*** 我的租赁分页查询*/@RequestMapping("/myRentalList")@ResponseBodypublic Msg myRentalList(@RequestParam(value = "pn") Integer pn, HttpSession session) {// 查询所有数据userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);List<userlist> leaseuser = userlistService.selectUserNameWith(user.getUsername());// 使用PageInFo封装查询结果PageInfo<userlist> pageInfo = new PageInfo<userlist>(leaseuser, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 已退租赁记录分页查询*/@RequestMapping("/refundedLeaseList")@ResponseBodypublic Msg refundedLeaseList(@RequestParam(value = "pn") Integer pn, HttpSession session) {// 查询所有数据userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);List<rentwithdrawn> list = rentwithdrawnService.queryAllStateName("已退租", "", user.getUsername());// 使用PageInFo封装查询结果PageInfo<rentwithdrawn> pageInfo = new PageInfo<rentwithdrawn>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 申请状态记录分页查询*/@RequestMapping("/applicationAtatusList")@ResponseBodypublic Msg applicationAtatusList(@RequestParam(value = "pn") Integer pn, boolean flag, HttpSession session) {List<checkoutapplication> list = null;userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);// 查询所有数据if (flag) {list = checkoutapplicationService.selectStateAll("看房申请中", "退房申请中", "", user.getUsername());} else {list = checkoutapplicationService.selectStateAll("已拒绝", "已同意", "已取消", user.getUsername());}// 使用PageInFo封装查询结果PageInfo<checkoutapplication> pageInfo = new PageInfo<checkoutapplication>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 代缴租金分页查询*/@RequestMapping("/rentpaymentList")@ResponseBodypublic Msg rentpaymentList(@RequestParam(value = "pn") Integer pn, String state, HttpSession session) {userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);List<rentcollection> list = rentcollectionService.queryPaidStateAll(state, user.getUsername());// 使用PageInFo封装查询结果PageInfo<rentcollection> pageInfo = new PageInfo<rentcollection>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 缴纳租金*/@RequestMapping("/payrentmvc")public ModelAndView payrentmvc(String rchousemoney,Integer rcid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;   }Warning news = rentcollectionService.updateState(rcid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 已缴纳租金删除记录*/@RequestMapping("/paidrent")public ModelAndView paidrent(Integer rcid,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;    }Warning news = rentcollectionService.deleteByPrimaryKey(rcid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 共缴费费用*/@RequestMapping("/copaymentfee")@ResponseBodypublic Msg copaymentfee(String state, HttpSession session) {userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));List<rentcollection> list = rentcollectionService.queryPaidStateAll(state, user.getUsername());int num = 0;for (rentcollection temp : list) {num += Float.parseFloat(temp.getRchousemoney());}return Msg.success().add("num", num);}/*** 报障分页查询*/@RequestMapping("/repairList")@ResponseBodypublic Msg repairList(@RequestParam(value = "pn") Integer pn, String str, HttpSession session) {// 使用PageInFo封装查询结果userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);if (str.equals("我要报障")) {List<userlist> leaseuser = userlistService.selectUserNameWith(user.getUsername());PageInfo<userlist> pageInfo = new PageInfo<userlist>(leaseuser, 3);return Msg.success().add("pageInfo", pageInfo);}List<fault> list = faultService.queryAllState(str, user.getUsername());PageInfo<fault> pageInfo = new PageInfo<fault>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 报障提交内容* * @throws ParseException*/@RequestMapping("/contentofthereport")public ModelAndView contentofthereport(String date, String housecall, String contentofthe,String token,HttpServletRequest request,HttpSession session) throws ParseException {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;  }userlist user = userlistService.selectUserCallWith(housecall);fault fault = new fault();fault.setFhouseid(housecall);fault.setFhouseaddress(user.getLeaseinformation().getHouseaddress());fault.setFprice(Double.parseDouble(user.getLeaseinformation().getHousemoney()));SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");Date t1 = sdf.parse(date);fault.setFdate(t1);fault.setFdatetemp(date);fault.setFcontent(contentofthe);fault.setFusername(user.getUsername());fault.setFuserid(user.getUserid());fault.setFuserphone(user.getUserphone());fault.setFstate("未处理");Warning news = faultService.insert(fault);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 报障删除记录*/@RequestMapping("/deleterepair")public ModelAndView deleterepair(Integer fid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;   }Warning news = faultService.deleteByPrimaryKey(fid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 头像上传 用户真实姓名,身份证号,手机号上传* * @throws FileNotFoundException*/@RequestMapping("/file")public ModelAndView file(String username,String userid,String userphone,HttpServletRequest request,HttpSession session,@RequestParam MultipartFile file) throws Exception {System.out.println(username);ModelAndView mav = new ModelAndView("personacenter");userlist usere=userlistService.selectUserName(username);if (usere==null) {session.setAttribute("modifyerro",null);System.out.println("可修改");}else {Warning news=new Warning(2, "修改失败!该姓名用户已注册");mav.addObject("news", news);return mav;}//令牌验证if(!new Koken().kokenid(request, session)) {return mav;    }// 获取文件的名称String fName = file.getOriginalFilename();System.out.println(fName);if (!fName.equals("")) {// 保存图片的目录String path = "C://Users/Rain/Desktop/ssm_leaseOfHouses/WebContent/headPortraitImg";File filepath = new File(path);// 如果目录不存在,创建if (!filepath.exists()) {filepath.mkdir();}File f = new File(path, fName);// 更改用户头像headportraitimg headportraitimg = new headportraitimg();String user = (String) session.getAttribute("user");headportraitimg.setHeadportraitimgusername(user);headportraitimg.setHeadportraitimgaddress(fName);// 图片路径上传到数据库headPortraitImgService.updatauserimg(headportraitimg);// 更换头像session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());// 上传文件file.transferTo(f);}userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));//暂时储存需要修改的真实姓名String rcusernametemp=user.getUsername();//判断,如有真实姓名联表修改,则添加if(user.getUsername()==null||"".equals(user.getUsername())) {// 上传真实姓名,身份证,手机号userlist userlist = new userlist();userlist.setUsercall((String) session.getAttribute("user"));userlist.setUsername(username);userlist.setUserid(userid);userlist.setUserphone(userphone);Warning news = userlistService.updateByPrimaryCall(userlist);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);}else {// 修改真实姓名,身份证,手机号userlist userlist = new userlist();userlist.setUsername(username);userlist.setUserid(userid);userlist.setUserphone(userphone);userlist.setUsernametemp(user.getUsername());Warning news = userlistService.updateJointTableName(userlist);//修改租金真实姓名System.out.println(rentcollectionService.updateUserName(username,rcusernametemp));System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);}return mav;}/*** 删除已退租记录*/@RequestMapping("/deleterentrefund")public ModelAndView deleterentrefund(Integer rwid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav; }Warning news = rentwithdrawnService.deleteByPrimaryKey(rwid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 查看合同*/@RequestMapping("/viewcontract")public ModelAndView viewcontract(String username, String userid, String houseaddress, String housestartingdatetemp,String houseclosingdatetemp, String housemoney, String userphone, String houseid,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");String arraytemp[] = { username, userid, houseaddress, housestartingdatetemp, houseclosingdatetemp, housemoney,userphone, houseid };String temp = (arraytemp[0]+arraytemp[7]) + "pdf.pdf";File filetemp = new File("C://Users/Rain/Desktop/ssm_leaseOfHouses/WebContent/contract/pdf/" + temp);if (!filetemp.exists()) {
//          System.out.println(new DocumentConversion().DocumentGeneration(arraytemp));new DocumentConversion().PdfGeneration((arraytemp[0]+arraytemp[7]));filetemp = new File("C://Users/Rain/Desktop/ssm_leaseOfHouses/WebContent/contract/pdf/" + temp);}String pdf = filetemp.getName();// 放入转发参数mav.addObject("pdftemp", pdf);return mav;}/*** 终止合同*/@RequestMapping("/termination")public ModelAndView termination(String call,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav; }userlist leaseuser = userlistService.selectUserCallWith(call);Warning news = checkoutapplicationService.insert(leaseuser);// 放入转发参数mav.addObject("news", news);return mav;}/*** 终止申请*/@RequestMapping("/stopapplying")public ModelAndView stopapplying(String call,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;  }Warning news = checkoutapplicationService.updateCallState("已取消", call);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 删除申请记录*/@RequestMapping("/deleterecord")public ModelAndView deleterecord(Integer coaid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;   }Warning news = checkoutapplicationService.deleteByPrimaryKey(coaid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}
}

房屋信息控制器:

/*** 房屋信息控制器* @author yy**/@Controller
@RequestMapping("/leaseinformationmvc")
public class LeaseinformationController {@AutowiredLeaseinformationService leaseinformationService;@RequestMapping("/details")public ModelAndView listCategory(@RequestParam int id){ModelAndView mav = new ModelAndView("details");List<leaseinformation> cs= leaseinformationService.allANDimg1(id);for (leaseinformation leaseinformation : cs) {System.out.println(leaseinformation.getLeaseimg().getImgroute());}// 放入转发参数mav.addObject("cs", cs);return mav;}}

用户控制器:

/*** 用户控制器* * @author yy**/
@Controller
@RequestMapping("/userlistmvc")
public class UserListController {private static final long serialVersionUID = -884689940866074733L;@Resourceprivate UserlistService userlistService;@Resourceprivate AdminListService adminListService;@Resourceprivate HeadPortraitImgService headPortraitImgService;@Resourceprivate CheckoutapplicationService checkoutapplicationService;/*** 登录*/@RequestMapping("/userpwd")public String userpwd(String username, String pwd, String[] identity, HttpServletRequest request) {HttpSession session = request.getSession();if (username.equals("") || pwd.equals("")) {request.setAttribute("erorr", "输入账号密码不能为空!");return "login";}String tempstr = null;try {if (identity[0].equals("user")) {userlist temp = new userlist();temp.setUsercall(username);temp.setUserpwd(pwd);userlist userlist = userlistService.queryAllUserPwd(temp);try {tempstr = userlist.getUsercall();if (tempstr != null) {session.setAttribute("user", tempstr);headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(tempstr);if (headportraitimg.getHeadportraitimgaddress() != null) {session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());}return "official";}} catch (NullPointerException e) {if (tempstr == null) {request.setAttribute("erorr", "输入账号密码有误!");return "login";} else {return "official";}}}if (identity[0].equals("admin")) {adminlist temp = new adminlist();temp.setAdminname(username);temp.setAdminpwd(pwd);adminlist adminlist = adminListService.findAllAdminPwd(temp);try {tempstr = adminlist.getAdminname();if (tempstr != null) {session.setAttribute("admin", tempstr);return "BackgroundHome";}} catch (NullPointerException e) {request.setAttribute("erorr", "输入账号密码有误!");return "login";}}} catch (NullPointerException e) {request.setAttribute("erorr", "选择登录方式!");e.printStackTrace();return "login";}return "login";}/*** 注册*/@RequestMapping("/register")public String register(String usercall, String userpwd, String userphone, HttpServletRequest request) {if (usercall.equals("") || userpwd.equals("") || userphone.equals("")) {request.setAttribute("erorr", "输入账号密码不能为空!");return "register";}userlist user = new userlist();user.setUsercall(usercall);user.setUserphone(userphone);user.setUserpwd(userpwd);userlistService.insert(user);headportraitimg userimg = new headportraitimg();userimg.setHeadportraitimgusername(usercall);headPortraitImgService.insertuserimg(userimg);return "login";}/*** 获取手机验证码**/@RequestMapping("/getcode")public void getcode(String userphone, HttpServletResponse response, HttpServletRequest request) {response.setCharacterEncoding("UTF-8");try {HttpSession session = request.getSession();String code = "123456";
//          String code = Code.getNum(userphone);System.out.println(code);session.setAttribute("code", code);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 判断验证码输入后登陆**/@RequestMapping("/phonecod")public String phonecod(String userphone, String code, HttpServletRequest request) {HttpSession session = request.getSession();if (userphone.equals("") || code.equals("")) {request.setAttribute("erorr", "手机号或者验证码为空!");return "login";}System.out.println(code);if (code.equals(session.getAttribute("code"))) {userlist user = userlistService.selectUserPhone(userphone);if (user != null) {String tempstr = null;userlist userlist = userlistService.selectUserPhone(userphone);tempstr = userlist.getUsercall();if (tempstr != null) {session.setAttribute("user", tempstr);headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(tempstr);if (headportraitimg.getHeadportraitimgaddress() != null) {session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());}return "official";}} else {request.setAttribute("erorr", "该手机号未注册!");return "login";}} else {request.setAttribute("erorr", "验证码错误!");return "login";}return "login";}/*** 修改密码*/@RequestMapping("/updatepwd")public String updatepwd(String code, String userphone, String userpwd, HttpServletRequest request) {if (code.equals("") || userphone.equals("") || userpwd.equals("")) {request.setAttribute("erorr", "手机号,验证码,新密码不能为空!");return "updatepwd";}HttpSession session = request.getSession();if (code.equals(session.getAttribute("code"))) {userlist userlist = userlistService.selectUserPhone(userphone);userlist.setUserpwd(userpwd);userlistService.updatepwd(userlist);return "login";}return userpwd;}/*** 注销*/@RequestMapping("/cancellation")public String cancellation(HttpServletRequest request) {HttpSession session = request.getSession();session.removeAttribute("user");System.out.println("注销成功");return "official";}/*** 申请看房*/@RequestMapping("/apply")@ResponseBodypublic ModelAndView apply(HttpSession session, HttpServletRequest request, String housemoney, String housecall,String houseaddress,String housesize) {ModelAndView mav = new ModelAndView("official");//令牌验证if(!new Koken().kokenid(request, session)) {return mav; }mav.addObject("news", "official");if ((String) session.getAttribute("user") == null) {mav.addObject("apply", "请先登录!");return mav;}// 查询所有数据userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));if (user.getUsername() == null) {// 判断真实姓名是否为空mav.addObject("apply", "请绑定真实姓名后再租赁房屋!");return mav;} else {checkoutapplication coa = new checkoutapplication();coa.setCoausername(user.getUsername());coa.setCoauserid(user.getUserid());coa.setCoauserphone(user.getUserphone());coa.setCoahouseid(housecall);coa.setCoahouseaddress(houseaddress);coa.setCoahouseprice(Double.parseDouble(housemoney));coa.setCoahousesize(Double.parseDouble(housesize));coa.setCoastate("看房申请中");String temp=checkoutapplicationService.insertApply(coa);mav.addObject("apply", temp);}return mav;}}

源码获取:博客首页 "资源" 里下载!

Java项目:在线淘房系统(租房、购房)(java+SpringBoot+Redis+MySQL+Vue+SpringSecurity+JWT+ElasticSearch+WebSocket)相关推荐

  1. springboot毕设项目在线智能办公系统bxl9i(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目在线智能办公系统bxl9i(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HB ...

  2. springboot毕设项目在线电子书阅读系统t7atu(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目在线电子书阅读系统t7atu(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + H ...

  3. ssm毕设项目在线电影院售票系统5u8st(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目在线电影院售票系统5u8st(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + H ...

  4. Java项目:在线点餐系统(java+Springboot+Maven+mybatis+Vue+mysql+Redis)

    源码获取:博客首页 "资源" 里下载! 项目描述: 这是一个基于SpringBoot+Vue框架开发的在线点餐系统.首先,这是一个前后端分离的项目.具有一个在线点餐系统该有的所有功 ...

  5. Java项目:在线奶茶店系统(java+JSP+JavaScript+servlet+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本系统分为前后台,分为普通用户和管理员两种角色: 管理员角色包含以下功能: 管理员登录,用户管理,分类管理,奶茶信息管理,订单 ...

  6. Java项目:在线小说阅读系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 普通用户端登录注册,小说的分类,日榜,月榜,年榜, 小说的阅读,分章节,小说的评论,收藏,推荐等等,以 及后 ...

  7. Java项目:在线高中考试系统(java+SSM+Jsp+Mysql+Maven)

    源码获取:博客首页 "资源" 里下载! 项目分为前台和后台,前台主要为学生角色.后台主要为管理员角色. 管理员添加试题和发布试卷,学生负责在线考试.在线查看成绩和错题记录列表等. ...

  8. Java项目:在线课程会员系统(java+Springboot+Maven+JSP+Spring+Mysql+layui)

    一.项目简述 功能包括: 用户管理,课程管理,在线视频观看,评论,会员展示,会员充值等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(Inte ...

  9. Java项目:在线宠物商店系统(java+SSM+mysql+maven+tomcat)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能:本系统分用户前台和管理员后台. 系统包括用户的注册登录,狗狗的展示购物车添加以及下 单支付购买,后台有管理员用户,可以操 ...

最新文章

  1. .gitignore过滤规则
  2. springcloud都有什么组件?这个列表不得不看!
  3. Java进阶之光!javaunicode码转字符
  4. 老男孩python课后作业_老男孩python基础知识练习题(一)中
  5. java 动态解析 xml_通过读取xml文件动态建表
  6. 我是一个尝试做自媒体的程序员
  7. 商城项目html pc,Vue实战篇(PC端商城项目)
  8. 如何成功将qlv格式转换成mp4,方法免费简单好用
  9. 一文读懂Layer 2:Layer 2指基于底层区块链...
  10. 实用好看的个人主页官方源码
  11. 红米NOTE3解账户锁刷机包(2015617)双网通
  12. AllenNLP—笔记—json
  13. tplinkwr710n改无线打印服务器,TP-Link TL-WR710N V1无线路由器AP模式怎么设置
  14. 互联网创新公司 猎头招聘
  15. win10浏览器闪退_win10 edge浏览器闪退打不开的恢复方法
  16. html实现读取读卡器,如何在web浏览器页面使用IC卡读卡器并且兼容所有浏览器
  17. .key+.cer 转成.jks
  18. SVN使用教程(一)
  19. 单位1-Mbps、Kbps、bps、kb、mb及其换算和区别
  20. 单服务器配置部署Visual Studio 2005 Team Foundation Server步骤

热门文章

  1. 【骚气的动效】无限循环往下往复淡入淡出运动,通常用于向下箭头,提示用户可以往下滚动或者点击展开
  2. vim学习笔记(四)
  3. kitbash贫民区三维场景模型 Kitbash3d – Favelas
  4. Maya硬表面建模学习教程 Master Hard Surface Modeling in Maya 2020
  5. ceph bluestore源码分析:admin_socket实时获取内存池数据
  6. linux进程间通信:system V 信号量
  7. [NOI2005]维护数列
  8. portscaner 多线程、多协程并发端口扫描
  9. Python-接口自动化(二)
  10. 如何解决代码中if…else 过多的问题