startMonth = date('Y-m-01 00:00:00', strtotime('-1 month'));
// $this->endMonth = date("Y-m-d 23:59:59", strtotime(-date('d') . 'day'));
// $this->month = date('Y-m', strtotime('-1 month'));
$this->startMonth = date('Y-m-01 00:00:00');
$this->endMonth = date("Y-m-d 23:59:59");
$this->month = date('Y-m');
}
/**
* 奖金
*/
public function bonus()
{
//创客补贴
$this->real_subsidy_money();
// 跨店奖励
$this->stride_shop_money();
//推荐创客收益
$this->invite_shop_money();
//大V经理分享奖
$this->big_vip_money();
//大V升级奖
$this->big_vip_up_money();
echo '执行成功';
}
public function stride_shop_money()
{
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
$sql = "select stride_shop_mer_id,sum(stride_shop_money) stride_shop_money from rrx_store_order o
left join rrx_store_order_extend od on od.order_id=o.order_id
where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMonth' and '$this->endMonth' and od.stride_shop_mer_id>0 and od.stride_shop_money>0
group by od.stride_shop_mer_id";
$mer_bonus_list = Db::query($sql);
Db::name('log')->insert(['data' => "跨店奖励 mer_bonus_list:" . json_encode($mer_bonus_list)]);
foreach ($mer_bonus_list as $mer_bonus) {
$mer_id = $mer_bonus['stride_shop_mer_id'];
$money = $mer_bonus['stride_shop_money'];
if ($money < 0.01) {
Db::name('log')->insert(['data' => "跨店奖励:mer_id:{$mer_id} 跨店奖励低于0.01无法入库 特此记录!"]);
continue;
}
$merchant = Db::name('merchant')->where('mer_id', $mer_id)->find();
$mark = "跨店奖励" . $money;
$title = "跨店奖励({$this->month}月)";
$commission_type = 7;
$StoreOrderRepository->add_bill_gongfu($title, $money, $merchant['uid'] ?? 0, $mark, $commission_type, null, 0, $mer_id, 0, 1, 8, 'commission', $this->month, true);
}
}
public function invite_shop_money()
{
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
$sql = "select od.share_uid,sum(invite_shop_money) invite_shop_money from rrx_store_order o
left join rrx_store_order_extend od on od.order_id=o.order_id
where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMonth' and '$this->endMonth' and od.share_uid>0 and od.invite_shop_money>0 group by od.share_uid";
$user_bonus_list = Db::query($sql);
Db::name('log')->insert(['data' => "推荐创客奖励 user_bonus_list:" . json_encode($user_bonus_list)]);
foreach ($user_bonus_list as $user_bonus) {
$bonus_uid = $user_bonus['share_shop_uid'];
$money = $user_bonus['invite_shop_money'];
if ($money < 0.01) {
Db::name('log')->insert(['data' => "推荐创客:bonus_uid:{$bonus_uid} 推荐创客低于0.01无法入库 特此记录!"]);
continue;
}
$mark = "推荐创客收益" . $money;
$title = "推荐创客收益({$this->month}月)";
$commission_type = 10;
$StoreOrderRepository->add_bill_gongfu($title, $money, $bonus_uid, $mark, $commission_type, null, 0, $mer_id, 0, 1, 8, 'commission', $this->month);
}
}
public function big_vip_money()
{
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
$sql = "select od.share_uid,sum(big_vip_money) big_vip_money from rrx_store_order o
left join rrx_store_order_extend od on od.order_id=o.order_id
where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMonth' and '$this->endMonth' and od.share_uid>0 and od.big_vip_money>0 group by od.share_uid";
$user_bonus_list = Db::query($sql);
Db::name('log')->insert(['data' => "大v奖励 user_bonus_list:" . json_encode($user_bonus_list)]);
foreach ($user_bonus_list as $user_bonus) {
$bonus_uid = $user_bonus['share_uid'];
$money = $user_bonus['big_vip_money'];
if ($money < 0.01) {
Db::name('log')->insert(['data' => "大v分享奖:bonus_uid:{$bonus_uid} 大v分享奖低于0.01无法入库 特此记录!"]);
continue;
}
$mark = "大V经理分享奖" . $money;
$title = "大V经理分享奖({$this->month})";
$commission_type = 16;
$StoreOrderRepository->add_bill_gongfu($title, $money, $bonus_uid, $mark, $commission_type, null, 0, $mer_id, 0, 1, 8, 'commission', $this->month);
}
}
public function real_subsidy_money()
{
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
$sql = "select o.mer_id mer_id,sum(real_subsidy_money) real_subsidy_money from rrx_store_order o
left join rrx_store_order_extend od on od.order_id=o.order_id
where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMonth' and '$this->endMonth' and od.real_subsidy_money>0
group by o.mer_id";
$mer_bonus_list = Db::query($sql);
Db::name('log')->insert(['data' => "创客补贴 mer_bonus_list:" . json_encode($mer_bonus_list)]);
foreach ($mer_bonus_list as $mer_bonus) {
$mer_id = $mer_bonus['mer_id'];
$money = $mer_bonus['real_subsidy_money'];
if ($money < 0.01) {
Db::name('log')->insert(['data' => "创客补贴:mer_id:{$mer_id} 创客补贴低于0.01无法入库 特此记录!"]);
continue;
}
$merchant = Db::name('merchant')->where('mer_id', $mer_id)->find();
$mark = "创客补贴" . $money;
$title = "创客补贴({$this->month}月)";
$commission_type = 19;
$StoreOrderRepository->add_bill_gongfu($title, $money, $merchant['uid'] ?? 0, $mark, $commission_type, null, 0, $mer_id, 0, 1, 8, 'commission', $this->month, true);
}
}
/**
* 大V升级奖
* 1. 查询大V经理列表
* 2. 查询团队列表
* 3. 查询团队这个月的总流水的百分之一分给大V经理
* @return void
*/
public function big_vip_up_money()
{
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
$user_list = Db::name("user")->field('uid')->where("user_group", 3)->select()->toArray();
foreach ($user_list as $user) {
$mer_id = 0;
$user_id = $user['uid'];
$sql = "select getUserSpreadId($user_id) as uids";
$spread_user_list = Db::query($sql);
$spread_user_list = trim($spread_user_list[0]['uids'],'$,');
//查询可以分到的钱
$sql = "select sum(big_vip_up_money) big_vip_up_money from rrx_store_order o
left join rrx_store_order_extend od on od.order_id=o.order_id
where o.paid=1 and o.is_settlement=1 and settlement_time between '$this->startMonth' and '$this->endMonth' and o.uid in ($spread_user_list)";
$big_vip_up = Db::query($sql)[0];
$money = $big_vip_up['big_vip_up_money'] ?? 0;
Db::name('log')->insert(['data' => "大V升级奖 big_vip_up_money {$user_id}:{$money}"]);
if ($money < 0.01) {
Db::name('log')->insert(['data' => "大v分享奖:big_vip_up_money:{$money} 大v分享奖低于0.01无法入库 特此记录!"]);
continue;
}
$mark = "大V升级奖" . $money;
$title = "大V升级奖({$this->month}月)";
$commission_type = 10;
$StoreOrderRepository->add_bill_gongfu($title, $money, $user_id, $mark, $commission_type, null, 0, $mer_id, 0, 1, 8, 'commission', $this->month);
}
}
/**
* 用户升级
* @throws DbException
*/
public function member_up()
{
$uid_list = Db::name('store_order')
->where('mer_id', systemConfig('mer_365'))
->where('paid', 1)
->whereIn('status', [0, 1, 2, 3])
->group('uid')
->column('uid');
Log::info('升级:' . json_encode($uid_list));
foreach ($uid_list as $uid) {
$pay_price = Db::name('store_order')
->where('mer_id', systemConfig('mer_365'))
->where('uid', $uid)
->where('paid', 1)
->where('is_settlement', 1)
->whereIn('status', [0, 1, 2, 3])
->sum('pay_price');
if ($pay_price >= 365) {
// 有没有直推20个经理
$invite_count = Db::name('user')->where('spread_uid', $uid)->field('uid,user_group')->where('user_group', 2)->count();
print_r("uid:{$uid}," . Db::name('user')->where('uid', $uid)->value('phone') . "邀请365经理人数{$invite_count}
");
if ($invite_count >= 20) {
$res = Db::name('user')->where('uid', $uid)->whereNotIn('user_group', [4, 5, 6])->update([
'user_group' => 3
]);
if ($res) var_dump("uid:{$uid},升级大V经理");
} else {
$res = Db::name('user')->where('uid', $uid)->whereNotIn('user_group', [3, 4, 5, 6])->update([
'user_group' => 2
]);
if ($res) var_dump("uid:{$uid},升级365会员");
}
}
}
}
/**
* 创客合伙人收益
*/
private function partner_award()
{
//1. 被创客设置成创客合伙人,获得该项收益
//已结算订单金额的
//2%
//1. 按月统计并结算
//2. 计算公式:
//所属创客店补贴*2%/创客合伙人总数
// 推荐创客收益设置
$commission_rate = systemConfig('commission_rate');
Db::name('log')->insert(['data' => 'commission_rate:' . json_encode($commission_rate)]);
$rate = $commission_rate['chuangkehehuoren_rate'];
// 查询全部订单
$sql = "select mer_id,sum(pay_price) pay_price,sum(total_price) total_price from rrx_store_order where paid=1 and status in (2,3) and is_settlement=1 and settlement_time between '$this->startMonth' and '$this->endMonth' group by mer_id";
$mer_order_list = Db::query($sql);
Db::name('log')->insert(['data' => "创客合伙人收益 user_order_list:" . json_encode($mer_order_list)]);
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
$mer_out_list = [];
foreach ($mer_order_list as $mer_order) {
$mer_id = $mer_order['mer_id'];
$hehuo_user_list = Db::name('user')->field('uid')->where('mer_id', $mer_id)->where('is_shop_partner', 1)->select()->toArray();
$money = decimal2($mer_order['total_price'] * $rate / 100);
foreach ($hehuo_user_list as $hehuo_user) {
$user_money = decimal2($money / count($hehuo_user_list));
Db::name('log')->insert(['data' => "创客补贴:uid:{$hehuo_user['uid']} 创客合伙人人数:" . count($hehuo_user_list) . " 创客补贴比例{$rate}% 创客店铺订单流水:{$mer_order['total_price']} 获取创客推荐收益:{$money}!"]);
if ($money == 0) {
Db::name('log')->insert(['data' => "创客补贴:uid:{$hehuo_user['uid']} 创客补贴低于0.01无法入库 特此记录!"]);
continue;
}
$mark = "创客合伙人收益" . $user_money;
$title = "创客合伙人收益({$this->month}月)";
$commission_type = 17;
$StoreOrderRepository->add_bill_gongfu($title, $money, $hehuo_user['uid'], $mark, $commission_type, null, 0, $mer_id, 0, 1, 8, 'commission', $this->month);
}
$money = decimal2($mer_order['total_price'] * $rate / 100);
$mer_out_list[] = [
$mer_order['mer_id'] => $money
];
}
Db::name('log')->insert(['data' => '跨店奖励 商户支出:' . json_encode($mer_out_list)]);
return $mer_out_list;
}
/**
* 代理区域收益
*/
public function area_manage_details()
{
//1. 代理区域内已结算订单总额的百分
//比;
//2. 按照收货地址统计;
//3. 奖励对象:省代、区县代;
//区县代 5%
//省代 2%
//1. 按月结算:每月 1 号 0 点
//统计上月已结算的订单金额
//并对应发放佣金
//2. 计算公式:
//(1)无运费:收货地为该区域的已结算订单金额*对应比例
//(2)有运费:(收货地为该区域的已结算订单金额-运费)*对应比例
set_time_limit(0);
ini_set('memory_limit', '-1');
$commission_rate = systemConfig('commission_rate');
Db::name('log')->insert(['data' => '代理区域收益 commission_rate:' . json_encode($commission_rate)]);
$area_agency_rate = $commission_rate['area_agency_rate'] ?? 0;
$province_agency_rate = $commission_rate['province_agency_rate'] ?? 0;
$bonus_list = [];
$bonus_user_list = Db::name('user')->field('uid,user_group,manage_address,spread_uid')->whereIn('user_group', [5, 6])->select()->toArray();
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
foreach ($bonus_user_list as $bonus_user) {
$manage_address = $bonus_user['manage_address'];
if (empty($manage_address))
continue;
$sql = "select sum(pay_price) pay_price,sum(total_price) total_price from rrx_store_order where paid=1 and status in (2,3) and is_settlement=1 and settlement_time between '$this->startMonth' and '$this->endMonth' and user_address_ids like '$manage_address%'";
$total_price = Db::query($sql)[0]['total_price'] ?? 0;
$rate = $bonus_user['user_group'] == 6 ? $province_agency_rate : $area_agency_rate;
$money = decimal2($total_price * $rate / 100);
Db::name('log')->insert(['data' => "代理区域收益:uid:{$bonus_user['uid']} 代理区域收益比例{$rate}% 流水:{$total_price} 收益:{$money} sql:" . $sql]);
$mark = "代理区域收益" . $money;
$title = "代理区域收益({$this->month}月)";
$commission_type = 12;
$StoreOrderRepository->add_bill_gongfu($title, $money, $bonus_user['uid'], $mark, $commission_type, null, 0, 0, 0, 1, 8, 'commission', $this->month);
$bonus_list[] = [
'uid' => $bonus_user['uid'],
'money' => $money,
'spread_uid' => $bonus_user['spread_uid'],
];
}
$this->invite_agency_award($bonus_list);
echo '执行成功';
}
/**
* 推荐代理收益
* @param $bonus_list
*/
private function invite_agency_award($bonus_list)
{
// 1. 推荐的代理收益的百分比
//2. 奖励对象:所有用户
//1. 按月结算:每个月 1 号 0点统计上月的代理收益并对应发放佣金
//2. 计算公式:
//推荐代理总收益*推荐代理收益百分比
$StoreOrderRepository = app()->make(StoreOrderRepository::class);
$this->month = date('Y-m', strtotime('-1 month'));
$commission_rate = systemConfig('commission_rate');
$rate = $commission_rate['tuijiandaili_rate'] ?? 0;
foreach ($bonus_list as $bonus) {
$money = decimal2($bonus['money'] * $rate / 100);
$mark = "推荐代理收益" . $money;
$title = "推荐代理收益({$this->month}月)";
$commission_type = 15;
$StoreOrderRepository->add_bill_gongfu($title, $money, $bonus['spread_uid'], $mark, $commission_type, null, 0, 0, 0, 1, 8, 'commission', $this->month, $this->month);
}
}
/**
* 生成商品图片缓存(最好用命令行执行)
* @return \think\response\Json
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public function make_product_share_cache()
{
set_time_limit(0);
ini_set('memory_limit', '-1');
$redis = Cache::store('redis')->handler();
$key = 'make_product_share_cache';
// $redis->del($key);
// if (!$redis->setnx($key, 1))
// return json(['code' => 400, 'msg' => '现在有正在执行的任务' ]);
$redis->expire($key, 5 * 60);
$product_share_ids = Db::name('product_share')
// ->where('`url` is not null')
->group('product_id')
->column('product_id');
$list = Db::name('store_product')
->whereNotIn('product_id', $product_share_ids)
->where('is_show', 1)
->limit(3)
->order('create_time desc')
->select()
->toArray();
var_dump($list);
$header = [
'X-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJ0ZXN0LmJqdGRiYS5jb20iLCJhdWQiOiJ0ZXN0LmJqdGRiYS5jb20iLCJpYXQiOjE2OTI0MjQ4MTEsIm5iZiI6MTY5MjQyNDgxMSwiZXhwIjoxNzAzMjI0ODExLCJqdGkiOls5NzIwLCJ1c2VyIl19.YtYf1ssMTz6fOO2rZVX-jb48L7AqXSKezQcbTHR3sCk'
];
foreach ($list as $store_product) {
$res1 = Common::sendCurl("http://127.0.0.1:8324/api/product_share?pid={$store_product['product_id']}&type=1", null, 'get', $header);
$res2 = Common::sendCurl("http://127.0.0.1:8324/api/product_share?pid={$store_product['product_id']}&type=2", null, 'get', $header);
var_dump($res1, $res2);
}
$redis->del($key);
return json(['code' => 200, 'msg' => '生成商品分享缓存定时任务执行成功']);
}
/**
* 梳理每个人的公排人数
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function tease_user_count()
{
$list = Db::name('user')->where('is_del', 0)->select()->toArray();
foreach ($list as $item) {
$level_number = Db::name('user')->where('level_id', $item['uid'])->count();
$user_count = Db::name('user_count')->where('uid', $item['uid'])->find();
if ($level_number >= 5) {
$res = Db::name('user_count')->where('uid', $item['uid'])->delete();
if ($res) echo "{$item['uid']}公排人数已删除\r\n";
continue;
}
if ($user_count) {
if ($level_number == $user_count['level_number']) continue;
Db::name('user_count')->where('uid', $item['uid'])->update([
'level_number' => $level_number
]);
} else {
Db::name('user_count')->insert([
'uid' => $item['uid'],
'level_number' => 0
]);
$user_count['level_number'] = 0;
}
echo "{$item['uid']}公排人数从{$user_count['level_number']}调整到{$level_number}人\r\n";
Log::info("{$item['uid']}公排人数从{$user_count['level_number']}调整到{$level_number}人\r\n");
}
return json(['code' => 200, 'msg' => '生成商品分享缓存定时任务执行成功']);
}
/**
* 下架微唯宝已下架的商品
* @return mixed
* @throws \think\db\exception\DbException
*/
public function downGongProduct()
{
$start = input('start');
$where = [
'is_used' => 1,
'mer_status' => 1,
// 'type' => 5,
// 'is_show' => 1,
'is_hide' => 0,
// 'is_del' => 0
];
if (!$start) {
$product_data_count = Db::name('store_product')
->where($where)
->where("spu_id != '' or spu_id is not null")
->count();
$start = mt_rand(0, $product_data_count);
}
$product_data = Db::name('store_product')
->where($where)
->where("spu_id != '' or spu_id is not null")
->where('product_id', '>', $start)
->order('product_id asc')
->limit(0, 50)
->select()
->toArray();
foreach ($product_data as $item) {
$spuIds = $item['spu_id'];
$goods_status = GongApiRequest::goods_status($spuIds);
$status = $goods_status[0]['status'] ?? 1;
$goods_info = GongApiRequest::get_goods_info($spuIds);
if ($status == 0 || (isset($goods_info['error_msg']) && $goods_info['error_msg'] == '没有查询到商品信息')) {
Db::startTrans();
try {
// 删除选品库对应的数据
Db::name('douhuomall')->whereIn('spu_id', $spuIds)->update([
'status' => 9,
'update_time' => date('Y-m-d H:i:s')
]);
// 删除商品管理对应的数据
Db::name('store_product')->whereIn('spu_id', $spuIds)->update([
'is_del' => 1,
'is_show' => 0
]);
Db::commit();
} catch (Exception $e) {
Db::rollback();
Log::channel("gong")->error('供应链取消商品失败:' . $e->getMessage());
return app('json')->fail($e->getMessage());
}
} else if ($status == 1 || !isset($goods_info['error_msg'])) {
Db::startTrans();
try {
// 选品库对应的数据
Db::name('douhuomall')->whereIn('spu_id', $spuIds)->update([
'status' => 1,
'update_time' => date('Y-m-d H:i:s')
]);
// 商品管理对应的数据
Db::name('store_product')->whereIn('spu_id', $spuIds)->update([
'is_del' => 0,
'is_show' => 1
]);
Db::commit();
} catch (Exception $e) {
Db::rollback();
Log::channel("gong")->error('供应链取消商品失败:' . $e->getMessage());
return app('json')->fail($e->getMessage());
}
}
}
return app('json')->success('操作成功');
}
/**
* 定时获取 交易类型 1订单入账 2佣金提现支出 3养老金(红积分兑换订单)
*/
public function platform_income_detail_get()
{
$merchant_list = Db::name('merchant')
->where('status', 1)
->where('mer_state', 1)
->where("mer_name != ''")
->column('mer_id');
$Reconciliation = app()->make(Reconciliation::class);
$unique_list = [];
$enterprise_platform_income_detail_list = Db::name('enterprise_platform_income_detail')
->select()
->toArray();
foreach ($enterprise_platform_income_detail_list as $item) {
$unique_list[] = $item['deal_type'] . $item['uid'] . $item['order_sn'] . $item['order_id'] . $item['user_extra_id'] . $item['mer_id'];
}
foreach ($merchant_list as $mer_id) {
$OrderMerchantRepository = app()->make(OrderMerchantRepository::class);
$is_first = empty($enterprise_platform_income_detail_list);
// 1自营订单入账金额=已结算订单金额-运费-养老金-汇付通道服务费; 订单结算的时候才统计
$store_order_list = Db::name('store_order')
->where('mer_id', $mer_id)
->where('paid', 1)
->where('douhuomall', 0)
->where('is_settlement', 1)
->order('order_id', 'desc')
// ->limit(500)
->select()
->toArray();
foreach ($store_order_list as $store_order) {
if (in_array('1' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) continue;
$pay_type = $store_order['pay_type'];
if (!in_array($pay_type, [0, 1])) continue;
$group_order = Db::name('store_group_order')
->alias('sgo')
->where('sgo.group_order_id', $store_order['group_order_id'])
->find();
if (empty($group_order)) continue;
$shop_bonus_setting = merchantConfig($store_order['mer_id'], 'shop_bonus_setting') ?: [
'shop_bonus_rate' => 30,
'yanglao_rate' => 5,
];
$yanglao = Db::name('user_bill')
->where('order_sn', $store_order['order_sn'])
->where('commission_type', 5)
->value('number');
$ru_money = 0;
if ($pay_type != 0) {
$store_split_order = Db::name('store_split_order')
->where('group_order_id', $group_order['group_order_sn'])
->where('status', 1)
->find();
if (empty($store_split_order)) continue;
if ($pay_type == 1) {
//微信
if ($group_order['pay_wx'] == 3) {
$api_key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
} else {
$api_key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
}
} else {
//支付宝
$api_key = 'api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9';
}
$params['payment_confirm_id'] = $store_split_order['hf_pay_id'];
$params['api_key'] = $api_key;
//查询支付确认对象
Db::name("log")->insert(array('data' => '汇付查询支付确认对象参数-----' . json_encode($params)));//日志记录
$res = $this->payment_confirm_query_traits($params);
Db::name("log")->insert(array('data' => '汇付查询支付确认对象返回-----' . json_encode($res)));//日志记录
// 获取分账后一个工作日时间
$close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
if (isset($res['status'])) {
Db::name('store_order')->where('order_id', $store_order['order_id'])->update([
'hf_fee_amt' => $res['fee_amt'],
'hf_clear_time' => $close_time
]);
}
if (isset($res['status']) && time() > strtotime($close_time)) {
if ($store_order['mer_id'] == 496) {
$ru_money = $store_order['pay_price'] - $yanglao - $res['fee_amt'];
} else {
$ru_money = $store_order['pay_price'] * (1 - $shop_bonus_setting['shop_bonus_rate'] / 100) - $res['fee_amt'] + +$store_order['pay_postage'];
}
$store_order['pay_time'] = '';//线上支付的
} else {
continue;
}
} else {
// 订单金额+运费
if ($store_order['mer_id'] == 496) {
$ru_money = $store_order['pay_price'] - $yanglao;
} else {
$ru_money = $store_order['pay_price'] * (1 - $shop_bonus_setting['shop_bonus_rate'] / 100) + $store_order['pay_postage'];
}
}
Db::name('enterprise_platform_income_detail')
->insert([
'mer_id' => $mer_id,
'uid' => $store_order['uid'],
'title' => '自营订单入账',
'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
'deal_time' => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
'money' => $ru_money,
'deal_type' => 1,
'order_id' => $store_order['order_id'],
'order_sn' => $store_order['order_sn'],
'user_extra_id' => '',
'pm' => 1,
'create_time' => date('Y-m-d H:i:s'),
]);
unset($close_time);
}
//2佣金提现到账 提现成功统计
// $user_extract_list = Db::name('user_extract')
// ->field('extract_id,uid,extract_type,extract_price,service_money,order_sn,status_time')
// ->where('status', 1)
// ->where('withdrawal_type', 3)
// ->where('extract_type', '<>', 4)
// ->when($uids, function ($query) use ($uids) {
// $query->whereIn('uid', $uids);
// })
// ->order('extract_id', 'desc')
//// ->limit(100)
// ->select()
// ->toArray();
// foreach ($user_extract_list as $user_extract) {
// if (in_array('2' . $user_extract['uid'] . $user_extract['order_sn'] . '0' . $user_extract['extract_id'], $unique_list)) continue;
// $enterprise_platform_income_detail = Db::name('enterprise_platform_income_detail')
// ->where('deal_type', 2)
// ->where('user_extra_id', $user_extract['extract_id'])
// ->find();
// if (!$enterprise_platform_income_detail) {
// Db::name('enterprise_platform_income_detail')
// ->insert([
// 'mer_id' => $mer_id,
// 'uid' => $user_extract['uid'],
// 'title' => '佣金提现支出',
// 'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
// 'deal_time' => $user_extract['status_time'],
// 'money' => bcsub($user_extract['extract_price'], $user_extract['service_money'], 2),
// 'deal_type' => 2,
// 'order_id' => '',
// 'order_sn' => $user_extract['order_sn'],
// 'user_extra_id' => $user_extract['extract_id'],
// 'pm' => 1,
// 'create_time' => date('Y-m-d H:i:s'),
// ]);
// }
// }
$start_time = '2024-04-01';
for ($i = 0; $i < 1000; $i++) {
$day = date('Y-m-d', strtotime("+{$i} days", strtotime($start_time)));
if (strtotime($day) > time()) {
break;
}
$Reconciliation->cron($day, $mer_id);
}
}
// 计算平台
//交易类型 1自营订单入账(商户) 2佣金提现到账(商户) 3订单支付 4商户佣金提现 5用户佣金提现 6订单入账 7 创客自营订单让利
$mer_id = 0;
// 3 订单支付 供应链订单结算后入账到平台的金额
$store_order_list = Db::name('store_order')
->where('paid', 1)
->order('order_id', 'desc')
// ->limit(500)
->select()
->toArray();
foreach ($store_order_list as $store_order) {
if (in_array('3' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) continue;
$group_order = Db::name('store_group_order')
->alias('sgo')
->where('sgo.group_order_id', $store_order['group_order_id'])
->find();
if (empty($group_order)) continue;
$store_split_order = Db::name('store_split_order')
->where('group_order_id', $group_order['group_order_sn'])
->where('status', 1)
->find();
if (empty($store_split_order)) continue;
$close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
Db::name('enterprise_platform_income_detail')
->insert([
'mer_id' => $mer_id,
'uid' => $store_order['uid'],
'title' => '订单支付',
'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy4'),
'deal_time' => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
'money' => $store_order['pay_price'] + $store_order['pay_postage'],
'deal_type' => 3,
'order_id' => $store_order['order_id'],
'order_sn' => $store_order['order_sn'],
'user_extra_id' => '',
'pm' => 1,
'create_time' => date('Y-m-d H:i:s'),
]);
}
//5用户佣金提现
$user_extract_list = Db::name('user_extract')
->field('extract_id,uid,extract_type,extract_price,service_money,order_sn,status_time')
->where('status', 1)
->order('extract_id', 'desc')
// ->limit(100)
->select()
->toArray();
foreach ($user_extract_list as $user_extract) {
if (in_array('5' . $user_extract['uid'] . $user_extract['order_sn'] . '0' . $user_extract['extract_id'] . $mer_id, $unique_list)) continue;
Db::name('enterprise_platform_income_detail')
->insert([
'mer_id' => $mer_id,
'uid' => $user_extract['uid'],
'title' => '用户佣金提现',
'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
'deal_time' => $user_extract['status_time'],
'money' => bcsub($user_extract['extract_price'], $user_extract['service_money'], 2),
'deal_type' => 5,
'order_id' => '',
'order_sn' => $user_extract['order_sn'],
'user_extra_id' => $user_extract['extract_id'],
'pm' => 0,
'create_time' => date('Y-m-d H:i:s'),
]);
}
// 6订单入账:支付成功的订单数据 供应链订单
$store_order_list = Db::name('store_order')
->where('paid', 1)
->where('douhuomall', 1)
->where('is_settlement', 1)
->order('order_id', 'desc')
// ->limit(500)
->select()
->toArray();
foreach ($store_order_list as $store_order) {
if (in_array('6' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) continue;
$pay_type = $store_order['pay_type'];
if (!in_array($pay_type, [0, 1])) continue;
$group_order = Db::name('store_group_order')
->alias('sgo')
->where('sgo.group_order_id', $store_order['group_order_id'])
->find();
if (empty($group_order)) continue;
$yanglao = Db::name('user_bill')
->where('order_sn', $store_order['order_sn'])
->where('commission_type', 5)
->value('number');
$ru_money = 0;
$shop_bonus_setting = merchantConfig($store_order['mer_id'], 'shop_bonus_setting') ?: [
'shop_bonus_rate' => 30,
'yanglao_rate' => 5,
];
if ($pay_type != 0) {
$store_split_order = Db::name('store_split_order')
->where('group_order_id', $group_order['group_order_sn'])
->find();
if (empty($store_split_order)) continue;
if (!$store_order['hf_fee_amt']) {
if ($pay_type == 1) {
//微信
if ($group_order['pay_wx'] == 3) {
$api_key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
} else {
$api_key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
}
} else {
//支付宝
$api_key = 'api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9';
}
$params['payment_confirm_id'] = $store_split_order['hf_pay_id'];
$params['api_key'] = $api_key;
//查询支付确认对象
Db::name("log")->insert(array('data' => '汇付查询支付确认对象参数-----' . json_encode($params)));//日志记录
$res = $this->payment_confirm_query_traits($params);
Db::name("log")->insert(array('data' => '汇付查询支付确认对象返回-----' . json_encode($res)));//日志记录
if (isset($res['status'])) {
Db::name('store_order')->where('order_id', $store_order['order_id'])->update([
'hf_fee_amt' => $res['fee_amt'],
'hf_clear_time' => $close_time
]);
$store_order['hf_fee_amt'] = $res['fee_amt'];
}
}
// 获取分账后一个工作日时间
$close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
if (isset($res['status']) && time() > strtotime($close_time)) {
if ($store_order['mer_id'] == 496) {
$ru_money = $store_order['pay_price'] - $yanglao - $store_order['hf_fee_amt'];
} else {
$ru_money = $store_order['pay_price'] - $yanglao;
}
$store_order['pay_time'] = '';//线上支付的
} else {
continue;
}
} else {
// 订单金额+运费
if ($store_order['mer_id'] == 496) {
$ru_money = $store_order['pay_price'] - $yanglao;
} else {
$ru_money = $store_order['pay_price'] - $yanglao;
}
}
Db::name('enterprise_platform_income_detail')
->insert([
'mer_id' => $mer_id,
'uid' => $store_order['uid'],
'title' => '订单入账',
'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy2'),
'deal_time' => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
'money' => $ru_money,
'deal_type' => 6,
'order_id' => $store_order['order_id'],
'order_sn' => $store_order['order_sn'],
'user_extra_id' => '',
'pm' => 1,
'create_time' => date('Y-m-d H:i:s'),
]);
unset($close_time);
}
//7 创客自营订单让利=创客自营订单金额*分润比例-(创客自营订单金额-运费)*养老金比例
$store_order_list = Db::name('store_order')
->where('paid', 1)
->where('is_settlement', 1)
->where('douhuomall', 0)
->order('order_id', 'desc')
// ->limit(500)
->select()
->toArray();
foreach ($store_order_list as $store_order) {
if (in_array('7' . $store_order['uid'] . $store_order['order_sn'] . $store_order['order_id'] . '0' . $mer_id, $unique_list)) continue;
$shop_bonus_setting = merchantConfig($store_order['mer_id'], 'shop_bonus_setting') ?: [
'shop_bonus_rate' => 30,
'yanglao_rate' => 5,
];
$pay_type = $store_order['pay_type'];
if ($pay_type != 0) {
$group_order = Db::name('store_group_order')
->alias('sgo')
->where('sgo.group_order_id', $store_order['group_order_id'])
->find();
if (empty($group_order)) continue;
$store_split_order = Db::name('store_split_order')
->where('group_order_id', $group_order['group_order_sn'])
->find();
if (empty($store_split_order)) continue;
$close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
if (!$store_order['hf_fee_amt']) {
$store_split_order = Db::name('store_split_order')
->where('group_order_id', $group_order['group_order_sn'])
->where('status', 1)
->find();
if (empty($store_split_order)) continue;
if ($pay_type == 1) {
//微信
if ($group_order['pay_wx'] == 3) {
$api_key = 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871';
} else {
$api_key = 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f';
}
} else {
//支付宝
$api_key = 'api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9';
}
$params['payment_confirm_id'] = $store_split_order['hf_pay_id'];
$params['api_key'] = $api_key;
//查询支付确认对象
Db::name("log")->insert(array('data' => '汇付查询支付确认对象参数-----' . json_encode($params)));//日志记录
$res = $this->payment_confirm_query_traits($params);
Db::name("log")->insert(array('data' => '汇付查询支付确认对象返回-----' . json_encode($res)));//日志记录
// 获取分账后一个工作日时间
$close_time = $this->getNextWorkday(date('Y-m-d H:i:s', strtotime('+1 days', strtotime($store_order['pay_time']))));
if (isset($res['status'])) {
Db::name('store_order')->where('order_id', $store_order['order_id'])->update([
'hf_fee_amt' => $res['fee_amt'],
'hf_clear_time' => $close_time
]);
$store_order['hf_fee_amt'] = $res['fee_amt'];
}
}
$yanglao = Db::name('user_bill')
->where('order_sn', $store_order['order_sn'])
->where('commission_type', 5)
->value('number');
if (isset($res['status']) && time() > strtotime($close_time)) {
if ($store_order['mer_id'] == 496) {
$ru_money = $store_order['pay_price'] - $yanglao - $store_order['hf_fee_amt'];
} else {
$ru_money = ($store_order['pay_price'] * $shop_bonus_setting['shop_bonus_rate'] / 100) - $yanglao;
}
$store_order['pay_time'] = '';//线上支付的
} else {
continue;
}
}else{
if ($store_order['mer_id'] == 496) {
$ru_money = $store_order['pay_price'] - $yanglao;
} else {
$ru_money = ($store_order['pay_price'] * $shop_bonus_setting['shop_bonus_rate'] / 100) - $yanglao;
}
}
Db::name('enterprise_platform_income_detail')
->insert([
'mer_id' => $mer_id,
'uid' => $store_order['uid'],
'title' => '创客自营订单让利',
'deal_order_sn' => $OrderMerchantRepository->getNewOrderId('jy4'),
'deal_time' => isset($close_time) ? $close_time : ((isset($store_order['pay_time']) && $store_order['pay_time']) ? $store_order['pay_time'] : date('Y-m-d H:i:s')),
'money' => $ru_money,
'deal_type' => 7,
'order_id' => $store_order['order_id'],
'order_sn' => $store_order['order_sn'],
'user_extra_id' => '',
'pm' => 1,
'create_time' => date('Y-m-d H:i:s'),
]);
unset($close_time);
}
$start_time = '2024-04-01';
for ($i = 0; $i < 1000; $i++) {
$day = date('Y-m-d', strtotime("+{$i} days", strtotime($start_time)));
if (strtotime($day) > time()) {
break;
}
$Reconciliation->cron($day, 0);
}
return app('json')->success('获取平台收支明细成功');
}
public function clear_platform_income_detail()
{
Db::name('enterprise_platform_income_detail')->where('id', '>', 0)
->delete();
}
function getNextWorkday($date)
{
// 设置工作日数组
$workdays = array(1, 2, 3, 4, 5); // 默认为周一到周五
// 将日期字符串转换为时间戳
$timestamp = strtotime($date);
// 获取该日期的星期几
$weekday = date('N', $timestamp);
// 如果不是工作日,则增加一天直到是工作日
while (!in_array($weekday, $workdays)) {
$timestamp += (24 * 3600); // 增加一天
$weekday = date('N', $timestamp); // 更新星期几
}
// 返回下一个工作日的日期字符串
return date('Y-m-d H:i:s', $timestamp);
}
/**
* @param $paymnet_params
* @return array
* 查询支付确认对象
*/
public
function payment_confirm_query_traits($paymnet_params)
{
$merber = new PaymentConfirm();
$merber->query($paymnet_params);
# 返回查询结果
$merber->isError();
return $merber->result;
}
//服务器配置,一般是默认配置
private $CharSet = "UTF-8"; //设定邮件编码
private $SMTPDebug = 0; // 调试模式输出
private $isSMTP = true; // 使用SMTP
private $Host = 'smtp.163.com'; // SMTP服务器
private $SMTPAuth = true; // 允许 SMTP 认证
private $Username = 'username'; // SMTP 用户名 即邮箱的用户名
private $Password = 'MHIKZOXVPTGNVOMU'; // SMTP 密码 部分邮箱是授权码(例如163邮箱)
private $SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议
private $Port = 465; // 服务器端口 25 或者465 具体要看邮箱服务器支持
//修改成自己的邮箱
private $From = 'formalverification@163.com'; //发件人邮箱
private $FromName = 'makalo'; //发件人的用户昵称
//邮件对象
private $mail;
//一般只有用户名和密码还有端口会变动, 所以这三个参数可以创建对象动态指定,也可以直接写死
public function mallInit($Username = '', $Password = '', $Port = '')
{
if (!empty($Username)) {
$this->Username = $Username;
}
if (!empty($Password)) {
$this->Password = $Password;
}
if (!empty($Port)) {
$this->Port = $Port;
}
//为true表示启用异常
$mail = new PHPMailer(true);
//服务器配置
$mail->CharSet = $this->CharSet; //设定邮件编码
$mail->SMTPDebug = $this->SMTPDebug; // 调试模121212 1式输出
if ($this->isSMTP === true) {
$mail->isSMTP(); // 使用SMTP
}
$mail->Host = $this->Host; // SMTP服务器
$mail->SMTPAuth = $this->SMTPAuth; // 允许 SMTP 认证
$mail->Username = $this->Username; // SMTP 用户名 即邮箱的用户名
$mail->Password = $this->Password; // SMTP 密码 部分邮箱是授权码(例如163邮箱)
$mail->SMTPSecure = $this->SMTPSecure; // 允许 TLS 或者ssl协议
$mail->Port = $this->Port; // 服务器端口 25 或者465 具体要看邮箱服务器支持
$mail->setFrom($this->From, $this->FromName); //发件人
$this->mail = $mail;
}
/**
* 发送邮件
* @param array $sendAddress 收件人地址数组, 如果为单值数组则只写入收件地址,如果为键值数组则还写入收件人名称
* @param array $Attachment 附件数组,如果为单值数组则为添加附件,如果为键值数组则添加附件并且重命名
* @param bool $isHtml 是否以html文档格式发送
* @param string $Subject 邮件主题
* @param string $Body 邮件内容,如果以html格式可以写入html
* @param string $AltBody 如果为单值数组则只写入收件地址,如果为键值数组则还写入收件人名称
* @param array $CC 抄送地址数组, 如果为单值数组则只写入收件地址,如果为键值数组则还写入收件人名称
* @param array $BCC 密送地址数组,如果为单值数组则只写入收件地址,如果为键值数组则还写入收件人名称
* @return bool 是否发送成功
*/
public function sendEMail($sendAddress = [], $Subject = '', $Body = '', $AltBody = '', $Attachment = [], $isHtml = true, $CC = [], $BCC = [])
{
try {
//必填参数校验
if (empty($sendAddress) || empty($Subject) || empty($Body)) {
return false;
}
//收件人
foreach ($sendAddress as $key => $value) {
if (is_int($key)) {
// 处理单值
$this->mail->addAddress($value);
} else {
// 处理键值
$this->mail->addAddress($value, $key);
}
}
//附件
if (!empty($Attachment)) {
foreach ($Attachment as $key => $value) {
if (is_int($key)) {
// 处理单值
$this->mail->addAttachment($value);
} else {
// 处理键值
$this->mail->addAttachment($value, $key);
}
}
}
//抄送
if (!empty($CC)) {
//抄送不为空
foreach ($CC as $key => $value) {
if (is_int($key)) {
// 处理单值
$this->mail->addCC($value);
} else {
// 处理键值
$this->mail->addCC($value, $key);
}
}
}
//密送
if (!empty($BCC)) {
//密送不为空
foreach ($BCC as $key => $value) {
if (is_int($key)) {
// 处理单值
$this->mail->addBCC($value);
} else {
// 处理键值
$this->mail->addBCC($value, $key);
}
}
}
//回复的时候回复给哪个邮箱 建议和发件人一致
$this->mail->addReplyTo($this->From, $this->FromName);
//Content
// 是否以HTML文档格式发送 发送后客户端可直接显示对应HTML内容
$this->mail->isHTML($isHtml);
//邮件主题
$this->mail->Subject = $Subject;
//邮件内容
$this->mail->Body = $Body;
//如果邮件客户端不支持HTML则显示此内容
$this->mail->AltBody = $AltBody;
//发送
$this->mail->send();
return [
'code' => 200,
];
} catch (\Exception $e) {
return [
'code' => 400,
'message' => $this->mail->ErrorInfo
];
}
}
public function take()
{
set_time_limit(0);
$this->mallInit('formalverification@163.com', 'SYECAWFLLTUPMDRP');
$this->sendEMail(['389123492@qq.com', '420132441@qq.com'], '结算定时', "开始执行" . date('Y-m-d H:i:s'), '如果邮件客户端不支持HTML则显示此内容');
$mallStr = '';
// Log::info('执行一次1 '.date('H:i') );
// return ;
// $storeOrderRepository = app()->make(StoreOrderRepository::class);
$key_list = [
1 => 'api_live_b23537ed-64b8-45d6-832e-fb228aa9e0a9',
2 => 'api_live_90ef02e4-54ac-41ee-adf1-e4927d23d58f',
3 => 'api_live_b0a687ec-5450-4ada-a0e4-65bac0f46871'
];
$appid_list = [
1 => 'app_44108546-d27a-48ee-88c1-84b45b75114f',
2 => 'app_0827b960-b932-45ec-b800-4e850091b419',
3 => 'app_383a75dd-c03d-44ab-8f58-92c60fe9b9d0'
];
//
// $payment_id = ShouxinyiApiRequest::getOrderNumber('split');
// $insertData = [
// [
// 'mid' => 0,
// 'requestId' => $payment_id,
// 'group_order_id' => 'WX171955791230553863',
// 'splitAmount' => 0.25,
// 'status' => 0
// ],
// ];
// $div_members[] = [
// 'member_id' => 'member_personal_16704641278422',
// 'amount' => '1.00',
// 'fee_flag' => 'Y'
// ];
// //////分账表
// Db::name("store_split_order")->insertAll($insertData);
// /// 分账表end
//
// $params = [
// 'payment_id' => '002212024062814583210652657343702200320',
// 'order_no' => $payment_id,
// 'confirm_amt' => '1.00',
// 'div_members' => $div_members
// ];
//
// $params['api_key'] = $key_list[3];
//
// var_dump($params);
// Db::name("log")->insert(array('data' => '汇付延时分账参数-----' . json_encode($params)));//日志记录
// $res = $storeOrderRepository->payment_confirm_create_traits($params);
// Db::name("log")->insert(array('data' => '汇付延时分账-----' . json_encode($res)));//日志记录
// var_dump($res);
// // 分账
// return;
$merchant_member_list = Db::name('merchant_member')
// ->where('member_id', 'member_personal_16704641278422')
->column('mer_id,type,member_id,settle_account_id');
foreach ($merchant_member_list as $merchant_member) {
$mer_id = $merchant_member['mer_id'];
if (empty($mer_id))
continue;
if (empty($merchant_member['settle_account_id']))
continue;
$params = [
'app_id' => $appid_list[$merchant_member['type']],
'member_id' => $merchant_member['member_id'],
'settle_account_id' => $merchant_member['settle_account_id'],
'api_key' => $key_list[$merchant_member['type']]
];
$merber = new SettleAccount();
$merber->balance($params);
$merber->result;
// var_dump($merber->result);
if (isset($merber->result[1])) {
$result = json_decode($merber->result[1], true);
$result = json_decode($result['data'], true);
$result['avl_balance'] = $result['avl_balance'] ?? 0;
if ($result['avl_balance'] > 0) {
$payment_id = ShouxinyiApiRequest::getOrderNumber('split');
$params = [
'order_no' => $payment_id,
'app_id' => $appid_list[$merchant_member['type']],
'cash_type' => 'T1',
'cash_amt' => sprintf("%01.2f", $result['avl_balance']),
'member_id' => $merchant_member['member_id'],
'api_key' => $key_list[$merchant_member['type']]
];
$yanglao_member_ids = ['jsdk_member_wx21710232183139', 'jsdk_member_ali1710232187326'];
if (in_array($merchant_member['member_id'], $yanglao_member_ids)) {
$params['remark'] = '天地博爱科技~养老金';
}
Db::name("log")->insert(array('data' => '汇付取现参数-----' . json_encode($params)));//日志记录
$merber = new Drawcash();
$merber->create($params);
# 返回查询结果
$merber->isError();
$res = $merber->result;
Db::name("log")->insert(array('data' => '汇付延时分账-----' . json_encode($res))); //日志记录
Db::name("log")->insert(array('data' => "mer_id {$mer_id} 请求分账{$result['avl_balance']}元-----"));//日志记录
var_dump("mer_id {$mer_id} 请求分账{$result['avl_balance']}元-----");
$mallStr = $mallStr . "-----mer_id {$mer_id} 请求分账{$result['avl_balance']}元-----
";
}
}
}
echo date('Y-m-d H:i:s') . '执行结束' . "\r\n";
$this->sendEMail(['389123492@qq.com', '420132441@qq.com'], '结算定时', "执行结束
" . $mallStr . date('Y-m-d H:i:s'), '如果邮件客户端不支持HTML则显示此内容');
}
public function cesexx(){
// $storeOrderRepository = app()->make(StoreOrderRepository::class);
// $storeOrderRepository->douhuomall_delivery();
}
}