Commit f977d088 by yink

refactor: 优化订单分佣逻辑和日志记录

- 修正订单分佣逻辑中的员工佣金计算和日志记录
- 调整CarouselController中的分账参数返回方式
- 更新StoreAdminEmployeeController中的汇付账户创建逻辑
- 优化OrderInfoController中的分账状态显示和筛选条件
parent 758d00b5
......@@ -35,7 +35,7 @@ protected function grid()
$grid->column('id')->sortable();
$grid->column('order_sn', '订单号')->width(80);
$grid->column('mobile', '手机号');
$grid->column('is_div', '分账')->display(function ($val) {
$grid->column('is_div', '是否分账')->display(function ($val) {
return $val ? '是' : '否';
});
......@@ -61,7 +61,7 @@ protected function grid()
//设置弹窗标题
$modal->title('商家及收货信息');
$company = $this->merchant->name ?? '';
$content = "<strong>商家信息:</strong><br/>" . $company . "<br/><br/>";
$content = "<strong>商家信息:</strong> " . $company . "<br/><br/>";
// 商家地址
$province_id = $this->merchant->province_id ?? '';
......@@ -70,30 +70,30 @@ protected function grid()
$cityObj = City::where("city_id", $this->merchant->city_id)->first();
$proname = $proObj->name ?? '';
$cityname = $cityObj->name ?? '';
$content .= "<strong>商家地址:</strong><br/>" . $proname . " " . $cityname . "<br/><br/>";
$content .= "<strong>商家地址:</strong> " . $proname . " " . $cityname . "<br/><br/>";
}
// 收货方式 1:代收点 2:送货上门
$deliveryTypeText = $this->delivery_type == '1' ? '快递代收点' : '送货上门';
$content .= "<strong>收货方式:</strong><br/>" . $deliveryTypeText . "<br/><br/>";
$content .= "<strong>收货方式:</strong> " . $deliveryTypeText . "<br/><br/>";
if ($this->delivery_type == '1') {
// 快递代收点信息
if ($this->store_id) {
$storeObj = Store::where('id', $this->store_id)->first();
$content .= "<strong>快递代收点:</strong><br/>" . ($storeObj->address ?? '') . "<br/><br/>";
$content .= "<strong>快递代收点:</strong> " . ($storeObj->address ?? '') . "<br/><br/>";
}
} else {
// 送货上门信息
if ($this->area) {
$content .= "<strong>送货地址:</strong><br/>" . $this->area . "(" . $this->address . ")" . "<br/><br/>";
$content .= "<strong>送货地址:</strong> " . $this->area . "(" . $this->address . ")" . "<br/><br/>";
}
}
// 核销码
if ($this->verification_code) {
$content .= "<strong>核销码:</strong><br/>" . $this->verification_code . "<br/><br/>";
$content .= "<strong>核销码:</strong> " . $this->verification_code . "<br/><br/>";
}
// 核销码图片
......@@ -162,6 +162,14 @@ protected function grid()
->width(3);
//支付类型
$filter->in('is_div', '是否分账')
->multipleSelect([
0 => '否',
1 => '是',
])
->width(3);
//支付类型
$filter->in('pay_type', '支付类型')
->multipleSelect([
1 => '微信',
......
......@@ -76,7 +76,15 @@ protected function form()
$form->display('id');
//$form->ignore(['pwd']); // 忽略password字段
$form->text('name')->required();
$form->text('phone', '手机号')->required();
// 手机号字段 - 创建时显示,编辑时隐藏
if ($form->isCreating()) {
$form->text('phone', '手机号')->required();
} else {
$form->hidden('phone');
//$form->text('phone', '手机号')->required();
}
$form->text('username', '登录账号')
->required()
->help('字母数字组合,长度大于5个字符')
......@@ -117,18 +125,7 @@ protected function form()
->load('store_id', '/get-store-list');
$form->select('store_id', '门店名称');
//判断是否创建汇付账户,先查询是否存在
$user = StoreAdminUsers::find($form->getKey());
//对接汇付-创建个人对象
if ($user && !$user->member_id) {
$result = (new Adapay())->createMember($user->id, $form->input('phone'));
if (isset($result['status']) && $result['status'] == 'succeeded') {
$user->member_id = $result['member_id'];
$user->save();
}
}
$form->disableCreatingCheck();
$form->disableEditingCheck();
$form->disableViewCheck();
......@@ -146,6 +143,16 @@ function (Form $form, $result) {
$data = ['password' => bcrypt($pwd), 'pwd' => ''];
DB::table('store_admin_users')->where("id", $store_admin_users_id)->update($data);
}
// 创建汇付账户逻辑
$user = StoreAdminUsers::find($store_admin_users_id);
if ($user && !$user->member_id) {
$result = (new Adapay())->createMember($user->id, $user->phone);
if (isset($result['status']) && $result['status'] == 'succeeded') {
$user->member_id = $result['member_id'];
$user->save();
}
}
}
);
......
......@@ -40,7 +40,6 @@ public function orderDiv(Request $request)
//分账列表
$payment_params = OrderDivideRecord::divide($order_id); //返回分账参数列表
echo "<pre>";
print_r($payment_params);
return $this->JsonResponse($payment_params);
}
}
......@@ -64,7 +64,7 @@ public function create(Request $request)
"bank_acct_type" => "1",
);
$res = (new Adapay())->createCompany();
// $res = (new Adapay())->createCompany();
# 创建企业用户
// $member->create($member_params);
// # 对创建企业用户结果进行处理
......
......@@ -75,11 +75,12 @@ public static function divide($order_id, $payconfirm_no = '')
Log::add('divide', "订单ID:{$order_id},分账员工:{$employeeObj->name}");
$hfEmployeeMObj = HfSettleAccount::whereNotNull('deleted_at')
::where('mid', $employeeObj->id)->first();
->where('mid', $employeeObj->id)
->first();
$isEmployeeRealName = ($hfEmployeeMObj) ? 1 : 0;
}
Log::info("实名情况:isMerchantRealName:{$isMerchantRealName};isEmployeeRealName:{$isEmployeeRealName}");
Log::add('divide',"实名情况:isMerchantRealName:{$isMerchantRealName};isEmployeeRealName:{$isEmployeeRealName}");
$ogList = OrderGoods::where("order_id", $order_id)->get(); //订单商品
......@@ -96,7 +97,7 @@ public static function divide($order_id, $payconfirm_no = '')
$cash_ratio = number_format(($orderObj->order_amount / $orderGoodCash) * 100, 4); //保留4位小数
}
Log::info("订单ID:{$order_id},支付类型:{$orderObj->pay_type},现金支付比例:{$cash_ratio}");
Log::add('divide',"订单ID:{$order_id},支付类型:{$orderObj->pay_type},现金支付比例:{$cash_ratio}");
foreach ($ogList as $kk => $item) {
$goods_amount = $item->goods_price * $item->goods_number;
......@@ -113,17 +114,17 @@ public static function divide($order_id, $payconfirm_no = '')
$employee_divide_price_log = $merchant_divide_price;
//应该分给商家的金额
Log::add('divide', "员工分佣:{$employeeObj->commission_rate}");
Log::add('divide', "员工分佣:{$employeeObj->employee_commission}");
//员工分佣记录
if ($employee && $employeeObj->commission_rate >= 1 && $employeeObj->commission_rate < 100) {
if ($employee && $employeeObj->employee_commission >= 1 && $employeeObj->employee_commission < 100) {
//应该分给商家的金额
Log::add('divide', "员工分佣:{$employee}, 员工分佣记录:{$employee_divide_price}, 商户分佣记录:{$merchant_divide_price}");
Log::add('divide', "员工分佣:{$employeeObj->employee_commission}, 员工分佣记录:{$employee_divide_price}, 商户分佣记录:{$merchant_divide_price}");
// 基于商家分到佣金计算员工分佣
$employee_divide_price = number_format($merchant_divide_price * ($employeeObj->commission_rate / 100), 2);
$employee_divide_price = number_format($merchant_divide_price * ($employeeObj->employee_commission / 100), 2);
$employeePreData['employee_amount'] += $employee_divide_price;
$employeePreData['employee_member_id'] = $hfEmployeeMObj->member_id;
$employeePreData['employee_member_id'] = $employeeObj->member_id;
}
//商户分佣记录
......@@ -148,7 +149,7 @@ public static function divide($order_id, $payconfirm_no = '')
//员工佣金
if ($employee && $employeePreData['employee_amount'] > 0) {
self::addRecord($sp_ogid, $order_id, $orderObj->goods_amount, $employeePreData['employee_amount'], $employeeObj->commission_rate, $employeeObj->member_id, $buyer_id, 5, $isEmployeeRealName, $payconfirm_no);
self::addRecord($sp_ogid, $order_id, $orderObj->goods_amount, $employeePreData['employee_amount'], $employeeObj->employee_commission, $employeeObj->member_id, $buyer_id, 5, $isEmployeeRealName, $payconfirm_no);
if ($isEmployeeRealName) {
array_push($div_members, ['member_id' => $employeePreData['employee_member_id'], 'amount' => sprintf("%.2f", $employeePreData['employee_amount']), 'fee_flag' => 'N']);
}
......
......@@ -29,6 +29,9 @@
//调试路由
Route::post('simulate-login','LoginController@simulateLogin'); //模拟登陆
Route::get('test1','LoginController@test'); //测试内容-什么都测
Route::get('test-order-div','CarouselController@orderDiv'); //测试订单分佣
Route::post('manual-divide','OrderDivideRecordController@manualDivide'); //手动分账【开发手动调接口修正数据】
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment