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

项目介绍

本次设计的是一个校园二手交易平台(C2C),C2C指个人与个人之间的电子商务,买家可以查看所有卖家发布的商品,并且根据分类进行商品过滤,也可以根据站内搜索引擎进行商品的查询,并且与卖家联系,达成交易的意向,也可以发布求购的信息,让卖家查看之后,与之联系,进行交易。而此次主要是针对校园用户所设计的网站,对于数据的分类应该更多的考虑校园用户的需求,例如二手书籍、二手数码等的分类应该更加细致。由于是C2C的项目,因此本项目无需后台管理。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 
6.数据库:MySql 5.7版本;

技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:Thymeleaf+Html+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/xxx 登录

用户管理控制层:

@Controller
@RequestMapping(value = "user")
public class UserController {private final GoodService goodService;private final OrderService orderService;private final ReviewService reviewService;private final UserService userService;private final CollectService collectService;@Autowiredpublic UserController(GoodService goodService, OrderService orderService,ReviewService reviewService, UserService userService,CollectService collectService) {this.goodService = goodService;this.orderService = orderService;this.reviewService = reviewService;this.userService = userService;this.collectService = collectService;}@RequestMapping(value = "userProfile", method = RequestMethod.GET)public String getMyProfile(ModelMap model, HttpSession session) {User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}List<Collect> collects = collectService.getCollectByUserId(user.getId());for (Collect collect : collects) {collect.setGood(goodService.getGoodById(collect.getGoodId()));}List<Good> goods = goodService.getGoodByUserId(user.getId());List<Order> orders = orderService.getOrderByCustomerId(user.getId());List<Review> reviews = reviewService.gerReviewByToUserId(user.getId());List<Reply> replies = reviewService.gerReplyByToUserId(user.getId());List<Order> sellGoods = orderService.getOrderBySellerId(user.getId());model.addAttribute("collects", collects);model.addAttribute("goods", goods);model.addAttribute("orders", orders);model.addAttribute("reviews", reviews);model.addAttribute("replies", replies);model.addAttribute("sellGoods", sellGoods);return "user/userProfile";}@RequestMapping(value = "/review", method = RequestMethod.GET)public String getReviewInfo(@RequestParam(required = false) Integer goodId,@RequestParam(required = false) Integer reviewId) {System.out.println("reviewId" + reviewId);if (reviewId != null) {System.out.println("reviewId" + reviewId);if (reviewService.updateReviewStatus(1, reviewId) == 1) {return "redirect:/goods/goodInfo?goodId=" + goodId;}}return "redirect:/user/userProfile";}@RequestMapping(value = "/reply", method = RequestMethod.GET)public String getReplyInfo(@RequestParam(required = false) Integer reviewId,@RequestParam(required = false) Integer replyId) {if (replyId != null) {if (reviewService.updateReplyStatus(1, replyId) == 1) {Integer goodId = reviewService.getGoodIdByReviewId(reviewId);return "redirect:/goods/goodInfo?goodId=" + goodId;}}return "redirect:/user/userProfile";}@RequestMapping(value = "/userEdit", method = RequestMethod.GET)public String getUserEdit(ModelMap model,@RequestParam(value = "userId", required = false) Integer userId,HttpSession session) {User sessionUser = (User) session.getAttribute("user");if (sessionUser == null) {return "redirect:/";}User user = userService.getUserById(userId);List<Order> sellGoods = orderService.getOrderBySellerId(user.getId());List<Review> reviews = reviewService.gerReviewByToUserId(user.getId());List<Reply> replies = reviewService.gerReplyByToUserId(user.getId());model.addAttribute("user", user);model.addAttribute("sellGoods", sellGoods);model.addAttribute("reviews", reviews);model.addAttribute("replies", replies);return "user/userEdit";}@RequestMapping(value = "/userEdit", method = RequestMethod.POST)public String postUserEdit(ModelMap model, @Valid User user,HttpSession session,@RequestParam(value = "photo", required = false) MultipartFile photo)throws IOException {String status;Boolean insertSuccess;User sessionUser = (User) session.getAttribute("user");user.setId(sessionUser.getId());InfoCheck infoCheck = new InfoCheck();if (!infoCheck.isMobile(user.getMobile())) {status = "请输入正确的手机号!";} else if (!infoCheck.isEmail(user.getEmail())) {status = "请输入正确的邮箱!";} else if (userService.getUserByMobile(user.getMobile()).getId() != user.getId()) {System.out.println(userService.getUserByMobile(user.getMobile()).getId() + " " + user.getId());status = "此手机号码已使用!";} else if (userService.getUserByEmail(user.getEmail()).getId() != user.getId()) {status = "此邮箱已使用!";} else {if (!photo.isEmpty()) {RandomString randomString = new RandomString();FileCheck fileCheck = new FileCheck();String filePath = "/statics/image/photos/" + user.getId();String pathRoot = fileCheck.checkGoodFolderExist(filePath);String fileName = user.getId()+ randomString.getRandomString(10);String contentType = photo.getContentType();String imageName = contentType.substring(contentType.indexOf("/") + 1);String name = fileName + "." + imageName;photo.transferTo(new File(pathRoot + name));String photoUrl = filePath + "/" + name;user.setPhotoUrl(photoUrl);} else {String photoUrl = userService.getUserById(user.getId()).getPhotoUrl();user.setPhotoUrl(photoUrl);}insertSuccess = userService.updateUser(user);if (insertSuccess) {session.removeAttribute("user");session.setAttribute("user", user);return "redirect:/user/userProfile";} else {status = "修改失败!";model.addAttribute("user", user);model.addAttribute("status", status);return "user/userEdit";}}System.out.println(user.getMobile());System.out.println(status);model.addAttribute("user", user);model.addAttribute("status", status);return "user/userEdit";}@RequestMapping(value = "/password/edit", method = RequestMethod.POST)public ResponseEntity editPassword(@RequestBody Password password) {User user = userService.getUserById(password.getUserId());String oldPass = DigestUtils.md5DigestAsHex((password.getOldPassword() + user.getCode()).getBytes());if (oldPass.equals(user.getPassword())) {RandomString randomString = new RandomString();String code = (randomString.getRandomString(5));String md5Pass = DigestUtils.md5DigestAsHex((password.getNewPassword() + code).getBytes());Boolean success = userService.updatePassword(md5Pass, code,password.getUserId());if (success) {return ResponseEntity.ok(true);} else {return ResponseEntity.ok("密码修改失败!");}} else {return ResponseEntity.ok("原密码输入不正确!");}}}

订单管理控制层:

@Controller
public class OrderController {private final GoodService goodService;private final OrderService orderService;@Autowiredpublic OrderController(GoodService goodService, OrderService orderService) {this.goodService = goodService;this.orderService = orderService;}@RequestMapping(value = "/user/orderInfo", method = RequestMethod.GET)public String getOrderInfo(ModelMap model,@RequestParam(value = "orderId", required = false) Integer orderId,HttpSession session) {User sessionUser = (User) session.getAttribute("user");if (sessionUser == null) {return "redirect:/";}Order orderInfo = orderService.getOrderById(orderId);List<Order> orders = orderService.getOtherOrderByCustomerId(sessionUser.getId(), orderId);model.addAttribute("orderInfo", orderInfo);model.addAttribute("orders", orders);return "user/orderInfo";}@RequestMapping(value = "/user/sellerInfo", method = RequestMethod.GET)public String getSellerInfo(ModelMap model,@RequestParam(value = "orderId", required = false) Integer orderId,HttpSession session) {User sessionUser = (User) session.getAttribute("user");if (sessionUser == null) {return "redirect:/";}Order orderInfo = orderService.getOrderById(orderId);List<Order> orders = orderService.getOtherOrderBySellerId(sessionUser.getId(), orderId);model.addAttribute("orderInfo", orderInfo);model.addAttribute("orders", orders);System.out.println("sellerInfo.size:" + orders.size());return "user/sellerInfo";}@RequestMapping(value = "/user/order/delete/{orderId}", method = RequestMethod.GET)public ResponseEntity deleteOrderById(@PathVariable Integer orderId) {Boolean success;success = orderService.deleteOrderById(orderId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/user/sellerOrder/delete/{orderId}&{goodId}", method = RequestMethod.GET)public ResponseEntity deleteSellerOrderById(@PathVariable Integer orderId,@PathVariable Integer goodId) {Boolean success;success = goodService.updateGoodStatusId(1, goodId) > 0;if (success) {success = orderService.deleteOrderById(orderId) > 0;}return ResponseEntity.ok(success);}@RequestMapping(value = "/user/order/update/status/{orderId}&{statusId}", method = RequestMethod.GET)public ResponseEntity updateOrderStatus(@PathVariable Integer orderId,@PathVariable Integer statusId) {Boolean success = orderService.updateStatus(statusId, orderId) > 0;if (success) {Order order = orderService.getOrderById(orderId);return ResponseEntity.ok(order);}return ResponseEntity.ok(success);}@RequestMapping(value = "/user/order/create", method = RequestMethod.POST)public ResponseEntity createOrder(@RequestBody Order order) {Boolean success = orderService.insertOrder(order) > 0;if (success) {success = goodService.updateGoodStatusId(0, order.getGoodId()) > 0;if (success) {return ResponseEntity.ok(order.getId());} else {orderService.deleteOrderById(order.getId());return ResponseEntity.ok(success);}}return ResponseEntity.ok(success);}@RequestMapping(value = "/user/order/allOrder", method = RequestMethod.GET)public ResponseEntity getAllOrders() {List<Order> orderList = orderService.getOrderList();return ResponseEntity.ok(orderList);}
}

商品管理控制层:

@Controller
public class GoodController {private final GoodService goodService;private final TypeService typeService;private final ReviewService reviewService;private final UserService userService;private final ImageService imageService;private final CollectService collectService;private static String message = "";@Autowiredpublic GoodController(GoodService goodService, TypeService typeService,ReviewService reviewService, UserService userService,ImageService imageService, CollectService collectService) {this.goodService = goodService;this.typeService = typeService;this.reviewService = reviewService;this.userService = userService;this.imageService = imageService;this.collectService = collectService;}@RequestMapping(value = "/", method = RequestMethod.GET)public String getHomeGoods(ModelMap model,@RequestParam(required = false, defaultValue = "") String searchText,@RequestParam(required = false) Integer secondTypeId,@RequestParam(required = false, defaultValue = "0") int offset,@RequestParam(required = false, defaultValue = "40") int limit) {List<Good> goods = goodService.getGoodsBySearchAndType(searchText,secondTypeId, offset, limit);double goodsNum = goodService.getGoodsBySearchAndTypeCount(searchText,secondTypeId);List<FirstType> firstTypes = typeService.getAllFirstType();for (FirstType firstType : firstTypes) {firstType.setSecondType(typeService.getSecondTypeByFirstTypeId(firstType.getId()));}model.addAttribute("firstTypes", firstTypes);model.addAttribute("goods", goods);model.addAttribute("pages", Math.ceil(goodsNum / limit));model.addAttribute("goodsNum", goodsNum);model.addAttribute("offset", offset);model.addAttribute("limit", limit);return "home/homeGoods";}@RequestMapping(value = "/goods/goodInfo", method = RequestMethod.GET)public String getGoodInfo(ModelMap model, HttpSession httpSession,@RequestParam(required = false) Integer goodId) {Good goodInfo = goodService.getGoodById(goodId);if (goodInfo == null) {return "goods/error";}Integer collect = 1;User user = (User) httpSession.getAttribute("user");if (user == null) {collect = 0;} else {if (collectService.getCollect(goodId, user.getId())) {collect = 2;}}List<Image> images = imageService.getImageByGoodId(goodId);User goodUser = userService.getUserById(goodInfo.getUserId());goodInfo.setGoodUser(userService.getUserById(goodInfo.getUserId()));goodInfo.setGoodSecondType(typeService.getSecondTypeById(goodInfo.getSecondTypeId()));List<Review> reviews = reviewService.gerReviewByGoodId(goodId);for (Review review : reviews) {review.setReplys(reviewService.gerReplyByReviewId(review.getId()));}List<Good> goods = goodService.getRECGoods(goodInfo.getSecondTypeId(),goodInfo.getId());model.addAttribute("message", message);model.addAttribute("reviews", reviews);model.addAttribute("goodInfo", goodInfo);model.addAttribute("images", images);model.addAttribute("goodUser", goodUser);model.addAttribute("goods", goods);model.addAttribute("collect", collect);message = "";return "goods/goodInfo";}@RequestMapping(value = "/goods/goodInfo", method = RequestMethod.POST)public String putReview(@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "reviewId", required = false) Integer reviewId,@RequestParam(value = "fromUserId", required = false) Integer fromUserId,@RequestParam(value = "toUserId", required = false) Integer toUserId,@RequestParam(value = "fromUser", required = false) String fromUser,@RequestParam(value = "toUser", required = false) String toUser,@RequestParam(value = "replyText", required = false, defaultValue = "") String replyText,@RequestParam(value = "reviewText", required = false, defaultValue = "") String reviewText) {if (reviewText.equals("")) {if (replyText.equals("")) {message = "内容不能为空!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {Reply reply = new Reply();reply.setReviewId(reviewId);reply.setFromUser(fromUser);reply.setFromUserId(fromUserId);reply.setToUser(toUser);reply.setToUserId(toUserId);reply.setText(replyText);if (reviewService.insertReply(reply) == 1) {message = "回复成功!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {message = "回复失败!";return "redirect:/goods/goodInfo?goodId=" + goodId;}}} else {Review review = new Review();review.setGoodId(goodId);review.setFromUser(fromUser);review.setFromUserId(fromUserId);review.setToUserId(toUserId);review.setText(reviewText);if (reviewService.insertReview(review) == 1) {message = "评论成功!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {message = "评论失败!";return "redirect:/goods/goodInfo?goodId=" + goodId;}}}@RequestMapping(value = "/goods/publishGood", method = RequestMethod.GET)public String getPublishGood(ModelMap model, HttpSession session) {User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}Good good = new Good();List<FirstType> firstTypes = typeService.getAllFirstType();List<Good> goods = goodService.getAllGoods(0, 5);model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("firstTypes", firstTypes);return "goods/publishGood";}@RequestMapping(value = "/goods/publishGood", method = RequestMethod.POST)public String getGoodId(ModelMap model, HttpSession session,@Valid Good good) {List<FirstType> firstTypes = typeService.getAllFirstType();User user = (User) session.getAttribute("user");List<Good> goods = goodService.getAllGoods(0, 5);good.setUserId(user.getId());good.setPhotoUrl("/statics/image/goods/default/nophoto.png");if (goodService.insertGood(good) != 1) {System.out.println("插入物品失败!");}model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("firstTypes", firstTypes);return "goods/publishGood";}@RequestMapping(value = "/goods/publishGood/uploadImage", method = RequestMethod.POST)public String uploadImage(HttpSession session,@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "mainFile", required = false) MultipartFile mainFile,@RequestParam(value = "file", required = false) MultipartFile[] file)throws IOException {User user = (User) session.getAttribute("user");FileCheck fileCheck = new FileCheck();RandomString randomString = new RandomString();String filePath = "/statics/image/goods/" + user.getId() + "/" + goodId;String pathRoot = fileCheck.checkGoodFolderExist(filePath);String name;if (!mainFile.isEmpty()) {String fileName = goodId + randomString.getRandomString(10);String contentType = mainFile.getContentType();String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;mainFile.transferTo(new File(pathRoot + name));String photoUrl = filePath + "/" + name;goodService.updateGoodPhotoUrl(photoUrl, goodId);}for (MultipartFile mf : file) {if (!mf.isEmpty()) {// 生成uuid作为文件名称String fileName = goodId + randomString.getRandomString(10);// 获得文件类型(可以判断如果不是图片,禁止上传)String contentType = mf.getContentType();// 获得文件后缀名称String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;System.out.println("name:" + name);mf.transferTo(new File(pathRoot + name));Image image = new Image();image.setGoodId(goodId);image.setName(name);image.setUrl(filePath + "/" + name);imageService.insertImage(image);} else {System.out.println("文件为空!");}}return "redirect:/goods/goodInfo?goodId=" + goodId;}@RequestMapping(value = "/goods/userGoods", method = RequestMethod.GET)public String getUserGoods(ModelMap model,@RequestParam(value = "userId", required = false) Integer userId) {User user = userService.getUserById(userId);List<Good> userGoods = goodService.getGoodStatusByUserId(userId);List<Good> goods = goodService.getAllGoods(0, 4);model.addAttribute("user", user);model.addAttribute("userGoods", userGoods);model.addAttribute("goods", goods);return "goods/userGood";}@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.GET)public String getUserGoodEdit(ModelMap model,@RequestParam(value = "goodId", required = false) Integer goodId,HttpSession session) {User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}Good good = goodService.getGoodById(goodId);List<FirstType> firstTypes = typeService.getAllFirstType();List<Good> goods = goodService.getAllGoods(0, 5);List<Image> goodImages = imageService.getImageByGoodId(goodId);model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("goodImages", goodImages);model.addAttribute("firstTypes", firstTypes);return "goods/userGoodEdit";}@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.POST)public String postGoodEdit(ModelMap model, HttpSession session,@Valid Good good) {List<FirstType> firstTypes = typeService.getAllFirstType();User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}List<Good> goods = goodService.getAllGoods(0, 5);if (!(goodService.updateGood(good) > 0)) {System.out.println("修改物品失败!");}List<Image> goodImages = imageService.getImageByGoodId(good.getId());model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("goodImages", goodImages);model.addAttribute("firstTypes", firstTypes);return "goods/userGoodEdit";}@RequestMapping(value = "/goods/userGoodEdit/updateImage", method = RequestMethod.POST)public String updateImage(HttpSession session,@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "mainFile", required = false) MultipartFile mainFile,@RequestParam(value = "file", required = false) MultipartFile[] file)throws IOException {User user = (User) session.getAttribute("user");FileCheck fileCheck = new FileCheck();imageService.deleteImage(goodId);RandomString randomString = new RandomString();String filePath = "/statics/image/goods/" + user.getId() + "/" + goodId;String pathRoot = fileCheck.checkGoodFolderExist(filePath);String name;if (!mainFile.isEmpty()) {String contentType = mainFile.getContentType();String fileName = goodId + randomString.getRandomString(10);String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;mainFile.transferTo(new File(pathRoot + name));String photoUrl = filePath + "/" + name;goodService.updateGoodPhotoUrl(photoUrl, goodId);}for (MultipartFile mf : file) {if (!mf.isEmpty()) {String contentType = mf.getContentType();String fileName = goodId + randomString.getRandomString(10);String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;System.out.println("name:" + name);mf.transferTo(new File(pathRoot + name));Image image = new Image();image.setGoodId(goodId);image.setName(name);image.setUrl(filePath + "/" + name);imageService.insertImage(image);}}return "redirect:/goods/goodInfo?goodId=" + goodId;}@RequestMapping(value = "/goods/userGoodEdit/delete/{goodId}", method = RequestMethod.GET)public ResponseEntity deleteGood(@PathVariable Integer goodId) {Boolean success;success = goodService.deleteGood(goodId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/goods/userGoodEdit/updateGoodStatus/{goodId}", method = RequestMethod.GET)public ResponseEntity updateGoodStatus(@PathVariable Integer goodId) {Boolean success;success = goodService.updateGoodStatusId(0, goodId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/admin/goods/allGoods", method = RequestMethod.GET)public ResponseEntity adminGetAllGoods() {List<Good> goodList = goodService.getAllGoodList();for (Good good : goodList) {good.setGoodUser(userService.getUserById(good.getUserId()));good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId()));}return ResponseEntity.ok(goodList);}
}

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

Java项目:校园二手交易平台(java+SSM+Thymeleaf+Html+jQuery+mysql)相关推荐

  1. ssm毕设项目校园二手交易平台nip58(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目校园二手交易平台nip58(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HB ...

  2. javaweb JAVA JSP校园二手交易平台源码jsp二手交易系统 闲置物品出售

    javaweb JAVA JSP校园二手交易平台源码jsp二手交易系统 闲置物品出售交易网站案例源码 常见的Javaweb题材有 理财系统,就业管理系统,汽车租赁,简易网盘,疫情数据查看,在线招标房, ...

  3. javaweb JAVA JSP校园二手交易平台源码jsp二手交易系统 闲置物品出售交易网站案例源码

    javaweb JAVA JSP校园二手交易平台源码jsp二手交易系统 闲置物品出售交易网站案例源码 常见的Javaweb题材有 理财系统,就业管理系统,汽车租赁,简易网盘,疫情数据查看,在线招标房, ...

  4. Springboot毕设项目校园二手交易平台x9zo8java+VUE+Mybatis+Maven+Mysql+sprnig)

    Springboot毕设项目校园二手交易平台x9zo8java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysq ...

  5. [附源码]java毕业设计校园二手交易平台的设计

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  6. 基于Java的校园二手交易平台

    校园二手交易平台是基于Java语言,Springboot框架, Mysql数据库,Html/JavaScript/Css技术的高校二手交易平台.系统包含:前端和后端项目.角色分为:普通学生.管理员. ...

  7. SpringBoot+Vue项目校园二手交易平台

    文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript.Vue.js .css3 开发工具:IDEA/MyEclipse/Eclipse.Visual St ...

  8. Java项目:校园二手市场系统(java+SSM+mysql+maven+tomcat)

    源码获取:博客首页 "资源" 里下载! 一.项目简述( +IW文档) 功能:本系统分用户前台和管理员后台. 本系统用例模型有三种,分别是游客.注册用户和系统管 理员.下面分别对这三 ...

  9. springboot_vue校园二手交易平台java毕业设计

    作为大学校园,随着学生每年的升学.毕业和购买能力逐渐提升,产生了大量各种类型二手商品与需求,但由于信息交流的不畅,很多只限于校园内不定期的跳蚤市场的方式进行交易.这种形式虽好,但是有很多的偶然性和局限 ...

  10. 基于JAVA的校园二手交易平台(附:源码 论文 数据库文件)

    开发背景 随着全世界互联网技术的不断发展,各种基于互联网技术的网络应用不断涌现,网络技术正在不断的深入人们的生活.人们从Internet上获取信息.享受生活.交流感情.网上工作等.Internet正在 ...

最新文章

  1. linux进程间通信:system V 共享内存
  2. GPU CUDA 经典入门指南
  3. (转载)—— Logistic Regression(逻辑回归)模型实现二分类和多分类
  4. Libra 新编程语言 :Move 所有权模型灵感竟是来自它……
  5. 在github上托管Maven存储库
  6. 20165334 《java程序设计》第5周学习总结
  7. Atlas指南: 建立一个AJAX 涂鸦程序(三)
  8. mac好用的图片转文字,ocr文字识别工具:Text Scanner
  9. 笔记-知识产权与标准化知识-中华人民共和国招标投标法实施条例
  10. excel多表格整合去重与空格去除
  11. 辅助功能 AccessibilityService笔记
  12. android绘制一个圆,点哪画哪,走哪动哪
  13. 视觉技术再赋能,深眸科技一体化解决方案引领工业视觉机器人落地应用
  14. Matlab获取tif各格点经纬度
  15. 牵手中关村,这里脱胎换骨引凤来
  16. SIMCom芯片关于GPS定位信息的的解析(AT+CGNSINF)
  17. 前端jquery实现图片点击放大缩小
  18. 小程序合成海报图片,高度自适应
  19. 遥感影像如何导入Photoshop软件进行PS调色之智拼图Photoshop交互工具使用技巧
  20. 两路音频合成一路电路_请高手指点下:两路模拟音频信号怎么样才能合成一路再通过喇叭输出...

热门文章

  1. java jsp网页模板_JSP网页模板
  2. WiFi产品的一般射频电路设计
  3. 产品使用报告(产品分析)
  4. Postman 设置环境变量 个人记录
  5. cl.exe nmake.exe
  6. Three.js入门详解
  7. 计算机二级用的ms什么版本,计算机二级ms office用的哪个版本
  8. rss阅读器Reeder 5 for Mac
  9. python 调用海康linux下psdatacall_demo,实现获视频取码流并返回到python,以及上传信息到人脸库的方法
  10. 答题活动助手小程序更新记录