开发日志2024-04-12

devtools/2024/9/23 6:18:45/

开发日志2024/04/12

1、分店月业绩和年业绩都需要添加为真实数据

**开发思路:**分店下所属的技师的业绩总和

代码实现:

  • 前端

  • 后端
//TODO 将技师多对应的积分累加到他所属的分店的月/年累计业绩销量中//TODO 查询技师所对应的分店地址String fendian = jishiService.selectFenDianByJiShi(yonghuyuyuexinxi.getZhidingjishi());//在分店年/月业绩的表中添加对应技师的积分int fendianYueYeJi =  qiantaiyueyejitongjiService.updateYueYeJi(fendian,Integer.parseInt(jifenByXiangmu));int fendianNianYeJi =  qiantainianyejitongjiService.updateNianYeJi(fendian,Integer.parseInt(jifenByXiangmu));System.out.println("fendianNianYeJi = " + fendianNianYeJi);System.out.println("fendianYueYeJi = " + fendianYueYeJi);System.out.println("fendian = " + fendian);
-----------------------------------------------//TODO 将技师多对应的积分累加到他所属的分店的月/年累计业绩销量中//TODO 查询技师所对应的分店地址String fendian = jishiService.selectFenDianByJiShi(huiyuanyuyuexinxi.getZhidingjishi());//在分店年/月业绩的表中添加对应技师的积分System.out.println("fendian = " + fendian);int fendianYueYeJi =  qiantaiyueyejitongjiService.updateYueYeJi(fendian,Integer.parseInt(jifenByXiangmu));int fendianNianYeJi =  qiantainianyejitongjiService.updateNianYeJi(fendian,Integer.parseInt(jifenByXiangmu));System.out.println("fendianNianYeJi = " + fendianNianYeJi);System.out.println("fendianYueYeJi = " + fendianYueYeJi);

5、理疗项目的年/月预约量和年/月预约额都需要添加为真实数据

**开发思路:**理疗项目在管理员审核完成后,将此项目对应的销量+1,同时将项目对应的价格添加到销售额上边

代码实现:

  • 前端

  • 后端
		//TODO 将用户预约的项目对应的名称累加到理疗项目对应的月/年销售量上,将项目对应的价格加到销售额度上//TODO 先通过预约项目名称查询到对应的数据是否存在int YueXiaoFeixiangMuMingCheng = meirongxiangmuyuetongjiService.selectXiangMuMingCheng(yonghuyuyuexinxi.getXiangmumingcheng());int NianXiaoFeixiangMuMingCheng = meirongxiangmuniantongjiService.selectXiangMuMingCheng(yonghuyuyuexinxi.getXiangmumingcheng());//有的修改,无则添加System.out.println("NianXiaoFeixiangMuMingCheng = " + NianXiaoFeixiangMuMingCheng);System.out.println("YueXiaoFeixiangMuMingCheng = " + YueXiaoFeixiangMuMingCheng);if (YueXiaoFeixiangMuMingCheng != 0) {//修改月销量和月销售额度meirongxiangmuyuetongjiService.updateYueXiaoLiaoAndEdu(yonghuyuyuexinxi.getXiangmumingcheng(),xiangmuJiaGe);}else {MeirongxiangmuyuetongjiEntity xiangmuyuetongji = new MeirongxiangmuyuetongjiEntity();xiangmuyuetongji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());xiangmuyuetongji.setAddtime(new DateTime());xiangmuyuetongji.setTongjiriqi(new DateTime());xiangmuyuetongji.setXiangmumingcheng(yonghuyuyuexinxi.getXiangmumingcheng());xiangmuyuetongji.setXiangmuzhaopian(xiangmuZhaoPian);xiangmuyuetongji.setYuexiaoliang(1);xiangmuyuetongji.setYuexiaoshoue(Integer.parseInt(jifenByXiangmu));//添加meirongxiangmuyuetongjiService.insert(xiangmuyuetongji);}/*年销售量*/if (NianXiaoFeixiangMuMingCheng != 0) {//修改年销售量和年销售额度meirongxiangmuniantongjiService.updateNianXiaoLiaoAndEdu(yonghuyuyuexinxi.getXiangmumingcheng(),xiangmuJiaGe);}else {MeirongxiangmuniantongjiEntity xiangmuniantongji = new MeirongxiangmuniantongjiEntity();xiangmuniantongji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());xiangmuniantongji.setAddtime(new DateTime());xiangmuniantongji.setTongjiriqi(new DateTime());xiangmuniantongji.setXiangmumingcheng(yonghuyuyuexinxi.getXiangmumingcheng());xiangmuniantongji.setXiangmuzhaopian(xiangmuZhaoPian);xiangmuniantongji.setNianxiaoliang(1);xiangmuniantongji.setNianxiaoshoue(Integer.parseInt(jifenByXiangmu));//添加meirongxiangmuniantongjiService.insert(xiangmuniantongji);}
-------------------//TODO 根据项目名称查询项目照片String xiangmuZhaoPian = meirongxiangmuService.selectZhaoPian(huiyuanyuyuexinxi.getXiangmumingcheng());//有的修改,无则添加System.out.println("HuiYuanNianXiaoFeixiangMuMingCheng = " + NianXiaoFeixiangMuMingCheng);System.out.println("HuiYuanYueXiaoFeixiangMuMingCheng = " + YueXiaoFeixiangMuMingCheng);if (YueXiaoFeixiangMuMingCheng != 0) {//修改月销量和月销售额度meirongxiangmuyuetongjiService.updateYueXiaoLiaoAndEdu(huiyuanyuyuexinxi.getXiangmumingcheng(),xiangmuJiaGe);}else {MeirongxiangmuyuetongjiEntity xiangmuyuetongji = new MeirongxiangmuyuetongjiEntity();xiangmuyuetongji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());xiangmuyuetongji.setAddtime(new DateTime());xiangmuyuetongji.setTongjiriqi(new DateTime());xiangmuyuetongji.setXiangmumingcheng(huiyuanyuyuexinxi.getXiangmumingcheng());xiangmuyuetongji.setXiangmuzhaopian(xiangmuZhaoPian);xiangmuyuetongji.setYuexiaoliang(1);xiangmuyuetongji.setYuexiaoshoue(Integer.parseInt(jifenByXiangmu));//添加meirongxiangmuyuetongjiService.insert(xiangmuyuetongji);}/*年销售量*/if (NianXiaoFeixiangMuMingCheng != 0) {//修改年销售量和年销售额度meirongxiangmuniantongjiService.updateNianXiaoLiaoAndEdu(huiyuanyuyuexinxi.getXiangmumingcheng(),xiangmuJiaGe);}else {MeirongxiangmuniantongjiEntity xiangmuniantongji = new MeirongxiangmuniantongjiEntity();xiangmuniantongji.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());xiangmuniantongji.setAddtime(new DateTime());xiangmuniantongji.setTongjiriqi(new DateTime());xiangmuniantongji.setXiangmumingcheng(huiyuanyuyuexinxi.getXiangmumingcheng());xiangmuniantongji.setXiangmuzhaopian(xiangmuZhaoPian);xiangmuniantongji.setNianxiaoliang(1);xiangmuniantongji.setNianxiaoshoue(Integer.parseInt(jifenByXiangmu));//添加meirongxiangmuniantongjiService.insert(xiangmuniantongji);}

2、Update语句更新两个字段

update tableName 
set 字段1 = 字段值, 字段2 = 字段值
where 条件

3、技师登录查看自己的业绩

实现思路: 在Vue创建页面复制之前的Echarts的页面,后台调用接口的是查询两个会员预约信息和普通胡用户预约信息中是当前技师姓名的所有数据,在Vue按照项目名称来进行展示(可以参考普通用户预约和会员预约页面)

4、Vue查询当前登录的用户名

实现思路: 利用this.$storage.get(‘adminName’)获取到当前登录的用户名,将此作为参数传递给后台调用查询

实现代码:

  • 前端
    //调用api查询技师姓名selectJiShiName(adminName){this.$http({url: `jishi/jishiName/${adminName}`,method: 'get'}).then(res => {console.log(res.data.data)this.jishiName = res.data.dataconsole.log("技师姓名查询成功!")})},
  • 后端
	/*** 根据技师账号查询技师姓名*/@RequestMapping("/jishiName/{adminName}")public R findName(@PathVariable("adminName") String jshizhanghao){String jishiName = jishiService.selectJiShiName(jshizhanghao);return R.ok().put("data", jishiName);}<select id="selectJiShiName" resultType="java.lang.String">select jishixingmingfrom jishiwhere jishigonghao = #{jshizhanghao};</select>

image-20240412105236128

5、分店管理员权限下的分店技师管理页面

实现思路: 根据分店的账号查询分店地址,再将地址作为参数传给后台调用api查询当前分店所属的技师业绩信息

实现代码:

  • 前端
  console.log("分店账号是")console.log(this.$storage.get('adminName'))this.Draw();if (this.fendianName) {this.$http({url: `qiantai/fendianName/${this.$storage.get('adminName')}`,method: 'get'}).then(res => {console.log(res.data.data)this.fendianName = res.data.datathis.$http({url: `jishiyueyejitongji/fendian/xiaofei/${this.fendianName}`,method: 'get'}).then(res => {console.log(res.data)// 读取接口请求成功回传回来的数据var Jishiyueyejitongjis = res.data.Jishiyueyejitongjis// 定义数组,存放一会覆盖echarts图形的数据var data = []// 循环遍历数组,取出数据,转成和data一样的格式for (var i = 0; i < Jishiyueyejitongjis.length; i++) {var d = { name: '', value: 0 }d.name = Jishiyueyejitongjis[i].jishixingmingd.value = Jishiyueyejitongjis[i].yueyejie// 往data数组中添加数据data.push(d)}// 排序,b - a降序——a - b升序data.sort((a, b) => b.value - a.value)// 覆盖data(){}中全局变量的数据this.dataXiaoliang = data// 画出图形this.Draw()}).catch(err => {console.log(err)console.log("后台接口请求失败!")})})this.DrawNian();}else{this.$http({url: `qiantai/fendianName/${this.$storage.get('adminName')}`,method: 'get'}).then(res => {console.log(res.data.data)this.fendianName = res.data.datathis.$http({url: `jishiyueyejitongji/fendian/xiaofei/${this.fendianName}`,method: 'get'}).then(res => {console.log(res.data)// 读取接口请求成功回传回来的数据var Jishiyueyejitongjis = res.data.Jishiyueyejitongjis// 定义数组,存放一会覆盖echarts图形的数据var data = []// 循环遍历数组,取出数据,转成和data一样的格式for (var i = 0; i < Jishiyueyejitongjis.length; i++) {var d = { name: '', value: 0 }d.name = Jishiyueyejitongjis[i].jishixingmingd.value = Jishiyueyejitongjis[i].yueyejie// 往data数组中添加数据data.push(d)}// 排序,b - a降序——a - b升序data.sort((a, b) => b.value - a.value)// 覆盖data(){}中全局变量的数据this.dataXiaoliang = data// 画出图形this.Draw()}).catch(err => {console.log(err)console.log("后台接口请求失败!")})this.DrawNian();})}
  • 后端
/*** 后端年业绩饼状图*/@GetMapping("/fendian/xiaofei/{fendianName}")public Map<String,List<JishinianyejitongjiEntity>> xiaofei(@PathVariable("fendianName") String fendianName){HashMap<String,List<JishinianyejitongjiEntity>> map = new HashMap<>();//TODO 查询此分店下的技师姓名集合List<String> jishiNames = jishiService.selectJishiNamesByFenDian(fendianName);for (int i = 0; i < jishiNames.size(); i++) {System.out.println("技师" + i + "为:" +jishiNames.get(i));}//TODO 在月统计表中查询技师姓名在上述集合中的数据map.put("Jishinianyejitongjis",jishinianyejitongjiService.selectJiShixiaofeixinxis(jishiNames));return map;}

image-20240412154437779


http://www.ppmy.cn/devtools/4059.html

相关文章

正则表达式(1)

文章目录 专栏导读1、match2、匹配目标3、通用匹配4、常用匹配规则表格 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN 数据分析领域优质创作者&#xff0c;专注于分享python数据分析领域知识。 ✍ 本文录入于《python网络爬虫实战教学》&#xff0c;本专栏针对大学生…

Jmeter redis连接测试

Jmeter连接redis获取数据&#xff0c;一直连不上报错。最后只能通过java代码连接测试&#xff0c;最后只能自己动手。 import redis.clients.jedis.*;import java.io.IOException; import java.util.HashSet; import java.util.Set;/*** 单机版的Jedis连接池的用法*/ public c…

React-RTK

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-RTK 目录 1、介绍 2、安装 3、编写RTK使用示例 4、官方提供项目包示例 创建 Redux …

使用【node】创建本地接口

在前端开发的过程中&#xff0c;接口相关的信息一般是由后端处理好返回给前端&#xff0c;但是有时候后端不在的时候想自己写个接口进行测试是非常麻烦的。 node是前端一个不错的写接口工具 一 初始化文件 1 在新建一个空的文件夹node 进入空文件夹在&#xff0c;文件夹的地…

每日两题 / 15. 三数之和 73. 矩阵置零(LeetCode热题100)

15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 先确定一个数t&#xff0c;对于剩下的两个数&#xff0c;要求两数之和为t的负数 三数之和就退化成了两数之和&#xff0c;两数之和可以用双指针 先排序&#xff0c;左右两个指针&#xff0c;指向的数之和大于目标值&…

mysql多表查询

目录 多表关系 一对多&#xff08;多对一&#xff09; 多对多 一对一 多表查询概述 什么是多表查询 例子&#xff1a; 多表查询的分类&#xff1a; 连接查询&#xff1a; 子查询&#xff1a; 内连接 内连接查询语法&#xff1a; 隐式内连接&#xff1a; 显示内连…

linux对网络的监控操作学习--端口、流量、IP

文章目录 linux对网络的监控操作学习--端口、流量、IP理解Netfilter队列设置iptables规则以使用队列使用用户空间程序处理队列中的数据包linux用户空间使用Python实现使用rust实现功能 综合应用注意事项其他实现方式nftablesfirewalldufw (Uncomplicated Firewall)tc (Traffic …

如何实现文件上传到阿里云OSS!!!(结合上传pdf使用)

一、开通阿里云OSS对象存储服务 对象存储 OSS_云存储服务_企业数据管理_存储-阿里云阿里云对象存储 OSS 是一款海量、安全、低成本、高可靠的云存储服务&#xff0c;提供 99.995 % 的服务可用性和多种存储类型&#xff0c;适用于数据湖存储&#xff0c;数据迁移&#xff0c;企…