|
|
@@ -8,17 +8,16 @@ use bizHd\balance\classes\BalanceGiveChangeClass;
|
|
|
use bizHd\balance\classes\BalancePayChangeClass;
|
|
|
use bizHd\member\classes\MemberChangeClass;
|
|
|
use bizHd\member\classes\MemberLevelClass;
|
|
|
-use bizHd\member\classes\MemberWealClass;
|
|
|
use bizHd\order\classes\OrderClass;
|
|
|
use bizHd\order\classes\SettleClass;
|
|
|
use bizHd\shop\classes\ShopClass;
|
|
|
+use bizHd\user\classes\UserGrowthClass;
|
|
|
use common\components\dict;
|
|
|
use common\components\imgUtil;
|
|
|
use common\components\noticeUtil;
|
|
|
use common\components\stringUtil;
|
|
|
use common\components\util;
|
|
|
use Overtrue\ChineseCalendar\Calendar;
|
|
|
-use Yii;
|
|
|
use bizHd\base\classes\BaseClass;
|
|
|
|
|
|
class CustomClass extends BaseClass
|
|
|
@@ -184,11 +183,13 @@ class CustomClass extends BaseClass
|
|
|
//会员等级变化,包括手动修改、自动降会员和充值升会员等 ssh 20250324
|
|
|
public static function levelChange($oldLevel, $newLevel, $shop, $custom, $hd, $params)
|
|
|
{
|
|
|
+ $adminId = $params['adminId'];
|
|
|
$staffId = $params['staffId'] ?? 0;
|
|
|
$staffName = $params['staffName'] ?? '';
|
|
|
$style = $params['style'] ?? 0;
|
|
|
$target = $params['target'] ?? [];
|
|
|
$rechargeAmount = $params['rechargeAmount'] ?? 0;
|
|
|
+
|
|
|
$targetId = $target->id ?? 0;
|
|
|
$mainId = $shop->mainId;
|
|
|
$shopId = $shop->id;
|
|
|
@@ -198,11 +199,7 @@ class CustomClass extends BaseClass
|
|
|
$beforeName = $before['name'] ?? '普通客户';
|
|
|
$discount = $current['discount'] ?? 1;
|
|
|
$memberName = $current['name'] ?? '';
|
|
|
-
|
|
|
- $custom->member = $newLevel;
|
|
|
- $custom->discount = $discount;
|
|
|
- $custom->memberName = $memberName;
|
|
|
- $custom->save();
|
|
|
+ $oldGrowth = $custom->growth;
|
|
|
|
|
|
$hd->member = $newLevel;
|
|
|
$hd->discount = $discount;
|
|
|
@@ -236,6 +233,30 @@ class CustomClass extends BaseClass
|
|
|
'staffName' => $staffName,
|
|
|
];
|
|
|
MemberChangeClass::add($change);
|
|
|
+
|
|
|
+ $custom->member = $newLevel;
|
|
|
+ $custom->discount = $discount;
|
|
|
+ $custom->memberName = $memberName;
|
|
|
+ //成长值变更
|
|
|
+ $growth = $current['amount'] ?? 0;
|
|
|
+ $custom->growth = $growth;
|
|
|
+ $custom->save();
|
|
|
+
|
|
|
+ //成长值变动记录
|
|
|
+ $growthData = [
|
|
|
+ 'userId' => $custom->userId,
|
|
|
+ 'userName' => $custom->name,
|
|
|
+ 'event' => "管理员变更{$memberName}级,成长值从{$oldGrowth}变更为{$growth}",
|
|
|
+ 'relateId' => 0,
|
|
|
+ 'relateType' => 0,
|
|
|
+ 'num' => $custom->growth - $oldGrowth,
|
|
|
+ 'growth' => $growth,
|
|
|
+ //'operatorId' => $adminId,
|
|
|
+ 'staffId' => $staffId, //操作人(员工id)
|
|
|
+ 'staffName' => $staffName, //员工名称
|
|
|
+ 'createTime' => date('Y-m-d H:i:s')
|
|
|
+ ];
|
|
|
+ UserGrowthClass::add($growthData);
|
|
|
}
|
|
|
|
|
|
//客户采购欠款金额增加,如果有余额时,要进行欠款销账 ssh 20250715
|
|
|
@@ -867,4 +888,80 @@ class CustomClass extends BaseClass
|
|
|
return $list;
|
|
|
}
|
|
|
|
|
|
+ // 客户消费等级批量变更
|
|
|
+ public static function updateCustomExpenseLevel($data)
|
|
|
+ {
|
|
|
+ $shopId = $data['shopId'];
|
|
|
+ $mainId = $data['mainId'];
|
|
|
+ $customs = self::getAllByCondition(['shopId' => $shopId], null, 'id, name, hdId, userId, buyAmount, growth, member, memberName', null, true);
|
|
|
+ $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', 'id, name, level, amount');
|
|
|
+ if (!empty($customs) && !empty($levelDatas)) {
|
|
|
+ foreach ($customs as $c) {
|
|
|
+ // $buyAmount = 0;
|
|
|
+ // // 获取所有零售订单,计算消费金额
|
|
|
+ // $orderList = \bizHd\order\classes\OrderClass::getAllByCondition(['customId' => $c->id], null, 'id, actPrice');
|
|
|
+ // if (!empty($orderList)) {
|
|
|
+ // foreach ($orderList as $order) {
|
|
|
+ // $buyAmount = bcadd($buyAmount, $order['actPrice'], 2);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // $c->buyAmount = $buyAmount;
|
|
|
+
|
|
|
+ // 根据 growth 设置等级
|
|
|
+ $memberData = self::getCustomExpenseLevel($c->growth, $mainId, $levelDatas); // 设置等级多处需要同步修改的,请搜索:getCustomExpenseLevel
|
|
|
+ $newMember = intval($memberData['level']);
|
|
|
+ $customMember = $c->member;
|
|
|
+ if ($customMember != $newMember) {
|
|
|
+ $hdId = $c->hdId;
|
|
|
+ $hd = HdClass::getById($hdId, true);
|
|
|
+
|
|
|
+ $change = [
|
|
|
+ 'customId' => $c->id,
|
|
|
+ 'customName' => $c->name,
|
|
|
+ 'hdId' => $hd->id,
|
|
|
+ 'hdName' => $hd->name,
|
|
|
+ 'mainId' => $mainId,
|
|
|
+ 'shopId' => $shopId,
|
|
|
+ 'targetId' => 0,
|
|
|
+ 'rechargeAmount' => 0,
|
|
|
+ 'days' => 0,
|
|
|
+ 'daysBefore' => '0000-00-00 00:00:00',
|
|
|
+ 'daysAfter' => '0000-00-00 00:00:00',
|
|
|
+ 'beforeLevel' => $c->member,
|
|
|
+ 'afterLevel' => $memberData['level'],
|
|
|
+ 'beforeName' => $c->memberName,
|
|
|
+ 'afterName' => $memberData['name'],
|
|
|
+ 'style' => 1, //手动修改会员,脚本执行
|
|
|
+ 'event' => '系统脚本修改',
|
|
|
+ 'staffId' => 0,
|
|
|
+ 'staffName' => '',
|
|
|
+ ];
|
|
|
+ MemberChangeClass::add($change);
|
|
|
+
|
|
|
+ $c->member = $memberData['level'];
|
|
|
+ $c->memberName = $memberData['name'];
|
|
|
+ $c->save();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新客户所对应花店的消费金额
|
|
|
+ // HdClass::updateByCondition(['shopId'=>$shopId, 'userId'=>$c->userId], ['expendAmount'=>$buyAmount]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取客户消费等级
|
|
|
+ public static function getCustomExpenseLevel($growth, $mainId, $levelDatas=[])
|
|
|
+ {
|
|
|
+ if (empty($levelDatas)) {
|
|
|
+ $levelDatas = MemberLevelClass::getAllByCondition(['mainId' => $mainId], 'amount DESC', 'id, name, level, amount');
|
|
|
+ }
|
|
|
+ foreach ($levelDatas as $data) {
|
|
|
+ if ($growth >= $data['amount']) {
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return ['level'=>0, 'name'=>''];
|
|
|
+ }
|
|
|
}
|