| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
- /**
- * Created by PhpStorm.
- * Name: 芸众商城系统
- * Author: 广州市芸众信息科技有限公司
- * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
- * Date: 2022-10-12
- * Time: 16:43
- */
- namespace app\common\services\member;
- use app\common\facades\Setting;
- use app\common\models\CouponLog;
- use app\common\models\member\MemberMerge;
- use app\common\models\MemberCoupon;
- use app\common\services\credit\ConstService;
- use app\common\services\finance\BalanceChange;
- use app\common\services\finance\PointService;
- use Illuminate\Support\Facades\DB;
- use Yunshop\Love\Common\Models\MemberLove;
- use Yunshop\Love\Common\Services\LoveChangeService;
- class MemberMergeService
- {
- public $merge_data;
- public $hold_uid;
- public $give_up_uid;
- public function __construct($hold_uid, $give_up_uid, $merge_data)
- {
- $this->hold_uid = $hold_uid;
- $this->give_up_uid = $give_up_uid;
- $this->merge_data = $merge_data;
- }
-
- public function handel()
- {
- $this->changePoint();
- $this->changeLove();
- $this->changeAmount();
- $this->changeCoupon();
- $this->changeProductMarket();
- \Log::debug('---会员合并服务处理---数据---', $this->merge_data);
- MemberMerge::create($this->merge_data);//合并记录
- }
- public function changePoint()
- {
- //积分
- $change_point = $this->merge_data['before_point'];
- $point_data = [
- 'point_mode' => PointService::POINT_MODE_MEMBER_MERGE,
- 'member_id' => $this->hold_uid,
- 'point' => $change_point,
- 'remark' => '[会员合并转入:会员ID:'. $this->hold_uid . '积分' . $change_point .']',
- 'point_income_type' => PointService::POINT_INCOME_GET
- ];
- $pointService = new PointService($point_data);
- $pointService->changePoint();
- }
- public function changeAmount()
- {
- //余额
- $change_amount = $this->merge_data['before_amount'];
- $data = [
- 'member_id' => $this->hold_uid,
- 'remark' => '[会员合并转入:会员ID:' . $this->hold_uid . '余额' . $change_amount . '元]',
- 'source' => ConstService::MEMBER_MERGE,
- 'relation' => '',
- 'operator' => ConstService::OPERATOR_SHOP,
- 'operator_id' => $this->hold_uid,
- 'change_value' => $change_amount,
- ];
- (new BalanceChange())->memberMerge($data);
- }
- public function changeLove()
- {
- if (app('plugins')->isEnabled('love')) {
- $hold_member_love_usable = MemberLove::uniacid()->where('member_id', $this->hold_uid)->value('usable');
- $give_up_member_love_usable = MemberLove::uniacid()->where('member_id', $this->give_up_uid)->value('usable');
- $hold_member_love_froze = MemberLove::uniacid()->where('member_id', $this->hold_uid)->value('froze');
- $give_up_member_love_froze = MemberLove::uniacid()->where('member_id', $this->give_up_uid)->value('froze');
- $after_love_usable = bcadd($hold_member_love_usable, $give_up_member_love_usable, 2);
- $after_love_froze = bcadd($hold_member_love_froze, $give_up_member_love_froze, 2);
- $this->merge_data = array_merge($this->merge_data, [
- 'before_love_usable' => $give_up_member_love_usable?:0.00,
- 'after_love_usable' => $after_love_usable?:0.00,
- 'before_love_froze' => $give_up_member_love_froze?:0.00,
- 'after_love_froze' => $after_love_froze?:0.00,
- ]);
- //可用
- $change_usable_love = $this->merge_data['before_love_usable'];
- $love_set = Setting::get('love');
- if ($change_usable_love > 0) {
- $usable_love_name = $love_set['usable_name'] ?: $love_set['name'] ?: '爱心值';
- $usable_love_data = [
- 'member_id' => $this->hold_uid,
- 'change_value' => $change_usable_love,
- 'operator' => 0,
- 'operator_id' => 0,
- 'remark' => '[会员合并转入:会员ID:'.$this->hold_uid.$usable_love_name.$change_usable_love.']',
- 'relation' => ''
- ];
- (new LoveChangeService('usable'))->memberMerge($usable_love_data);
- }
- //冻结
- $change_froze_love = $this->merge_data['before_love_froze'];
- if ($change_froze_love > 0) {
- $froze_love_name = $love_set['unable_name'] ?: $love_set['name'] ? '白'.$love_set['name'] : '白爱心值';
- $froze_love_data = [
- 'member_id' => $this->hold_uid,
- 'change_value' => $change_froze_love,
- 'operator' => 0,
- 'operator_id' => 0,
- 'remark' => '[会员合并转入:会员ID:'.$this->hold_uid.$froze_love_name.$change_froze_love.']',
- 'relation' => ''
- ];
- (new LoveChangeService('froze'))->memberMerge($froze_love_data);
- }
- }
- }
- public function changeCoupon()
- {
- $give_up_coupons = MemberCoupon::uniacid()->where(['uid'=>$this->give_up_uid])->get();
- foreach ($give_up_coupons as $coupon) {
- $coupon->update(['uid'=>$this->hold_uid]);
- CouponLog::create([
- 'uniacid' => $coupon->uniacid,
- 'logno' => '会员合并转入: 会员【ID:' . $this->hold_uid . '】获得优惠券 1张【优惠券ID:' . $coupon->coupon_id . '】',
- 'member_id' => $this->hold_uid,
- 'couponid' => $coupon->coupon_id,
- 'paystatus' => 0,
- 'creditstatus' => 0,
- 'paytype' => 0,
- 'getfrom' => CouponLog::MEMBER_MERGE,
- 'status' => 0,
- 'createtime' => time(),
- ]);
- }
- }
- //处理应用市场客户管理数据
- private function changeProductMarket()
- {
- if (app('plugins')->isEnabled('product-market')) {
- DB::table('yz_product_market_client')->where('member_id', $this->give_up_uid)->update(['member_id'=>$this->hold_uid]);
- }
- }
- }
|