Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a8ffc7adfa | ||
![]() |
47a17f8f37 | ||
![]() |
3da5ebcabf | ||
5944ab0832 | |||
611fe543d9 | |||
7e30f10919 | |||
6c651cd8a2 | |||
29060c709a | |||
e95efacd95 |
19
app/common/Enum.php
Normal file
19
app/common/Enum.php
Normal 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 => '已到账',
|
||||
];
|
||||
|
||||
}
|
@ -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)]);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -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=[];
|
||||
// 如果都不是,则输出其他
|
||||
|
@ -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];
|
||||
|
@ -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++;
|
||||
}
|
||||
}
|
||||
|
@ -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
1
public/static/js/pages-activity-assist-index.39415655.js
Normal file
1
public/static/js/pages-activity-assist-index.39415655.js
Normal file
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
1
public/static/js/pages-admin-stockOut-index.f2a15683.js
Normal file
1
public/static/js/pages-admin-stockOut-index.f2a15683.js
Normal file
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
1
public/static/js/pages-index-index.66c73712.js
Normal file
1
public/static/js/pages-index-index.66c73712.js
Normal file
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
1
public/static/js/pages-order_details-index.1a5cf4f4.js
Normal file
1
public/static/js/pages-order_details-index.1a5cf4f4.js
Normal file
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
1
public/static/js/pages-payment-get_payment.553337ca.js
Normal file
1
public/static/js/pages-payment-get_payment.553337ca.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/static/js/pages-payment-settlement.9153d1d8.js
Normal file
1
public/static/js/pages-payment-settlement.9153d1d8.js
Normal file
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
1
public/static/js/pages-plant_grass-index.5d98362c.js
Normal file
1
public/static/js/pages-plant_grass-index.5d98362c.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
public/static/js/pages-plant_release-index.5886adde.js
Normal file
1
public/static/js/pages-plant_release-index.5886adde.js
Normal file
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
1
public/static/js/pages-store-list-index.d9ef45b6.js
Normal file
1
public/static/js/pages-store-list-index.d9ef45b6.js
Normal file
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
1
public/static/js/pages-user-index.9e60d96d.js
Normal file
1
public/static/js/pages-user-index.9e60d96d.js
Normal file
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
1
public/static/js/pages-users-embody-embody.a58ae285.js
Normal file
1
public/static/js/pages-users-embody-embody.a58ae285.js
Normal file
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
Loading…
x
Reference in New Issue
Block a user