✨作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目
一、前言
随着社会经济的发展和消费者需求的多样化,二手物品交易市场逐渐成为一个庞大的交易领域。在此背景下,开发一个高效、便捷、安全的二手物品交易平台显得尤为重要。本课题将从学术、严谨的角度,对二手物品交易平台的功能需求进行深入研究,旨在为用户、商家和管理员提供一个全面、易用的交易平台。
当前,二手物品交易平台在功能设计方面存在一些问题。首先,用户在交易过程中可能面临信息不对称、交易不透明等问题,导致交易风险较大。其次,商家在管理商品信息、用户咨询和订单时,缺乏有效的工具和方法,难以提高工作效率。最后,管理员在管理商家、用户、商品和公告等信息时,缺乏统一的操作界面和数据管理机制,导致管理效率低下。
本课题旨在开发一个功能完善、安全可靠的二手物品交易平台,实现以下目标:
用户能够便捷地浏览商品信息、添加购物车、下单支付,并能够管理收货地址和订单信息;
商家能够方便地发布商品信息、管理商品库存、处理用户咨询和订单,并能够实时更新商品评价和收藏信息;
管理员能够统一管理商家、用户、商品和公告等信息,确保平台数据的安全性和可靠性;
平台能够提供数据统计和分析功能,以便管理员能够了解平台运营状况并进行优化。
本课题的研究意义在于为二手物品交易市场提供一个功能全面、安全可靠的交易平台,具有以下意义:
提高交易效率:通过优化交易流程和提供便捷的操作界面,降低用户和商家的交易成本,提高交易效率;
增强安全性:通过建立完善的安全机制和数据管理机制,确保用户、商家和管理员的信息安全,降低交易风险;
提高管理效率:通过提供统一的管理界面和数据管理机制,提高管理员对平台信息的管理效率;
促进市场发展:通过提供全面的功能支持和安全可靠的环境,促进二手物品交易市场的发展,为社会经济发展和消费者需求多样化做出贡献。
二、开发环境
- 开发语言:Java
- 数据库:MySQL
- 系统架构:B/S
- 后端:SpringBoot
- 前端:Vue
三、系统功能模块
- 角色:用户、商家、管理员
- 功能:
用户:
公告、商家、商品、购物车、收货地址、商品订单;
商家:
商品管理(信息、评价、收藏、订单)、用户咨询管理、公告信息;
管理员:
商家管理、用户管理、商品管理(信息、评价、收藏、订单)、用户咨询管理、公告信息管理、基础数据管理(公告类型、商品信用类型、商品类型、数据类型、状态)。
四、系统界面展示
- 二手物品交易平台-界面展示:
五、代码参考
- Java项目实战-代码参考:
/**************************
*
* 收货地址控制
*
*/
@RestController
public class ReceaddressController extends SimpleController {
@Autowired
private ReceaddressService receaddressSrv = null;
@PostMapping("/admin/receaddress/delete")
public JsonResult delete() {
String[] ids = request.getParameterValues("ids[]");
if (ids == null)
return JsonResult.error(-1,"编号不能为空");
String SQL = " where id in(" + StringUtils.join(ids,",") + ")";
receaddressSrv.delete(SQL);
return JsonResult.success(1,"删除成功");
}
@RequestMapping("/admin/receaddress/save")
public JsonResult save() {
String title = request.getParameter("title");
String shr = request.getParameter("shr");
String mobile = request.getParameter("mobile");
String postcode = request.getParameter("postcode");
String addinfo = request.getParameter("addinfo");
String hyid = request.getParameter("hyid");
Receaddress receaddress = new Receaddress();
receaddress.setTitle(title == null ? "" : title);
receaddress.setShr(shr == null ? "" : shr);
receaddress.setMobile(mobile == null ? "" : mobile);
receaddress.setPostcode(postcode == null ? "" : postcode);
receaddress.setAddinfo(addinfo == null ? "" : addinfo);
receaddress.setHyid(hyid==null?0:new Integer(hyid));
receaddressSrv.save(receaddress);
return JsonResult.success(1,"新增地址成功");
}
@PostMapping("/admin/receaddress/update")
public JsonResult update() {
String id = request.getParameter("id");
if (id == null)
return JsonResult.error(-1,"ID不能为空");
Receaddress receaddress = receaddressSrv.load(new Integer(id));
if (receaddress == null)
return JsonResult.success(-2,"不合法的数据");
String title = request.getParameter("title");
String shr = request.getParameter("shr");
String mobile = request.getParameter("mobile");
String postcode = request.getParameter("postcode");
String addinfo = request.getParameter("addinfo");
String hyid = request.getParameter("hyid");
SimpleDateFormat sdfreceaddress = new SimpleDateFormat("yyyy-MM-dd");
receaddress.setTitle(title);
receaddress.setShr(shr);
receaddress.setMobile(mobile);
receaddress.setPostcode(postcode);
receaddress.setAddinfo(addinfo);
receaddress.setHyid(hyid==null?0:new Integer(hyid));
receaddressSrv.update(receaddress);
return JsonResult.success(1,"更新成功",receaddress);
}
@PostMapping("/admin/receaddress/load")
public JsonResult load() {
//
String id = request.getParameter("id");
if (id == null)
return JsonResult.error(-1,"ID不能为空");
Receaddress receaddress = receaddressSrv.load(new Integer(id));
if (receaddress == null)
return JsonResult.success(-2,"不合法的数据");
return JsonResult.success(1,"成功",receaddress);
}
@PostMapping("/admin/receaddress/list")
public JsonResult list() {
HashMap map =new HashMap();
String title = request.getParameter("title");
String hyid=request.getParameter("hyid");
String paged=request.getParameter("paged");
if (title != null)
map.put("title",title);
if(hyid!=null)
map.put("hyid",hyid);
int pageindex = 1;
int pagesize = 10;
// 获取当前分页
String currentpageindex = request.getParameter("currentpageindex");
// 当前页面面积
String currentpagesize = request.getParameter("pagesize");
// 设置当前页
if (currentpageindex != null)
pageindex = new Integer(currentpageindex);
// 设置当前页面积
if (currentpagesize != null)
pagesize = new Integer(currentpagesize);
if(!"-1".equals(paged))
PageHelper.startPage(pageindex,pagesize);
List<Receaddress> listReceaddress = receaddressSrv.getEnityPlus(map);
if(!"-1".equals(paged))
return JsonResult.success(1,"地址信息",new PageInfo(listReceaddress));
return JsonResult.success(1,"地址信息",listReceaddress);
}
}
/**************************
*
* 订单控制
*
*/
@Controller
public class ShorderController {
@Autowired
private ShorderService shorderSrv = null;
@Autowired
private HuiyuanService huiyuanSrv=null;
@Autowired
private OrderitemService orderitemSrv=null;
@Autowired
private HttpServletRequest request;
@Autowired
private ShangpinService shangpinSrv=null;
private String cartName = "shopcart";
@Autowired
private SpcommentService spcommentSrv=null;
@ResponseBody
@PostMapping("/admin/shorder/delete")
public JsonResult delete() {
String[] ids = request.getParameterValues("ids[]");
if (ids == null)
return JsonResult.error(-1,"参数异常");
for(String id : ids){
shorderSrv.delete("where id="+id);
orderitemSrv.delete("where orderid="+id);
}
return JsonResult.success(1,"操作成功");
}
@ResponseBody
@PostMapping("/admin/shorder/saletongji")
public JsonResult saleTongji() {
String begdate = request.getParameter("begindate");
String enddate = request.getParameter("enddate");
String shid = request.getParameter("shid");
HashMap<String,Object> map=new HashMap<>();
if(begdate!=null)
map.put("begdate",begdate);
if(enddate!=null)
map.put("enddate",enddate);
if(shid!=null)
map.put("shid",shid);
List<HashMap<String,Object>> listMap=shorderSrv.saleStat(map);
if(listMap!=null)
request.setAttribute("listMap",listMap);
return JsonResult.success(1,"成功",listMap);
}
@ResponseBody
@PostMapping("/admin/shorder/shouhuo")
public JsonResult shouhuo(){
String oiid=request.getParameter("oiid");
String star=request.getParameter("star");
String des=request.getParameter("des");
String appraiserid=request.getParameter("appraiserid");
if(oiid==null||oiid.equals(""))
return JsonResult.error(-1,"参数异常");
Orderitem orderitem=orderitemSrv.load("where id="+oiid);
Spcomment spcomment=new Spcomment();
spcomment.setCreatetime(new Date());
spcomment.setSpid(orderitem.getSpid());
spcomment.setOrderid(orderitem.getId());
spcomment.setCresult(star==null?1:Integer.parseInt(star));
spcomment.setAppraiserid(appraiserid==null?0:Integer.parseInt(appraiserid));
spcomment.setDes(des);
spcommentSrv.save(spcomment);
int count= orderitemSrv.executeUpdate(MessageFormat.format("update orderitem set state=4 where id={0} ",oiid));
int ndCount=orderitemSrv.getRecordCount(MessageFormat.format("where orderid={0,number,#} and state=3 ",orderitem.getOrderid()));
//商品全部发货则更新订单为已发货状态
if(ndCount==0)
shorderSrv.executeUpdate(MessageFormat.format("update shorder set state=4 where id={0,number,#}",orderitem.getOrderid()));
if(count>0)
return JsonResult.success(1,"收货成功");
return JsonResult.error(-2,"收货失败");
}
@ResponseBody
@PostMapping("/admin/shorder/payment")
public JsonResult payment(){
String id=request.getParameter("id");
String paystyle=request.getParameter("paystyle");
String paypwd=request.getParameter("paypwd");
if(paypwd==null||paypwd.equals("")){
return JsonResult.error(-1,"请输入支付密码");
}
if(id==null||paypwd.equals(""))
return JsonResult.error(-2,"订单编号异常");
if(!StringUtil.isNumeric(id))
return JsonResult.error(-3,"订单编号异常");
Shorder order=shorderSrv.load("where id="+id);
if(order==null)
return JsonResult.error(-4,"订单号不存在");
Huiyuan huiyuan= huiyuanSrv.load("where id="+order.getPurchaser());
if(huiyuan==null)
return JsonResult.error(-5,"账户信息异常");
if(!paypwd.equals(huiyuan.getPaypwd()))
return JsonResult.error(-6,"支付密码不正确");
int count= huiyuanSrv.deduct(order.getPurchaser(),order.getTotalfee());
if(count<=0)
return JsonResult.error(-7,"账户余额不足");
Boolean res=shorderSrv.changeToPayed(order.getId());
if(!res)
return JsonResult.error(-8,"系统异常");
return JsonResult.success(1,"付款成功");
}
@ResponseBody
@PostMapping("/admin/shorder/cancel")
public JsonResult cancel(){
String id=request.getParameter("id");
if(!StringUtil.isNumeric(id))
return JsonResult.error(-1,"订单编号异常");
shorderSrv.executeUpdate("update shorder set state=5 where id="+id);
orderitemSrv.executeUpdate("update orderitem set state=5 where orderid="+id);
return JsonResult.success(1,"付款成功");
}
@ResponseBody
@PostMapping("/admin/shorder/info")
public JsonResult info(){
String id=request.getParameter("id");
String state=request.getParameter("state");
if(id==null||id=="")
return JsonResult.error(-1,"需要id参数");
if(!StringUtil.isNumeric(id)){
return JsonResult.error(-2,"id参数应该为数字");
}
HashMap map=new HashMap<String,Object>();
if(id!=null)
map.put("id",id);
if(state!=null)
map.put("state",state);
OrderDTO order = shorderSrv.loadPlus(map);
return JsonResult.success(1,"获取订单成功",order);
}
@ResponseBody
@PostMapping("/admin/shorder/deliver")
public JsonResult deliver(){
String oiid=request.getParameter("oiid");
String wlno=request.getParameter("wlno");
if(oiid==null||oiid.equals(""))
return JsonResult.error(-1,"参数异常");
Orderitem oi=orderitemSrv.load("where id="+oiid);
oi.setState(3);
oi.setWlno(wlno);
int count= orderitemSrv.update(oi);
int ndCount=orderitemSrv.getRecordCount(MessageFormat.format("where orderid={0,number,#} and state=2 ",oi.getOrderid()));
//商品全部发货则更新订单为已发货状态
if(ndCount==0)
shorderSrv.executeUpdate(MessageFormat.format("update shorder set state=3 where id={0,number,#}",oi.getOrderid()));
if(count>0)
return JsonResult.success(1,"发货成功");
return JsonResult.error(-2,"发货失败");
}
@ResponseBody
@PostMapping("/admin/shorder/save")
public JsonResult save(){
String payload=getRequestPayload(request);
System.out.println("payload="+payload);
CreateOrderDTO orderDTO = JSONObject.parseObject(payload, CreateOrderDTO.class);
JsonResult vr= shorderSrv.validateStock(orderDTO);
if(vr.getStateCode()<0)
return vr;
shorderSrv.createOrder(orderDTO);
return JsonResult.success(1,"下单成功");
}
@ResponseBody
@PostMapping("/admin/shorder/shlist")
public JsonResult shlist(){
String publisher=request.getParameter("publisher");
String state=request.getParameter("state");
if(publisher==null||publisher=="")
return JsonResult.error(-1,"请提供商户账号");
HashMap map=new HashMap<String,Object>();
if(publisher!=null)
map.put("publisher",publisher);
if(state!=null)
map.put("state",state);
List<OrderDTO> purchaseOrder = shorderSrv.getEntityPlus(map);
return JsonResult.success(1,"获取订单成功",purchaseOrder);
}
@ResponseBody
@PostMapping("/admin/shorder/list")
public JsonResult list(){
String purchaser=request.getParameter("purchaser");
String state=request.getParameter("state");
String ddno = request.getParameter("ddno");
String pubren=request.getParameter("pubren");
HashMap map=new HashMap<String,Object>();
if(purchaser!=null){
if(purchaser!=null&&!StringUtil.isNumeric(purchaser)){
return JsonResult.error(-2,"参数应该为数字");
}
map.put("purchaser",purchaser);
}
if(state!=null)
map.put("state",state);
if (ddno != null)
map.put("ddno",ddno);
if(pubren!=null)
map.put("pubren",pubren);
int pageindex = 1;
int pagesize = 10;
// 获取当前分页
String currentpageindex = request.getParameter("currentpageindex");
// 当前页面面积
String currentpagesize = request.getParameter("pagesize");
PageHelper.startPage(pageindex,pagesize);
List<OrderDTO> listshorder = shorderSrv.getEntityPlus(map);
request.setAttribute("listshorder", listshorder);
PageInfo<OrderDTO> pageInfo=new PageInfo<>(listshorder);
return JsonResult.success(1,"获取订单成功",pageInfo);
}
private String getRequestPayload(HttpServletRequest request){
try {
request.setCharacterEncoding("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
BufferedReader br=null;
try {
br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
} catch (IOException e) {
e.printStackTrace();
}
String line="";
StringBuilder sb = new StringBuilder();
try {
while ((line = br.readLine()) != null) {
sb.append(line);
}
}catch (IOException e){
}
return sb.toString();
}
六、论文参考
- 计算机毕业设计选题推荐-二手物品交易平台-论文参考:
七、系统视频
二手物品交易平台-项目视频:
基于SpringBoot的二手物品交易平台
结语
计算机毕业设计选题推荐-二手物品交易平台-Java项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我