开发日志2024-04-11

开发日志2024/04/11

1、会员/普通用户预约完成后,技师对应的积分添加预约完成的项目价格添加到统计表的业绩字段中,同时对应的服务次数字段+1

实现代码:

  • 前端
    shHandler(){this.$confirm(`确定操作?`, "提示", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning"}).then(() => {this.$http({url: "huiyuanyuyuexinxi/update",method: "post",data: this.shForm}).then(({ data }) => {if (data && data.code === 0) {this.$message({message: "操作成功",type: "success",duration: 1500,onClose: () => {this.getDataList();this.shDialog()}});} else {this.$message.error(data.msg);}});});},
  • 后端
   /*** 修改*/@RequestMapping("/update")public R update(@RequestBody HuiyuanyuyuexinxiEntity huiyuanyuyuexinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(huiyuanyuyuexinxi);huiyuanyuyuexinxiService.updateById(huiyuanyuyuexinxi);//全部更新//给相应的技师添加对应项目的积分//查询对应的项目所对应的积分数据String jifenByXiangmu = meirongxiangmuService.selectJifenByXiangmu(huiyuanyuyuexinxi.getXiangmumingcheng());//查询对应的技师数据,在此基础上进行修改积分字段int result =  jishiService.UpdateJiShiByMingcheng(huiyuanyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));//TODO 将积分添加到技师月统计和年统计业绩上int res = jishinianyejitongjiService.updateYeJiByMincheng(huiyuanyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));int resYue = jishiyueyejitongjiService.updateYeJiByMincheng(huiyuanyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));//TODO 将统计表中的服务次数都+1int resFuWu = jishinianyejitongjiService.updateFuWuByMincheng(huiyuanyuyuexinxi.getZhidingjishi());int resYueFuWu = jishiyueyejitongjiService.updateFuWuByMincheng(huiyuanyuyuexinxi.getZhidingjishi());return R.ok();}

2、管理员的会员的消费管理和技师的业绩统计管理分店业绩管理

**开发思路:**按照之前的思路将所有的图标汇总到一起

代码实现:

  • 前端
<div class="home"><el-row><el-col :span="12"><div id="myChart" :style="{ width: '600px', height: '600px' }"></div></el-col><el-col :span="12"> <div id="myChartNian" style="height: 500px; width: 600px;"></div></el-col></el-row></div>
------------------
dataXiaoliang: [],
dataNianXiaoliang: [],
----------------    
mounted() {this.Draw();this.$http({url: 'huiyuanyuexiaofeixinxi/xiaofei',method: 'get'}).then(res => {console.log(res.data)// 读取接口请求成功回传回来的数据var Huiyuanyuexiaofeixinxis = res.data.Huiyuanyuexiaofeixinxis// 定义数组,存放一会覆盖echarts图形的数据var data = []// 循环遍历数组,取出数据,转成和data一样的格式for (var i = 0; i < Huiyuanyuexiaofeixinxis.length; i++) {var d = { name: '', value: 0 }d.name = Huiyuanyuexiaofeixinxis[i].huiyuanxingmingd.value = Huiyuanyuexiaofeixinxis[i].yuexiaofeie// 往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();//绘制年销量的图this.$http({url: 'huiyuannianxiaofeixinxi/xiaofei',method: 'get'}).then(res => {console.log(res.data)// 读取接口请求成功回传回来的数据var Huiyuannianxiaofeixins = res.data.Huiyuannianxiaofeixins// 定义数组,存放一会覆盖echarts图形的数据var data = []console.log(Huiyuannianxiaofeixins.length)// 循环遍历数组,取出数据,转成和data一样的格式for (var i = 0; i < Huiyuannianxiaofeixins.length; i++) {var d = { name: '', value: 0 }d.name = Huiyuannianxiaofeixins[i].huiyuanxingmingd.value = Huiyuannianxiaofeixins[i].nianxiaofeie// 往data数组中添加数据data.push(d)}// 排序,b - a降序——a - b升序data.sort((a, b) => b.value - a.value)// 覆盖data(){}中全局变量的数据this.dataNianXiaoliang = data// 画出图形this.DrawNian()}).catch(err => {console.log(err)console.log("后台接口请求失败!")})},      
//绘制饼状图
methods:	Draw() {// 基于准备好的dom,初始化echarts实例let myChart = this.$echarts.init(document.getElementById('myChart'))// 绘制图表myChart.setOption({title: {text: '会员用户月销量统计(饼状图)',x: 'center'},// options配置项tooltip: {trigger: 'item'},legend: {top: '5%',left: 'center'},series: [{name: 'Access From',type: 'pie',radius: ['40%', '70%'],avoidLabelOverlap: false,itemStyle: {borderRadius: 10,borderColor: '#fff',borderWidth: 2},label: {show: false,position: 'center'},emphasis: {label: {show: true,fontSize: 40,fontWeight: 'bold'}},labelLine: {show: false},data: this.dataXiaoliang}]})},DrawNian() {// 基于准备好的dom,初始化echarts实例let myChartNian = this.$echarts.init(document.getElementById('myChartNian'))// 绘制图表myChartNian.setOption({title: {text: '会员用户年销量统计(饼状图)',x: 'center'},// options配置项tooltip: {trigger: 'item'},legend: {top: '7%', //调整图例的位置left: 'center'},series: [{center: ['50%', '60%'], // 调整饼图位置name: 'Access From',type: 'pie',radius: ['40%', '70%'],avoidLabelOverlap: false,itemStyle: {borderRadius: 10,borderColor: '#fff',borderWidth: 2},label: {show: false,position: 'center'},emphasis: {label: {show: true,fontSize: 40,fontWeight: 'bold'}},labelLine: {show: false},data: this.dataNianXiaoliang}]})},
  • 后端
    /*** 后端饼状图*/@GetMapping("/xiaofei")public Map<String,List<MeirongxiangmuniantongjiEntity>> xiaofei(){HashMap<String,List<MeirongxiangmuniantongjiEntity>> map = new HashMap<>();map.put("Xiangmunianyejixinxis",meirongxiangmuniantongjiService.selectAllYonghuyuexiaofeixinxis());return map;}

image-20240411105207602

3、实现用于和会员在前台预约完成后管理员审核后,在普通用户/会员的消费统计页面添加对应的值

**开发思路:**普通用户和会员在预约后,管理员审核完成后将预约的项目的价格加到他们对应的消费额度上

代码实现:

  • 前端

  • 后端
/*** 修改*/@RequestMapping("/update")public R update(@RequestBody YonghuyuyuexinxiEntity yonghuyuyuexinxi, HttpServletRequest request){yonghuyuyuexinxiService.updateById(yonghuyuyuexinxi);//全部更新//给相应的技师添加对应项目的积分//查询对应的项目所对应的积分数据String jifenByXiangmu = meirongxiangmuService.selectJifenByXiangmu(yonghuyuyuexinxi.getXiangmumingcheng());//查询对应的技师数据,在此基础上进行修改积分字段System.out.println("jifenByXiangmu = " + jifenByXiangmu);int result =  jishiService.UpdateJiShiByMingcheng(yonghuyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));System.out.println("result = " + result);System.out.println("zhidingjishi = " + yonghuyuyuexinxi.getZhidingjishi());//将积分添加到技师月统计和年统计业绩上int res = jishinianyejitongjiService.updateYeJiByMincheng(yonghuyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));int resYue = jishiyueyejitongjiService.updateYeJiByMincheng(yonghuyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));//将统计表中的服务次数都+1int resFuWu = jishinianyejitongjiService.updateFuWuByMincheng(yonghuyuyuexinxi.getZhidingjishi());int resYueFuWu = jishiyueyejitongjiService.updateFuWuByMincheng(yonghuyuyuexinxi.getZhidingjishi());//TODO 将项目对应的价格添加到用户的月消费额度和年消费额度//TODO 根据用户预约的项目名称查询对应的价格int xiangmuJiaGe = meirongxiangmuService.selectJiaGeByXiangMuXingMing(yonghuyuyuexinxi.getXiangmumingcheng());//先查询一下用户统计表中有没有要查询的数据,有则更新,无则增加int resXiaoFei =  yonghuyuexiaofeixinxiService.selectYonghuYueXiaoFeie(yonghuyuyuexinxi.getXingming());System.out.println("resXiaoFei = " + resXiaoFei);/*用户月消费*/if (resXiaoFei == 0) {//用户月消费统计表中添加这条数据YonghuyuexiaofeixinxiEntity yonghuyuexiaofeixinxi = new YonghuyuexiaofeixinxiEntity();yonghuyuexiaofeixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());yonghuyuexiaofeixinxi.setZhanghao(yonghuyuyuexinxi.getZhanghao());yonghuyuexiaofeixinxi.setAddtime(new DateTime());//根据预约的姓名查询用户表中对应的性别String sex = putongyonghuService.selectSexByName(yonghuyuyuexinxi.getXingming());yonghuyuexiaofeixinxi.setXingbie(sex);yonghuyuexiaofeixinxi.setXingming(yonghuyuyuexinxi.getXingming());yonghuyuexiaofeixinxi.setYuexiaofeie(xiangmuJiaGe);boolean insert = yonghuyuexiaofeixinxiService.insert(yonghuyuexiaofeixinxi);if (insert) {System.out.println("用户月消费额度增加一条" + insert);}}else{//更新数据yonghuyuexiaofeixinxiService.updateYonghuYueXiaoFeie(yonghuyuyuexinxi.getXingming(), xiangmuJiaGe);}//先查询一下用户统计表中有没有要查询的数据,有则更新,无则增加int resNianXiaoFei =  yonghunianxiaofeixinxiService.selectYonghuNianXiaoFeie(yonghuyuyuexinxi.getXingming());/*用户年消费*/if (resNianXiaoFei == 0) {//用户月消费统计表中添加这条数据YonghunianxiaofeixinxiEntity yonghunianxiaofeixinxi = new YonghunianxiaofeixinxiEntity();yonghunianxiaofeixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());yonghunianxiaofeixinxi.setZhanghao(yonghuyuyuexinxi.getZhanghao());yonghunianxiaofeixinxi.setAddtime(new DateTime());//根据预约的姓名查询用户表中对应的性别String sex = putongyonghuService.selectSexByName(yonghuyuyuexinxi.getXingming());yonghunianxiaofeixinxi.setXingbie(sex);yonghunianxiaofeixinxi.setXingming(yonghuyuyuexinxi.getXingming());yonghunianxiaofeixinxi.setNianxiaofeie(xiangmuJiaGe);boolean insert = yonghunianxiaofeixinxiService.insert(yonghunianxiaofeixinxi);if (insert) {System.out.println("用户年消费额度增加一条" + insert);}}else{//更新数据int updateYonghuNianXiaoFeie = yonghunianxiaofeixinxiService.updateYonghuNianXiaoFeie(yonghuyuyuexinxi.getXingming(), xiangmuJiaGe);System.out.println("updateYonghuNianXiaoFeie = " + updateYonghuNianXiaoFeie);}System.out.println("resNianXiaoFei = " + resNianXiaoFei);return R.ok();}

会员:

  • 后端
   /*** 修改*/@RequestMapping("/update")public R update(@RequestBody HuiyuanyuyuexinxiEntity huiyuanyuyuexinxi, HttpServletRequest request){//ValidatorUtils.validateEntity(huiyuanyuyuexinxi);huiyuanyuyuexinxiService.updateById(huiyuanyuyuexinxi);//全部更新//给相应的技师添加对应项目的积分//查询对应的项目所对应的积分数据String jifenByXiangmu = meirongxiangmuService.selectJifenByXiangmu(huiyuanyuyuexinxi.getXiangmumingcheng());//查询对应的技师数据,在此基础上进行修改积分字段int result =  jishiService.UpdateJiShiByMingcheng(huiyuanyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));//TODO 将积分添加到技师月统计和年统计业绩上int res = jishinianyejitongjiService.updateYeJiByMincheng(huiyuanyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));int resYue = jishiyueyejitongjiService.updateYeJiByMincheng(huiyuanyuyuexinxi.getZhidingjishi(),Integer.parseInt(jifenByXiangmu));//TODO 将统计表中的服务次数都+1int resFuWu = jishinianyejitongjiService.updateFuWuByMincheng(huiyuanyuyuexinxi.getZhidingjishi());int resYueFuWu = jishiyueyejitongjiService.updateFuWuByMincheng(huiyuanyuyuexinxi.getZhidingjishi());//TODO 将项目对应的价格添加到会员的月消费额度和年消费额度//TODO 根据会员预约的项目名称查询对应的价格int xiangmuJiaGe = meirongxiangmuService.selectJiaGeByXiangMuXingMing(huiyuanyuyuexinxi.getXiangmumingcheng());//先查询一下用户统计表中有没有要查询的数据,有则更新,无则增加int resHuiYuanXiaoFei =  huiyuanyuexiaofeixinxiService.selectHuiYuanYueXiaoFeie(huiyuanyuyuexinxi.getHuiyuanxingming());System.out.println("resHuiYuanXiaoFei的值为:" + resHuiYuanXiaoFei);/*用户月消费*/if (resHuiYuanXiaoFei == 0) {//用户月消费统计表中添加这条数据HuiyuanyuexiaofeixinxiEntity huiyuanyuexiaofeixinxi = new HuiyuanyuexiaofeixinxiEntity();huiyuanyuexiaofeixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());huiyuanyuexiaofeixinxi.setHuiyuanzhanghao(huiyuanyuyuexinxi.getHuiyuanzhanghao());huiyuanyuexiaofeixinxi.setAddtime(new DateTime());//根据预约的姓名查询用户表中对应的性别String sex = huiyuanService.selectSexByName(huiyuanyuyuexinxi.getHuiyuanxingming());huiyuanyuexiaofeixinxi.setXingbie(sex);huiyuanyuexiaofeixinxi.setHuiyuanxingming(huiyuanyuyuexinxi.getHuiyuanxingming());huiyuanyuexiaofeixinxi.setYuexiaofeie(xiangmuJiaGe);boolean insert = huiyuanyuexiaofeixinxiService.insert(huiyuanyuexiaofeixinxi);if (insert) {System.out.println("会员的月消费额度数据增加条数为:" + insert + "条");}}else{//更新数据huiyuanyuexiaofeixinxiService.updateHuiYuanYueXiaoFeie(huiyuanyuyuexinxi.getHuiyuanxingming(), xiangmuJiaGe);}//先查询一下用户统计表中有没有要查询的数据,有则更新,无则增加int resHuiYuanNianXiaoFei =  huiyuannianxiaofeixinxiService.selectHuiyuanNianXiaoFeie(huiyuanyuyuexinxi.getHuiyuanxingming());/*用户年消费*/if (resHuiYuanNianXiaoFei == 0) {//用户月消费统计表中添加这条数据HuiyuannianxiaofeixinxiEntity huiyuannianxiaofeixinxi = new HuiyuannianxiaofeixinxiEntity();huiyuannianxiaofeixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());huiyuannianxiaofeixinxi.setHuiyuanzhanghao(huiyuanyuyuexinxi.getHuiyuanzhanghao());System.out.println("会员账号是:" + (huiyuanyuyuexinxi.getHuiyuanzhanghao()));huiyuannianxiaofeixinxi.setAddtime(new DateTime());//根据预约的姓名查询用户表中对应的性别String sex = huiyuanService.selectSexByName(huiyuanyuyuexinxi.getHuiyuanxingming());huiyuannianxiaofeixinxi.setXingbie(sex);huiyuannianxiaofeixinxi.setHuiyuanxingming(huiyuanyuyuexinxi.getHuiyuanxingming());huiyuannianxiaofeixinxi.setNianxiaofeie(xiangmuJiaGe);boolean insert = huiyuannianxiaofeixinxiService.insert(huiyuannianxiaofeixinxi);if (insert) {System.out.println("会员年消费额度增加条数为:" + insert + "条");}}else{//更新数据int updateYonghuNianXiaoFeie = huiyuannianxiaofeixinxiService.updateHuiYuanNianXiaoFeie(huiyuanyuyuexinxi.getHuiyuanxingming(), xiangmuJiaGe);System.out.println("updateYonghuNianXiaoFeie的值为:" + updateYonghuNianXiaoFeie);}System.out.println("resHuiYuanNianXiaoFei的值为:" + resHuiYuanNianXiaoFei);return R.ok();}
 后端```java/*** 后端查询所有的所有的技师工号*/@RequestMapping("/getJiShiGongHaoList")public R getJiShiGongHaoList() {List<String> result = jishiService.getJiShiGongHaoList();return R.ok().put("data", result);}/*** 后端查询根据技师工号查询技师姓名*/@RequestMapping("/getJiShiGongName")public R getJiShiGongName(String jishigonghao) {List<String> result = jishiService.getJiShiGongName(jishigonghao);return R.ok().put("data", result);}
--------------
<select id="getJiShiGongHaoList" resultType="java.lang.String">select distinct jishigonghao from jishi</select><select id="getJiShiGongName" resultType="java.lang.String">select distinct jishixingming from jishiwhere  jishigonghao = #{jishigonghao}
</select>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/808879.shtml

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

相关文章

HarmonyOS实战开发-拼图、如何实现获取图片,以及图片裁剪分割的功能。

介绍 该示例通过ohos.multimedia.image和ohos.multimedia.mediaLibrary接口实现获取图片&#xff0c;以及图片裁剪分割的功能。 效果预览 使用说明&#xff1a; 使用预置相机拍照后启动应用&#xff0c;应用首页会读取设备内的图片文件并展示获取到的第一个图片&#xff0c;…

go的option模式

go的option模式 1.函数option 把option定义为函数。 package mainimport "fmt"// ServerConfig 定义服务器配置 type ServerConfig struct {Port intTimeout int }// Option 定义函数选项类型 type Option func(*ServerConfig)// WithPort 设置服务器端口 // 这…

word中插入mathtype版的符号后,行间距变大解决方法

问题 解决方法 选中该段&#xff0c;设置固定值行距。如果是宋体&#xff0c;小四&#xff0c;1.25行距&#xff0c;那么固定值就为20磅。 成功解决。

ELK 企业级日志分析 ELFK

一 ELK 简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源 工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 1 ElasticSearch&#xff1a; 是基于Lucene&#xff08;一个全文检索引擎的…

微服务支持平台--限流算法

微服务支持平台–限流 限流算法 限流算法&#xff1a; 算法含义备注令牌桶以恒定速度往一个桶内增加令牌&#xff0c;当桶内令牌满了后&#xff0c;就停止增加令牌适用于流量比较平稳的情况&#xff0c;只能承受小的突发流量滑动窗口将时间周期分为N个小周期&#xff0c;分别记…

Java后端基础知识(String类型)

String类的创建方式 String的特点 1.引用数据类型 2.是final类&#xff0c;一旦创建内容不可修改 3.String类对象相等的判断用equals&#xff08;&#xff09;方法完成&#xff0c;是判断地址数值 String的创建方式 1.直接创建 String str"hello";注意&#xff…

Android进程类型及优先级(前台进程/可见进程/服务进程/缓存进程/空进程)

Android进程类型及优先级 一、Android 进程优先级 Android 进程优先级 :前台进程 > 可见进程 >服务进程 >缓存进程 > 空进程 ; 关键优先级进程 : 活动进程 ;高优先级进程 : 可见进程 , 服务进程 ;低优先级进程 : 后台进程 , 空进程 ; Android 系统中会尽量保证…

09 Php学习:数组和排序

数组概念 在PHP中&#xff0c;数组是一种复合数据类型&#xff0c;用于存储多个值。以下是关于PHP数组的详细解释&#xff1a; 索引数组&#xff1a;索引数组是最基本的数组类型&#xff0c;其中每个元素都有一个唯一的数字索引&#xff0c;从0开始递增。 关联数组&#xff…

Android Studio开发学习(七)———RelativeLayout(相对布局)

在上期中我们对LinearLayout进行了详细的解析&#xff0c;LinearLayout也是我们用的比较多的一个布局,更多的时候更钟情于它的 weight(权重) 属性&#xff0c;等比例划分&#xff0c;对屏幕适配还是 帮助蛮大的;但是使用LinearLayout的时候也有一个问题&#xff0c;就是当界面比…

【蓝桥杯每日一题】4.11 更小的数(不用区间DP)

题目来源&#xff1a; 蓝桥杯 2023 省 A]更小的数 - 洛谷 这题只需要用到双指针就OK~ 思路1&#xff1a; 翻转数组的子数组&#xff0c;然后进行比较大小将翻转后的数组存储在字符串 k k k中&#xff0c;然后将字符串 k k k与字符串 a a a进行逐一元素比较&#xff08;因为…

橘子学JDK之JMH-02(BenchmarkModes)

一、案例二代码 这次我们来搞一下官网文档的第二个案例&#xff0c;我删除了一些没用的注释&#xff0c;然后对代码做了一下注释的翻译&#xff0c;可以看一下意思。 package com.levi;import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.runner.Runner; import …

MySQL优化常见面试题

文章目录 1.在MySQL中如何定位慢查询2.SQL语句执行很慢&#xff0c;如何分析3.什么是索引4.索引的底层结构了解过嘛5.B树和B树的区别是什么6.什么是聚簇索引什么是非聚簇索引7.什么是回表查询8.什么是覆盖索引9.MySQL超大分页如何处理10.索引创建原则有哪些11.什么情况下索引会…

【算法练习】29:插入排序学习笔记

一、插入排序的算法思想 原理&#xff1a;将一个无序的数据序列逐步转化为有序序列。算法将待排序的数组分为两个部分已排序部分和未排序部分。 时间复杂度&#xff1a;插入排序的时间复杂度在最坏、平均和最好情况下的表现相同&#xff0c;均为 &#xff0c;其中 n 是待排序数…

极狐GitLab对接OAuth2实现SSO

本文作者&#xff1a;极狐(GitLab) 高级解决方案架构师 武让 GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 企…

Python处理PDF:在PDF文档中插入页眉和页脚

在处理篇幅较长、结构复杂的PDF文档时&#xff0c;页眉和页脚的设计与插入就显得尤为重要。它们不仅扮演着美化文档、提升专业度的角色&#xff0c;更承担了导航指引、信息标注的重要功能。 页眉通常用于展示文档的标题或章节名称&#xff0c;有助于读者在翻阅过程中迅速定位所…

Java - 赋值运算符

在这个实战中&#xff0c;我们将学习赋值运算符的使用方法。首先&#xff0c;我们将介绍简单赋值运算符的基本概念和语法格式。然后&#xff0c;我们将通过案例演示来加深对赋值运算符的理解。接下来&#xff0c;我们将对比Java和Python这两种不同的编程语言&#xff0c;探讨它…

spring rest

controller 类的注解 Controller RequestMapping(“/api/ads”)类的方法的注解 ResponseBody GetMapping(“/postAds/{ad_id}”) - 查 PostMapping() - 增 PutMapping() - 改 DeleteMapping() PatchMapping()类的方法的参数的注解 PathVariable() RequestBody() RequestParam()…

移动端网络库行业动态-整理

欢迎各位同行补充。 阿里&#xff1a; 2023.12 淘宝移动端统一网络库的架构演进和弱网优化技术实践 http://www.52im.net/thread-4470-1-1.html 网易&#xff1a; cronet 多端统一&#xff0c;2021.11 网易云音乐网络库跨平台化实践&#xff1a;https://segmentfault.com/a/1…

电能质量管理解决方案探讨 安科瑞 许敏

电能质量在线监测装置 本办法对发电企业&#xff08;包括分布式电源&#xff09;、电网企业、用电企业的电能质量管理均有明确要求&#xff0c;要求在发电企业并网点、电网企业非线性设施、用电企业公共连接点设置电能质量监测装置&#xff0c;这会促进市场对电能质量在线监测…

理解 编译和链接

目录 1. 翻译环境和运行环境 2. 翻译环境 2.1 预处理&#xff08;预编译&#xff09; 2.2 编译 2.2.1 词法分析&#xff1a; 2.2.2 语法分析 2.2.3 语义分析 2.3 汇编 2.4 链接 3. 运行环境 1. 翻译环境和运行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同…