开发日志2024-04-12

开发日志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.rhkb.cn/news/307951.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】图像超分辨

案例 7&#xff1a;图像超分辨 相关知识点&#xff1a;生成对抗网络、图像处理&#xff08;PIL&#xff09;和可视化&#xff08;matplotlib&#xff09; 1 任务目标 1.1 任务和数据简介 ​ 本次案例将使用生成对抗网络来实现 4 倍图像超分辨任务&#xff0c;输入一张低分辨…

中级物流师、高级物流师资格认证考试大纲《物流管理实务》

物流管理实务 第一章 物流市场调查 一、市场调查基本知识 二、物流市场调研 三、物流市场预测 四、物流市场调研报告 第二章 仓库规划与设计 一、仓储规划概述 二、仓库规模和数量规划 三、仓库选址规划 四、仓库的结构与布局 五、自动化立体仓库的规划与设计 第…

微信小程序报错——“errno“: 600001, “errMsg“: “request:fail -2:net::ERR_FAILED“

bug现象 微信小程序体验版和真机调试 进入小程序的时候接口就出现了这个报错 "errno": 600001, "errMsg": "request:fail -2:net::ERR_FAILED" 排查 检查是证书过期还是证书链不完整 证书的信任链完整问题&#xff0c;可以在 亚数信息-SSL/TLS安…

安装ODBC方法

1、运行 搜索 ODBC数据源管理程序 32位或者 64位 2、在用户DSN或者系统DSN选择添加&#xff08;建议前者&#xff09;&#xff0c;此处以添加access数据库的odbc驱动为例 3、安装成功

Unity让地图素材遮挡人物

点击编辑/项目设置/图形&#xff0c;透明度排序模式设置自定义轴&#xff0c;透明度排序轴Y设置为1其他为0。 此时人物和地图素材的图层排序相等&#xff0c;当人物的高度大于地图素材时&#xff0c;人物则被遮挡。

锚框(anchor box)

目标检测算法通常会在输入图像中抽样大量的区域&#xff0c;然后判断这些区域中是否包含我们感兴趣的目标&#xff0c;并调整区域边界&#xff0c;从而更准确地预测目标的真实边界框&#xff08;ground-truth bounding box)。不同的模型所使用的区域抽样方法可能不同。这里我们…

三小时零基础入门微信扫码点餐小程序 手把手带你开发一款云开发版点餐软件,店铺地图导航,外卖小程序,用户端和后厨端都有

从今天开始带领大家实现一款云开发版的点餐小程序 视频讲解&#xff1a;《云开发后台微信扫码点餐小程序cms网页管理后台》 技术选型 1&#xff0c;前端 微信小程序原生框架cssJavaScript 2&#xff0c;管理后台 云开发Cms内容管理系统web网页 3&#xff0c;数据后台 小…

【STL】list

目录 1. list的使用 1.1 list的构造 1.2 list iterator的使用 1.3 list capacity 1.4 list element access 1.5 list modifiers 1.6 list的迭代器失效 2. list的模拟实现 3. list与vector的对比 1. list的使用 1.1 list的构造 1.2 list iterator的使用 1. begin与end为…

MySQL前缀索引(3/16)

前缀索引 前缀索引&#xff1a;MySQL支持前缀索引&#xff0c;允许定义字符串的一部分作为索引。如果不指定前缀长度&#xff0c;索引将包含整个字符串。前缀索引可以节省空间&#xff0c;但可能会增加查询时的记录扫描次数&#xff08;因为会查询到多个前缀相同的数据&#x…

4.9QT

完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密码不匹配&#xf…

Redis数据持久化 AOF RDB

Redis数据持久化 AOF RDB 1、单点 redis 的问题2、主从复制2.1 命令传播 3、Redis的持久化3.1 AOF写回策略重写机制后台重写 3.2 RDB&#xff08;默认方式&#xff09;RDB 方式&#xff1a;执行快照时&#xff0c;数据能被修改吗&#xff1f;RDB 方式总结 3.3 RDB 和 AOF 组合&…

【springboot开发】MVC和SSM

前言&#xff1a;关于MVC和SSM基本内容的梳理&#xff0c;以及两者之间的关系。 文章目录 1. 三层架构2. MVC3. SSM 1. 三层架构 三层架构是指&#xff1a; 视图层view&#xff08;表现层&#xff09;: 用于显示数据和接收用户输入的数据&#xff0c;为用户提供一种交互式操作…

684. 冗余连接

684. 冗余连接 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a;错误经验吸取 原题链接&#xff1a; 684. 冗余连接 https://leetcode.cn/problems/redundant-connection/description/ 完成情况&#xff1a; 解题思路&#xff1a; 这段…

[react优化] 避免组件或数据多次渲染/计算

代码如下 点击视图x➕1,导致视图更新, 视图更细导致a也重新大量计算!!这很浪费时间 function App() {const [x, setX] useState(3)const y x 2console.log(重新渲染, x, y);console.time(timer)let a 0for (let index 0; index < 1000000000; index) {a}console.timeE…

论文阅读AI工具链

文献检索 可以利用智谱清言来生成合适的文献检索式&#xff0c;并根据需要不断调整。 谷歌学术 在Google Scholar中进行检索时&#xff0c;您可以使用类似的逻辑来构建您的搜索式&#xff0c;但是语法会有所不同。Google Scholar的搜索框接受普通的文本搜索&#xff0c;但是…

面试-数据库基础以及MySql、ClickHost、Redis简介

面试-数据库基础以及MySql、ClickHost、Redis简介 0.数据完整性1.数据库并发控制1.1事物1.2 并发读写错误1.3 锁1.3.1 乐观锁与悲观锁1.3.2 共享锁和排他锁1.3.3 行锁与表锁1.3.4 意向锁 1.4 封锁协议与隔离级别1.5 MVCC1.5.1 概念1.5.2 当前读与快照读1.5.3 MVCC in InnoDB 2.…

基于 RisingWave 和 ScyllaDB 构建事件驱动应用

概览 在构建事件驱动应用时&#xff0c;人们面临着两大挑战&#xff1a;1&#xff09;低延迟处理大量数据&#xff1b;2&#xff09;实现流数据的实时摄取和转换。 结合 RisingWave 的流处理功能和 ScyllaDB 的高性能 NoSQL 数据库&#xff0c;可为构建事件驱动应用和数据管道…

数字乡村探索:引领农村未来发展新方向——科技创新赋能乡村现代化与农民生活品质提升之旅

目录 一、数字乡村的内涵与特点 二、数字乡村的探索进展 三、数字乡村面临的挑战与机遇 四、数字乡村的未来发展方向与路径 五、数字乡村助力农村产业升级 六、数字乡村促进城乡融合发展 七、数字乡村激发农民创新创业活力 八、数字乡村提升农民获得感和幸福感 九、展…

操作系统(第四周 第二堂)

目录 回顾 进程运行 进程的创建 进程的工作 举例 进程的删除 举例1&#xff08;走到return 0结束&#xff09; 举例2&#xff08;利用exit&#xff08;1&#xff09;结束&#xff09; 进程通信 共享内存 生产者算法 消费者算法 消息传递 定义 算法实现 总结 回顾…

Redis:发布和订阅

文章目录 一、介绍二、发布订阅命令 一、介绍 Redis的发布和订阅功能是一种消息通信模式&#xff0c;发送者&#xff08;pub&#xff09;发送消息&#xff0c;订阅者&#xff08;sub&#xff09;接收消息。这种功能使得消息发送者和接收者不需要直接建立连接&#xff0c;而是通…