增加:开通共享股东 赠送餐费积分
This commit is contained in:
parent
d5fbab7a1d
commit
eed4a097fd
|
|
@ -0,0 +1,48 @@
|
|||
<?php
|
||||
namespace app\common\dao\system\merchant;
|
||||
|
||||
|
||||
use app\common\dao\BaseDao;
|
||||
use app\common\model\system\merchant\MerchantShareholderIntegral;
|
||||
|
||||
class MerchantShareholderIntegralDao extends BaseDao{
|
||||
|
||||
protected function getModel(): string{
|
||||
return MerchantShareholderIntegral::class;
|
||||
}
|
||||
/**
|
||||
* Common: 公共查询模型
|
||||
* Author: wu-hui
|
||||
* Time: 2024/06/19 16:01
|
||||
* @param array $params
|
||||
* @return MerchantShareholderIntegral
|
||||
*/
|
||||
public function searchModel(array $params){
|
||||
return (new MerchantShareholderIntegral())
|
||||
->when(isset($params['id']) && $params['id'] !== '',function($query) use ($params){
|
||||
$query->where('id', (int)$params['id']);
|
||||
})
|
||||
->when(isset($params['uid']) && $params['uid'] !== '',function($query) use ($params){
|
||||
$query->where('uid', (int)$params['uid']);
|
||||
})
|
||||
->when(isset($params['mer_id']) && $params['mer_id'] !== '',function($query) use ($params){
|
||||
$query->where('mer_id', (int)$params['mer_id']);
|
||||
})
|
||||
->when(isset($params['level_id']) && $params['level_id'] !== '',function($query) use ($params){
|
||||
$query->where('level_id', (int)$params['level_id']);
|
||||
})
|
||||
->when(isset($params['status']) && $params['status'] !== '',function($query) use ($params){
|
||||
$query->where('status', (int)$params['status']);
|
||||
})
|
||||
->order('create_time DESC,id DESC');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
namespace app\common\model\system\merchant;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
|
||||
class MerchantShareholderIntegral extends BaseModel{
|
||||
|
||||
public static function tablePk(): string{
|
||||
return 'id';
|
||||
}
|
||||
|
||||
public static function tableName(): string{
|
||||
return 'merchant_shareholder_integral';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
namespace app\common\repositories\system\merchant;
|
||||
|
||||
|
||||
|
||||
use app\common\dao\system\merchant\MerchantShareholderIntegralDao;
|
||||
use app\common\repositories\BaseRepository;
|
||||
|
||||
class MerchantShareholderIntegralRepository extends BaseRepository{
|
||||
|
||||
public function __construct(MerchantShareholderIntegralDao $dao){
|
||||
$this->dao = $dao;
|
||||
}
|
||||
|
||||
/**
|
||||
* Common: 公共查询模型
|
||||
* Author: wu-hui
|
||||
* Time: 2024/06/19 16:04
|
||||
* @param $search
|
||||
* @return \app\common\model\system\merchant\MerchantShareholderIntegral
|
||||
*/
|
||||
public function getSearchModel($search){
|
||||
return $this->dao->searchModel($search);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -86,6 +86,60 @@ class MerchantShareholderLevelRepository extends BaseRepository{
|
|||
->getSearch(['mer_id' => request()->merId(), 'status' => 1, 'is_del' => 0])
|
||||
->column('title as label,coupon_id as value');
|
||||
})->col(24)->multiple(true)->filterable(true),
|
||||
// 餐费积分
|
||||
Elm::radio('integral_switch','是否赠送餐费积分',0)
|
||||
->setOptions([['value' => 0,'label' => '关闭'],['value' => 1,'label' => '开启']])
|
||||
->control([
|
||||
[
|
||||
'value' => 1,
|
||||
'rule' => [
|
||||
Elm::radio('integral_give_type','赠送方式',0)
|
||||
->setOptions([['value' => 0,'label' => '一次性全部赠送'],['value' => 1,'label' => '周期赠送']])
|
||||
->control([
|
||||
[
|
||||
'value' => 0,
|
||||
'rule' => [
|
||||
Elm::number('integral_give_num','赠送数量')->required()->min(0)->step(0.01)->precision(2)->col(24),
|
||||
Elm::number('integral_overdue_day','过期时间(天)')->required()->min(0)->max(50000)->col(24)->appendRule('suffix',[
|
||||
'type' => 'div',
|
||||
'style' => ['color' => '#999999'],
|
||||
'domProps' => [
|
||||
'innerHTML' => '赠送后多少天过期!为0则永不过期',
|
||||
]
|
||||
]),
|
||||
]
|
||||
],
|
||||
[
|
||||
'value' => 1,
|
||||
'rule' => [
|
||||
Elm::number('integral_cycle_num','周期数量')->required()->min(1)->max(100)->col(12),
|
||||
Elm::number('integral_give_num','每期赠送数量')->required()->min(0)->step(0.01)->precision(2)->col(12)->appendRule('suffix',[
|
||||
'type' => 'div',
|
||||
'style' => ['color' => '#999999'],
|
||||
'domProps' => [
|
||||
'innerHTML' => '每个周期赠送的数量!',
|
||||
]
|
||||
]),
|
||||
Elm::number('integral_give_day','周期间隔(天)')->required()->min(0)->max(100)->col(24)->appendRule('suffix',[
|
||||
'type' => 'div',
|
||||
'style' => ['color' => '#999999'],
|
||||
'domProps' => [
|
||||
'innerHTML' => '多少天为一个周期;例:填写10,则10天为一个周期;7月1日12时12分成为共创股东并且支付成功,则在7月11日12时12分解冻第二笔餐费积分',
|
||||
]
|
||||
]),
|
||||
Elm::number('integral_overdue_day','过期时间')->required()->min(0)->max(50000)->col(24)->appendRule('suffix',[
|
||||
'type' => 'div',
|
||||
'style' => ['color' => '#999999'],
|
||||
'domProps' => [
|
||||
'innerHTML' => '每个周期解冻后多少天过期!为0则永不过期',
|
||||
]
|
||||
]),
|
||||
]
|
||||
],
|
||||
]),
|
||||
]
|
||||
],
|
||||
]),
|
||||
];
|
||||
$form->setRule($rules);
|
||||
|
||||
|
|
@ -106,16 +160,22 @@ class MerchantShareholderLevelRepository extends BaseRepository{
|
|||
if($params['weight'] <= 0) throw new ValidateException('等级权重必须大于0!');
|
||||
// 数据生成
|
||||
$data = [
|
||||
'title' => $params['title'],
|
||||
'weight' => $params['weight'],
|
||||
'mer_quota' => $params['mer_quota'] ?? 0,
|
||||
'price' => $params['price'] ?? 0,
|
||||
'quota' => $params['quota'],
|
||||
'vegetable_quota' => $params['vegetable_quota'],
|
||||
'oil_quota' => $params['oil_quota'],
|
||||
'wine_quota' => $params['wine_quota'],
|
||||
'coupon_ids' => is_array($params['coupon_ids']) ? implode(',',$params['coupon_ids']) : $params['coupon_ids'],
|
||||
'merchant_type' => $params['merchant_type'],
|
||||
'title' => $params['title'],
|
||||
'weight' => $params['weight'],
|
||||
'mer_quota' => $params['mer_quota'] ?? 0,
|
||||
'price' => $params['price'] ?? 0,
|
||||
'quota' => $params['quota'],
|
||||
'vegetable_quota' => $params['vegetable_quota'],
|
||||
'oil_quota' => $params['oil_quota'],
|
||||
'wine_quota' => $params['wine_quota'],
|
||||
'coupon_ids' => is_array($params['coupon_ids']) ? implode(',',$params['coupon_ids']) : $params['coupon_ids'],
|
||||
'merchant_type' => $params['merchant_type'],
|
||||
'integral_switch' => $params['integral_switch'],
|
||||
'integral_give_type' => $params['integral_give_type'],
|
||||
'integral_give_num' => $params['integral_give_num'],
|
||||
'integral_give_day' => $params['integral_give_day'],
|
||||
'integral_overdue_day' => $params['integral_overdue_day'],
|
||||
'integral_cycle_num' => $params['integral_cycle_num']
|
||||
];
|
||||
// 判断:权重值是否已经存在
|
||||
$isHas = $this->getSearchModel(['merchant_type' => $params['merchant_type'],'weight' => $params['weight']])
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ namespace app\common\repositories\system\merchant;
|
|||
use app\common\dao\system\merchant\MerchantShareholderDao;
|
||||
use app\common\model\marketing\activity\Activity;
|
||||
use app\common\model\system\merchant\MerchantShareholder;
|
||||
use app\common\model\system\merchant\MerchantShareholderIntegral;
|
||||
use app\common\model\user\ExchangeQuotaRecord;
|
||||
use app\common\repositories\BaseRepository;
|
||||
use app\common\repositories\store\coupon\StoreCouponRepository;
|
||||
|
|
@ -205,9 +206,9 @@ class MerchantShareholderRepository extends BaseRepository{
|
|||
app()->make(StoreCouponRepository::class)->sendCoupon($coupon, $uid,StoreCouponUserRepository::SEND_TYPE_BUY, $params);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 修改信息
|
||||
// 是否赠送餐费积分
|
||||
if((int)$levelInfo['integral_switch'] == 1) $this->giveIntegral($info,$levelInfo);
|
||||
// 修改信息加入信息
|
||||
MerchantShareholder::update([
|
||||
'price' => $levelInfo['price'],
|
||||
'quota' => $levelInfo['quota'],
|
||||
|
|
@ -218,16 +219,70 @@ class MerchantShareholderRepository extends BaseRepository{
|
|||
'status' => 1,
|
||||
],['id' => $id]);
|
||||
|
||||
|
||||
Db::commit();
|
||||
}catch(\Exception $e){
|
||||
Db::rollback();
|
||||
Log::info('支付成功处理加入成功后的信息 - 错误: '.var_export([
|
||||
Log::info('共创股东支付成功 - 处理加入成功后的信息 - 错误: '.var_export([
|
||||
'id' => $id,
|
||||
'msg' => $e->getMessage()
|
||||
],1));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Common: 赠送餐费积分
|
||||
* Author: wu-hui
|
||||
* Time: 2024/06/19 16:48
|
||||
* @param array $info
|
||||
* @param array $levelInfo
|
||||
* @return bool
|
||||
*/
|
||||
public function giveIntegral(array $info,array $levelInfo){
|
||||
$giveType = $levelInfo['integral_give_type'] ?? 0;// 赠送方式:0=一次性赠送,1=周期赠送
|
||||
$giveNum = $levelInfo['integral_give_num'] ?? 0;// 赠送数量
|
||||
$giveDay = $levelInfo['integral_give_day'] ?? 0;// 周期间隔(天)
|
||||
$giveOverdueDay = $levelInfo['integral_overdue_day'] ?? 0;// 领取(解冻)后多少天过期
|
||||
$cycleNum = $levelInfo['integral_cycle_num'] ?? 1;// 周期数量
|
||||
// 根据赠送方式赠送积分;赠送方式:0=一次性赠送,1=周期赠送
|
||||
$insertData = [];// 赠送记录新增列表
|
||||
if($giveType == 1){
|
||||
// 周期赠送
|
||||
$expectThawTime = date("Y-m-d H:i:s",time());// 第一期预计解冻时间
|
||||
$expectOverdueTime = date("Y-m-d H:i:s",strtotime("+{$giveOverdueDay} day"));// 第一期预计过期时间
|
||||
// 循环处理
|
||||
for($i = 1;$i <= $cycleNum;$i++){
|
||||
$insertData[] = [
|
||||
'uid' => $info['uid'],
|
||||
'mer_id' => $info['mer_id'],
|
||||
'level_id' => $info['level_id'],
|
||||
'integral_total' => $giveNum,
|
||||
'status' => $i == 1 ? 1 : 0,// 第一期默认直接解冻
|
||||
'expect_thaw_time' => $expectThawTime,
|
||||
'real_thaw_time' => $i == 1 ? $expectThawTime : null,// 第一期默认直接解冻,
|
||||
'expect_overdue_time' => $expectOverdueTime,
|
||||
];
|
||||
// 预计解冻和过期时间增加
|
||||
$expectThawTime = date("Y-m-d H:i:s",strtotime($expectThawTime." +{$giveDay} day"));// 第一期预计解冻时间
|
||||
$expectOverdueTime = date("Y-m-d H:i:s",strtotime($expectOverdueTime." +{$giveOverdueDay} day"));// 第一期预计过期时间
|
||||
}
|
||||
}else{
|
||||
// 一次性全部赠送
|
||||
$insertData[] = [
|
||||
'uid' => $info['uid'],
|
||||
'mer_id' => $info['mer_id'],
|
||||
'level_id' => $info['level_id'],
|
||||
'integral_total' => $giveNum,
|
||||
'status' => 1,
|
||||
'expect_thaw_time' => date("Y-m-d H:i:s",time()),
|
||||
'real_thaw_time' => date("Y-m-d H:i:s",time()),
|
||||
'expect_overdue_time' => $giveOverdueDay > 0 ? date("Y-m-d H:i:s",strtotime("+{$giveOverdueDay} day")) : '',
|
||||
];
|
||||
}
|
||||
|
||||
// 记录
|
||||
if(count($insertData) > 0) MerchantShareholderIntegral::insertAll($insertData);
|
||||
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Common: 各种额度变更(赠送变更)
|
||||
* Author: wu-hui
|
||||
|
|
|
|||
|
|
@ -67,6 +67,12 @@ class ShareholderLevel extends BaseController{
|
|||
'wine_quota',
|
||||
'coupon_ids',
|
||||
'merchant_type',
|
||||
'integral_switch',
|
||||
'integral_give_type',
|
||||
'integral_give_num',
|
||||
'integral_give_day',
|
||||
'integral_overdue_day',
|
||||
'integral_cycle_num'
|
||||
]);
|
||||
$this->repository->submitEditFormData($params);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue