基于springboot,vue二手交易平台

news/2024/12/2 20:58:06/

开发工具:IDEA

服务器:Tomcat9.0, jdk1.8

项目构建:maven

数据库:mysql5.7

系统用户前台和管理后台两部分,项目采用前后端分离

前端技术:vue +elementUI

服务端技术:springboot+mybatis

项目功能描述:

一、前台功能

1、登录、注册、搜索商品、首页、商品详情

2、发送留言、回复留言、发布闲置、留言消息

3、下架闲置、收藏商品,取消收藏、立即购买

4、取消订单、立即支付、发货、确认收货

5、个人中心:修改头像、编辑个人信息、修改密码

6、我的发布、我的下架、我的收藏、我的卖出、我买到的

7、收货地址:添加、修改、删除、设置默认

退出登录等功能

二、后台功能

登录、闲置管理、订单管理、用户管理

前台截图:

后台截图:

package com.second.hand.trading.server.service.impl;import com.second.hand.trading.server.dao.IdleItemDao;
import com.second.hand.trading.server.dao.MessageDao;
import com.second.hand.trading.server.dao.UserDao;
import com.second.hand.trading.server.model.IdleItemModel;
import com.second.hand.trading.server.model.MessageModel;
import com.second.hand.trading.server.model.UserModel;
import com.second.hand.trading.server.service.MessageService;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@Service
public class MessageServiceImpl implements MessageService {@Resourceprivate MessageDao messageDao;@Resourceprivate UserDao userDao;@Resourceprivate IdleItemDao idleItemDao;/*** 增加一条留言* @param messageModel* @return*/public boolean addMessage(MessageModel messageModel){return messageDao.insert(messageModel)==1;}/*** 删除一条留言,未做用户身份验证* @param id* @return*/public boolean deleteMessage(Long id){return messageDao.deleteByPrimaryKey(id)==1;}/*** 获取一条留言* @param id* @return*/public MessageModel getMessage(Long id){return messageDao.selectByPrimaryKey(id);}/*** 获取一个用户收到的所有留言,未做分页查询* 同时查询出用户的信息和闲置的信息* userId建索引* @param userId* @return*/public List<MessageModel> getAllMyMessage(Long userId){List<MessageModel> list=messageDao.getMyMessage(userId);if(list.size()>0){List<Long> idList=new ArrayList<>();for(MessageModel i:list){idList.add(i.getUserId());}List<UserModel> userList=userDao.findUserByList(idList);Map<Long,UserModel> map=new HashMap<>();for(UserModel user:userList){map.put(user.getId(),user);}for(MessageModel i:list){i.setFromU(map.get(i.getUserId()));}List<Long> idleIdList=new ArrayList<>();for(MessageModel i:list){idleIdList.add(i.getIdleId());}List<IdleItemModel> idleList=idleItemDao.findIdleByList(idleIdList);Map<Long,IdleItemModel> idleMap=new HashMap<>();for(IdleItemModel idle:idleList){idleMap.put(idle.getId(),idle);}for(MessageModel i:list){i.setIdle(idleMap.get(i.getIdleId()));}}return list;}/*** 查询一个闲置下的所有留言,未做分页* 同时查出发送者和接收者的信息* idleId建索引* @param idleId* @return*/public List<MessageModel> getAllIdleMessage(Long idleId){List<MessageModel> list=messageDao.getIdleMessage(idleId);if(list.size()>0){List<Long> idList=new ArrayList<>();for(MessageModel i:list){idList.add(i.getUserId());}List<UserModel> userList=userDao.findUserByList(idList);Map<Long,UserModel> map=new HashMap<>();for(UserModel user:userList){map.put(user.getId(),user);}for(MessageModel i:list){i.setFromU(map.get(i.getUserId()));}Map<Long,MessageModel> mesMap=new HashMap<>();for(MessageModel i:list){mesMap.put(i.getId(),i);}for(MessageModel i:list){MessageModel toM=new MessageModel();UserModel toU=new UserModel();if(i.getToMessage()!=null){toM.setContent(mesMap.get(i.getToMessage()).getContent());toU.setNickname(map.get(i.getToUser()).getNickname());}i.setToM(toM);i.setToU(toU);}}return list;}
}
package com.second.hand.trading.server.service.impl;

import com.second.hand.trading.server.dao.OrderAddressDao;
import com.second.hand.trading.server.model.OrderAddressModel;
import com.second.hand.trading.server.service.OrderAddressService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class OrderAddressServiceImpl implements OrderAddressService {

@Resource
private OrderAddressDao orderAddressDao;

/**
* 为订单新增地址信息
* @param orderAddressModel
* @return
*/
public boolean addOrderAddress(OrderAddressModel orderAddressModel){
return orderAddressDao.insert(orderAddressModel)==1;
}

/**
* 更新订单的地址信息,未验证用户身份
* @param orderAddressModel
* @return
*/
public boolean updateOrderAddress(OrderAddressModel orderAddressModel){
orderAddressModel.setOrderId(null);
return orderAddressDao.updateByPrimaryKeySelective(orderAddressModel)==1;
}

/**
* 获取订单的地址信息
* orderId建索引
* @param orderId
* @return
*/
public OrderAddressModel getOrderAddress(Long orderId){
return orderAddressDao.selectByOrderId(orderId);
}
}

http://www.ppmy.cn/news/11882.html

相关文章

SpringBoot实践(三十九):如何使用AOP

目录 直接使用Aspect 定义切面逻辑 模拟业务代码 测试输出 自定义注解方式 自定义切面注解 定义切入点逻辑 模拟业务代码 测试输出 面向切面&#xff08;AOP) 是spring重要特性&#xff0c;在功能上切面编程是面向对象编程的很好的补充&#xff0c;面向对象强调封装和开…

04_FreeRTOS任务挂起和恢复函数

目录 任务的挂起与恢复的API函数 任务挂起函数介绍 任务恢复函数介绍 中断中恢复函数 vTaskSuspend()任务挂起函数 vTaskResume()任务中恢复函数 xTaskResumeFromISR()中断中恢复函数 任务的挂起与恢复的API函数 挂起:挂起任务类似暂停,可恢复;删除任务,无法恢复,类似“…

敏捷是知与行的功夫

敏捷不是“一”种方法 “敏捷是一种用于项目管理和软件开发的迭代方法&#xff0c;可帮助团队更快地向客户交付价值并减少风险。 它不是将一切都押在“大爆炸”发布上&#xff0c;而是以小的增量交付成果。 不断评估需求、计划和结果&#xff0c;因此能够快速地响应变化。” 以…

大数据必学Java基础(一百二十):Maven工程的介绍与创建

文章目录 Maven工程的介绍与创建 一、Maven工程类型 1、POM工程 2、JAR工程 3、WAR工程

【自定义类型】-结构体,枚举,联合

&#x1f387;作者&#xff1a;小树苗渴望变成参天大树 &#x1f496;作者宣言&#xff1a;认真写好每一篇博客 &#x1f9e8;作者gitee:link 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; &#x1f38a;自定义类型&#x1f389;前言&a…

OOM 机制

OOM 机制 “我们从OOM的角度来帮大家提高一点内存方面的知识&#xff0c;虽然不能说帮助人们来完全解决内存问题&#xff0c;但是也能从一个侧面来提高大家分析内存问题相关的能力。” 这是关于 Linux 内核的学习笔记&#xff0c;重点要了解 OOM 这块的相关知识点。 1 相关概念…

【正点原子FPGA连载】 第十七章 呼吸灯实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十七章 呼吸灯…

【2022年度总结】总结过去,展望未来

文章目录前言回顾过去一、刷题道路两眼黑二、助人为乐本身便是一种快乐展望未来兔年Flag博客文章竞赛目标学习目标志同道合前言 注册CSDN一年了&#xff0c;新年伊始&#xff0c;正好趁着这个时间复盘一下逝去的2022&#xff01; 很幸运&#xff0c;在对计算机知识懵懂无知的时…