| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399 |
- <?php
- /**
- * Created by PhpStorm.
- * Author: 芸众商城 www.yunzshop.com
- * Date: 17/3/8
- * Time: 上午10:11
- */
- namespace app\backend\modules\member\controllers;
- use app\backend\modules\member\models\Member;
- use app\backend\modules\member\models\MemberRelation;
- use app\backend\modules\member\models\MemberShopInfo;
- use app\backend\modules\member\services\FansItemService;
- use app\common\components\BaseController;
- use app\backend\modules\member\models\MemberRelation as Relation;
- use app\common\facades\Setting;
- use app\common\helpers\Cache;
- use app\common\helpers\PaginationHelper;
- use app\common\helpers\Url;
- use app\common\models\Goods;
- use app\common\models\notice\MessageTemp;
- use app\common\services\ExportService;
- use Illuminate\Database\Eloquent\Collection;
- class MemberRelationController extends BaseController
- {
- public $pageSize = 20;
- /**
- * 加载模板
- * @return string
- * @throws \Throwable
- */
- public function index()
- {
- return view('member.relation', [])->render();
- }
- /**
- * 列表
- * @return string
- * @throws \Throwable
- */
- public function show()
- {
- $relation = Relation::uniacid()->first();
- $setting = \Setting::get('member.relation');
- if (!empty($relation)) {
- $relation = $relation->toArray();
- }
- if (!empty($relation['become_term'])) {
- $relation['become_term'] = unserialize($relation['become_term']);
- }
- if (!empty($relation['become_goods'])) {
- $relation_goods = unserialize($relation['become_goods']);
- $goods_ids = [];
- foreach ($relation_goods as $item) {
- $goods_ids[] = $item['goods_id'];
- }
- // 查询当前未被删除的商品
- $current_goods = Goods::uniacid()->select('id', 'title', 'thumb')
- ->whereIn('id', $goods_ids)
- ->whereNull('deleted_at')
- ->get();
- if ($current_goods) {
- $current_goods = $current_goods->toArray();
- foreach ($current_goods as $key => $value) {
- $current_goods[$key]['thumb'] = yz_tomedia($value['thumb']);
- }
- $goods = $current_goods;
- } else {
- $goods = [];
- }
- } else {
- $goods = [];
- }
- $relationship = [
- 'status' => $relation['status'],
- 'become' => $relation['become'],
- 'become_term2' => empty($relation['become_term'][2]) ? "" : 2,
- 'become_ordercount' => $relation['become_ordercount'],
- 'become_term3' => empty($relation['become_term'][3]) ? "" : 3,
- 'become_moneycount' => $relation['become_moneycount'],
- 'become_term4' => empty($relation['become_term'][4]) ? "" : 4,
- 'goods' => $goods,
- 'is_sales_commission' => app('plugins')->isEnabled('sales-commission') ? 1 : 0,
- 'become_term5' => empty($relation['become_term'][5]) ? "" : 5,
- 'become_selfmoney' => $relation['become_selfmoney'],
- 'become_order' => $relation['become_order'],
- 'become_child' => $relation['become_child'],
- 'become_check' => $relation['become_check'],
- ];
- $reward = [
- 'reward_points' => $relation['reward_points'],
- 'maximum_number' => $relation['maximum_number']
- ];
- $page = [
- 'is_jump' => $setting['is_jump'],
- 'jump_link' => $setting['jump_link'],
- 'small_jump_link' => $setting['small_jump_link'],
- 'share_page' => $relation['share_page'],
- 'share_page_deail' => $relation['share_page_deail'],
- ];
- return $this->successJson('ok', [
- 'relationship' => $relationship,
- 'reward' => $reward,
- 'page' => $page
- ]);
- }
- /**
- * 保存关系链数据
- *
- * @return mixed
- */
- public function save()
- {
- $setData = $this->setData(\YunShop::request()->setdata);
- $setting = \YunShop::request()->setting;
- if ($setting) {
- \Setting::set('member.relation', $setting);
- }
- $setData['uniacid'] = \YunShop::app()->uniacid;
- if (empty($setData['become_order'])) {
- $setData['become_order'] = 0;
- }
- if (empty($setData['become_ordercount'])) {
- $setData['become_ordercount'] = 0;
- }
- if (!empty($setData['become_term'])) {
- $setData['become_term'] = serialize($setData['become_term']);
- } else {
- $setData['become_term'] = '';
- }
- if (empty($setData['become_moneycount'])) {
- $setData['become_moneycount'] = 0;
- }
- $setData['become_goods_id'] = !empty($setData['become_goods_id']) ? implode(
- ',',
- $setData['become_goods_id']
- ) : 0;
- $setData['become_goods'] = !empty($setData['become_goods']) ? serialize($setData['become_goods']) : 0;
- // dd($setData['become_goods']);
- if (empty($setData['become_selfmoney'])) {
- $setData['become_selfmoney'] = 0;
- }
- $relation = Relation::uniacid()->first();
- if (!empty($relation)) {
- $relation->setRawAttributes($setData);
- (new \app\common\services\operation\RelationLog($relation, 'update'));
- $relation->save();
- } else {
- Relation::create($setData);
- }
- Cache::forget('member_relation');
- return $this->successJson('ok', ['data' => true]);
- }
- /**
- * 成为推广员 指定商品查询
- *
- * @return string
- */
- public function query()
- {
- $kwd = trim(\YunShop::request()->keyword);
- $goods_model = Goods::getGoodsByNameNew($kwd);
- if (!empty($goods_model)) {
- $data = $goods_model->toArray();
- foreach ($data['data'] as &$good) {
- $good['thumb'] = tomedia($good['thumb']);
- }
- } else {
- $data = [];
- }
- return $this->successJson('ok', $data);
- }
- /**
- * 加载模板 -- 资格申请
- * @return string
- * @throws \Throwable
- */
- public function apply()
- {
- return view('member.apply', [])->render();
- }
- /**
- * 会员资格申请列表
- *
- * @return string
- */
- public function applyShow()
- {
- $requestSearch = \YunShop::request()->search;
- $list = Member::getMembersToApply($requestSearch)
- ->paginate($this->pageSize)
- ->toArray();
- return $this->successJson('ok', [
- 'list' => (new FansItemService())->setFansItem($list),
- 'total' => $list['total'],
- 'requestSearch' => $requestSearch
- ]);
- }
- /**
- * 申请协议
- *
- * @return mixed|string
- */
- public function applyProtocol()
- {
- $info = Setting::get("apply_protocol");
- $requestProtocol = \YunShop::request()->protocol;
- if ($requestProtocol) {
- $request = Setting::set('apply_protocol', $requestProtocol);
- if ($request) {
- return $this->message('保存成功', Url::absoluteWeb('member.member-relation.apply-protocol'));
- }
- }
- return $this->successJson('ok', ['info' => $info]);
- }
- public function base()
- {
- return view('member.relation-base', [])->render();
- }
- public function relationBase()
- {
- $info = \Setting::get('shop.relation_base');
- $base = \YunShop::request()->base;
- if ($base) {
- $request = Setting::set('shop.relation_base', $base);
- if ($request) {
- return $this->successJson('数据保存成功', $request);
- }
- }
- $temp_list = MessageTemp::getList();
- $notice = [
- 'member_agent' => $info['member_agent'],
- 'member_new_lower' => $info['member_new_lower'],
- ];
- $member_relation = [
- 'is_referrer' => empty($info['is_referrer']) ? '0' : $info['is_referrer'],
- 'parent_is_referrer' => empty($info['parent_is_referrer']) ? '0' : $info['parent_is_referrer'],
- 'is_recommend_wechat' => empty($info['is_recommend_wechat']) ? '0' : $info['is_recommend_wechat'],
- 'one_level' => $info['relation_level'][0],
- 'name1' => $info['relation_level']['name1'],
- 'two_level' => $info['relation_level'][1],
- 'name2' => $info['relation_level']['name2'],
- 'phone' => $info['relation_level']['phone'],
- 'realname' => $info['relation_level']['realname'],
- 'wechat' => $info['relation_level']['wechat'],
- 'is_statistical_goods' => $info['is_statistical_goods'],
- 'statistical_goods' => $info['statistical_goods']
- ];
- $member_merge = [
- 'is_member_merge' => $info['is_member_merge'],
- 'is_merge_save_level' => empty($info['is_merge_save_level']) ? 0 : $info['is_merge_save_level']
- ];
- return $this->successJson('ok', [
- 'banner' => yz_tomedia($info['banner']),
- 'notice' => $notice,
- 'temp_list' => $temp_list,
- 'member_relation' => $member_relation,
- 'member_merge' => $member_merge,
- ]);
- }
- /**
- * 验证是否开启默认模板
- * @return \Illuminate\Http\JsonResponse
- */
- public function getIsDefaultById()
- {
- if (MessageTemp::uniacid()->where('id', request()->id)->where('is_default', 1)->first()) {
- return $this->successJson('ok', ['data' => true]);
- }
- return $this->successJson('ok', ['data' => false]);
- }
- /**
- * 检查审核
- *
- * @return \Illuminate\Http\JsonResponse
- */
- public function chkApply()
- {
- $id = \YunShop::request()->id;
- $member_shop_info_model = MemberShopInfo::getMemberShopInfo($id);
- if ($member_shop_info_model) {
- $member_shop_info_model->is_agent = 1;
- $member_shop_info_model->status = 2;
- if ($member_shop_info_model->inviter == 0) {
- $member_shop_info_model->inviter = 1;
- }
- if ($member_shop_info_model->save()) {
- Member::setMemberRelation($member_shop_info_model->member_id, $member_shop_info_model->parent_id);
- Relation::sendGeneralizeNotify($member_shop_info_model->member_id);
- return $this->successJson('审核通过', ['data' => true]);
- } else {
- return $this->errorJson('审核失败');
- }
- } else {
- return $this->errorJson('会员不存在');
- }
- }
- /**
- * 数据导出
- *
- */
- public function export()
- {
- $file_name = date('Ymdhis', time()) . '会员资格申请导出';
- $requestSearch = \YunShop::request()->search;
- $list = Member::getMembersToApply($requestSearch);
- $export_page = request()->export_page ? request()->export_page : 1;
- $export_model = new ExportService($list, $export_page);
- $file_name = date('Ymdhis', time()) . '会员导出' . $export_page;
- $export_data[0] = ['会员ID', '推荐人姓名', '粉丝姓名', '会员姓名', '手机号', '申请时间'];
- foreach ($list->get()->toArray() as $key => $item) {
- if (!empty($item['yz_member']) && !empty($item['yz_member']['agent'])) {
- $agent_name = $item['yz_member']['agent']['nickname'];
- } else {
- $agent_name = '';
- }
- $export_data[$key + 1] = [
- $item['uid'],
- $agent_name,
- $item['nickname'],
- $item['realname'],
- $item['mobile'],
- date('Y.m.d', $item['yz_member']['apply_time'])
- ];
- }
- // 此处参照商城订单管理的导出接口
- app('excel')->store(new \app\exports\FromArray($export_data), $file_name . '.xlsx', 'export');
- app('excel')->download(new \app\exports\FromArray($export_data), $file_name . '.xlsx')->send();
- }
- protected function setData($setData)
- {
- $setData['become'] = empty($setData['become']) ? 0 : $setData['become'];
- $setData['become_check'] = empty($setData['become_check']) ? 0 : $setData['become_check'];
- $setData['become_order'] = empty($setData['become_order']) ? 0 : $setData['become_order'];
- $setData['become_child'] = empty($setData['become_child']) ? 0 : $setData['become_child'];
- $setData['become_ordercount'] = empty($setData['become_ordercount']) ? 0 : $setData['become_ordercount'];
- $setData['become_moneycount'] = empty($setData['become_moneycount']) ? 0.00 : $setData['become_moneycount'];
- $setData['become_info'] = empty($setData['become_info']) ? 1 : $setData['become_info'];
- $setData['share_page'] = empty($setData['share_page']) ? 1 : $setData['share_page'];
- $setData['share_page_deail'] = empty($setData['share_page_deail']) ? 0 : $setData['share_page_deail'];
- $setData['reward_points'] = empty($setData['reward_points']) ? 0 : $setData['reward_points'];
- $setData['maximum_number'] = empty($setData['maximum_number']) ? 0 : $setData['maximum_number'];
- return $setData;
- }
- }
|