开发日志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.mzph.cn/news/813802.shtml

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

相关文章

【C++入门】内联函数、auto与基于范围的for循环

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

「2024」React 状态管理入门

概念 简单来说&#xff0c;状态指的是某一时刻应用中的数据或界面的呈现。这些数据可能包括用户填写表单的信息、应用内的用户偏好设置、应用的页面/路由状态、或者任何其他可能改变UI的信息。 状态管理是前端开发中处理用户界面(UI)状态的过程&#xff0c;在复杂应用中尤其重…

js获取年月份

一、date 如何使用、如何获取年月日时分秒、时间戳、如何获取指定日期的时间戳或周几 1..Date 对象用于处理日期和时间。 创建 Date 对象的语法&#xff1a; var myDatenew Date() 获取年月日时分秒&#xff1a; // 格式化日对象 const getNowDate () > {let date new …

MATLAB 构建协方差矩阵,解算特征值和特征向量(63)

MATLAB 局部点云构建协方差矩阵,解算特征值和特征向量(63) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 对于某片有待分析的点云,我们希望构建协方差矩阵,计算特征值和特征向量,这是很多算法必要的分析方法,这里提供完整的计算代码(验证正确) !!! 特别需要注意…

【docker-compose】安装及配置

目录 安装在线安装离线安装 配置mysql5.7bitnami/mysql8.3redisweb前后台分离部署前端https(SSL)配置nginx动态传参资源限制&#xff1a;内存、cpunacossentinelgateway 问题汇总iptables No chain/target/match by that namedocker-compose.yml修改mysql密码&#xff0c;重启后…

Linux上的可执行文件在Windows上是不能运行的

一、概要 1、可执行文件的格式 Linux上的可执行文件是elf格式的 Windows上的可执行文件是exe格式的 Linux上的可执行文件在Windows上是不能运行的 2、程序的普通构建与静态构建 普通构建&#xff1a; 一个.c文件&#xff0c;用gcc命令编译成可执行文件(程序)&#xff0c…

[lesson22]对象的销毁

对象的销毁 对象的销毁 生活中的对象都是被初始化后才上市的 生活中的对象被销毁前会做一些清理工作 一般而言&#xff0c;需要销毁的对象都应该做清理 解决方案 为每个类都提供一个public的free函数对象不在需要时立即调用free函数进行清理 存在的问题 free只是一个普通…

STM32H7的MPU学习和应用示例

STM32H7的MPU学习记录 什么是MPU&#xff1f;MPU的三种内存类型内存映射MPU保护区域以及优先级 MPU的寄存器XN位AP位TEX、C、B、S位SRD 位SIZE 位CTRL 寄存器的各个位 示例总结 什么是MPU&#xff1f; MPU&#xff08;Memory Protection Unit&#xff0c;内存保护单元&#xf…

文献分享:《基于中国人群的BRCA胚系突变筛查专家共识(2024年版)》

&#xff3b;摘要&#xff3d; BRCA基因&#xff08;包括BRCA1和BRCA2&#xff09;的胚系突变是家族性乳腺癌、卵巢癌等肿瘤的核心风险因素。在人群中&#xff0c;特别是已有肿瘤家族史的高危人群中&#xff0c;BRCA基因检测可以发挥预防性管理作用&#xff0c;有助于降低此类遗…

paddle测试安装之再入深坑

bug如下: W0410 17:48:29.763386 11350 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.7, Runtime API Version: 11.7 W0410 17:48:29.763548 11350 dynamic_loader.cc:307] The third-party dynamic library (libcud…

【C语言__编译和链接__复习篇2】

目录 前言 一、翻译环境和运行环境 二、翻译环境 2.1 预处理 2.1 编译 2.1.1 词法分析 2.1.2 语法分析 2.1.3 语义分析 2.2 汇编 2.3 链接 三、运行环境 四、简答主线问题 前言 本篇主要讨论以下问题&#xff1a; 主线问题&#xff1a; 1. 源文件(.c)如何转换成(.exe)文件…

每日一题---OJ题: 环形链表 II

片头 嗨! 小伙伴们,大家好! 我们又见面啦,在上一篇中,我们学习了环形链表I, 今天我们继续来打boss,准备好了吗? Ready Go ! ! ! emmm,同样都是环形链表,有什么不一样的地方呢? 肯定有, 要不然也不会一个标记为"简单" ,一个标记为"中等"了,哈哈哈哈哈 …

·13·1dawwd

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

轮腿机器人-五连杆正运动学解算

轮腿机器人-五连杆与VMC 1.五连杆正运动学分析2.参考文献 1.五连杆正运动学分析 如图所示为五连杆结构图&#xff0c;其中A&#xff0c;E为机器人腿部控制的两个电机&#xff0c;θ1,θ4可以通过电机的编码器测得。五连杆控制任务主要关注机构末端C点位置&#xff0c;其位置用直…

Zotero插件ZotCard中AI-NNDL文献笔记卡分享及卡片使用方法

一、卡片社区分享 github&#xff1a;ZotCard插件AI-NNDL论文卡片模板 Issue #67 018/zotcard (github.com) 二、卡片效果预览 ZotCard插件AI-NNDL论文卡片模板是关于人工智能神经网络与深度学习论文的笔记卡片&#xff0c;效果预览如下图&#xff1a; 三、卡片代码 经过了…

Pointnet++改进卷积系列:全网首发DualConv轻量级深度神经网络的双卷积核 |即插即用,提升特征提取模块性能

简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入DualConv,提升性能。3.专栏持续更新,紧随最新的研究内容。 目录 1.理论介绍 2.修改步骤 2.1 步骤一 2.2 步骤二 2.3 步

SAP CAP篇十七:写个ERP的会计系统吧,Part IV

本文目录 本系列文章目标开发步骤数据库表设计借贷初始化数据 会计凭证 Service 定义生成Fiori App更新CDS AnnotationApp运行 本系列文章 SAP CAP篇一: 快速创建一个Service&#xff0c;基于Java的实现 SAP CAP篇二&#xff1a;为Service加上数据库支持 SAP CAP篇三&#xff…

在ORACLE中找出某列非数字类型的数据

在ORACLE中找出某列非数字类型的数据 使用正则表达式判断非数字值 在Oracle中&#xff0c;我们可以使用正则表达式来判断一个值是否为非数字。正则表达式提供了一种强大的模式匹配和搜索功能&#xff0c;通过匹配数字字符来判断是否为数字。以下是使用正则表达式判断非数字值的…

设计模式-里氏替换原则

OO中继承性的思考和说明 继承包含这样一层含义:父类中凡是已经实现好的方法&#xff0c;实际上是在设定规范和契约&#xff0c;虽然它不强制要求所有的子类必须遵循这些契约&#xff0c;但是如果子类对这些已经实现的方法任意修改&#xff0c;就会对整个继承体系造成破坏。继承…

HarmonyOS分布式应用框架深入解读

随着越来越多设备的智能化&#xff0c;在多设备场景下应用开发面临以下挑战&#xff1a;从多设备的形态差异&#xff08;不同大小、不同分辨率、不同形状的屏幕&#xff0c;多样化的交互方式–按钮、触屏、键盘、语音、手势等&#xff09;&#xff0c;多设备的能力差异&#xf…