当前位置: 首页 > news >正文

uniapp生活记账小程序

Springboot +vue +uniapp生活记账小程序,前端采用vue uni-app设计开发,后端采用 Springboot  开发前端对应的数据接口,首页显示生活账单信息,我的野蛮统计记账信息和微信登录状况。记账页面可以,根据不同类别的日常消费记账,数据库mysql  缓存redis ,

主页面如下:

记账页面如下:

微信登录前端的代码如下:

login(state, fun) {var data = {}//获取用户信息wx.getUserProfile({desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写success: info => {data["nickName"] = info.userInfo.nickName;data["rawData"] = info.rawData;data["signature"] = info.signature;data["encryptedData"] = info.encryptedData;data["iv"] = info.iv;wx.login({success: res => {console.log("获取code:"+res.code)data["code"] = res.code;if (res.code) {//发起网络请求request("/sys-login/wxLogin",JSON.stringify(data),"post").then(res=>{uni.setStorageSync("token",res.token);state.userInfo = info;uni.$u.toast("登录成功")if(fun!=null && fun!=""){fun();}}).catch(err=>{uni.$u.toast(""+err.msg)//登录失败清楚tokenuni.removeStorageSync('token');uni.$u.toast(err.msg)//登录成功后回调})} else {uni.$u.toast('登录失败!' + res.errMsg)}}})}})},

后端登录控制类代码

 @ApiOperation("微信登录")@RequestMapping(value = "/wxLogin",method = RequestMethod.POST)@Transactionalpublic JsonResult wxLogin(@RequestBody @Valid SysWxUser en){if(StringUtil.isEmpty(en.getCode())){return JsonResult.error("code不能为空");}//微信接口服务,通过调用微信接口服务中jscode2session接口获取到openid和session_keyString url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appId + "&secret=" + secret + "&js_code=" + en.getCode() + "&grant_type=authorization_code";String str = com.bowei.officialwebsite.utils.WeChatUtil.httpRequest(url, "GET", null);JSONObject jsonObject= JSONObject.parseObject(str);//设置openIDen.setOpenId(jsonObject.getString(AppletConstants.openId));en.setUnionId(jsonObject.getString(AppletConstants.unionId));//更新用户int i = sysWxUserMapper.update(en,new QueryWrapper<SysWxUser>().eq("open_id", en.getOpenId()));if(i==0){en.setCreateDate(LocalDateTime.now());//插入一个用户sysWxUserMapper.insert(en);}else{//查询出用户SysWxUser wxUser = sysWxUserMapper.selectOne(new QueryWrapper<SysWxUser>().eq("open_id", en.getOpenId()));en.setId(wxUser.getId());}HashMap<String, Object> jwtmap = new HashMap<>();jwtmap.put("id",en.getId());jwtmap.put("nickName",en.getNickName());//生成tokenString sign = JwtUtils.sign(jwtmap);//将token也加进去  先写个假的jsonObject.put("token",sign);//将用户信息存到redisredisUtil.set(RedisConstants.USER_INFOS_PREFIX+sign,jwtmap,EXPIRE_TIME);return JsonResult.success(jsonObject);}


http://www.mrgr.cn/news/13335.html

相关文章:

  • 大数据学习路线基础指南‌
  • 应用软件初始化的优缺点,读写ini,json,xml...
  • 《上海服饰》是什么级别的期刊?是正规期刊吗?能评职称吗?
  • [数据集][目标检测]电力场景输电线杆塔塔架金属锈蚀腐蚀生锈检测数据集VOC+YOLO格式1344张1类别
  • 【硬核】开源的高性能轻量级ORM框架
  • 小琳AI课堂:使用ChatGPT API搭建系统(二)
  • docker 数据存储
  • GB28181 SDP协议学习笔记
  • Linux Debian12安装Peek录屏软件,录制gif动态图
  • 【Axure高保真原型】输入框控制多选下拉列表选项
  • 最短路 - BellFord算法
  • 常见拓扑结构的工作原理
  • 抽奖系统PHP源码开源二开版带完整后台
  • 从繁荣到衰退:资本周期如何影响投资回报?-《资本回报》读后感
  • 免费分享:2018中国光伏发电潜力长期年平均值数据(附下载方法)
  • Mirai僵尸网络新漏洞:双刃剑效应下的DDoS攻防战
  • 贪心算法---加油站
  • 基于SSM+小程序的智慧旅游平台登录管理系统(旅游2)(源码+sql脚本+视频导入教程+文档)
  • 【xilinx】学习ZynqSOC发现教程和vitis2023版本界面对不上
  • C# 泛型约束