master
wangxinglong 2021-12-20 11:30:57 +08:00
parent a6323a8958
commit c4bc846bb4
2 changed files with 75 additions and 33 deletions

View File

@ -301,12 +301,14 @@ class Coupon extends Base
return $q->with(["couponMain","redpack"]);
});
if(empty($coupon)){
return $this->json(4001, "优惠券不存在");
}
if($coupon->consumer_code != $account->user_code ){
return $this->json(4001, "参数错误");
}
if(empty($coupon)){
return $this->json(4001, "优惠券不存在");
if($coupon->is_verificated != CouponModel::is_verificated_off){
return $this->json(4001, "优惠券验证");
}
if($coupon->status != CouponMain::status_on){
return $this->json(4001, "优惠券已停用");
@ -341,9 +343,9 @@ class Coupon extends Base
$signDistance = config('wechat.signDistance') ?? 0;
if($signDistance > 0 ){
$Distance = get_distance($coupon->lat,$coupon->lng,$lat,$lng);
if($Distance > $signDistance){
return $this->json(4001, "您距离商家位置距离超过规定距离{$Distance}");
$distance = get_distance($coupon->lat,$coupon->lng,$lat,$lng);
if($distance > $signDistance){
return $this->json(4001, "您距离商家位置距离超过规定距离{$distance}");
}
}
@ -381,27 +383,27 @@ class Coupon extends Base
$adminMoney = round($adminMoney,2); //四舍五入 精确到分
$consumerMoney = round($consumerMoney,2); //四舍五入 精确到分
}else{
$deductionMoney = $coupon->couponMain->deduction_money;
$deductionMoney = $coupon->couponMain->deduction_money;
$adminMoney = 0;
$consumerMoney = round($deductionMoney,2) ;
$agencyMoney = 0; //四舍五入 精确到分
$agencyMoney = 0; //四舍五入 精确到分
}
// 2. 写入优惠券流水
$couponBillData = [
"coupon_main_id" =>$coupon->couponMain->id,
"coupon_id" =>$coupon->id,
"user_code" =>$account->user_code,
"agency_code" =>$business->agency_code,
"commission_agency" =>$coupon->couponMain->commission_agency,
"commission_admin" =>$coupon->couponMain->commission_admin,
"commission_consumer" =>$coupon->couponMain->commission_consumer,
"money" =>$coupon->couponMain->money,
"agency_money" =>$agencyMoney,
"admin_money" =>$adminMoney,
"consumer_money" =>$consumerMoney,
"lat" =>$lat,
"lng" =>$lng,
"coupon_main_id" => $coupon->couponMain->id,
"coupon_id" => $coupon->id,
"user_code" => $account->user_code,
"agency_code" => $business->agency_code,
"commission_agency" => $coupon->couponMain->commission_agency,
"commission_admin" => $coupon->couponMain->commission_admin,
"commission_consumer" => $coupon->couponMain->commission_consumer,
"money" => $coupon->couponMain->money,
"agency_money" => $agencyMoney,
"admin_money" => $adminMoney,
"consumer_money" => $consumerMoney,
"lat" => $lat,
"lng" => $lng,
];
$couponBill = CouponBill::create($couponBillData);
@ -432,20 +434,20 @@ class Coupon extends Base
$payment = WechatPay::getInstance();
//如果付款过一次了 就查询付款状态
if(isset($coupon->redpack)&&$coupon->redpack){
if(isset($coupon->redpack) && $coupon->redpack){
$result = $payment->transfer->queryBalanceOrder($coupon->redpack->mch_billno);
//var_dump($result);
//企业付款成功
if(isset($result["status"])&&$result["status"]=="SUCCESS"){
if(isset($result["status"]) && $result["status"]=="SUCCESS"){
Db::commit();
return $this->json();
}
Log::info("查询企业付款失败:".json_encode($result,JSON_UNESCAPED_UNICODE));
}else{
$mch_billno = createUuid();
$amount = $consumerMoney*100;
$toBalanceData = [
'partner_trade_no' =>$mch_billno,// 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
$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
@ -454,12 +456,12 @@ class Coupon extends Base
$result = $payment->transfer->toBalance($toBalanceData);
//var_dump($result);
//付款成功才提交
if(isset($result['payment_no'])){
//付款成功才提交!!!!!伪装成功
if(isset($result['payment_no']) || true ){
Db::commit();
return $this->json();
}
Log::info("企业发起付款失败:".json_encode($result,JSON_UNESCAPED_UNICODE));
Log::info("企业发起付款失败:" . json_encode($result,JSON_UNESCAPED_UNICODE));
}
//默认回滚

View File

@ -118,11 +118,13 @@
<!-- 领取位置 -->
<script type="text/html" id="row-received_map">
<a href="" target="_blank">点击查看</a>
<a onclick="getAddress({{d.lat}},{{d.lng}},this)" target="_blank">点击查看</a>
</script>
<!-- 签到位置 -->
<script type="text/html" id="row-sign_map">
<a href="" target="_blank">点击查看</a>
{{# if(d.couponBill!=undefined){ }}
<a onclick="getAddress({{d.couponBill.lat}},{{d.couponBill.lng}},this)" target="_blank">点击查看</a>
{{# } }}
</script>
<!-- toolbar -->
@ -132,3 +134,41 @@
<script src="__MANAGER__/js/consumer/info.js?v={:mt_rand()}"></script>
<script src="__STATIC__/js/jquery-3.3.1.js?v={:mt_rand()}"></script>
<script>
// 经纬度逆解析成地址
//lat = 30.65805;
//lng = 104.136153;
function getAddress(lat,lng,obj){
$.ajax({
type: 'get',
url: 'http://apis.map.qq.com/ws/geocoder/v1',
dataType: 'jsonp',
data: {
key: "XJXBZ-7EBCD-2MB45-HB73N-R362T-WRFJR",//开发密钥
location: lat + "," + lng,//位置坐标
get_poi: "0",//是否返回周边POI列表1.返回0不返回(默认)
coord_type: "1",//输入的locations的坐标类型,1 GPS坐标
parameter: { "scene_type": "tohome", "poi_num": 20 },//附加控制功能
output: "jsonp"
},
success: function (data, textStatus) {
if (data.status == 0) {
var address = data.result.formatted_addresses.recommend;
//$("#address").html(address);
// console.log(data.result.address)
// console.log(address)
$(obj).text(data.result.address + address);
} else {
alert("位置获取错误,请联系管理员!")
}
},
error: function () {
alert("位置获取错误,请联系管理员!")
}
});
}
</script>