master
wangxinglong 2022-02-08 14:32:23 +08:00
parent 243fa12257
commit fa6a543227
5 changed files with 84 additions and 47 deletions

View File

@ -800,7 +800,7 @@ class Business extends Base
} }
/** /**
* 商家查看 * 商家查看流水
* */ * */
public function businessBill() public function businessBill()
{ {

View File

@ -454,7 +454,7 @@ class Coupon extends Base
} else { } else {
$distanceText = $distance . ""; $distanceText = $distance . "";
} }
return $this->json(4001, "您距离商家位置距离超过规定距离{$distanceText}"); return $this->json(4001, "您距离商家位置距离超过规定距离");
} }
} }
@ -494,10 +494,10 @@ class Coupon extends Base
"using_count" => Db::raw("using_count - 1"),//进行中数量-1 "using_count" => Db::raw("using_count - 1"),//进行中数量-1
]); ]);
$deductionMoney = $coupon->couponMain->deduction_money;
//可分配金额 如果是普通商家 //可分配金额 如果是普通商家
if($business->model == BusinessModel::model_ordinary) { if($business->model == BusinessModel::model_ordinary) {
$deductionMoney = $coupon->couponMain->deduction_money;
$agencyMoney = (($deductionMoney/100) * $coupon->couponMain->commission_agency); $agencyMoney = (($deductionMoney/100) * $coupon->couponMain->commission_agency);
$adminMoney = (($deductionMoney/100) * $coupon->couponMain->commission_admin); $adminMoney = (($deductionMoney/100) * $coupon->couponMain->commission_admin);
$consumerMoney = (($deductionMoney/100) * $coupon->couponMain->commission_consumer); $consumerMoney = (($deductionMoney/100) * $coupon->couponMain->commission_consumer);
@ -505,7 +505,6 @@ class Coupon extends Base
$adminMoney = round($adminMoney,2); //四舍五入 精确到分 $adminMoney = round($adminMoney,2); //四舍五入 精确到分
$consumerMoney = round($consumerMoney,2); //四舍五入 精确到分 $consumerMoney = round($consumerMoney,2); //四舍五入 精确到分
}else{ }else{
$deductionMoney = $coupon->couponMain->deduction_money;
$adminMoney = 0; $adminMoney = 0;
$consumerMoney = round($deductionMoney,2) ; $consumerMoney = round($deductionMoney,2) ;
$agencyMoney = 0; //四舍五入 精确到分 $agencyMoney = 0; //四舍五入 精确到分
@ -560,47 +559,67 @@ class Coupon extends Base
//如果付款过一次了 就查询付款状态 //如果付款过一次了 就查询付款状态
if(isset($coupon->redpack) && $coupon->redpack){ if(isset($coupon->redpack) && $coupon->redpack){
$result = $payment->transfer->queryBalanceOrder($coupon->redpack->mch_billno); $mch_billno = $coupon->redpack->mch_billno;
//var_dump($result); // $result = $payment->transfer->queryBalanceOrder($coupon->redpack->mch_billno);
//企业付款成功 // //var_dump($result);
if(isset($result["status"]) && $result["status"]=="SUCCESS"){ // //企业付款成功
Db::commit(); // if(isset($result["status"]) && $result["status"]=="SUCCESS"){
return $this->json( // Db::commit();
0, // return $this->json(
"优惠券签到使用成功,您获得{$consumerMoney}元红包,已存入您的零钱", // 0,
[ // "优惠券签到使用成功,您获得{$consumerMoney}元红包,已存入您的零钱",
"redpack" =>$consumerMoney // [
]); // "redpack" =>$consumerMoney
} // ]);
Log::info("查询企业付款失败:".json_encode($result,JSON_UNESCAPED_UNICODE)); // }
// Log::info("查询企业付款失败:".json_encode($result,JSON_UNESCAPED_UNICODE));
}else{ }else{
$mch_billno = createUuid(); $mch_billno = createUuid();
$amount = $consumerMoney * 100;
$toBalanceData = [
'partner_trade_no' => $mch_billno,// 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
'openid' => $account->open_id,
'check_name' => 'NO_CHECK',// NO_CHECK不校验真实姓名, FORCE_CHECK强校验真实姓名
'amount' => $amount, //单位为分不小于100
'desc' => '验证优惠券签到',
];
//发起支付
$result = $payment->transfer->toBalance($toBalanceData);
//var_dump($result);
//付款成功才提交!!!!!伪装成功
if(isset($result['payment_no']) ){
Db::commit();
return $this->json(
0,
"优惠券签到使用成功,您获得{$consumerMoney}元红包,已存入您的零钱",
[
"redpack" =>$consumerMoney
]);
}
Log::info("企业发起付款失败:" . json_encode($result,JSON_UNESCAPED_UNICODE));
} }
$amount = $consumerMoney * 100;
$toBalanceData = [
'partner_trade_no' => $mch_billno,// 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
'openid' => $account->open_id,
'check_name' => 'NO_CHECK',// NO_CHECK不校验真实姓名, FORCE_CHECK强校验真实姓名
'amount' => $amount, //单位为分不小于100
'desc' => '验证优惠券签到',
];
// 写入红包
$redpackData = [
"coupon_id" =>$coupon->id,
"mch_billno" =>$mch_billno,
"openid" =>$account->open_id,
"user_code" =>$account->user_code,
"money" =>$amount,
"create_time" => date("Y-m-d H:i:s",$time),
"pay_time" => '0000-00-00 00:00:00',
];
$redpack = Redpack::create($redpackData);
//发起支付
$result = $payment->transfer->toBalance($toBalanceData);
//var_dump($result);
//付款成功才提交!!!!!伪装成功
if(isset($result['payment_no']) ){
$redpack->pay_time = date("Y-m-d H:i:s",$time);
$redpack->save();
Db::commit();
return $this->json(
0,
"优惠券签到使用成功,您获得{$consumerMoney}元红包,已存入您的零钱",
[
"redpack" =>$consumerMoney
]);
}
Log::info("企业发起付款失败:" . json_encode($result,JSON_UNESCAPED_UNICODE));
//默认回滚 //默认回滚
Db::rollback(); Db::rollback();
return $this->json(5003, "验证失败,发放红包失败"); return $this->json(5003, "验证失败,发放红包失败");
@ -612,7 +631,7 @@ class Coupon extends Base
Db::rollback(); Db::rollback();
return $this->json(5001, "Repository服务器错误"); return $this->json(5001, "Repository服务器错误");
}catch (\Exception $e){ }catch (\Exception $e){
//echo $e->getMessage(); echo $e->getMessage();
Db::rollback(); Db::rollback();
return $this->json(5002, "服务器错误"); return $this->json(5002, "服务器错误");
} }
@ -682,7 +701,7 @@ class Coupon extends Base
"white_list" => $data['white_list'] ?? '', "white_list" => $data['white_list'] ?? '',
"status" => CouponMain::status_on, "status" => CouponMain::status_on,
"on_shelf" => CouponMain::on_shelf_off,//默认下架 后台审核上架 "on_shelf" => CouponMain::on_shelf_off,//默认下架 后台审核上架
"on_screen" => $data['on_screen'] ?? 1, "on_screen" => CouponMain::on_screen_yes,
"commission_agency" => $distributionProportion['agency'], "commission_agency" => $distributionProportion['agency'],
"commission_admin" => $distributionProportion['admin'], "commission_admin" => $distributionProportion['admin'],
"commission_consumer" => $distributionProportion['consumer'], "commission_consumer" => $distributionProportion['consumer'],
@ -723,6 +742,12 @@ class Coupon extends Base
$couponMain['deduction_money'] = floor($couponMain['deduction_money'] * 100) / 100; $couponMain['deduction_money'] = floor($couponMain['deduction_money'] * 100) / 100;
$totalMoney = $couponMain['deduction_money'] * $couponMain['count']; $totalMoney = $couponMain['deduction_money'] * $couponMain['count'];
//检测消费者部分是否最少1元
$consumerMoney = ($data['commission_consumer']/100) * $data['deduction_money'];
if ($consumerMoney != 0 && $consumerMoney < CouponMain::min_consumer_money) {
return $this->json(4002, "消费者红包最低" . CouponMain::min_consumer_money . "");
}
//未领取的优惠券 //未领取的优惠券
$NotClaimedMoney = CouponRepository::getInstance()->getBusinessNotClaimedCoupon($account->business["code"]); $NotClaimedMoney = CouponRepository::getInstance()->getBusinessNotClaimedCoupon($account->business["code"]);
if($account->business["model"] == BusinessModel::model_ordinary) { if($account->business["model"] == BusinessModel::model_ordinary) {

View File

@ -222,9 +222,9 @@ class Coupon extends Base
$data['commission_agency'] = input("item.commission_agency/d", 0); $data['commission_agency'] = input("item.commission_agency/d", 0,"abs");
$data['commission_admin'] = input("item.commission_admin/d", 0); $data['commission_admin'] = input("item.commission_admin/d", 0,"abs");
$data['commission_consumer'] = input("item.commission_consumer/d", 0); $data['commission_consumer'] = input("item.commission_consumer/d", 0,"abs");
$totalC = $data['commission_agency'] + $data['commission_admin'] + $data['commission_consumer']; $totalC = $data['commission_agency'] + $data['commission_admin'] + $data['commission_consumer'];
if ($totalC != 100) { if ($totalC != 100) {
@ -234,6 +234,13 @@ class Coupon extends Base
//保留两位小数 //保留两位小数
$data['deduction_money'] = floor($data['deduction_money'] * 100) / 100; $data['deduction_money'] = floor($data['deduction_money'] * 100) / 100;
//检测消费者部分是否最少1元
$consumerMoney = ($data['commission_consumer']/100) * $data['deduction_money'];
if ($consumerMoney != 0 && $consumerMoney < CouponMain::min_consumer_money) {
return $this->json(4002, "消费者红包最低" . CouponMain::min_consumer_money . "");
}
$totalMoney = $data['deduction_money'] * $data['count']; $totalMoney = $data['deduction_money'] * $data['count'];
//未领取的优惠券 //未领取的优惠券
@ -246,6 +253,8 @@ class Coupon extends Base
} }
$date = date("Y-m-d H:i:s"); $date = date("Y-m-d H:i:s");
$data['create_time'] = $date; $data['create_time'] = $date;
$data['update_time'] = $date; $data['update_time'] = $date;

View File

@ -21,6 +21,9 @@ class CouponMain extends Base
const on_shelf_off = 1;//下架状态 const on_shelf_off = 1;//下架状态
const on_screen_yes = 1;//展示到商圈大屏 const on_screen_yes = 1;//展示到商圈大屏
const on_screen_no = 0;//不展示到商圈大屏
const min_consumer_money = 0.3;//红包最小金额
public function business() public function business()
{ {

View File

@ -17,7 +17,7 @@ class CouponRelease extends Validate
'end_time|结束时间' => 'require|date|checkEndTime', 'end_time|结束时间' => 'require|date|checkEndTime',
'name|优惠券名称' => 'require|chsAlphaNum|length:3,32', 'name|优惠券名称' => 'require|chsAlphaNum|length:3,32',
//'money|金额' => 'require|>:0|<=:5000', //'money|金额' => 'require|>:0|<=:5000',
'deduction_money|扣除金额' => 'require|>=:0.1|<=:5000', 'deduction_money|扣除金额' => 'require|>=:0|<=:100000',
'image_url|预览图' => 'require', 'image_url|预览图' => 'require',
//'using_rule|使用规则' => '', //'using_rule|使用规则' => '',
//'punishing_rule|处罚规则' => '', //'punishing_rule|处罚规则' => '',