当前位置:   article > 正文

基于微信小程序校园水果商城系统(springboot+ mybatis-plus+mysql+原生微信小程序)_微信小程序水果商城

微信小程序水果商城

一、系统介绍

近年来,随着微信在我国互联网中的广泛使用,基于微信的小程序应用也如雨后春笋,2020年全网小程序已超600万,其中,微信小程序数量超380万。本论文所研究的正是基于微信小程序的电子商城的设计与开发。当前国内,已经是电子商务高速蓬勃发展的时代,人们通过移动互联网消费已是大势所趋。而微信,作为当前社交网络APP中的佼佼者,它不仅仅是一个单纯的手机应用程序,而是一套完整的社交网络生态系统。2017年,微信小程序正式上线,它是一种不用下载就能使用的应用,基于微信平台开发出来的小程序具有用户体验好、流量获取易、开发成本低、微信生态强的优势。它是一项真正的创新,经过几年的发展,已经构造了全新的微信小程序开发环境和开发者生态。本文所研究的"微信小程序电子商城",是根据实际用户的需求,基于微信小程序的开发模式,运用分层式的软件架构,完成了系统的功能设计、数据库设计,并在设计中充分考虑了系统的安全性。通过实际开发并运行,证明该系统稳定、易于操作,且能够满足实际商业活动的需要。 

 二、系统功能


   1.微信小程序端:首页、分类、购物车、我的、在线下单、订单列表等。
   2.后台管理端:用户管理、商品大类管理、商品小类管理、商品管理、订单管理等。

三、功能截图:


1.微信小程序端:

 

 

  

 2.后台管理端:

 

 

 

 

 

  四、代码实现: 

  1. // 导入request请求工具方法
  2. import {getBaseUrl, requestUtil} from "../../utils/requestUtil.js";
  3. import regeneratorRuntime from '../../lib/runtime/runtime';
  4. Page({
  5. data:{
  6. // 轮播图数组
  7. swiperList: [],
  8. baseUrl:'',
  9. bigTypeList:[],
  10. bigTypeList_row1:[],
  11. bigTypeList_row2:[],
  12. hotProductList:[]
  13. },
  14. onLoad:function(){
  15. this.getSwiperList();
  16. this.getBigTypeList();
  17. this.getHotProductList();
  18. },
  19. // 获取轮播图数据
  20. async getSwiperList(){
  21. // requestUtil({ url: "/home/swiperdata" })
  22. // .then(result => {
  23. // this.setData({
  24. // swiperList: result
  25. // })
  26. // })
  27. const result=await requestUtil({url: "/product/findSwiper"});
  28. const baseUrl=getBaseUrl();
  29. console.log(baseUrl);
  30. console.log(result)
  31. this.setData({
  32. swiperList: result.message,
  33. baseUrl:baseUrl
  34. })
  35. },
  36. // 获取商品大类数据
  37. async getBigTypeList(){
  38. const result=await requestUtil({url: "/bigType/findAll"});
  39. console.log(result)
  40. const bigTypeList_row1=result.message.filter((item,index)=>{
  41. return index<5;
  42. })
  43. const bigTypeList_row2=result.message.filter((item,index)=>{
  44. return index>=5;
  45. })
  46. this.setData({
  47. bigTypeList: result,
  48. bigTypeList_row1,
  49. bigTypeList_row2
  50. })
  51. },
  52. // 获取热卖商品
  53. async getHotProductList(){
  54. const result=await requestUtil({url: "/product/findHot"});
  55. console.log(result);
  56. this.setData({
  57. hotProductList:result.message
  58. })
  59. },
  60. // 大类点击事件处理 存储商品类别到全局数据
  61. handleTypeJump(event){
  62. var index=event.currentTarget.dataset.index;
  63. console.log("index:"+index)
  64. const app=getApp();
  65. app.globalData.index=index;
  66. wx.switchTab({
  67. url: '/pages/category/index'
  68. })
  69. }
  70. })
  1. package com.mall.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.mall.constant.SystemConstant;
  6. import com.mall.entity.R;
  7. import com.mall.entity.WxUserInfo;
  8. import com.mall.properties.WeixinProperties;
  9. import com.mall.service.IWxUserInfoService;
  10. import com.mall.util.HttpClientUtil;
  11. import com.mall.util.JwtUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.web.bind.annotation.RequestBody;
  14. import org.springframework.web.bind.annotation.RequestMapping;
  15. import org.springframework.web.bind.annotation.RestController;
  16. import java.util.Date;
  17. import java.util.HashMap;
  18. import java.util.Map;
  19. @RestController
  20. @RequestMapping("/users")
  21. public class UsersController {
  22. @Autowired
  23. private WeixinProperties weixinProperties;
  24. @Autowired
  25. private HttpClientUtil httpClientUtil;
  26. @Autowired
  27. private IWxUserInfoService wxUserInfoService;
  28. /**
  29. * 微信登录
  30. * @return
  31. */
  32. @RequestMapping("/wxlogin")
  33. public R wxLogin(@RequestBody WxUserInfo wxUserInfo){
  34. System.out.println(weixinProperties);
  35. System.out.println("code="+wxUserInfo.getCode());
  36. String jscode2sessionUrl=weixinProperties.getJscode2sessionUrl()+"?appid="+weixinProperties.getAppid()+"&secret="+weixinProperties.getSecret()+"&js_code="+wxUserInfo.getCode()+"&grant_type=authorization_code";
  37. System.out.println(jscode2sessionUrl);
  38. String result = httpClientUtil.sendHttpGet(jscode2sessionUrl); // 带code请求获取openId
  39. System.out.println(result);
  40. JSONObject jsonObject = JSON.parseObject(result);
  41. String openid = jsonObject.get("openid").toString(); // 获取openId
  42. WxUserInfo resultUserInfo = wxUserInfoService.getOne(new QueryWrapper<WxUserInfo>().eq("openid", openid));
  43. if(resultUserInfo==null){ // 不存在 插入用户
  44. wxUserInfo.setOpenid(openid);
  45. wxUserInfo.setRegisterDate(new Date());
  46. wxUserInfo.setLastLoginDate(new Date());
  47. wxUserInfoService.save(wxUserInfo);
  48. System.out.println(wxUserInfo.getId());
  49. }else{ // 存在 更新用户信息
  50. System.out.println("存在");
  51. resultUserInfo.setNickName(wxUserInfo.getNickName());
  52. resultUserInfo.setAvatarUrl(wxUserInfo.getAvatarUrl());
  53. resultUserInfo.setLastLoginDate(new Date());
  54. wxUserInfoService.updateById(resultUserInfo);
  55. wxUserInfo.setId(resultUserInfo.getId());
  56. }
  57. //把token返回给客户端
  58. String token = JwtUtils.createJWT(openid, wxUserInfo.getNickName(), SystemConstant.JWT_TTL);
  59. Map<String,Object> resultMap=new HashMap<String,Object>();
  60. resultMap.put("token",token);
  61. return R.ok(resultMap);
  62. }
  63. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/229004
推荐阅读
相关标签
  

闽ICP备14008679号