-- 区域代理测试用户(备用 SQL,推荐使用 PHP 脚本自动初始化) -- php addons/shopro/tests/regional_agent_setup_test_users.php -- -- 统一密码: Test@123456 -- salt: fxtest01 -- 默认区域: 贵州省 / 贵阳市 / 南明区 (520000 / 520100 / 520102) -- 买家余额: 10000 | 代理余额: 5000 SET @ts = UNIX_TIMESTAMP(); SET @pwd = '2e6b7166bb58caa2a84dd3eca3391f67'; SET @salt = 'fxtest01'; SET @buyer_money = 10000.00; SET @agent_money = 5000.00; SET @chain_money = 5000.00; -- ========== 1. 区域代理配置 ========== INSERT INTO `fa_shopro_regional_agent_config` (`id`, `name`, `value`, `group`, `description`) VALUES (1, 'enable', '1', 'basic', '区域代理开关'), (2, 'agent_check', '0', 'basic', '代理申请审核'), (3, 'commission_event', 'payed', 'amount', '佣金结算事件'), (5, 'commission_mode', 'stack', 'amount', '分佣模式') ON DUPLICATE KEY UPDATE value=VALUES(value), `group`=VALUES(`group`), description=VALUES(description); -- ========== 2. 代理等级 ========== INSERT INTO `fa_shopro_regional_agent_level` (`level`, `name`, `area_level`, `commission_rate`, `commission_money`, `commission_type`) VALUES (1, '省级代理', 1, 3.00, 0.00, 'rate'), (2, '市级代理', 2, 2.00, 0.00, 'rate'), (3, '区县代理', 3, 1.00, 0.00, 'rate') ON DUPLICATE KEY UPDATE name=VALUES(name), area_level=VALUES(area_level), commission_rate=VALUES(commission_rate), commission_money=VALUES(commission_money), commission_type=VALUES(commission_type); -- ========== 3. 测试用户(含余额) ========== INSERT INTO `fa_user` (`id`,`username`,`nickname`,`password`,`salt`,`mobile`,`email`,`parent_user_id`,`level`,`score`,`money`,`total_consume`,`jointime`,`joinip`,`logintime`,`loginip`,`prevtime`,`createtime`,`updatetime`,`status`) VALUES (910001,'ra_province_agent','区域-省级代理',@pwd,@salt,'19900000011','19900000011@ra-test.local',0,1,0,@agent_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910002,'ra_city_agent','区域-市级代理',@pwd,@salt,'19900000012','19900000012@ra-test.local',0,1,0,@agent_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910003,'ra_district_agent','区域-区县代理',@pwd,@salt,'19900000013','19900000013@ra-test.local',0,1,0,@agent_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910004,'ra_buyer_main','区域-买家主测',@pwd,@salt,'19900000014','19900000014@ra-test.local',0,1,0,@buyer_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910005,'ra_buyer_alt','区域-买家备用',@pwd,@salt,'19900000015','19900000015@ra-test.local',0,1,0,@buyer_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910006,'ra_comm_a','区域测-分销三级',@pwd,@salt,'19900000016','19900000016@ra-test.local',0,1,0,@chain_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910007,'ra_comm_b','区域测-分销二级',@pwd,@salt,'19900000017','19900000017@ra-test.local',910006,1,0,@chain_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910008,'ra_comm_c','区域测-分销一级',@pwd,@salt,'19900000018','19900000018@ra-test.local',910007,1,0,@chain_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal'), (910009,'ra_buyer_chain','区域-买家D',@pwd,@salt,'19900000019','19900000019@ra-test.local',910008,1,0,@buyer_money,0,@ts,'127.0.0.1',@ts,'127.0.0.1',@ts,@ts,@ts,'normal') ON DUPLICATE KEY UPDATE nickname=VALUES(nickname), password=VALUES(password), salt=VALUES(salt), mobile=VALUES(mobile), parent_user_id=VALUES(parent_user_id), money=VALUES(money), status='normal', updatetime=@ts; -- ========== 4. 分销链(联合测试用) ========== INSERT INTO `fa_shopro_commission_agent` (`user_id`,`level`,`parent_agent_id`,`status`,`info_status`,`becometime`,`createtime`,`updatetime`) VALUES (910006,3,0,'normal',1,@ts,@ts,@ts), (910007,2,910006,'normal',1,@ts,@ts,@ts), (910008,1,910007,'normal',1,@ts,@ts,@ts) ON DUPLICATE KEY UPDATE level=VALUES(level), parent_agent_id=VALUES(parent_agent_id), status='normal', info_status=1, updatetime=@ts; -- ========== 5. 区域代理(省/市/区县) ========== -- 注意:area_id 需与 fa_shopro_area 中实际 ID 一致,默认贵州省/贵阳市/南明区 UPDATE `fa_shopro_regional_agent` SET `status`='forbidden', `updatetime`=@ts WHERE `area_id` IN (520000, 520100, 520102) AND `area_level` IN (1,2,3) AND `status`='normal' AND `user_id` NOT IN (910001,910002,910003); INSERT INTO `fa_shopro_regional_agent` (`user_id`,`level`,`area_id`,`area_level`,`area_name`,`commission_type`,`commission_rate`,`commission_money`,`total_income`,`order_money`,`order_count`,`status`,`becometime`,`createtime`,`updatetime`) VALUES (910001,1,520000,1,'贵州省',NULL,NULL,NULL,30.00,1000.00,1,'normal',@ts,@ts,@ts), (910002,2,520100,2,'贵阳市',NULL,NULL,NULL,20.00,1000.00,1,'normal',@ts,@ts,@ts), (910003,3,520102,3,'南明区',NULL,NULL,NULL,10.00,1000.00,1,'normal',@ts,@ts,@ts) ON DUPLICATE KEY UPDATE level=VALUES(level), area_id=VALUES(area_id), area_level=VALUES(area_level), area_name=VALUES(area_name), commission_type=VALUES(commission_type), commission_rate=VALUES(commission_rate), total_income=VALUES(total_income), order_money=VALUES(order_money), order_count=VALUES(order_count), status='normal', updatetime=@ts; -- ========== 6. 买家收货地址(用于区域匹配) ========== DELETE FROM `fa_shopro_user_address` WHERE `user_id` IN (910004,910005,910009); INSERT INTO `fa_shopro_user_address` (`user_id`,`is_default`,`consignee`,`phone`,`province_name`,`city_name`,`area_name`,`address`,`province_id`,`city_id`,`area_id`,`createtime`,`updatetime`) VALUES (910004,'1','区域-买家主测','19900000014','贵州省','贵阳市','南明区','区域代理测试地址1号',520000,520100,520102,@ts,@ts), (910005,'1','区域-买家备用','19900000015','贵州省','贵阳市','南明区','区域代理测试地址1号',520000,520100,520102,@ts,@ts), (910009,'1','区域-买家D','19900000019','贵州省','贵阳市','南明区','区域代理测试地址1号',520000,520100,520102,@ts,@ts); -- ========== 7. 示例佣金/业绩(mock 订单 910001001) ========== DELETE FROM `fa_shopro_regional_agent_reward` WHERE `order_id` IN (910001001,910001002); DELETE FROM `fa_shopro_regional_agent_order` WHERE `order_id` = 910001001; INSERT INTO `fa_shopro_regional_agent_order` (`order_id`,`order_item_id`,`buyer_id`,`agent_id`,`agent_user_id`,`area_id`,`area_level`,`amount`,`commission_event`,`commission_reward_status`,`commission_time`,`createtime`,`updatetime`) SELECT 910001001,910001001,910004,ra.id,910001,520000,1,1000.00,'payed',1,@ts,@ts,@ts FROM `fa_shopro_regional_agent` ra WHERE ra.user_id=910001 LIMIT 1; INSERT INTO `fa_shopro_regional_agent_order` (`order_id`,`order_item_id`,`buyer_id`,`agent_id`,`agent_user_id`,`area_id`,`area_level`,`amount`,`commission_event`,`commission_reward_status`,`commission_time`,`createtime`,`updatetime`) SELECT 910001001,910001001,910004,ra.id,910002,520100,2,1000.00,'payed',1,@ts,@ts,@ts FROM `fa_shopro_regional_agent` ra WHERE ra.user_id=910002 LIMIT 1; INSERT INTO `fa_shopro_regional_agent_order` (`order_id`,`order_item_id`,`buyer_id`,`agent_id`,`agent_user_id`,`area_id`,`area_level`,`amount`,`commission_event`,`commission_reward_status`,`commission_time`,`createtime`,`updatetime`) SELECT 910001001,910001001,910004,ra.id,910003,520102,3,1000.00,'payed',1,@ts,@ts,@ts FROM `fa_shopro_regional_agent` ra WHERE ra.user_id=910003 LIMIT 1; -- 已入账佣金 INSERT INTO `fa_shopro_regional_agent_reward` (`order_id`,`order_item_id`,`buyer_id`,`regional_order_id`,`agent_id`,`agent_user_id`,`type`,`commission`,`original_commission`,`status`,`createtime`,`updatetime`) SELECT 910001001,910001001,910004,ro.id,ro.agent_id,ro.agent_user_id,'money', CASE ro.agent_user_id WHEN 910001 THEN 30.00 WHEN 910002 THEN 20.00 ELSE 10.00 END, CASE ro.agent_user_id WHEN 910001 THEN 30.00 WHEN 910002 THEN 20.00 ELSE 10.00 END, 1, @ts-86400, @ts-86400 FROM `fa_shopro_regional_agent_order` ro WHERE ro.order_id=910001001; -- 待结算佣金 INSERT INTO `fa_shopro_regional_agent_reward` (`order_id`,`order_item_id`,`buyer_id`,`regional_order_id`,`agent_id`,`agent_user_id`,`type`,`commission`,`original_commission`,`status`,`createtime`,`updatetime`) SELECT 910001002,910001002,910004,ro.id,ro.agent_id,ro.agent_user_id,'money', CASE ro.agent_user_id WHEN 910001 THEN 15.00 WHEN 910002 THEN 10.00 ELSE 5.00 END, CASE ro.agent_user_id WHEN 910001 THEN 15.00 WHEN 910002 THEN 10.00 ELSE 5.00 END, 0, @ts, @ts FROM `fa_shopro_regional_agent_order` ro WHERE ro.order_id=910001001; -- 钱包流水(区域代理佣金入账) DELETE FROM `fa_shopro_user_wallet_log` WHERE `user_id` IN (910001,910002,910003) AND `type`='regional_agent_income' AND `memo`='区域代理佣金(测试数据)'; INSERT INTO `fa_shopro_user_wallet_log` (`user_id`,`wallet`,`type`,`wallet_type`,`before`,`after`,`item_id`,`memo`,`oper_type`,`oper_id`,`createtime`,`updatetime`) VALUES (910001,30.00,'regional_agent_income','money',4970.00,5000.00,'910001001','区域代理佣金(测试数据)','system',0,@ts-86400,@ts-86400), (910002,20.00,'regional_agent_income','money',4980.00,5000.00,'910001001','区域代理佣金(测试数据)','system',0,@ts-86400,@ts-86400), (910003,10.00,'regional_agent_income','money',4990.00,5000.00,'910001001','区域代理佣金(测试数据)','system',0,@ts-86400,@ts-86400); -- ========== 8. 运费模板配送区域(修复「当前地区不在配送范围」) ========== UPDATE `fa_shopro_dispatch_express` SET `province_ids` = '520000', `updatetime` = @ts WHERE (`deletetime` IS NULL OR `deletetime` = 0) AND (`province_ids` IS NULL OR `province_ids` = '') AND (`city_ids` IS NULL OR `city_ids` = '') AND (`area_ids` IS NULL OR `area_ids` = ''); UPDATE `fa_shopro_dispatch_express` SET `province_ids` = CONCAT(`province_ids`, ',520000'), `updatetime` = @ts WHERE (`deletetime` IS NULL OR `deletetime` = 0) AND `province_ids` IS NOT NULL AND `province_ids` <> '' AND FIND_IN_SET('520000', `province_ids`) = 0; UPDATE `fa_shopro_dispatch_express` de INNER JOIN `fa_shopro_dispatch` d ON d.`type` = 'express' AND FIND_IN_SET(de.`id`, d.`type_ids`) SET de.`province_ids` = '520000', de.`city_ids` = NULL, de.`area_ids` = NULL, de.`updatetime` = @ts WHERE (de.`deletetime` IS NULL OR de.`deletetime` = 0) AND (d.`deletetime` IS NULL OR d.`deletetime` = 0) AND (d.`name` LIKE '%雄戈%' OR d.`name` LIKE '%演示%'); SELECT '区域代理测试用户已写入,运费模板已配置贵州省配送' AS info;