• Java项目:ssm+mysql+jsp实现的校园二手市场交易平台源码


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    本系统分为前后台,主要实现的功能有:

    前台:(1)二手物品信息查看、搜索。
    (2)学生注册登录、个人信息修改。
    (3)二手物品信息发布、编辑。
    (4)二手物品评论、回复、举报。
    (5)求购信息发布。
    (6)求购信息查看。
    后台:(1)管理员登录。
    (2)系统管理:菜单管理、角色用户管理、权限管理、日志管理、数据库备份。
    (3)业务管理:二手物品管理、求购物品管理、学生信息管理、评论管理、举报管理。

    (4)站点管理:友情链接管理、站点基本信息(站点名称、logo、版权等)设置

    环境需要

    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. 前端:JSP+bootstrap+jQuery

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;
    3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;
    4. 运行项目,输入localhost:8080/ 登录 
    后台访问:登录普通用户后,通过右上角更多按钮下的“登录后台”按钮进入;

    运行截图

    前台界面

     

     

     

     

     

     

     

    后台界面 

     

     

     

    相关代码 

    AdminController

    1. package com.ldu.controller;
    2. import com.ldu.pojo.Admin;
    3. import com.ldu.pojo.Goods;
    4. import com.ldu.pojo.Orders;
    5. import com.ldu.pojo.Purse;
    6. import com.ldu.pojo.User;
    7. import com.ldu.service.AdminService;
    8. import com.ldu.service.GoodsService;
    9. import com.ldu.service.OrdersService;
    10. import com.ldu.service.PurseService;
    11. import com.ldu.service.UserService;
    12. import com.ldu.util.GoodsGrid;
    13. import com.ldu.util.OrdersGrid;
    14. import com.ldu.util.PurseGrid;
    15. import com.ldu.util.UserGrid;
    16. import org.springframework.stereotype.Controller;
    17. import org.springframework.web.bind.annotation.*;
    18. import org.springframework.web.servlet.ModelAndView;
    19. import java.util.List;
    20. import javax.annotation.Resource;
    21. import javax.servlet.http.HttpServletRequest;
    22. import javax.servlet.http.HttpSession;
    23. /**
    24. * 2021-3-7 10:40:38
    25. */
    26. @Controller
    27. @RequestMapping(value = "/admin")
    28. public class AdminController {
    29. @Resource
    30. private UserService userService;
    31. @Resource
    32. private GoodsService goodsService;
    33. @Resource
    34. private OrdersService ordersService;
    35. @Resource
    36. private PurseService purseService;
    37. @Resource
    38. private AdminService adminService;
    39. @RequestMapping(value = "", method = RequestMethod.GET)
    40. public String login(HttpSession session) {
    41. // 清除session
    42. //session.invalidate();
    43. return "/admin/login";
    44. }
    45. @RequestMapping(value = "/index", method = RequestMethod.POST)
    46. public String index(HttpServletRequest request, Admin admins) {
    47. Admin myadmin = adminService.findAdmin(admins.getPhone(), admins.getPassword());
    48. if (myadmin != null) {
    49. request.getSession().setAttribute("admin", myadmin);
    50. return "/admin/index";
    51. }
    52. return "/admin/login";
    53. }
    54. @RequestMapping(value = "/indexs")
    55. public String indexs(HttpServletRequest request) {
    56. Admin admin = (Admin) request.getSession().getAttribute("admin");
    57. if (admin != null) {
    58. Integer id = admin.getId();
    59. Admin myadmin = adminService.findAdminById(id);
    60. request.getSession().setAttribute("admin", myadmin);
    61. return "/admin/index";
    62. }
    63. return "/admin/login";
    64. }
    65. /* 个人信息 */
    66. @RequestMapping(value = "/info")
    67. @ResponseBody
    68. public ModelAndView getInfo(HttpServletRequest request) {
    69. Admin admin = (Admin) request.getSession().getAttribute("admin");
    70. ModelAndView modelAndView = new ModelAndView();
    71. modelAndView.addObject("admin", admin);
    72. modelAndView.setViewName("admin/info");
    73. return modelAndView;
    74. }
    75. /* 个人密码 */
    76. @RequestMapping(value = "/modify")
    77. @ResponseBody
    78. public ModelAndView getModify(HttpServletRequest request) {
    79. Admin admin = (Admin) request.getSession().getAttribute("admin");
    80. ModelAndView modelAndView = new ModelAndView();
    81. modelAndView.addObject("admin", admin);
    82. modelAndView.setViewName("admin/modify");
    83. return modelAndView;
    84. }
    85. /* 修改密码 */
    86. @RequestMapping(value = "/changePassword")
    87. @ResponseBody
    88. public ModelAndView changePassword(HttpServletRequest request,Admin admin) {
    89. String pwd=request.getParameter("password1");
    90. ModelAndView modelAndView = new ModelAndView();
    91. Admin admins = (Admin) request.getSession().getAttribute("admin");
    92. if(admin.getPassword().equals(admins.getPassword())) {
    93. admins.setPassword(pwd);
    94. adminService.updateAdmin(admins);
    95. }else {
    96. modelAndView.addObject("msg", "原密码有误,请重新输入!");
    97. modelAndView.setViewName("admin/modify");
    98. return modelAndView;
    99. }
    100. modelAndView.setViewName("admin/login");
    101. return modelAndView;
    102. }
    103. /*********************************************************
    104. * 用户管理 1.查找所有用户 2.查看用户 3.修改用户 4.删除用户 5.查询用户
    105. *
    106. **********************************************************/
    107. /* 查找所有用户 */
    108. @RequestMapping(value = "/userList")
    109. @ResponseBody
    110. public ModelAndView getUserList(@RequestParam("pageNum") int pageNum) {
    111. ModelAndView modelAndView = new ModelAndView();
    112. int pageSize = 10;
    113. int total = userService.getUserNum();
    114. List rows = userService.getPageUser(pageNum, pageSize);
    115. UserGrid userGrid = new UserGrid();
    116. userGrid.setCurrent(pageNum);
    117. userGrid.setRowCount(pageSize);
    118. userGrid.setRows(rows);
    119. userGrid.setTotal(total);
    120. modelAndView.addObject("userGrid", userGrid);
    121. modelAndView.setViewName("admin/user/user_list");
    122. return modelAndView;
    123. }
    124. /* 查看用户 */
    125. @RequestMapping(value = "/getUser")
    126. @ResponseBody
    127. public User getUser(HttpServletRequest request) {
    128. String id = request.getParameter("id");
    129. User user = userService.getUserById(Integer.parseInt(id));
    130. return user;
    131. }
    132. /* 修改用户 */
    133. @RequestMapping(value = "/updateUser", method = RequestMethod.POST)
    134. @ResponseBody
    135. public String updateUser(HttpServletRequest request, User user) {
    136. User users = userService.selectByPrimaryKey(user.getId());
    137. user.setPassword(users.getPassword());
    138. try {
    139. userService.updateUserName(user);
    140. } catch (Exception e) {
    141. return "{\"success\":false,\"msg\":\"保存失败!\"}";
    142. }
    143. return "{\"success\":true,\"msg\":\"保存成功!\"}";
    144. }
    145. /* 删除用户 */
    146. @RequestMapping(value = "/deleteUser", method = RequestMethod.POST)
    147. @ResponseBody
    148. public String deleteUser(HttpServletRequest request, @RequestParam(value = "ids[]") String[] ids) {
    149. try {
    150. for (int i = 0; i < ids.length; i++) {
    151. userService.deleteUserById(ids[i]);
    152. }
    153. } catch (Exception e) {
    154. return "{\"success\":false,\"msg\":\"删除失败!\"}";
    155. }
    156. return "{\"success\":true,\"msg\":\"删除成功!\"}";
    157. }
    158. /* 查询用户 */
    159. @RequestMapping(value = "/searchUser", method = RequestMethod.POST)
    160. @ResponseBody
    161. public ModelAndView searchUser(HttpServletRequest request, User user) {
    162. ModelAndView mv = new ModelAndView();
    163. int pageNum = 1;
    164. int pageSize = 10;
    165. int total = userService.getUserNum();
    166. String phone = user.getPhone();
    167. String username = user.getUsername();
    168. String qq = user.getQq();
    169. List rows = userService.getPageUserByUser(phone, username, qq, pageNum, pageSize);
    170. UserGrid userGrid = new UserGrid();
    171. User searchuser = new User();
    172. searchuser.setPhone(phone);
    173. searchuser.setUsername(username);
    174. searchuser.setQq(qq);
    175. userGrid.setCurrent(pageNum);
    176. userGrid.setRowCount(pageSize);
    177. userGrid.setRows(rows);
    178. userGrid.setTotal(total);
    179. mv.addObject("userGrid", userGrid);
    180. mv.addObject("searchuser", searchuser);
    181. mv.setViewName("admin/user/user_list");
    182. return mv;
    183. }
    184. /*********************************************************
    185. * 商品管理 1.查找所有商品 2.查看商品 3.修改商品 4.删除商品 5.查询商品 lyq
    186. *
    187. **********************************************************/
    188. /* 查找所有商品 */
    189. @RequestMapping(value = "/goodsList")
    190. @ResponseBody
    191. public ModelAndView getGoodsList(@RequestParam("pageNum") int pageNum) {
    192. ModelAndView modelAndView = new ModelAndView();
    193. int pageSize = 10;
    194. int total = goodsService.getGoodsNum();
    195. List rows = goodsService.getPageGoods(pageNum, pageSize);
    196. GoodsGrid goodsGrid = new GoodsGrid();
    197. goodsGrid.setCurrent(pageNum);
    198. goodsGrid.setRowCount(pageSize);
    199. goodsGrid.setRows(rows);
    200. goodsGrid.setTotal(total);
    201. modelAndView.addObject("goodsGrid", goodsGrid);
    202. modelAndView.setViewName("admin/goods/goods_list");
    203. return modelAndView;
    204. }
    205. /* 查看商品 */
    206. @RequestMapping(value = "/getGoods")
    207. @ResponseBody
    208. public Goods getGoods(HttpServletRequest request) {
    209. String id = request.getParameter("id");
    210. Goods goods = goodsService.getGoodsById(Integer.parseInt(id));
    211. return goods;
    212. }
    213. /* 修改商品 */
    214. @RequestMapping(value = "/updateGoods", method = RequestMethod.POST)
    215. @ResponseBody
    216. public String updateGoods(HttpServletRequest request, Goods goods) {
    217. int id = goods.getId();
    218. Goods oldGoods = goodsService.getGoodsById(id);
    219. goods.setUserId(oldGoods.getUserId());
    220. goods.setPolishTime(oldGoods.getPolishTime());
    221. goods.setEndTime(oldGoods.getEndTime());
    222. try {
    223. goodsService.updateGoodsByPrimaryKeyWithBLOBs(goods.getId(), goods);
    224. } catch (Exception e) {
    225. return "{\"success\":false,\"msg\":\"保存失败!\"}";
    226. }
    227. return "{\"success\":true,\"msg\":\"保存成功!\"}";
    228. }
    229. /* 删除商品 */
    230. @RequestMapping(value = "/deleteGoods", method = RequestMethod.POST)
    231. @ResponseBody
    232. public String deleteGoods(HttpServletRequest request, @RequestParam(value = "ids[]") String[] ids) {
    233. try {
    234. for (int i = 0; i < ids.length; i++) {
    235. goodsService.deleteGoodsByPrimaryKeys(Integer.parseInt(ids[i]));
    236. }
    237. } catch (Exception e) {
    238. return "{\"success\":false,\"msg\":\"删除失败!\"}";
    239. }
    240. return "{\"success\":true,\"msg\":\"删除成功!\"}";
    241. }
    242. /* 查询商品 */
    243. @RequestMapping(value = "/searchGoods", method = RequestMethod.POST)
    244. public ModelAndView searchGoods(HttpServletRequest request, Goods goods) {
    245. ModelAndView mv = new ModelAndView();
    246. int pageNum = 1;
    247. int pageSize = 10;
    248. int total = goodsService.getGoodsNum();
    249. Integer id = goods.getId();
    250. String name = goods.getName();
    251. Integer status = goods.getStatus();
    252. List rows = goodsService.getPageGoodsByGoods(id, name, status, pageNum, pageSize);
    253. GoodsGrid goodsGrid = new GoodsGrid();
    254. Goods searchgoods = new Goods();
    255. searchgoods.setId(id);
    256. searchgoods.setName(name);
    257. searchgoods.setStatus(status);
    258. goodsGrid.setCurrent(pageNum);
    259. goodsGrid.setRowCount(pageSize);
    260. goodsGrid.setRows(rows);
    261. goodsGrid.setTotal(total);
    262. mv.addObject("goodsGrid", goodsGrid);
    263. mv.addObject("searchgoods", searchgoods);
    264. mv.setViewName("admin/goods/goods_list");
    265. return mv;
    266. }
    267. /*********************************************************
    268. * 订单管理 1.查找所有订单 2.查看订单 3.修改订单 4.删除订单 5.查询订单 lyq
    269. *
    270. **********************************************************/
    271. /* 查找所有订单 */
    272. @RequestMapping(value = "/ordersList")
    273. @ResponseBody
    274. public ModelAndView getOrdersList(@RequestParam("pageNum") int pageNum) {
    275. ModelAndView modelAndView = new ModelAndView();
    276. int pageSize = 10;
    277. int total = ordersService.getOrdersNum();
    278. List rows = ordersService.getPageOrders(pageNum, pageSize);
    279. OrdersGrid ordersGrid = new OrdersGrid();
    280. ordersGrid.setCurrent(pageNum);
    281. ordersGrid.setRowCount(pageSize);
    282. ordersGrid.setRows(rows);
    283. ordersGrid.setTotal(total);
    284. modelAndView.addObject("ordersGrid", ordersGrid);
    285. modelAndView.setViewName("admin/orders/orders_list");
    286. return modelAndView;
    287. }
    288. /* 查看订单 */
    289. @RequestMapping(value = "/getOrders")
    290. @ResponseBody
    291. public Orders getOrders(HttpServletRequest request) {
    292. String id = request.getParameter("id");
    293. Orders orders = ordersService.getOrdersById(Integer.parseInt(id));
    294. return orders;
    295. }
    296. /* 修改订单 */
    297. @RequestMapping(value = "/updateOrders", method = RequestMethod.POST)
    298. @ResponseBody
    299. public String updateOrders(HttpServletRequest request, Orders orders) {
    300. int id = orders.getId();
    301. Orders oldorders = ordersService.getOrdersById(id);
    302. orders.setGoodsId(oldorders.getGoodsId());
    303. orders.setUserId(oldorders.getUserId());
    304. Goods goods=goodsService.getGoodsById(oldorders.getGoods().getId());
    305. if (oldorders.getOrderState() != orders.getOrderState()) {
    306. Float balance = orders.getOrderPrice();
    307. if (orders.getOrderState() == 3) {
    308. purseService.updatePurseByuserId(goods.getUserId(), balance);
    309. } else {
    310. purseService.updatePurseOfdel(goods.getUserId(), balance);
    311. }
    312. }
    313. try {
    314. ordersService.updateByPrimaryKey(id, orders);
    315. } catch (Exception e) {
    316. return "{\"success\":false,\"msg\":\"保存失败!\"}";
    317. }
    318. return "{\"success\":true,\"msg\":\"保存成功!\"}";
    319. }
    320. /* 删除订单 */
    321. @RequestMapping(value = "/deleteOrders", method = RequestMethod.POST)
    322. @ResponseBody
    323. public String deleteOrders(HttpServletRequest request, @RequestParam(value = "ids[]") String[] ids) {
    324. try {
    325. for (int i = 0; i < ids.length; i++) {
    326. ordersService.deleteOrdersByPrimaryKeys(Integer.parseInt(ids[i]));
    327. }
    328. } catch (Exception e) {
    329. return "{\"success\":false,\"msg\":\"删除失败!\"}";
    330. }
    331. return "{\"success\":true,\"msg\":\"删除成功!\"}";
    332. }
    333. /* 查询订单 */
    334. @RequestMapping(value = "/searchOrders", method = RequestMethod.POST)
    335. @ResponseBody
    336. public ModelAndView searchOrders(HttpServletRequest request, Orders orders) {
    337. ModelAndView mv = new ModelAndView();
    338. int pageNum = 1;
    339. int pageSize = 10;
    340. int total = ordersService.getOrdersNum();
    341. Long orderNum = orders.getOrderNum();
    342. String orderInformation = orders.getOrderInformation();
    343. Integer orderState = orders.getOrderState();
    344. List rows = ordersService.getPageOrdersByOrders(orderNum, orderInformation, orderState, pageNum, pageSize);
    345. OrdersGrid ordersGrid = new OrdersGrid();
    346. Orders searchorders = new Orders();
    347. searchorders.setOrderNum(orderNum);
    348. searchorders.setOrderInformation(orderInformation);
    349. searchorders.setOrderState(orderState);
    350. ordersGrid.setCurrent(pageNum);
    351. ordersGrid.setRowCount(pageSize);
    352. ordersGrid.setRows(rows);
    353. ordersGrid.setTotal(total);
    354. mv.addObject("ordersGrid", ordersGrid);
    355. mv.addObject("searchorders", searchorders);
    356. mv.setViewName("admin/orders/orders_list");
    357. return mv;
    358. }
    359. /*********************************************************
    360. * 钱包管理 1.查找所有钱包 2.查看钱包 3.修改钱包 4.删除钱包 5.查询钱包 lyq
    361. *
    362. **********************************************************/
    363. /* 查找所有钱包 */
    364. @RequestMapping(value = "/purseList")
    365. @ResponseBody
    366. public ModelAndView getPurseList(HttpServletRequest request) {
    367. int pageNum=Integer.parseInt(request.getParameter("pageNum"));
    368. ModelAndView modelAndView = new ModelAndView();
    369. int pageSize = 10;
    370. int total = purseService.getPurseNum();
    371. List rows = purseService.getPagePurse(pageNum, pageSize);
    372. PurseGrid purseGrid = new PurseGrid();
    373. purseGrid.setCurrent(pageNum);
    374. purseGrid.setRowCount(pageSize);
    375. purseGrid.setRows(rows);
    376. purseGrid.setTotal(total);
    377. modelAndView.addObject("purseGrid", purseGrid);
    378. modelAndView.setViewName("admin/purse/purse_list");
    379. return modelAndView;
    380. }
    381. /* 查询钱包 */
    382. @RequestMapping(value = "/searchPurse", method = RequestMethod.POST)
    383. @ResponseBody
    384. public ModelAndView searchPurse(HttpServletRequest request, Purse purse) {
    385. ModelAndView mv = new ModelAndView();
    386. int pageNum = 1;
    387. int pageSize = 10;
    388. int total = purseService.getPurseNum();
    389. Integer userId = purse.getUserId();
    390. Integer state=purse.getState();
    391. List rows = purseService.getPagePurseByPurse(userId,state, pageNum, pageSize);
    392. PurseGrid purseGrid = new PurseGrid();
    393. Purse searchpurse = new Purse();
    394. searchpurse.setUserId(userId);
    395. searchpurse.setState(state);
    396. purseGrid.setCurrent(pageNum);
    397. purseGrid.setRowCount(pageSize);
    398. purseGrid.setRows(rows);
    399. purseGrid.setTotal(total);
    400. mv.addObject("purseGrid", purseGrid);
    401. mv.addObject("searchpurse", searchpurse);
    402. mv.setViewName("admin/purse/purse_list");
    403. return mv;
    404. }
    405. /* 查看订单 */
    406. @RequestMapping(value = "/getPurse")
    407. @ResponseBody
    408. public Purse getPurse(HttpServletRequest request) {
    409. String id = request.getParameter("id");
    410. Purse purse = purseService.getPurseById(Integer.parseInt(id));
    411. return purse;
    412. }
    413. /* 修改钱包 */
    414. // @RequestMapping(value = "/updatePurse", method = RequestMethod.POST)
    415. // @ResponseBody
    416. // public String updatePurse(HttpServletRequest request, Purse purse) {
    417. // int id = purse.getId();
    418. // try {
    419. // purseService.updateByPrimaryKey(id, purse);
    420. // } catch (Exception e) {
    421. // return "{\"success\":false,\"msg\":\"保存失败!\"}";
    422. // }
    423. // return "{\"success\":true,\"msg\":\"保存成功!\"}";
    424. // }
    425. /* 通过 */
    426. @RequestMapping(value = "/updatePursePass", method = RequestMethod.POST)
    427. @ResponseBody
    428. public String updatePursePass(HttpServletRequest request, Purse purse) {
    429. Float balance=purse.getBalance();
    430. purse.setState(2);
    431. try {
    432. if(purse.getRecharge()!=null){//充值 充值金额=null 当前金额=当前金额+充值金额
    433. Float recharge=purse.getRecharge();
    434. Float balanceRecharge=balance+recharge;
    435. purse.setBalance(balanceRecharge);
    436. purseService.updatePursePassById(purse.getId(),purse);
    437. }if(purse.getWithdrawals()!=null) {//提现
    438. Float withdrawals=purse.getWithdrawals();
    439. Float balanceWithdrawals=balance-withdrawals;
    440. purse.setBalance(balanceWithdrawals);
    441. purseService.updatePurseRefuseById(purse.getId(),purse);
    442. }
    443. }
    444. catch (Exception e) {
    445. return "{\"success\":true,\"msg\":\"审核失败,请核对金额!\"}";
    446. }
    447. return "{\"success\":true,\"msg\":\"审核成功!\"}";
    448. }
    449. /* 不通过 */
    450. @RequestMapping(value = "/updatePurseRefuse", method = RequestMethod.POST)
    451. @ResponseBody
    452. public String updatePurseRefuse(HttpServletRequest request, Purse purse) {
    453. purse.setState(1);
    454. try {
    455. purseService.updatePurseRefuseById(purse.getId(),purse);
    456. }
    457. catch (Exception e) {
    458. return "{\"success\":true,\"msg\":\"审核失败!\"}";
    459. }
    460. return "{\"success\":true,\"msg\":\"审核成功!\"}";
    461. }
    462. /* 用户查看审核结果 */
    463. @RequestMapping(value = "/updatePurseState", method = RequestMethod.GET)
    464. public void updatePurseState(HttpServletRequest request) {
    465. Integer id=Integer.parseInt(request.getParameter("id"));
    466. Purse purse= purseService.getPurseById(id);
    467. purse.setState(null);
    468. this.purseService.updateByPrimaryKey(id,purse);//修改state为null
    469. }
    470. }

    GoodsController

    1. package com.ldu.controller;
    2. import java.io.File;
    3. import java.io.IOException;
    4. import java.text.SimpleDateFormat;
    5. import java.util.ArrayList;
    6. import java.util.Date;
    7. import java.util.HashMap;
    8. import java.util.List;
    9. import java.util.Map;
    10. import java.util.UUID;
    11. import javax.annotation.Resource;
    12. import javax.servlet.http.HttpServletRequest;
    13. import javax.servlet.http.HttpSession;
    14. import org.springframework.beans.factory.annotation.Autowired;
    15. import org.springframework.stereotype.Controller;
    16. import org.springframework.web.bind.annotation.PathVariable;
    17. import org.springframework.web.bind.annotation.RequestMapping;
    18. import org.springframework.web.bind.annotation.RequestMethod;
    19. import org.springframework.web.bind.annotation.RequestParam;
    20. import org.springframework.web.bind.annotation.ResponseBody;
    21. import org.springframework.web.multipart.MultipartFile;
    22. import org.springframework.web.servlet.ModelAndView;
    23. import com.ldu.pojo.Catelog;
    24. import com.ldu.pojo.CommentExtend;
    25. import com.ldu.pojo.Comments;
    26. import com.ldu.pojo.Goods;
    27. import com.ldu.pojo.GoodsExtend;
    28. import com.ldu.pojo.Image;
    29. import com.ldu.pojo.Purse;
    30. import com.ldu.pojo.User;
    31. import com.ldu.service.CatelogService;
    32. import com.ldu.service.GoodsService;
    33. import com.ldu.service.ImageService;
    34. import com.ldu.service.PurseService;
    35. import com.ldu.service.UserService;
    36. import com.ldu.util.DateUtil;
    37. @Controller
    38. @RequestMapping(value = "/goods")
    39. public class GoodsController {
    40. @Autowired
    41. private GoodsService goodsService;
    42. @Autowired
    43. private ImageService imageService;
    44. @Autowired
    45. private CatelogService catelogService;
    46. @Autowired
    47. private UserService userService;
    48. @Resource
    49. private PurseService purseService;
    50. /**
    51. * 首页显示商品,每一类商品查询6件,根据最新上架排序 key的命名为catelogGoods1、catelogGoods2....
    52. *
    53. * @return
    54. * @throws Exception
    55. */
    56. @RequestMapping(value = "/homeGoods")
    57. public ModelAndView homeGoods() throws Exception {
    58. ModelAndView modelAndView = new ModelAndView();
    59. // 商品种类数量
    60. int catelogSize = 7;
    61. // 每个种类显示商品数量
    62. int goodsSize = 6;
    63. List goodsList = null;
    64. List goodsAndImage = null;
    65. /* 获取最新发布列表 */
    66. goodsList = goodsService.getGoodsOrderByDate(goodsSize);
    67. goodsAndImage = new ArrayList();
    68. for (int j = 0; j < goodsList.size(); j++) {
    69. // 将用户信息和image信息封装到GoodsExtend类中,传给前台
    70. GoodsExtend goodsExtend = new GoodsExtend();
    71. Goods goods = goodsList.get(j);
    72. List images = imageService.getImagesByGoodsPrimaryKey(goods.getId());
    73. goodsExtend.setGoods(goods);
    74. goodsExtend.setImages(images);
    75. goodsAndImage.add(j, goodsExtend);
    76. }
    77. String key0 = "catelog" + "Goods";
    78. modelAndView.addObject(key0, goodsAndImage);
    79. /* 获取其他列表物品信息 */
    80. for (int i = 1; i <= catelogSize; i++) {
    81. goodsList = goodsService.getGoodsByCatelogOrderByDate(i, goodsSize);
    82. goodsAndImage = new ArrayList();
    83. for (int j = 0; j < goodsList.size(); j++) {
    84. // 将用户信息和image信息封装到GoodsExtend类中,传给前台
    85. GoodsExtend goodsExtend = new GoodsExtend();
    86. Goods goods = goodsList.get(j);
    87. List images = imageService.getImagesByGoodsPrimaryKey(goods.getId());
    88. goodsExtend.setGoods(goods);
    89. goodsExtend.setImages(images);
    90. goodsAndImage.add(j, goodsExtend);
    91. }
    92. String key = "catelog" + "Goods" + i;
    93. modelAndView.addObject(key, goodsAndImage);
    94. }
    95. modelAndView.setViewName("goods/homeGoods");
    96. return modelAndView;
    97. }
    98. /**
    99. * 搜索商品
    100. *
    101. * @param str //ajax传值
    102. * @return
    103. * @throws Exception
    104. */
    105. @RequestMapping(value = "/search")
    106. public ModelAndView searchGoods(@RequestParam(value = "str", required = false) String str) throws Exception {
    107. List goodsList = goodsService.searchGoods(str, str);
    108. List goodsExtendList = new ArrayList();
    109. for (int i = 0; i < goodsList.size(); i++) {
    110. GoodsExtend goodsExtend = new GoodsExtend();
    111. Goods goods = goodsList.get(i);
    112. List imageList = imageService.getImagesByGoodsPrimaryKey(goods.getId());
    113. goodsExtend.setGoods(goods);
    114. goodsExtend.setImages(imageList);
    115. goodsExtendList.add(i, goodsExtend);
    116. }
    117. ModelAndView modelAndView = new ModelAndView();
    118. modelAndView.addObject("goodsExtendList", goodsExtendList);
    119. modelAndView.addObject("search", str);
    120. modelAndView.setViewName("/goods/searchGoods");
    121. return modelAndView;
    122. }
    123. /**
    124. * 查询该类商品
    125. *
    126. * @param id
    127. * 要求该参数不为空
    128. * @return
    129. * @throws Exception
    130. */
    131. @RequestMapping(value = "/catelog")
    132. public ModelAndView homeGoods(HttpServletRequest request, @RequestParam(value = "str", required = false) String str)
    133. throws Exception {
    134. ModelAndView modelAndView = new ModelAndView();
    135. // 每个种类显示商品数量
    136. int goodsSize = 12;
    137. List goodsList = null;
    138. List goodsAndImage = null;
    139. /* 获取最新发布列表 */
    140. goodsList = goodsService.getGoodsByStr(goodsSize, str, str);
    141. goodsAndImage = new ArrayList();
    142. for (int j = 0; j < goodsList.size(); j++) {
    143. // 将用户信息和image信息封装到GoodsExtend类中,传给前台
    144. GoodsExtend goodsExtend = new GoodsExtend();
    145. Goods goods = goodsList.get(j);
    146. List images = imageService.getImagesByGoodsPrimaryKey(goods.getId());
    147. goodsExtend.setGoods(goods);
    148. goodsExtend.setImages(images);
    149. goodsAndImage.add(j, goodsExtend);
    150. }
    151. modelAndView.addObject("goodsExtendList", goodsAndImage);
    152. modelAndView.addObject("search", str);
    153. modelAndView.setViewName("/goods/catelogGoods");
    154. return modelAndView;
    155. }
    156. /**
    157. * 查询该类商品
    158. *
    159. * @param id
    160. * 要求该参数不为空
    161. * @return
    162. * @throws Exception
    163. */
    164. @RequestMapping(value = "/catelog/{id}")
    165. public ModelAndView catelogGoods(HttpServletRequest request, @PathVariable("id") Integer id,
    166. @RequestParam(value = "str", required = false) String str) throws Exception {
    167. List goodsList = goodsService.getGoodsByCatelog(id, str, str);
    168. Catelog catelog = catelogService.selectByPrimaryKey(id);
    169. List goodsExtendList = new ArrayList();
    170. for (int i = 0; i < goodsList.size(); i++) {
    171. GoodsExtend goodsExtend = new GoodsExtend();
    172. Goods goods = goodsList.get(i);
    173. List imageList = imageService.getImagesByGoodsPrimaryKey(goods.getId());
    174. goodsExtend.setGoods(goods);
    175. goodsExtend.setImages(imageList);
    176. goodsExtendList.add(i, goodsExtend);
    177. }
    178. ModelAndView modelAndView = new ModelAndView();
    179. modelAndView.addObject("goodsExtendList", goodsExtendList);
    180. modelAndView.addObject("catelog", catelog);
    181. modelAndView.addObject("search", str);
    182. modelAndView.setViewName("/goods/catelogGoods");
    183. return modelAndView;
    184. }
    185. /**
    186. * 根据商品id查询该商品详细信息
    187. *
    188. * @param id
    189. * @return
    190. * @throws Exception
    191. */
    192. @RequestMapping(value = "/goodsId/{id}")
    193. public ModelAndView getGoodsById(HttpServletRequest request, @PathVariable("id") Integer id,
    194. @RequestParam(value = "str", required = false) String str) throws Exception {
    195. Goods goods = goodsService.getGoodsByPrimaryKey(id);
    196. User seller = userService.selectByPrimaryKey(goods.getUserId());
    197. Catelog catelog = catelogService.selectByPrimaryKey(goods.getCatelogId());
    198. GoodsExtend goodsExtend = new GoodsExtend();
    199. List imageList = imageService.getImagesByGoodsPrimaryKey(id);
    200. CommentExtend CommentExtend=goodsService.selectCommentsByGoodsId(id);
    201. goodsExtend.setGoods(goods);
    202. goodsExtend.setImages(imageList);
    203. ModelAndView modelAndView = new ModelAndView();
    204. modelAndView.addObject("CommentExtend",CommentExtend);
    205. modelAndView.addObject("goodsExtend", goodsExtend);
    206. modelAndView.addObject("seller", seller);
    207. modelAndView.addObject("search", str);
    208. modelAndView.addObject("catelog", catelog);
    209. modelAndView.setViewName("/goods/detailGoods");
    210. return modelAndView;
    211. }
    212. /**
    213. * 发布评论
    214. * @return
    215. */
    216. @RequestMapping(value = "/addComments",method=RequestMethod.POST)
    217. public void deleteFocus(HttpServletRequest request,Comments comments) {
    218. User cur_user = (User)request.getSession().getAttribute("cur_user");
    219. comments.setUser(cur_user);
    220. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    221. Date createAt =new Date();
    222. comments.setCreateAt(sdf.format(createAt));
    223. goodsService.addComments(comments);
    224. }
    225. /**
    226. * 修改商品信息
    227. *
    228. * @return
    229. * @throws Exception
    230. */
    231. @RequestMapping(value = "/editGoods/{id}")
    232. public ModelAndView editGoods(HttpServletRequest request,@PathVariable("id") Integer id) throws Exception {
    233. User cur_user = (User) request.getSession().getAttribute("cur_user");
    234. Goods goods = goodsService.getGoodsByPrimaryKey(id);
    235. List imageList = imageService.getImagesByGoodsPrimaryKey(id);
    236. GoodsExtend goodsExtend = new GoodsExtend();
    237. goodsExtend.setGoods(goods);
    238. goodsExtend.setImages(imageList);
    239. ModelAndView modelAndView = new ModelAndView();
    240. Integer userId = cur_user.getId();
    241. Purse myPurse = purseService.getPurseByUserId(userId);
    242. modelAndView.addObject("myPurse", myPurse);
    243. // 将商品信息添加到model
    244. modelAndView.addObject("goodsExtend", goodsExtend);
    245. modelAndView.setViewName("/goods/editGoods");
    246. return modelAndView;
    247. }
    248. /**
    249. * 提交商品更改信息
    250. *
    251. * @return
    252. * @throws Exception
    253. */
    254. @RequestMapping(value = "/editGoodsSubmit")
    255. public String editGoodsSubmit(HttpServletRequest request, Goods goods) throws Exception {
    256. User cur_user = (User) request.getSession().getAttribute("cur_user");
    257. goods.setUserId(cur_user.getId());
    258. String polish_time = DateUtil.getNowDay();
    259. goods.setPolishTime(polish_time);
    260. goods.setStatus(1);
    261. goodsService.updateGoodsByPrimaryKeyWithBLOBs(goods.getId(), goods);
    262. return "redirect:/user/allGoods";
    263. }
    264. /**
    265. * 商品下架
    266. *
    267. * @return
    268. * @throws Exception
    269. */
    270. @RequestMapping(value = "/offGoods")
    271. public ModelAndView offGoods() throws Exception {
    272. return null;
    273. }
    274. /**
    275. * 用户删除商品
    276. *
    277. * @return
    278. * @throws Exception
    279. */
    280. @RequestMapping(value = "/deleteGoods/{id}")
    281. public String deleteGoods(HttpServletRequest request, @PathVariable("id") Integer id) throws Exception {
    282. Goods goods = goodsService.getGoodsByPrimaryKey(id);
    283. // 删除商品后,catlog的number-1,user表的goods_num-1,image删除,更新session的值
    284. User cur_user = (User) request.getSession().getAttribute("cur_user");
    285. goods.setUserId(cur_user.getId());
    286. int number = cur_user.getGoodsNum();
    287. Integer calelog_id = goods.getCatelogId();
    288. Catelog catelog = catelogService.selectByPrimaryKey(calelog_id);
    289. catelogService.updateCatelogNum(calelog_id, catelog.getNumber() - 1);
    290. userService.updateGoodsNum(cur_user.getId(), number - 1);
    291. cur_user.setGoodsNum(number - 1);
    292. request.getSession().setAttribute("cur_user", cur_user);// 修改session值
    293. //imageService.deleteImagesByGoodsPrimaryKey(id);
    294. goodsService.deleteGoodsByPrimaryKey(id);
    295. return "redirect:/user/allGoods";
    296. }
    297. /**
    298. * 发布商品
    299. *
    300. * @return
    301. * @throws Exception
    302. */
    303. @RequestMapping(value = "/publishGoods")
    304. public ModelAndView publishGoods(HttpServletRequest request) {
    305. // 可以校验用户是否登录
    306. User cur_user = (User) request.getSession().getAttribute("cur_user");
    307. // if (cur_user == null) {
    308. // return "/goods/homeGoods";
    309. // } else {
    310. Integer userId = cur_user.getId();
    311. Purse myPurse = purseService.getPurseByUserId(userId);
    312. ModelAndView mv = new ModelAndView();
    313. mv.addObject("myPurse", myPurse);
    314. mv.setViewName("/goods/pubGoods");
    315. return mv;
    316. }
    317. /**
    318. * 提交发布的商品信息
    319. *
    320. * @return
    321. * @throws Exception
    322. */
    323. @RequestMapping(value = "/publishGoodsSubmit")
    324. public String publishGoodsSubmit(HttpServletRequest request, Image ima, Goods goods, MultipartFile image)
    325. throws Exception {
    326. // 查询出当前用户cur_user对象,便于使用id
    327. User cur_user = (User) request.getSession().getAttribute("cur_user");
    328. goods.setUserId(cur_user.getId());
    329. goodsService.addGood(goods, 10);// 在goods表中插入物品
    330. // 返回插入的该物品的id
    331. int goodsId = goods.getId();
    332. ima.setGoodsId(goodsId);
    333. imageService.insert(ima);// 在image表中插入商品图片
    334. // 发布商品后,catlog的number+1,user表的goods_num+1,更新session的值
    335. int number = cur_user.getGoodsNum();
    336. Integer calelog_id = goods.getCatelogId();
    337. Catelog catelog = catelogService.selectByPrimaryKey(calelog_id);
    338. catelogService.updateCatelogNum(calelog_id, catelog.getNumber() + 1);
    339. userService.updateGoodsNum(cur_user.getId(), number + 1);
    340. cur_user.setGoodsNum(number + 1);
    341. request.getSession().setAttribute("cur_user", cur_user);// 修改session值
    342. return "redirect:/user/allGoods";
    343. }
    344. /**
    345. * 上传物品
    346. *
    347. * @param session
    348. * @param myfile
    349. * @return
    350. * @throws IllegalStateException
    351. * @throws IOException
    352. */
    353. @ResponseBody
    354. @RequestMapping(value = "/uploadFile")
    355. public Map uploadFile(HttpSession session, MultipartFile myfile)
    356. throws IllegalStateException, IOException {
    357. // 原始名称
    358. String oldFileName = myfile.getOriginalFilename(); // 获取上传文件的原名
    359. // 存储图片的物理路径
    360. //String file_path = session.getServletContext().getRealPath("upload");
    361. //windows版系统参考此路径修改
    362. String file_path = "E:\\squirrel\\WebContent\\upload";
    363. // 苹果版系统参考此路径修改
    364. //String file_path = "/Users/hanmeng/Desktop/java源码/SSM/008ssm+mysql+jsp实现的校园二手市场交易平台源码/源码/squirrel/WebContent/upload";
    365. //session.getServletContext().getRealPath("upload");
    366. System.out.println("file_path:"+file_path);
    367. // 上传图片
    368. if (myfile != null && oldFileName != null && oldFileName.length() > 0) {
    369. // 新的图片名称
    370. String newFileName = UUID.randomUUID() + oldFileName.substring(oldFileName.lastIndexOf("."));
    371. // 新图片
    372. File newFile = new File(file_path + "/" + newFileName);
    373. // 将内存中的数据写入磁盘
    374. myfile.transferTo(newFile);
    375. // 将新图片名称返回到前端
    376. Map map = new HashMap();
    377. map.put("success", "成功啦");
    378. map.put("imgUrl", newFileName);
    379. return map;
    380. } else {
    381. Map map = new HashMap();
    382. map.put("error", "图片不合法");
    383. return map;
    384. }
    385. }
    386. /**
    387. * 根据商品id查询该商品详细信息
    388. *
    389. * @param id
    390. * @return
    391. * @throws Exception
    392. */
    393. @RequestMapping(value = "/buyId/{id}")
    394. public ModelAndView getGoodsdetailById(HttpServletRequest request, @PathVariable("id") Integer id)
    395. throws Exception {
    396. Goods goods = goodsService.getGoodsByPrimaryKey(id);
    397. GoodsExtend goodsExtend = new GoodsExtend();
    398. List imageList = imageService.getImagesByGoodsPrimaryKey(id);
    399. goodsExtend.setGoods(goods);
    400. goodsExtend.setImages(imageList);
    401. User cur_user = (User)request.getSession().getAttribute("cur_user");
    402. Integer userId = cur_user.getId();
    403. Purse myPurse=purseService.getPurseByUserId(userId);
    404. ModelAndView modelAndView = new ModelAndView();
    405. modelAndView.addObject("goodsExtend", goodsExtend);
    406. modelAndView.addObject("myPurse",myPurse);
    407. modelAndView.setViewName("/user/pay");
    408. return modelAndView;
    409. }
    410. }

    如果也想学习本系统,下面领取。关注并回复:008ssm 

  • 相关阅读:
    YOLOv7改进:ConvNeXt(backbone改为CNeB)
    设计模式之观察者模式
    如何自动生成一本epub电子书
    nodeJs 图片下载功能实现
    Java多线程之8锁案例
    区块链通证的分类(各种分类一览表)
    智能照明控制系统助力某商业综合体实现“双碳”
    rust从0开始写项目-03-多样话错误处理
    python 词云 wordcloud使用paddle模式 庆余年人物分析--不是特别准,可以看着玩一玩
    图片翻译软件哪个好用?这些软件值得收藏
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126798502