- 新增上传分类归一化处理,统一白名单校验规则 - 新增COS存储记录同步逻辑 - 新增分享功能支持,配置多页面分享参数 - 新增订单案例分享按钮 - 新增订单自动校验和回收命令 - 新增测试脚本和图片同步脚本 - 优化后台上传分类配置,统一分类映射
698 行
29 KiB
PHP
698 行
29 KiB
PHP
<?php
|
||
|
||
define('APP_PATH', __DIR__ . '/../server/application/');
|
||
require __DIR__ . '/../server/thinkphp/base.php';
|
||
\think\App::initCommon();
|
||
|
||
use think\Db;
|
||
|
||
$cosMap = json_decode(file_get_contents(__DIR__ . '/goods_images_map.json'), true);
|
||
|
||
// 真实订单蓝本定义
|
||
$orderBlueprints = [
|
||
// 1. 客厅沙发 (家具)
|
||
[
|
||
'cat_id' => 1,
|
||
'service_name' => '布艺/皮质沙发安装',
|
||
'goods_name' => '全友家居 意式头层真皮三人位沙发',
|
||
'goods_model' => '现代极简款(象牙白 2800*950mm)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'sofa_leather',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 160.00,
|
||
'total_amount' => 160.00,
|
||
'pay_amount' => 160.00,
|
||
'status' => 3, // 待服务
|
||
'remark' => '新房装修注意保护木地板,入户门孔较大,请提前电话联系',
|
||
'contact' => '林晓雅',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '观山湖区',
|
||
'address' => '金阳街道中天会展城B区6栋1单元1602室',
|
||
'lng' => '106.6542',
|
||
'lat' => '26.6521',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '上门拆旧包装x1; 搬移就位x1;'
|
||
],
|
||
// 2. 智能马桶 (卫浴)
|
||
[
|
||
'cat_id' => 2,
|
||
'service_name' => '座便器/马桶安装与调试',
|
||
'goods_name' => '九牧(JOMOO) 智能虹吸式坐便器S700',
|
||
'goods_model' => '脚感翻盖/无水压限制/泡沫盾款(坑距305mm)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'toilet_smart',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 120.00,
|
||
'total_amount' => 140.00,
|
||
'pay_amount' => 140.00,
|
||
'status' => 4, // 施工中
|
||
'remark' => '旧马桶已拆除移出,法兰圈角阀自备齐全,师傅直接打胶安装',
|
||
'contact' => '陈伟强',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '南明区',
|
||
'address' => '花果园大街一期22栋2单元1108室',
|
||
'lng' => '106.6923',
|
||
'lat' => '26.5684',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '法兰密封安装x1; 防霉玻璃胶封边x1;'
|
||
],
|
||
// 3. 客厅吸顶灯 (灯具)
|
||
[
|
||
'cat_id' => 3,
|
||
'service_name' => '现代吸顶灯组装挂装',
|
||
'goods_name' => '欧普照明(OPPLE) 星空客厅无极调光吸顶灯',
|
||
'goods_model' => '120W超薄款(支持米家APP联动调色)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'ceiling_lamp',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 80.00,
|
||
'total_amount' => 80.00,
|
||
'pay_amount' => 80.00,
|
||
'status' => 5, // 待验收核销
|
||
'remark' => '层高2.8米,需师傅自带2米人字梯与冲击钻,电线已预留',
|
||
'contact' => '张建国',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '云岩区',
|
||
'address' => '中天未来方舟E区御峰5栋2单元903室',
|
||
'lng' => '106.7456',
|
||
'lat' => '26.6023',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '混凝土打孔x4;'
|
||
],
|
||
// 4. 智能指纹锁 (锁具)
|
||
[
|
||
'cat_id' => 4,
|
||
'service_name' => '智能指纹密码锁上门换装',
|
||
'goods_name' => '德施曼(DESSMANN) 3D人脸识别猫眼大屏智能锁',
|
||
'goods_model' => 'Q50FMax 霸王锁体通用版',
|
||
'goods_num' => 1,
|
||
'image_key' => 'smart_lock',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 150.00,
|
||
'total_amount' => 150.00,
|
||
'pay_amount' => 150.00,
|
||
'status' => 6, // 已完工
|
||
'remark' => '入户盼盼防盗门,带天地钩需师傅现场调整导向片',
|
||
'contact' => '周丽娟',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '观山湖区',
|
||
'address' => '观府壹号二期8栋1单元1202室',
|
||
'lng' => '106.6341',
|
||
'lat' => '26.6398',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '旧锁拆卸x1; 导向片微调切割x1;'
|
||
],
|
||
// 5. 智能电动晾衣架 (晾衣架)
|
||
[
|
||
'cat_id' => 8,
|
||
'service_name' => '智能电动晾衣架安装',
|
||
'goods_name' => '好太太(Hotata) 智能隐形嵌入式电动升降晾衣架',
|
||
'goods_model' => 'GW-1295 紫外线杀菌/恒温风干/离线语音款',
|
||
'goods_num' => 1,
|
||
'image_key' => 'clothes_hanger',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 120.00,
|
||
'total_amount' => 120.00,
|
||
'pay_amount' => 120.00,
|
||
'status' => 1, // 待接单
|
||
'remark' => '阳台铝扣板吊顶,已预留电源线,顶棚距地面2.7米',
|
||
'contact' => '王梓豪',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '花溪区',
|
||
'address' => '贵州大学南校区教师公寓3栋1单元401室',
|
||
'lng' => '106.6712',
|
||
'lat' => '26.4421',
|
||
'for_user_104' => true,
|
||
'master_id' => 0,
|
||
'addon' => '吊顶打孔穿膨胀螺栓x4;'
|
||
],
|
||
// 6. 厨下式净水器 (净水器)
|
||
[
|
||
'cat_id' => 7,
|
||
'service_name' => '厨下式净水器安装与水质检测',
|
||
'goods_name' => '美的(Midea) 澎湃1000G大通量RO反渗透净水机',
|
||
'goods_model' => '初见白金版(双出水龙头/0陈水)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'water_purifier',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 90.00,
|
||
'total_amount' => 90.00,
|
||
'pay_amount' => 90.00,
|
||
'status' => 7, // 已完成
|
||
'remark' => '水槽下方已预留五孔插座与进水三通,自带无铅龙头',
|
||
'contact' => '刘少华',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '白云区',
|
||
'address' => '绿地伊顿公馆7栋2单元602室',
|
||
'lng' => '106.6389',
|
||
'lat' => '26.6812',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '水质TDS现场笔测x1;'
|
||
],
|
||
// 7. 恒温淋浴花洒 (卫浴 - 报价竞价单)
|
||
[
|
||
'cat_id' => 2,
|
||
'service_name' => '明暗装淋浴花洒拆旧换新',
|
||
'goods_name' => '箭牌卫浴(ARROW) 钢琴按键恒温花洒套装',
|
||
'goods_model' => '枪灰色飞雨数显出水(带妇洗喷枪与下出水)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'shower_thermo',
|
||
'price_type' => 'quote', // 师傅报价单
|
||
'base_amount' => 0.00,
|
||
'total_amount' => 110.00,
|
||
'pay_amount' => 110.00,
|
||
'status' => 2, // 报价中
|
||
'remark' => '旧花洒阀芯漏水需要拆卸,冷热出水口中心距15cm标准孔',
|
||
'contact' => '赵立春',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '云岩区',
|
||
'address' => '延安西路汇金星力城公寓楼B座1805室',
|
||
'lng' => '106.7011',
|
||
'lat' => '26.5892',
|
||
'for_user_104' => true,
|
||
'master_id' => 0,
|
||
'addon' => '旧花洒拆卸x1; 曲脚生料带加固x2;'
|
||
],
|
||
// 8. 卧室大衣柜 (家具)
|
||
[
|
||
'cat_id' => 1,
|
||
'service_name' => '大衣柜/移门衣柜组装',
|
||
'goods_name' => '欧派 定制静音阻尼移门大衣柜',
|
||
'goods_model' => '现代极简四门两抽(浅橡木色 2400*2400*600mm)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'wardrobe_sliding',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 280.00,
|
||
'total_amount' => 280.00,
|
||
'pay_amount' => 280.00,
|
||
'status' => 3, // 待服务
|
||
'remark' => '板件已由物流送入主卧,师傅带电动螺丝刀和胶锤即可',
|
||
'contact' => '孙晓峰',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '观山湖区',
|
||
'address' => '世纪城龙泉苑10栋1单元201室',
|
||
'lng' => '106.6214',
|
||
'lat' => '26.6128',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '阻尼轨道调试x1; 防倒固定器打孔x2;'
|
||
],
|
||
// 9. 智能电动窗帘 (窗帘)
|
||
[
|
||
'cat_id' => 5,
|
||
'service_name' => '智能电动窗帘导轨安装',
|
||
'goods_name' => '小米米家 智能静音电动窗帘双轨套装',
|
||
'goods_model' => '3.5米双开轨道(含WiFi电机与锂电池版)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'curtain_motor',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 130.00,
|
||
'total_amount' => 130.00,
|
||
'pay_amount' => 130.00,
|
||
'status' => 0, // 待支付
|
||
'remark' => '窗帘盒宽度22公分,双轨并排安装,师傅请自带水平尺',
|
||
'contact' => '林晓雅',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '观山湖区',
|
||
'address' => '金融城MAX二期C座1402室',
|
||
'lng' => '106.6498',
|
||
'lat' => '26.6432',
|
||
'for_user_104' => true,
|
||
'master_id' => 0,
|
||
'addon' => '窗帘盒顶装打孔固定x8;'
|
||
],
|
||
// 10. 家用跑步机 (健身器材)
|
||
[
|
||
'cat_id' => 14,
|
||
'service_name' => '家用折叠跑步机开箱组装调试',
|
||
'goods_name' => '舒华(SHUA) 智能可折叠静音减震跑步机',
|
||
'goods_model' => 'SH-T3900 宽跑带商用级马达(带蓝牙音响)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'treadmill',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 180.00,
|
||
'total_amount' => 180.00,
|
||
'pay_amount' => 180.00,
|
||
'status' => 5, // 待验收核销
|
||
'remark' => '重型器材顺丰已放进书房,师傅需协助开箱组装并做跑带跑偏校准',
|
||
'contact' => '郑海涛',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '南明区',
|
||
'address' => '逸天城天润9号1栋2单元1901室',
|
||
'lng' => '106.7210',
|
||
'lat' => '26.5742',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '跑带平衡校正x1; 润滑硅油加注x1;'
|
||
],
|
||
// 11. 滚筒洗衣机 (家电)
|
||
[
|
||
'cat_id' => 10,
|
||
'service_name' => '滚筒/波轮洗衣机安装与上下水',
|
||
'goods_name' => '海尔(Haier) 10KG变频直驱滚筒洗烘一体机',
|
||
'goods_model' => '晶彩系列 超薄平嵌(微蒸汽空气洗/防震静音)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'washing_machine',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 70.00,
|
||
'total_amount' => 70.00,
|
||
'pay_amount' => 70.00,
|
||
'status' => 6, // 已完工
|
||
'remark' => '需拆除背部4颗运输固定螺栓,连接阳台地漏防溢防臭接头',
|
||
'contact' => '陈伟强',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '观山湖区',
|
||
'address' => '中铁阅山湖云著5栋1单元803室',
|
||
'lng' => '106.6189',
|
||
'lat' => '26.6587',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '运输螺栓拆除保管x4; 地漏防臭三通转接x1;'
|
||
],
|
||
// 12. 岩板浴室柜 (卫浴)
|
||
[
|
||
'cat_id' => 2,
|
||
'service_name' => '悬挂/落地浴室柜与镜柜安装',
|
||
'goods_name' => '恒洁(HEGII) 轻奢岩板悬挂浴室柜组合',
|
||
'goods_model' => '一体陶瓷盆+LED防雾智能镜柜(深灰 1000mm)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'bathroom_cabinet',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 160.00,
|
||
'total_amount' => 160.00,
|
||
'pay_amount' => 160.00,
|
||
'status' => 1, // 待接单(抢单大厅可见)
|
||
'remark' => '承重墙已贴瓷砖,打孔请用合金三角钻头防止爆瓷',
|
||
'contact' => '黄子涵',
|
||
'mobile' => '13985123981',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '云岩区',
|
||
'address' => '中天未来方舟G区9栋1单元1204室',
|
||
'lng' => '106.7412',
|
||
'lat' => '26.6098',
|
||
'for_user_104' => false,
|
||
'master_id' => 0,
|
||
'addon' => '镜柜线路暗接x1; 瓷砖无损打孔x6;'
|
||
],
|
||
// 13. 超薄电视挂装 (电视/投影)
|
||
[
|
||
'cat_id' => 11,
|
||
'service_name' => '电视挂装与旋转伸缩架安装',
|
||
'goods_name' => '海信(Hisense) 75英寸4K超薄全面屏液晶电视',
|
||
'goods_model' => '75E5K 144Hz高刷MiniLED(重型万向旋转伸缩挂架)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'tv_mounted',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 140.00,
|
||
'total_amount' => 140.00,
|
||
'pay_amount' => 140.00,
|
||
'status' => 1, // 待接单(抢单大厅)
|
||
'remark' => '背景墙为石膏板内嵌大芯板加固层,挂架自带金属膨胀螺栓',
|
||
'contact' => '徐天宇',
|
||
'mobile' => '13885091234',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '观山湖区',
|
||
'address' => '远大美域三期15栋2单元101室',
|
||
'lng' => '106.6321',
|
||
'lat' => '26.6276',
|
||
'for_user_104' => false,
|
||
'master_id' => 0,
|
||
'addon' => '大屏水平校正仪测量x1; 隐形理线管整理x1;'
|
||
],
|
||
// 14. 厨房抽油烟机+灶具 (家电)
|
||
[
|
||
'cat_id' => 10,
|
||
'service_name' => '家用油烟机/燃气灶拆旧换装',
|
||
'goods_name' => '方太(FOTILE) 双腔大吸力抽油烟机+大火力灶具',
|
||
'goods_model' => 'EMQ6T 变频25m³/min挥手控烟 + 5.0KW聚焰猛火灶',
|
||
'goods_num' => 1,
|
||
'image_key' => 'kitchen_hood',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 150.00,
|
||
'total_amount' => 180.00,
|
||
'pay_amount' => 180.00,
|
||
'status' => 1, // 待接单(抢单大厅)
|
||
'remark' => '旧顶吸油烟机需要拆卸回收,橱柜台面开孔尺寸700*400mm标准尺寸',
|
||
'contact' => '郭建明',
|
||
'mobile' => '13785167890',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '南明区',
|
||
'address' => '保利凤凰湾C区8栋1单元1502室',
|
||
'lng' => '106.7089',
|
||
'lat' => '26.5512',
|
||
'for_user_104' => false,
|
||
'master_id' => 0,
|
||
'addon' => '旧机拆除移位x1; 防烟止逆阀换装x1;'
|
||
],
|
||
// 15. 商用猛火灶具 (商用厨电)
|
||
[
|
||
'cat_id' => 13,
|
||
'service_name' => '大功率商用灶具检修与调试',
|
||
'goods_name' => '厨霸王 不锈钢商用双头大功率猛火炒灶',
|
||
'goods_model' => '餐饮后厨专用(带水龙头与节能风机 1800*900mm)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'commercial_stove',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 320.00,
|
||
'total_amount' => 320.00,
|
||
'pay_amount' => 320.00,
|
||
'status' => 4, // 施工中
|
||
'remark' => '饭店后厨改造,天然气管道已通,需调试风门与熄火保护装置',
|
||
'contact' => '马老板',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '南明区',
|
||
'address' => '青云市集美食街A区28号老贵阳餐馆',
|
||
'lng' => '106.7145',
|
||
'lat' => '26.5612',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '气密性肥皂水试漏x1; 鼓风机风量校准x2;'
|
||
],
|
||
// 16. 后厨大型排烟罩 (商用厨电)
|
||
[
|
||
'cat_id' => 13,
|
||
'service_name' => '排烟罩清洗与管道油烟净化安装',
|
||
'goods_name' => '大型不锈钢油烟净化一体排风罩系统',
|
||
'goods_model' => '运水烟罩(长3200mm*宽1100mm*高600mm)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'commercial_hood',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 450.00,
|
||
'total_amount' => 450.00,
|
||
'pay_amount' => 450.00,
|
||
'status' => 3, // 待服务
|
||
'remark' => '下午2点后餐厅休息时段施工作业,师傅带防油防护服与吊装工具',
|
||
'contact' => '马老板',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '观山湖区',
|
||
'address' => '万达广场4楼402号川黔味道餐饮店',
|
||
'lng' => '106.6289',
|
||
'lat' => '26.6412',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '风机法兰连接防漏胶垫x2;'
|
||
],
|
||
// 17. 极简淋浴房 (淋浴房)
|
||
[
|
||
'cat_id' => 12,
|
||
'service_name' => '一字形/钻石形淋浴房安装',
|
||
'goods_name' => '九牧 钻石形极简干湿分离淋浴房',
|
||
'goods_model' => '8mm汽车级防爆钢化玻璃(黑色304不锈钢边框 900*900mm)',
|
||
'goods_num' => 1,
|
||
'image_key' => 'shower_room',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 220.00,
|
||
'total_amount' => 220.00,
|
||
'pay_amount' => 220.00,
|
||
'status' => 1, // 待接单
|
||
'remark' => '地面挡水条已预埋贴砖,玻璃防爆膜完整,需打中性防霉胶封边',
|
||
'contact' => '朱婷婷',
|
||
'mobile' => '13685210987',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '乌当区',
|
||
'address' => '保利温泉三期红叶谷12栋1单元302室',
|
||
'lng' => '106.7712',
|
||
'lat' => '26.6341',
|
||
'for_user_104' => false,
|
||
'master_id' => 0,
|
||
'addon' => '磁吸胶条密封调试x1; 德国瓦克中性防霉硅胶x2;'
|
||
],
|
||
// 18. 静音室内木门 (门窗)
|
||
[
|
||
'cat_id' => 9,
|
||
'service_name' => '室内木门/复合门安装',
|
||
'goods_name' => 'TATA极简磁吸静音免漆室内实木复合门',
|
||
'goods_model' => '@001 哑光冷灰(含磁吸静音锁与隐形三维合页)',
|
||
'goods_num' => 2,
|
||
'image_key' => 'wood_door',
|
||
'price_type' => 'fixed',
|
||
'base_amount' => 300.00,
|
||
'total_amount' => 300.00,
|
||
'pay_amount' => 300.00,
|
||
'status' => 7, // 已完成
|
||
'remark' => '主卧门和次卧门各一套,门洞标准无倾斜,发泡胶与支撑条已备好',
|
||
'contact' => '张建国',
|
||
'mobile' => '18386351589',
|
||
'province' => '贵州省',
|
||
'city' => '贵阳市',
|
||
'district' => '云岩区',
|
||
'address' => '中天未来方舟E区御峰5栋2单元903室',
|
||
'lng' => '106.7456',
|
||
'lat' => '26.6023',
|
||
'for_user_104' => true,
|
||
'master_id' => 40,
|
||
'addon' => '门套精准45度切角拼装x2; 发泡胶微调填充x2;'
|
||
]
|
||
];
|
||
|
||
// 先清空旧的非重要测试垃圾订单,保留真实业务
|
||
echo "Rebuilding orders with real high-fidelity goods data...\n";
|
||
|
||
// 清理旧的重复单(只保留用户必要的订单或重置)
|
||
// 我们保留用户 104 但替换为这套极其真实、带真实商品图片的高质量订单
|
||
Db::name('order_goods')->where('1=1')->delete();
|
||
Db::name('order_log')->where('1=1')->delete();
|
||
Db::name('order_quote')->where('1=1')->delete();
|
||
Db::name('order')->where('1=1')->delete();
|
||
|
||
$now = time();
|
||
|
||
foreach ($orderBlueprints as $idx => $bp) {
|
||
$timeOffset = ($idx * 3600 * 3) + rand(60, 1800);
|
||
$createTime = $now - 86400 * 4 + $timeOffset;
|
||
if ($createTime > $now - 600) {
|
||
$createTime = $now - rand(600, 3600);
|
||
}
|
||
|
||
$orderNo = date('YmdHis', $createTime) . str_pad($idx + 10, 4, '0', STR_PAD_LEFT);
|
||
$userId = $bp['for_user_104'] ? 104 : (rand(1, 10) > 5 ? 104 : rand(3, 15));
|
||
|
||
$imgInfo = $cosMap[$bp['image_key']];
|
||
$cosUrl = $imgInfo['cos'];
|
||
|
||
// 匹配 service 表中真实对应的 id
|
||
$serviceRow = Db::name('service')
|
||
->where('cat_id', $bp['cat_id'])
|
||
->where('name', 'like', '%' . mb_substr($bp['service_name'], 0, 3) . '%')
|
||
->find();
|
||
$serviceId = $serviceRow ? $serviceRow['id'] : 1;
|
||
|
||
$appointTime = $createTime + 86400 * rand(1, 2);
|
||
$verifyCode = (string)rand(1000, 9999);
|
||
|
||
$payTime = in_array($bp['status'], [1, 2, 3, 4, 5, 6, 7]) ? $createTime + 180 : null;
|
||
$acceptTime = in_array($bp['status'], [3, 4, 5, 6, 7]) ? $payTime + 1200 : null;
|
||
$contactTime = in_array($bp['status'], [3, 4, 5, 6, 7]) ? $acceptTime + 600 : null;
|
||
$arriveTime = in_array($bp['status'], [4, 5, 6, 7]) ? $contactTime + 3600 : null;
|
||
$startTime = in_array($bp['status'], [4, 5, 6, 7]) ? $arriveTime + 300 : null;
|
||
$finishTime = in_array($bp['status'], [5, 6, 7]) ? $startTime + 5400 : null;
|
||
$verifyTime = in_array($bp['status'], [6, 7]) ? $finishTime + 600 : null;
|
||
|
||
$goodsPayload = json_encode([
|
||
'goods_list' => [
|
||
[
|
||
'service_id' => $serviceId,
|
||
'goods_name' => $bp['goods_name'],
|
||
'goods_model' => $bp['goods_model'],
|
||
'goods_num' => $bp['goods_num'],
|
||
'goods_image' => $cosUrl,
|
||
'addon_services'=> $bp['addon'],
|
||
'base_price' => $bp['base_amount']
|
||
]
|
||
],
|
||
'images' => [$cosUrl]
|
||
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
||
|
||
$orderId = Db::name('order')->insertGetId([
|
||
'order_no' => $orderNo,
|
||
'user_id' => $userId,
|
||
'master_id' => $bp['master_id'],
|
||
'cat_id' => $bp['cat_id'],
|
||
'service_id' => $serviceId,
|
||
'service_name' => $bp['service_name'],
|
||
'service_image' => $cosUrl,
|
||
'price_type' => $bp['price_type'],
|
||
'goods_images' => $goodsPayload,
|
||
'goods_model' => $bp['goods_model'],
|
||
'goods_num' => $bp['goods_num'],
|
||
'floor' => rand(2, 16),
|
||
'has_elevator' => 1,
|
||
'urgent' => $idx % 5 === 0 ? 1 : 0,
|
||
'remark' => $bp['remark'],
|
||
'contact' => $bp['contact'],
|
||
'mobile' => $bp['mobile'],
|
||
'province' => $bp['province'],
|
||
'city' => $bp['city'],
|
||
'district' => $bp['district'],
|
||
'address' => $bp['address'],
|
||
'lng' => $bp['lng'],
|
||
'lat' => $bp['lat'],
|
||
'appoint_time' => $appointTime,
|
||
'base_amount' => $bp['base_amount'],
|
||
'floor_amount' => 0.00,
|
||
'distance_amount' => 0.00,
|
||
'urgent_amount' => $idx % 5 === 0 ? 20.00 : 0.00,
|
||
'discount_amount' => 0.00,
|
||
'total_amount' => $bp['total_amount'],
|
||
'pay_amount' => $bp['pay_amount'],
|
||
'status' => $bp['status'],
|
||
'pay_status' => $payTime ? 1 : 0,
|
||
'pay_type' => 'wechat',
|
||
'pay_time' => $payTime,
|
||
'coupon_id' => 0,
|
||
'accept_time' => $acceptTime,
|
||
'contact_time' => $contactTime,
|
||
'arrive_time' => $arriveTime,
|
||
'start_time' => $startTime,
|
||
'finish_time' => $finishTime,
|
||
'verify_time' => $verifyTime,
|
||
'verify_code' => $verifyCode,
|
||
'settle_status' => in_array($bp['status'], [6, 7]) ? 1 : 0,
|
||
'settle_amount' => in_array($bp['status'], [6, 7]) ? round($bp['pay_amount'] * 0.85, 2) : 0.00,
|
||
'is_review' => $bp['status'] === 7 ? 1 : 0,
|
||
'createtime' => $createTime,
|
||
'updatetime' => $now,
|
||
]);
|
||
|
||
// 写入 order_goods 明细
|
||
Db::name('order_goods')->insert([
|
||
'order_id' => $orderId,
|
||
'service_id' => $serviceId,
|
||
'goods_name' => $bp['goods_name'],
|
||
'goods_model' => $bp['goods_model'],
|
||
'goods_num' => $bp['goods_num'],
|
||
'goods_image' => $cosUrl,
|
||
'addon_services' => $bp['addon'],
|
||
'base_price' => $bp['base_amount'],
|
||
'createtime' => $createTime,
|
||
]);
|
||
|
||
// 写入真实履约日志
|
||
Db::name('order_log')->insert([
|
||
'order_id' => $orderId,
|
||
'status' => 0,
|
||
'remark' => '用户提交预约安装订单',
|
||
'operator_type' => 'user',
|
||
'operator_id' => $userId,
|
||
'createtime' => $createTime
|
||
]);
|
||
|
||
if ($payTime) {
|
||
Db::name('order_log')->insert([
|
||
'order_id' => $orderId,
|
||
'status' => 1,
|
||
'remark' => '微信支付成功 ¥' . $bp['pay_amount'] . ',工单已进入调度大厅',
|
||
'operator_type' => 'system',
|
||
'operator_id' => 0,
|
||
'createtime' => $payTime
|
||
]);
|
||
}
|
||
|
||
if ($bp['status'] === 2) {
|
||
// 报价单加入师傅报价记录
|
||
Db::name('order_quote')->insert([
|
||
'order_id' => $orderId,
|
||
'master_id' => 40,
|
||
'amount' => 110.00,
|
||
'description' => '师傅1589:专业卫浴安装,自带专业工具和生料带加固,随时可上门',
|
||
'valid_hours' => 24,
|
||
'expire_time' => $now + 86400,
|
||
'status' => 'wait',
|
||
'createtime' => $createTime + 600,
|
||
]);
|
||
Db::name('order_quote')->insert([
|
||
'order_id' => $orderId,
|
||
'master_id' => 1,
|
||
'amount' => 120.00,
|
||
'description' => '张师傅:就近上门,带水平仪测试安装',
|
||
'valid_hours' => 24,
|
||
'expire_time' => $now + 86400,
|
||
'status' => 'wait',
|
||
'createtime' => $createTime + 1200,
|
||
]);
|
||
}
|
||
|
||
if ($acceptTime) {
|
||
Db::name('order_log')->insert([
|
||
'order_id' => $orderId,
|
||
'status' => 3,
|
||
'remark' => '认证师傅(师傅1589)已抢单接单,联系电话: 18386351589',
|
||
'operator_type' => 'master',
|
||
'operator_id' => 40,
|
||
'createtime' => $acceptTime
|
||
]);
|
||
}
|
||
|
||
if ($arriveTime) {
|
||
Db::name('order_log')->insert([
|
||
'order_id' => $orderId,
|
||
'status' => 4,
|
||
'remark' => '师傅已抵达客户现场,工具准备齐全并开始规范施工',
|
||
'operator_type' => 'master',
|
||
'operator_id' => 40,
|
||
'createtime' => $arriveTime
|
||
]);
|
||
}
|
||
|
||
if ($finishTime) {
|
||
Db::name('order_log')->insert([
|
||
'order_id' => $orderId,
|
||
'status' => 5,
|
||
'remark' => '师傅施工完毕,请业主核验现场并提供4位服务完工核销码',
|
||
'operator_type' => 'master',
|
||
'operator_id' => 40,
|
||
'createtime' => $finishTime
|
||
]);
|
||
}
|
||
|
||
if ($verifyTime) {
|
||
Db::name('order_log')->insert([
|
||
'order_id' => $orderId,
|
||
'status' => 6,
|
||
'remark' => '业主现场出示核销码核销成功,工单完工并结算入账',
|
||
'operator_type' => 'user',
|
||
'operator_id' => $userId,
|
||
'createtime' => $verifyTime
|
||
]);
|
||
}
|
||
|
||
echo "Order #{$orderId} [{$bp['service_name']}] created with image {$cosUrl}\n";
|
||
}
|
||
|
||
echo "\nAll realistic orders successfully populated with HD goods photos, items and logs!\n";
|