开发日志2024-04-12

news2024/11/23 4:16:18

开发日志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.data
        console.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 jishixingming
        from jishi
        where 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.data
      this.$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].jishixingming
          d.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.data
      this.$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].jishixingming
          d.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.coloradmin.cn/o/1588749.html

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

相关文章

智算时代的基础设施如何实现可继承可演进?浪潮云海发布 InCloud OS V8 新一代架构平台

从 2023 年开始持续火爆的 AIGC 正在加速落地应用&#xff0c;为全行业带来生产生活效率的变革与升级。面对数字化转型与智能化转型&#xff0c;对于技术团队来说&#xff0c;既要根据业务与 AI 应用去部署以云为基础的 AI 算力&#xff0c;又要与已有数据和系统&#xff08;甚…

网络流量分析与控制

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计5477字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

架构设计参考项目系列主题:新零售SaaS架构:客户管理系统架构设计

什么是客户管理系统? 客户管理系统,也称为CRM(Customer Relationship Management),主要目标是建立、发展和维护好客户关系。 CRM系统围绕客户全生命周期的管理,吸引和留存客户,实现缩短销售周期、降低销售成本、增加销售收入的目的,从而提高企业的盈利能力和竞争力。 …

YOLOV5 分类:利用yolov5进行图像分类

1、前言 之前介绍了yolov5的目标检测示例,这次将介绍yolov5的分类展示 目标检测:YOLOv5 项目:训练代码和参数详细介绍(train)_yolov5训练代码的详解-CSDN博客 yolov5和其他网络的性能对比 yolov5分类的代码部分在这 2、数据集准备 yolov5分类的数据集就是常规的摆放方式…

PyCharm远程链接AutoDL

AutoDL使用方法&#xff1a; Step1&#xff1a;确认您安装的PyCharm是社区版还是专业版&#xff0c;只有专业版才支持远程开发功能。 Step2&#xff1a;开机实例 复制自己实例的SSH指令&#xff0c;比如&#xff1a;ssh -p 38076 rootregion-1.autodl.com 在ssh -p 38076 roo…

AWS CloudFront + Route53 + EC2 + Certificate Manager

CloudFront Route53 EC2 Certificate Manager 教程 先理解它是怎么运转的 用户请求Route53解析到CloudFront&#xff0c;CloudFront解析EC2也就是资源。 了解了运作&#xff0c;接下来就一步步实现 首先处理CloudFront解析资源EC2 EC2是服务器&#xff0c;并不是资源&…

SQLite从出生到现在(发布历史记录)(二十二)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;从 SQLite 3.5.9 迁移到 3.6.0&#xff08;二十一&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 引言&#xff1a; SQLite拥有别人无法比拟的装机量&#xff0c;究竟什么成就了SQLite呢&#xff0c;本…

uni-app调用苹果登录,并获取用户信息

效果 模块配置 dev中的配置 需要开启登录的权限&#xff0c;然后重新下载配置文件&#xff0c;发布打包基座&#xff0c;再运行程序 代码 <button click"appleLogin">苹果登录</button>function appleLogin() {uni.login({provider: apple,success: …

预印本仓库ArXiv——防止论文录用前被别人剽窃

文章目录 一、什么是预印本二、什么是ArXiv2.1 ArXiv的领域2.2 如何使用 一、什么是预印本 预印本&#xff08;Preprint&#xff09;是指科研工作者的研究成果还未在正式出版物上发表&#xff0c;而出于和同行交流目的自愿先在学术会议上或通过互联网发布的科研论文、科技报告…

使用了代理IP怎么还会被封?代理IP到底有没有效果?

代理IP作为一种网络工具&#xff0c;被广泛应用于各种场景&#xff0c;例如网络爬虫、海外购物、规避地区限制等。然而&#xff0c;很多用户在使用代理IP的过程中却发现自己的账号被封禁&#xff0c;这让他们不禁产生疑问&#xff1a;使用了代理IP怎么还会被封&#xff1f;代理…

前端开发攻略---简化响应式设计:利用 SCSS 优雅管理媒体查询

1、演示 2、未优化前的代码 .header {width: 100px;height: 100px;background-color: red; } media (min-width: 320px) and (max-width: 480px) {.header {width: 10px;} } media (min-width: 320px) and (max-width: 480px) {.header {height: 20px;} } media (min-width: 48…

Pygame教程10:在背景图片上,添加一个雪花特效

------------★Pygame系列教程★------------ Pygame经典游戏&#xff1a;贪吃蛇 Pygame教程01&#xff1a;初识pygame游戏模块 Pygame教程02&#xff1a;图片的加载缩放旋转显示操作 Pygame教程03&#xff1a;文本显示字体加载transform方法 Pygame教程04&#xff1a;dra…

【银行测试】性能瓶颈出现崩溃怎么办?支付类测试关注点整理...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、银行系统线上因…

基于springboot实现桂林旅游景点导游平台管理系统【项目源码+论文说明】

基于springboot实现桂林旅游景点导游平台管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了桂林旅游景点导游平台的开发全过程。通过分析桂林旅游景点导游平台管理的不足&#xff0c;创建了一个计算…

速率再次翻倍!现有SSD显卡又要被强制换代了

去年 AMD Ryzen 7000 和 Intel 第 13 代 CPU 发布的同时&#xff0c;消费级的 PCI-E 5.0 平台出现在了大众视野。 这个用了快 20 年的接口虽然外形上似乎没变过、新老平台通吃&#xff0c;但其实内在已更新了好多个版本了。 和 3.0 换 4.0 一样&#xff0c;5.0、6.0 换代只是时…

全国火情预报卫星遥感应用方案

一、引言 火情预报应急卫星遥感解决方案是一种利用卫星遥感技术进行火灾预警和应急响应的方法。该方案通过实时监测和分析森林、草原等地区的火情信息&#xff0c;为火灾预警和应急响应提供科学依据&#xff0c;有效减少火灾造成的损失。本技术文档将介绍火情预报应急卫…

使用echarts控件,小程序分包处理上传失败

原因&#xff1a;在小程序中想要使用echarts控件&#xff0c;但是上传代码失败&#xff0c;错误码为主包超过2.5M&#xff0c;基于此&#xff0c;我们使用分包处理&#xff0c;并上传版本。 错误&#xff1a; 使用echarts&#xff1a;在小程序中引入echarts相关文件。 解决方式…

毕设(三)——nb-lot与onenet通信

文章目录 一、前言二、nb-lot与onenet的连接2.1 创建产品2.2 创建设备2.3 连接2.4 发送数据 三、onenet的数据可视化 刚刚看了一个关于nb-lot的视频&#xff0c;我看到up是用onenet原生的GUI就能做到数据的显示&#xff0c;十分亮眼 主要是它能把地图也一起显示出来&#xff0c…

【JAVA基础篇教学】第十篇:Java中Map详解说明

博主打算从0-1讲解下java基础教学&#xff0c;今天教学第十篇&#xff1a;Java中Map详解说明。 在 Java 编程中&#xff0c;Map 接口代表了一种键值对的集合&#xff0c;每个键对应一个值。Map 接口提供了一系列操作方法&#xff0c;可以方便地对键值对进行增删改查等操作。本…