Compare commits

..

9 Commits
master ... dev

Author SHA1 Message Date
liu
a8ffc7adfa 修改查询 2024-03-18 10:25:10 +08:00
liu
47a17f8f37 修改下载逻辑是ios去除wgt的包 2024-03-18 10:12:24 +08:00
weipengfei
3da5ebcabf 更新h5, 恢复授权 2024-03-18 09:47:49 +08:00
5944ab0832 调整补贴进度 2024-03-16 16:31:16 +08:00
611fe543d9 调整补贴发放 2024-03-16 16:30:00 +08:00
7e30f10919 调整补贴发放 2024-03-16 16:27:30 +08:00
6c651cd8a2 调整补贴发放 2024-03-16 16:24:39 +08:00
29060c709a 调整补贴发放 2024-03-16 15:31:05 +08:00
e95efacd95 修改保证金展示的错误 2024-03-16 14:22:59 +08:00
148 changed files with 142 additions and 89 deletions

19
app/common/Enum.php Normal file
View File

@ -0,0 +1,19 @@
<?php
namespace app\common;
class Enum
{
/** 消费金状态 */
const CONSUMPTION_STATUS_REPEAL = -1; //未激活
const CONSUMPTION_STATUS_AUDIT = 0; //审核中
const CONSUMPTION_STATUS_CONFIRM = 1; //待确认
const CONSUMPTION_STATUS_FINISHED = 2; //已完成
const CONSUMPTION_STATUS_MAP = [
self::CONSUMPTION_STATUS_REPEAL => '未激活',
self::CONSUMPTION_STATUS_AUDIT => '审核中',
self::CONSUMPTION_STATUS_CONFIRM => '待确认',
self::CONSUMPTION_STATUS_FINISHED => '已到账',
];
}

View File

@ -844,10 +844,11 @@ class StoreOrderRepository extends BaseRepository
$money = bcsub($money, $refundPrice, 2);
//订单确认收货,增加商户销售金额
Merchant::where('mer_id', $order->mer_id)->update(['sale_amount' => Db::raw('sale_amount+' . $money)]);
$field = $order->merchant['type_id'] == 22 ? 'official_purchase_amount' : 'purchase_amount';
//订单确认收货,增加商户采购金额
$merId = Merchant::where('uid', $order->uid)->value('mer_id');
if (!empty($merId)) {
Merchant::where('mer_id', $merId)->update(['purchase_amount' => Db::raw('purchase_amount+' . $money)]);
Merchant::where('mer_id', $merId)->update([$field => Db::raw("{$field}+" . $money)]);
}
}
});

View File

@ -1589,10 +1589,17 @@ class Auth extends BaseController
$agent = strtolower($this->request->server('HTTP_USER_AGENT'));
// 检查是否为iOS设备包括iPhone和iPad
if (strpos($agent, 'iphone') !== false || strpos($agent, 'ipad') !== false) {
$appInfo=[];
$appInfo = Db::name('AppUpdate')->where('type', $type)->order('id','desc')->find();
} elseif (strpos($agent, 'android') !== false) {
// 检查是否为Android设备
$appInfo = Db::name('AppUpdate')->where('type', $type)->order('id','desc')->find();
if($agent == 'ios'){
$pattern = '/\.wgt$/i';
if (preg_match($pattern, basename($appInfo['dow_url']))) {
$appInfo =[];
}
}
} else {
$appInfo=[];
// 如果都不是,则输出其他

View File

@ -2,6 +2,7 @@
namespace app\controller\api\server;
use app\common\Enum;
use app\common\model\store\consumption\StoreConsumption;
use app\common\model\store\consumption\StoreConsumptionUser;
use app\common\model\system\merchant\FinancialRecord;
@ -78,15 +79,16 @@ class Store extends BaseController
{
$type = $this->request->get('type', 1);
$uid = $this->request->uid();
$merchant = Merchant::where('mer_id', $this->merId)->field('sale_amount,purchase_amount,type_id')->find()->toArray();
$merchant = Merchant::where('mer_id', $this->merId)->field('sale_amount,purchase_amount,official_purchase_amount,type_id')->find()->toArray();
$saleTarget = '0.00';
$purchaseTarget = '0.00';
$officialPurchaseTarget = '0.00';
$userConsumptionStatus = false;
if ($type == 1) {
//春耕采购补贴
$couponId = StoreConsumption::where('type', StoreConsumption::TYPE_PULL_CONSUMPTION)->value('coupon_id');
$userConsumption = StoreConsumptionUser::where('uid', $uid)
->where('coupon_id', $couponId)
->where('status', '<>', -1)
->field('coupon_price,balance')
->find();
if (!empty($userConsumption)) {
@ -95,9 +97,10 @@ class Store extends BaseController
->where('coupon_id', $couponId)
->value('coupon_price');
$saleTarget = $userConsumption['coupon_price'];
$purchaseTarget = $userConsumption['coupon_price'];
$merchant['purchase_amount'] = bcsub($userConsumption['coupon_price'], $userConsumption['balance'], 2);
$purchaseTarget = bcmul($userConsumption['coupon_price'], 0.4, 2);
$officialPurchaseTarget = bcsub($saleTarget, $purchaseTarget, 2);
$merchant['balance'] = $userConsumption['balance'];
$userConsumptionStatus = in_array($userConsumption['status'], [0, 1, 2]);
}
} else {
//增收销售补贴
@ -105,23 +108,26 @@ class Store extends BaseController
if ($consumption) {
$userConsumption = StoreConsumptionUser::where('uid', $uid)
->where('coupon_id', $consumption['coupon_id'])
->where('status', '<>', -1)
->field('coupon_price,balance,status')
->order('coupon_user_id', 'desc')
->find();
$userConsumptionStatus = in_array($userConsumption['status'] ?? -1, [0, 1, 2]);
$subsidyAmount = $userConsumption['coupon_price'] ?? '0.00';
$merchant['balance'] = $userConsumption['balance'] ?? '0.00';
foreach ($consumption['config'] as $k => $item) {
if (empty($userConsumption) && in_array($merchant['type_id'], $item['type_id'])) {
$saleTarget = $item['amount'];
$subsidyAmount = $item['subsidy'];
$purchaseTarget = bcmul($saleTarget, 0.5, 2);
$purchaseTarget = bcmul($saleTarget, 0.2, 2);
$officialPurchaseTarget = bcmul($saleTarget, 0.3, 2);
break;
}
if (!empty($userConsumption) && in_array($merchant['type_id'], $item['type_id'])) {
$nextItem = $consumption['config'][$k + 1] ?? $item;
$saleTarget = $nextItem['amount'];
$subsidyAmount = $nextItem['subsidy'];
$purchaseTarget = bcmul($saleTarget, 0.5, 2);
$purchaseTarget = bcmul($saleTarget, 0.2, 2);
$officialPurchaseTarget = bcmul($saleTarget, 0.3, 2);
break;
}
}
@ -131,17 +137,27 @@ class Store extends BaseController
$saleFinishRate = bcmul(min($saleFinishRate, 1), 100, 0);
$purchaseFinishRate = $purchaseTarget <= 0 ? 0 : bcdiv($merchant['purchase_amount'], $purchaseTarget, 2);
$purchaseFinishRate = bcmul(min($purchaseFinishRate, 1), 100, 0);
$springSubsidyRate = $purchaseTarget <= 0 ? 0 : bcdiv($merchant['purchase_amount'], $purchaseTarget, 2);
$officialPurchaseFinishRate = $officialPurchaseTarget <= 0 ? 0 : bcdiv($merchant['official_purchase_amount'], $officialPurchaseTarget, 2);
$officialPurchaseFinishRate = bcmul(min($officialPurchaseFinishRate, 1), 100, 0);
$springSubsidyRate = $saleTarget <= 0 ? 0 : bcdiv(bcadd($merchant['purchase_amount'], $merchant['official_purchase_amount'], 2), $saleTarget, 2);
$springSubsidyRate = bcmul(min($springSubsidyRate, 1), 100, 0);
if ($type == 1) {
$status = $saleFinishRate >= 100 && $purchaseFinishRate >= 100 && $merchant['balance'] == 0;
} else {
$status = $saleFinishRate >= 100 && $purchaseFinishRate >= 100;
}
return app('json')->success([
'subsidy_amount' => empty($subsidyAmount) ? '0.00' : $subsidyAmount,
'subsidy_status' => $saleFinishRate >= 100 && $purchaseFinishRate >= 100,
'subsidy_status' => $status && $userConsumptionStatus,
'sale_target' => $saleTarget,
'sale_amount' => $merchant['sale_amount'],
'sale_finish_rate' => $saleFinishRate,
'purchase_target' => $purchaseTarget,
'purchase_amount' => $merchant['purchase_amount'],
'purchase_finish_rate' => $purchaseFinishRate,
'official_purchase_target' => $officialPurchaseTarget,
'official_purchase_amount' => $merchant['official_purchase_amount'],
'official_purchase_finish_rate' => $officialPurchaseFinishRate,
'spring_subsidy' => $saleTarget,
'spring_subsidy_amount' => $merchant['purchase_amount'],
'spring_subsidy_rate' => $springSubsidyRate,
@ -170,7 +186,7 @@ class Store extends BaseController
$couponId = StoreConsumption::where('type', $couponType)->value('coupon_id');
$totalAmount = StoreConsumptionUser::where('uid', $userId)
->whereIn('coupon_id', $couponId)
->where('status', StoreConsumptionUser::STATUS_UNUSED)
->whereIn('status', [StoreConsumptionUser::STATUS_UNUSED, StoreConsumptionUser::STATUS_REPEAL])
->sum('balance');
$query = UserBill::field('link_id,create_time,number coupon_price,mark,extra,status')
->where('uid', $userId)
@ -178,13 +194,19 @@ class Store extends BaseController
->where('status', 1)
->whereRaw("extra->'$.coupon_id'=" . $couponId);
$count = $query->count();
$record = $query->page($page)->limit($limit)->select()->toArray();
$record = $query->page($page)->limit($limit)->order('bill_id', 'desc')->select()->toArray();
foreach ($record as &$item) {
$item['order_amount'] = 0;
if (mb_strpos($item['mark'], '订单金额:') !== false) {
$item['order_amount'] = mb_substr($item['mark'], mb_strpos($item['mark'], '订单金额:') + 5);
}
$item['extra'] = json_decode($item['extra'], true);
if (isset($item['extra']['status'])) {
$item['extra']['status_cn'] = Enum::CONSUMPTION_STATUS_MAP[$item['extra']['status']];
} else {
$item['extra']['status'] = Enum::CONSUMPTION_STATUS_REPEAL;
$item['extra']['status_cn'] = Enum::CONSUMPTION_STATUS_MAP[$item['extra']['status']];
}
unset($item['mark']);
}
$result = ['total_amount' => $totalAmount, 'count' => $count, 'record' => $record];

View File

@ -3,6 +3,7 @@
namespace crmeb\listens;
use app\common\dao\store\consumption\StoreConsumptionUserDao;
use app\common\Enum;
use app\common\model\store\consumption\StoreConsumption;
use app\common\model\store\consumption\StoreConsumptionUser;
use app\common\model\system\merchant\Merchant;
@ -23,10 +24,12 @@ class SendSubsidyCouponListen extends TimerService implements ListenerInterface
$count = 0;
if ($consumption) {
foreach ($consumption['config'] as $item) {
$purchaseAmount = $item['amount'] * 0.5;
$purchaseAmount = $item['amount'] * 0.2; //普通店铺采购金额
$officialPurchaseAmount = $item['amount'] * 0.3; //官方店铺采购金额
$merchants = Merchant::whereIn('type_id', $item['type_id'])
->where('sale_amount', '>=', $item['amount'])
->where('purchase_amount', '>=', $purchaseAmount)
->where('official_purchase_amount', '>=', $officialPurchaseAmount)
->select();
foreach ($merchants as $merchant) {
//商户已获得的补贴金额
@ -43,10 +46,11 @@ class SendSubsidyCouponListen extends TimerService implements ListenerInterface
'coupon_id' => $consumption['coupon_id'],
'sale_amount' => $item['amount'],
'purchase_amount' => $purchaseAmount,
'status' => -1,
'official_purchase_amount' => $officialPurchaseAmount,
'status' => Enum::CONSUMPTION_STATUS_REPEAL,
];
$consumptionRepo->onlyBill = true;
$consumptionRepo->send($consumption, 1, $merchant->uid, 0, $amount, StoreConsumptionUser::STATUS_REPEAL, StoreConsumptionUser::TYPE_TWO);
$consumptionRepo->send($consumption, 1, $merchant->uid, 0, $amount, StoreConsumptionUser::STATUS_UNUSED, StoreConsumptionUser::TYPE_TWO);
$count++;
}
}

View File

@ -2,4 +2,4 @@
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
if(window.location.protocol == 'https:'){
document.write('<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">')
}</script><link rel=stylesheet href=/static/index.2da1efab.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/static/js/chunk-vendors.c6349b23.js></script><script src=/static/js/index.80ad0d12.js></script></body></html>
}</script><link rel=stylesheet href=/static/index.2da1efab.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/static/js/chunk-vendors.c6349b23.js></script><script src=/static/js/index.e33f0039.js></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More