首页
关于
Search
1
亿乐系统晓风助手,亿乐在线支付配置教程(绕授权版亿乐)
2,574 阅读
2
晓信在线客服2.0:晓信网页客服使用教程
2,558 阅读
3
晓风在线客服1.0版本安装教程
1,600 阅读
4
晓风货源对接助手,批量上架助手安装教程,小储在线商城插件
1,296 阅读
5
亿乐晓风版,卡易信晓风版对接插件安装教程
891 阅读
默认分类
新闻
教程
艺术
解决问题
接口文档
技术
四号码支付
登录
/
注册
Search
标签搜索
《与凤行》
电视剧
赵丽颖
林更新
晓风
累计撰写
44
篇文章
累计收到
135
条评论
首页
栏目
默认分类
新闻
教程
艺术
解决问题
接口文档
技术
四号码支付
页面
关于
搜索到
44
篇与
的结果
2025-10-23
人生的意义--禁止转载
0-15岁:有爸爸妈妈陪着我,爱着我,这就是我来此的意义15-25岁:可以吃自己喜欢吃的,可以玩自己喜欢玩的,可以讨厌自己所讨厌的,可以追逐自己所期盼的一切事物,这就是我人生的意义25-35岁:重复做着自己应该做而无论喜欢或讨厌的事情,遗憾那些本可以抓住却松手错过的人和物,幻想那些从未拥有却自以为能带来圆满的东西。35-45岁:一家人的阖家安康,幸福美满,这就是最美的意义45岁-70岁:人生,就是一场漫长的目送。我看着亲人离去,看着朋友走散,看着爱人老去,而我,将一个人继续审视这个世界70岁以上:我来过,这就是意义本身一狗蛋蹲在院子里的石阶上,捧着一碗热腾腾的红烧肉,油光在阳光下闪着,像撒了一层碎金。母亲坐在旁边,一边往他碗里夹肉,一边念叨:“多吃点,长身体呢,瘦得跟豆芽菜似的。”她说话时眉头微皱,语气严厉,可眼神却软得像春水,藏不住的疼爱。父亲坐在屋檐下的藤椅里,手里拿着一份报纸,看似专注,实则目光时不时从报纸上方溜下来,落在狗蛋身上。狗蛋吃得满嘴是油,一不小心把汤汁滴在裤子上,母亲立刻站起身要拿抹布,父亲却先一步放下报纸,默默从茶几抽屉里抽出一张纸巾,递了过去。他什么也没说,只是轻轻咳了一声,又把头埋进报纸里。狗蛋不懂那些复杂的道理,他只知道,有妈妈做的红烧肉,有爸爸悄悄递来的纸巾,有奶奶晒在院子里的被子香,有巷口那棵老槐树下能和伙伴们疯跑一整天的自由。他可以吃自己喜欢吃的,可以玩自己爱玩的,也可以对着作业本发呆,讨厌自己所讨厌的。他咧嘴一笑,露出缺了一颗的门牙,心想:有爸爸妈妈陪着我,爱着我,能做自己想做的事——这,大概就是我来此的意义吧。二小李站在写字楼第十七层的玻璃幕墙前,窗外城市的灯火如星河倾泻,而他的倒影映在玻璃上,像一具被钉在格子间的影子。手机震动,是主管发来的消息:“小李,明天项目收尾,辛苦加个班,下周调休。”他盯着那行字看了很久,最终只回了一个“好的”。办公室里只剩几盏孤灯,键盘敲击声在空旷中显得格外清冷。他翻着PPT,改着报表,脑子里却浮现出大学时的自己,那个曾幻想走遍山河的少年,如今连周末的早晨都成了奢侈品。他想约老友喝酒,可对方说:“等忙完这阵。”他想去看一场日出,可闹钟一响,又得挤进早高峰的地铁。他忽然觉得,自己像一台被设定好程序的机器,重复着“应该”做的事——应该工作,应该结婚,应该买房,应该懂事。他不再问自己喜不喜欢,只问自己“该不该”。他盯着电脑右下角的时间,凌晨一点。他想,人生或许就是这样:重复做着自己应该做的事情,承担自己必须承担的重负,遗憾那些本可以抓住却松手错过的人和物,幻想那些从未拥有却自以为能带来圆满的东西。他轻声说:这就是我们的人生。三老张躺在医院的病床上,呼吸机有节奏地起伏,像老屋檐下滴落的雨。老李坐在床边,握着他枯瘦的手。窗外是深秋的黄昏,树叶一片片落下,仿佛时间在无声地告别。“老李啊……”老张的声音轻得像风,“我这一辈子,也没干成啥大事。可我记着你第一次带对象来我家,我炖了鸡汤,你那媳妇说好喝……我还记得咱俩年轻时逃课去河边钓鱼,钓了一整天,就一条小鲫鱼,可笑得前仰后合……”他喘了口气,眼神却亮了一下:“你……照顾好自己。别总熬夜,天冷了记得加衣。我那老花镜,你拿去用吧,别买新的了,浪费。”老李点头,喉咙像被什么堵住,一个字也说不出来。老张闭上眼,嘴角却微微扬起:“我看着你结婚,看着你孩子出生,看着你头发白了……我也看着你妈走的那天,看着你哥远走他乡……我看着一个个人从我生命里走远,像船离岸,越漂越远……而我,还在原地,看着这个世界,越来越安静。”他最后睁开眼,望着老李:“我走了,你一个人,也要好好看这世界啊。”老李终于落下泪来。他忽然明白:人生,就是一场漫长的目送。我看着亲人离去,看着朋友走散,看着爱人老去,而我,将一个人继续审视这个世界——这,就是人生。四多年后,老李也走到了生命的尽头。子女围在床前,有的抹泪,有的低声啜泣。他费力地抬起手,轻轻拍了拍孙子的小手,又指了指床头柜上那副老花镜。“这眼镜……是你张爷爷留下的……”他声音微弱,“我戴了十几年……别扔……留着,看看书也好……”他喘息着,目光缓缓扫过每一张脸:“你们……要好好的。别为我难过。我这一生,平平凡凡,没出过大名,也没挣大钱。可我娶了我爱的人,养大了你们,看过春天的花,听过夏天的雨,走过秋天的路,熬过冬天的冷。”他停顿良久,嘴角浮起一丝笑意:“我来过……这就够了。”他闭上眼,呼吸渐渐平缓,最终归于寂静。房间里只剩下低低的啜泣。窗外,晨光初现,照在那副老花镜上,镜片微微反着光,像一颗不肯熄灭的星。——我来过,便是我人生的意义。结语一千个读者,就有一千个哈姆雷特。 有人从童年的饭香里闻到意义,有人从成年的奔波中咀嚼意义,有人从暮年的回望中触摸意义,有人在最后一息中确认意义。人生的意义,从来不是一道标准答案。它可以是红烧肉的油光,是加班夜的一盏孤灯,是病床前的一句叮咛,是遗言中的一抹微笑。我们各自跋涉在不同的路上,经历着不同的悲欢,可最终,我们都会在某个瞬间明白:那些爱过的人,走过的路,吃过的饭,流过的泪,看过的风景—— 不是为了证明什么伟大, 而是为了确认一件事: 我来过。而这,便是意义本身。
2025年10月23日
50 阅读
0 评论
3 点赞
2025-09-10
MYSQL出现死锁的排查过程
MYSQL出现死锁如何进行排查?问题描述 线上异常报错通知 显示一条插入语句遇见了事务回滚异常 回滚原因显示是死锁,从而造成mysql自动回滚了其中一个事务 被回滚的事务永远是开销相对最小,占据的锁资源相对最少的一个回顾死锁发生的条件 MySQL死锁的发生需同时满足以下四个必要条件,这些条件源自数据库事务对资源的竞争与调度机制:互斥条件(Mutual Exclusion)事务A锁定了表A的某一行,事务B无法同时锁定该行,必须等待事务A释放锁。占有且等待(Hold and Wait)事务A锁定表A的行1,随后尝试锁定表B的行1(被事务B持有),事务A阻塞但保持对行1的锁。事务B锁定表B的行1,随后尝试锁定表A的行1(被事务A持有),事务B阻塞但保持对行1的锁。此时形成循环等待,导致死锁。不剥夺条件(No Preemption)事务A持有的行锁不会被MySQL内核强制移除,即使事务B因等待超时或系统资源不足,也只能等待事务A提交或回滚。循环等待条件(Circular Wait)事务1:锁定表A → 请求锁定表B(被事务2持有)。事务2:锁定表B → 请求锁定表A(被事务1持有)。此时事务1和事务2互相等待,形成死锁。找到死锁发生在哪 找到死锁发生的具体sql,是哪两个SQL之间出现了锁竞争?利用MYSQL的SHOW ENGINE INNODB STATUS命令这个命令会查询出最近的一次死锁的详细信息mysql -u用户名 -p密码 -e "SHOW ENGINE INNODB STATUS\\G" > 死锁.txt命令行执行以上命令,即可导出最后一次死锁详情日志阅读死锁.txt找到LATEST DETECTED DEADLOCK字段下的内容事务1(INSERT操作) 可以看到第一个sql,insert的sql,也就是最开始报错通知里的sql这个日志中,得知事务一已持有锁:主键索引(PRIMARY):X锁(排他锁),锁定记录物理位置space id 1953 page no 2713 n bits 192,具体记录包含user_id=940619、friend_id=221846等字段值。行锁数量:2个行锁(2 row lock(s))。等待锁:索引im_user_friend_index_userId:插入意向锁(lock_mode X insert intention),等待space id 1953 page no 2356的锁资源。事务2(delete操作) 紧接着往下翻阅出现第二个delete的SQL事务2已持有锁:索引im_user_friend_index_userId:S锁(共享锁),锁定page no 2356的多个记录(如heap no 2到heap no 40),涉及user_id字段值(如80000000000e576f、80000000000e5772等)。行锁数量:701,503个行锁(701503 row lock(s)),显示大规模数据操作。锁结构:7,736个锁结构(7736 lock struct(s)),占用堆大小约876KB(heap size 876752)。原来是这个sql占据了大量锁,导致死锁也不意外了。可能原因:MySQL在处理包含子查询的DELETE语句时,可能会将子查询结果集物化为临时表。在这个过程中,为了确保数据的一致性,MySQL可能会对源表(如im_user_friend)中的行加锁,即使这些行最终不会被删除,并且在可重复读隔离级别下,MySQL为了防止幻读,在执行删除语句时,不仅会对符合条件的数据行加锁,还会对索引扫描过程中经过的间隙加锁。即使最终没有删除任何行,这些间隙锁仍然会被持有直到事务结束。所以删除操作持有了整个表所有的行锁,此时再插入就会出现锁资源竞争解决办法 将子查询删除语句拆分 原语句: delete from im_user_friend where user_id in (select t.user_id from (select f.user_id from im_user_friend f left join im_user u on f.user_id=u.id where u.id is NULL) t)拆分后: -- 第一步:查询 SELECT t.user_id FROM ( SELECT f.user_id FROM im_user_friend f LEFT JOIN im_user u ON f.user_id = u.id WHERE u.id IS NULL ) t; -- 第二步:根据查询结果删除 (假设结果为空,所以执行下面这句) DELETE FROM im_user_friend WHERE user_id IN (); -- 实际上是空的原语句(单条DELETE):执行时,会对子查询中扫描到的行加共享锁(S锁),并且还会加上间隙锁。可能由于子查询物化临时表时,会扫描并且锁定整个表(或者大部分索引),导致锁住了很多间隙和行。间隙锁里就包含了即将要插入的行!!此时,如果另一个事务也要插入数据,并且插入的位置被这些间隙锁阻塞,那么就会发生等待。如果两个事务互相等待,就会死锁。原语句执行时,会对子查询扫描的行加共享锁和间隙锁。由于子查询扫描了整个表或大部分索引,它锁定了许多间隙,包括最后一个记录之后的间隙(通过supremum锁)。新插入的行的id是递增的,因此通常会插入到索引的末尾,这正是被supremum锁锁定的区域,所以更容易被阻塞。这意味着任何试图插入新行的事务都会被阻塞,因为插入需要获取插入意向锁,而插入意向锁与已有的间隙锁冲突。如果两个事务一个执行DELETE另一个执行INSERT,它们互相等待对方的锁释放,从而导致死锁。拆分后:第一步SELECT是快照读,不会加锁。第二步DELETE时,因为IN列表是空的,所以不会扫描任何行,因此不会加任何锁(包括行锁和间隙锁)。即使有数据,也不会全表加锁,间隙锁只会很小概率的锁住即将插入的行所以,不会阻塞其他事务的插入操作,从而避免了死锁。
2025年09月10日
48 阅读
0 评论
3 点赞
2025-09-05
亿乐系统晓风助手,有网关/cdn如何配置
加了cdn,网关等等情况下,很多人就不会配置助手了,也是很简单的,以下是教程源站服务器配置好助手,配置教程 https://boke.ljwx.love/index.php/archives/68/ 1.网关服务器如何设置反代到亿乐,并且确保助手生效呢 在网关服务器的反代里设置http://服务器ip,设置亿乐域名即可,其他什么都不需要设置,就可以了2.CDN代理到源站服务器,并且确保助手生效呢 CDN里给自己的源站服务器加白名单,没听错就是给自己的服务器加白名单,并且不要设置强制https,除非你把所有地方的配置的改成了https其他配置都是普通的配置,无需额外设置
2025年09月05日
91 阅读
0 评论
2 点赞
2025-09-05
宝塔搭建的网站被劫持跳转到非法网站怎么办?
问题描述:手机端访问网站自动跳转到色情网站/赌博网站问题原因:被注入了恶意JSf12分析网页源码会发现被注入了原本不存在的js(手机端才会出现)比如有几种注入方式,所以解决办法有多种首页升级宝塔面板到最新版,首页右上角更新然后依次尝试,看看哪个有效:1.篡改了宝塔缓存,你重启宝塔即可解决,清空浏览器缓存,苹果清空Safri浏览器全部数据首页右上角重启2.篡改了PHP,重装对应版本的php,,清空浏览器缓存,苹果清空Safri浏览器全部数据软件商店卸载重装PHP3.篡改了Nginx,重装或者升级nginx,清空浏览器缓存,苹果清空Safri浏览器全部数据后期再出现,重复此步骤即可软件上商店卸载重装nginx经过上述操作之后,恶意JS已经不存在了这是几个常见的被篡改的软件
2025年09月05日
81 阅读
0 评论
2 点赞
2025-08-28
卡卡云旧版本接口文档
接口签名sign 对所有参数进行ASCII排序 然后拼接为form参数,格式k1=v1&k2=v2,在拼接密钥key,进行md5加密即可比如PHPprivate static function getKkySign($param, $userkey) { ksort($param); //排序post参数 reset($param); //内部指针指向数组中的第一个元素 $signtext = ''; foreach ($param as $key => $val) { //遍历POST参数 if ($val == '' || $key == 'sign') continue; //跳过这些不签名 if ($signtext) $signtext .= '&'; //第一个字符串签名不加& 其他加&连接起来参数 $signtext .= "$key=$val"; //拼接为url参数形式 } $newsign = md5($signtext . $userkey); return $newsign; } 获取用户信息 [POST /dockapi/index/userinfo]请求地址textPOST /dockapi/index/userinfo请求参数参数名 类型 必填 说明userid string 是 商户IDsign string 是 签名请求示例json{ "userid": "testuser", "sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息data object 数据data.money string 余额data.creditquota string 信用额度data.group_id int 商户组ID成功返回示例json{ "code": 1, "msg": "查询成功", "data": { "money": "0.00", "creditquota": "0.00", "group_id": 1, }}失败返回示例json{ "code": -1, "msg": "用户不存在"}统一下单接口 [POST /dockapi/index/buy]请求地址textPOST dockapi/index/buy请求参数参数名 类型 必填 说明userid string 是 商户IDgoodsid string 是 商品IDbuynum int 是 商品数量outorderno string 否 外部订单号maxmoney float 否 最大金额(订单总价),防止亏损,不传不判断attach string 否 充值信息callbackurl string 否 回调地址sign string 是 签名attachjson string 否 附加参数sellmoney float 否 卖给客户的总价格请求示例json{"userid": "testuser","goodsid": "1","buynum": 1,"outorderno": "1234567890","maxmoney": 100,"attach": "充值信息","callbackurl": "https://www.example.com/callback","sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息orderno string 平台订单号outorderno float 外部订单那号money float 订单总价buynum int 购买数量sellmoney float 卖给客户的总价格cardlist array 卡密列表成功返回示例json{ "code": 1, "msg": "下单成功", "orderno": "1234567890", "outorderno": "1234567890", "money": 100, "buynum": 1, "cardlist": [ "1234567890", "1234567890" ]}失败返回示例json{ "code": -1, "msg": "下单失败"}订单状态查询 [POST /dockapi/index/queryorder]请求地址textPOST dockapi/index/queryorder请求参数参数名 类型 必填 说明userid string 是 商户IDorderno string 否 平台订单号,2选1dockapiorderno string 否 外部订单号,2选1sign string 是 签名请求示例json{ "userid": "testuser", "orderno": "1234567890", "sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息data object 数据data.orderno string 平台订单号data.outorderno string 外部订单号data.dockapiorderno string 对接订单号data.money string 订单总价data.buynum int 购买数量data.goodsprice string 商品单价data.goodsid string 商品IDdata.status int 订单状态,0-已付款,1-卡密代表完结 代充代表已付款,2-未付款(失败),3-进行中,4-失败,5-成功data.refundmoney string 退款金额data.refundstatus int 退款状态,0-未退款,1-已退款data.payrefundspeed int data.banstatus int data.mobile string data.receipt string data.create_time string 创建时间data.update_time string 更新时间aftersales array 售后信息cardlist array 卡密列表成功返回示例json{ "code": 1, "msg": "查询成功", "data": { "orderno": "1234567890", "outorderno": "1234567890", "dockapiorderno": "1234567890", "money": "100.00", "buynum": 1, "goodsprice": "100.00", "goodsid": "1", "status": 0, "refundmoney": "0.00", "refundstatus": 0, "payrefundspeed": 0, "banstatus": 0, "mobile": "", "receipt": "", "create_time": "1704038400", "update_time": "1704038400", }, "aftersales": [], "cardlist": []}失败返回示例json{ "code": -1, "msg": "查询失败"}订单回调通知请求地址textPOST 下单提交的callbackurl请求参数参数名 类型 说明sign string 签名money string 订单总价status int 订单状态,0-已付款,1-卡密代表完结 代充代表已付款,2-未付款(失败),3-进行中,4-失败,5-成功userid string 商户IDorderno string 自传订单号receipt string 收据timestamp int 时间戳outorderno string 平台订单号create_time int 创建时间refundmoney float 退款金额update_time int 更新时间refundstatus int 退款状态,0-未退款,1-已退款refundreceipt string 退款收据cardlist array 卡密列表成功返回示例OK获取商品分类 [POST /dockapi/v2/getallgoodsgroup]请求地址textPOST /dockapi/v2/getallgoodsgroup请求参数参数名 类型 必填 说明userid string 是 商户IDsign string 是 签名请求示例json{ "userid": "testuser", "sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息data array 数据data.groupid int 分类IDdata.groupname string 分类名称data.groupaliasname string 分类别名data.groupimgurl string 分类图片data.brandname string 品牌名称data.brandimgurl string 品牌图片成功返回示例json{ "code": 1, "msg": "查询成功", "data": [ { "groupid": 1, "groupname": "分类名称", "groupaliasname": "分类别名", "groupimgurl": "分类图片", "brandname": "品牌名称", "brandimgurl": "品牌图片" } ]}获取商品列表V2 [POST /dockapi/v2/getallgoods]请求地址textPOST dockapi/v2/getallgoods接口限制3秒1次请求参数参数名 类型 必填 说明userid string 是 商户IDgoodstype int 否 商品类型,1-直充,0-卡密goodsgroupid int 否 分类IDgoodsname string 否 商品名称limit int 否 每页数量,默认10,最高50page int 否 页码,默认1sign string 是 签名请求示例json{ "userid": "testuser", "sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息data array 数据data.goodsid string 商品IDdata.imgurl string 商品图片data.goodsname string 商品标题data.goodsprice string 商品价格data.goodsstatus int 商品状态,0-下架,1-上架data.goodstype int 商品类型,1-直充,0-卡密data.stock int 库存data.buyminnum int 最小购买数量data.goodsgroupid int 分类IDnowpage int 当前页码allpage int 总页码count int 总数成功返回示例json{ "code": 1, "msg": "查询成功", "data": [ { "goodsid": 1, "imgurl": "商品图片", "goodsname": "商品标题", "goodsprice": "商品价格", "goodsstatus": 1, "goodstype": 1, "stock": 100, "buyminnum": 1, "goodsgroupid": 1 }], "nowpage": 1, "allpage": 1, "count": 10}获取商品详情V2 [POST /dockapi/v2/goodsdetails]请求地址textPOST dockapi/v2/goodsdetails请求参数参数名 类型 必填 说明userid string 是 商户IDgoodsid string 是 商品IDsign string 是 签名请求示例json{ "userid": "testuser", "goodsid": '1', "sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息goodsdetails object 数据goodsdetails.id string 商品IDgoodsdetails.groupname string 分类名称goodsdetails.groupimgurl string 分类图片goodsdetails.brandname string 品牌名称goodsdetails.brandimgurl string 品牌图片goodsdetails.brandid int 品牌IDgoodsdetails.attachgroupid int goodsdetails.goodsname string 商品名称goodsdetails.goodsgroupid int 分类IDgoodsdetails.stock int 库存goodsdetails.salesvolume int 销量goodsdetails.goodsprice float 商品价格goodsdetails.marketprice float 市场价格goodsdetails.goodsstatus int 商品状态,0-下架,1-上架goodsdetails.buyminnum int 最小购买数量goodsdetails.buymaxnum int 最大购买数量goodsdetials.tiptext string 商品提示goodsdetails.imgurl string 商品图片goodsdetails.goodstype int 商品类型,1-直充,0-卡密goodsdetails.msgboxtip string 弹窗提示goodsdetails.details string 商品详情goodsdetails.attach array 充值信息goodsdetails.attach.title string 充值信息标题goodsdetails.attach.tip string 充值信息提示成功返回示例json{ "code": 1, "msg": "查询成功", "goodsdetails": { "id": "1", "groupname": "分类名称", "groupimgurl": "分类图片", "brandname": "品牌名称", "brandimgurl": "品牌图片", "brandid": 1, "attachgroupid": 1, "goodsname": "商品名称", "goodsgroupid": 1, "stock": 100, "salesvolume": 100, "goodsprice": 100, "marketprice": 100, "goodsstatus": 1, "buyminnum": 1, "buymaxnum": 100, "tiptext": "商品提示", "imgurl": "商品图片", "goodstype": 1, "msgboxtip": "弹窗提示", "details": "商品详情", "attach": [ { "title": "充值信息标题", "tip": "充值信息提示"} ] }}获取商品列表V3 [POST /dockapi/v3/getallgoods]请求地址textPOST /dockapi/v3/getallgoods接口限制1秒1次请求参数参数名 类型 必填 说明userid string 是 商户IDgoodstype int 否 商品类型,1-直充,0-卡密goodsgroupid int 否 分类IDgoodsname string 否 商品名称limit int 否 每页数量,默认10,最高100page int 否 页码,默认1sign string 是 签名请求示例json{ "userid": "testuser", "sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息data array 数据data.goodsid string 商品IDdata.goodsprice string 商品价格data.goodsstatus int 商品状态,0-下架,1-上架data.stock int 库存成功返回示例json{ "code": 1, "msg": "查询成功", "data": [{ "goodsid": "1", "goodsprice": "100", "goodsstatus": 1, "stock": 100 }]}获取商品详情V3 [POST /dockapi/v3/goodsdetails]请求地址textPOST /dockapi/v3/goodsdetails请求参数参数名 类型 必填 说明userid string 是 商户IDgoodsid string 是 商品IDsign string 是 签名请求示例json{ "userid": "testuser", "goodsid": "1", "sign": "11111111111111111111111111111111"}响应参数参数名 类型 说明code int 状态码,1-成功msg string 状态信息goodsdetails object 数据goodsdetails.id string 商品IDgoodsdetails.goodsname string 商品名称goodsdetails.goodsprice string 商品价格goodsdetails.goodsstatus int 商品状态,0-下架,1-上架goodsdetails.stock int 库存成功返回示例json{ "code": 1, "msg": "查询成功", "goodsdetails": { "id": "1", "goodsname": "商品名称", "goodsprice": "100", "goodsstatus": 1, "stock": 100 }}
2025年08月28日
39 阅读
0 评论
0 点赞
1
2
3
4
...
9