MemberSetController.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. <?php
  2. namespace app\backend\modules\member\controllers;
  3. use app\backend\modules\member\models\MemberRelation as Relation;
  4. use app\common\components\BaseController;
  5. use app\common\facades\RichText;
  6. use app\common\facades\Setting;
  7. use app\common\helpers\Cache;
  8. use app\common\models\Goods;
  9. use app\common\models\notice\MessageTemp;
  10. use app\common\models\Protocol;
  11. use iscms\AlismsSdk\AlibabaAliqinFcSmsNumSendRequest;
  12. use Yunshop\Diyform\models\DiyformTypeModel;
  13. class MemberSetController extends BaseController
  14. {
  15. public function basic()
  16. {
  17. //todo 这里需判断权限,自动跳转
  18. $relationSet = Setting::get('shop.relation_base');
  19. $memberSet = Setting::get('shop.member');
  20. $temp_list = MessageTemp::getList();
  21. $member_agent_default = MessageTemp::getTempIdByNoticeType('member_agent');
  22. $member_new_lower_default = MessageTemp::getTempIdByNoticeType('member_new_lower');
  23. return view('member.memberSet.basic', [
  24. 'set' => [
  25. 'banner' => $relationSet['banner'] ? : '',
  26. 'banner_url' => $relationSet['banner'] ? yz_tomedia($relationSet['banner']) : '',
  27. 'headimg' => $memberSet['headimg'] ? : '',
  28. 'headimg_url' => $memberSet['headimg'] ? yz_tomedia($memberSet['headimg']) : '',
  29. 'member_agent' => $relationSet['member_agent'] ? : "",
  30. 'member_new_lower' => $relationSet['member_new_lower'] ? : "",
  31. 'member_agent_default' => ($relationSet['member_agent'] && $relationSet['member_agent'] == $member_agent_default->id) ? "1" : "0",
  32. 'member_new_lower_default' => ($relationSet['member_new_lower'] && $relationSet['member_new_lower'] == $member_new_lower_default->id) ? "1" : "0",
  33. ],
  34. 'temp_list' => $temp_list,
  35. ])->render();
  36. }
  37. public function basicStore()
  38. {
  39. $set = request()->set;
  40. $relationSet = Setting::get('shop.relation_base');
  41. $relationSet['banner'] = $set['banner'] ? : '';
  42. $relationSet['member_agent'] = $set['member_agent'] ? : '';
  43. $relationSet['member_new_lower'] = $set['member_new_lower'] ? : '';
  44. Setting::set('shop.relation_base',$relationSet);
  45. $memberSet = Setting::get('shop.member');
  46. $memberSet['headimg'] = $set['headimg'] ? : '';
  47. if (!$this->shopMemberSave($memberSet)) {
  48. $this->errorJson('会员设置失败');
  49. }
  50. return $this->successJson('保存成功');
  51. }
  52. public function registerAndLogin()
  53. {
  54. $memberSet = Setting::get('shop.member');
  55. $registerSet = Setting::get('shop.register');
  56. $relationSet = Setting::get('shop.relation_base');
  57. return view('member.memberSet.registerLogin', [
  58. 'set' => [
  59. 'get_register' => $memberSet['get_register'] ? "1" : "0",
  60. 'is_password' => $registerSet['is_password'] ? "1" : "0",
  61. 'login_mode' => $registerSet['login_mode'] ? : ['mobile_code','password'],
  62. 'wechat_login_mode' => $memberSet['wechat_login_mode'] ? "1" : "0",
  63. 'is_bind_mobile' => $memberSet['is_bind_mobile'] ? : "0",
  64. 'bind_mobile_page' => $memberSet['bind_mobile_page'] ? : [],
  65. 'is_bind_address' => $memberSet['is_bind_address'] ? : "0",
  66. 'bind_address_page' => $memberSet['bind_address_page'] ? : [],
  67. 'top_img' => $registerSet['top_img'] ? : '',
  68. 'top_img_url' => $registerSet['top_img'] ? yz_tomedia($registerSet['top_img']) : '',
  69. 'title1' => $registerSet['title1'] ? : '',
  70. 'title2' => $registerSet['title2'] ? : '',
  71. 'is_member_merge' => $relationSet['is_member_merge'] ? : 0,
  72. 'is_merge_save_level' => $relationSet['is_merge_save_level'] ? : 0,
  73. 'is_invite' => $memberSet['is_invite'] ? "1" : "0",
  74. 'required' => $memberSet['required'] ? "1" : "0",
  75. 'default_invite' => $memberSet['default_invite'] ? : "",
  76. 'invite_page' => $memberSet['invite_page'] ? "1" : "0",
  77. 'is_bind_invite' => $memberSet['is_bind_invite'] ? "1" : "0",
  78. ],
  79. ])->render();
  80. }
  81. public function registerAndLoginStore()
  82. {
  83. $set = request()->set;
  84. $memberSet = Setting::get('shop.member');
  85. $memberSet['get_register'] = $set['get_register'] ? "1" : "0";
  86. $memberSet['wechat_login_mode'] = $set['wechat_login_mode'] ? "1" : "0";
  87. $memberSet['is_bind_mobile'] = $set['is_bind_mobile'] ? : "0";
  88. $memberSet['bind_mobile_page'] = $set['bind_mobile_page'] ? : [];
  89. $memberSet['is_bind_address'] = $set['is_bind_address'] ? : "0";
  90. $memberSet['bind_address_page'] = $set['bind_address_page'] ? : [];
  91. $memberSet['is_invite'] = $set['is_invite'] ? "1" : "0";
  92. $memberSet['required'] = $set['required'] ? "1" : "0";
  93. $memberSet['default_invite'] = $set['default_invite'] ? : "";
  94. $memberSet['invite_page'] = $set['invite_page'] ? "1" : "0";
  95. $memberSet['is_bind_invite'] = $set['is_bind_invite'] ? "1" : "0";
  96. $registerSet = Setting::get('shop.register');
  97. $registerSet['is_password'] = $set['is_password'] ? "1" : "0";
  98. $registerSet['login_mode'] = $set['login_mode'] ? : [];
  99. if (!$registerSet['login_mode']) {
  100. return $this->errorJson('必须选择一种登录方式');
  101. }
  102. $registerSet['top_img'] = $set['top_img'] ? : "";
  103. $registerSet['title1'] = $set['title1'] ? : "";
  104. $registerSet['title2'] = $set['title2'] ? : "";
  105. $relationSet = Setting::get('shop.relation_base');
  106. $relationSet['is_member_merge'] = $set['is_member_merge'] ? : 0;
  107. $relationSet['is_merge_save_level'] = $set['is_merge_save_level'] ? : 0;
  108. if ($memberSet['is_bind_mobile'] !== '0' && $memberSet['invite_page'] == '1') {
  109. return $this->errorJson('强制绑定手机号跟邀请页面不能同时开启');
  110. }
  111. if (!$this->shopMemberSave($memberSet)) {
  112. $this->errorJson('会员设置失败');
  113. }
  114. Setting::set('shop.register',$registerSet);
  115. if (Cache::has('shop_register')) {
  116. Cache::forget('shop_register');
  117. }
  118. Setting::set('shop.relation_base',$relationSet);
  119. return $this->successJson('保存成功');
  120. }
  121. public function information()
  122. {
  123. $formSet = json_decode(Setting::get('shop.form'),true);
  124. $form = array_values(array_sort($formSet['form'], function ($value) {
  125. return $value['sort'];
  126. }));
  127. $memberSet = Setting::get('shop.member');
  128. $diyForm = [];
  129. if (app('plugins')->isEnabled('diyform')) {
  130. $diyForm = DiyformTypeModel::getDiyformList()->get();
  131. }
  132. return view('member.memberSet.information', [
  133. 'set' => [
  134. 'basic_register' => $formSet['base']['basic_register'] ? : "0",
  135. 'name' => (bool)$formSet['base']['name'],
  136. 'name_must' => $formSet['base']['name_must'] ? : "0",
  137. 'sex' => (bool)$formSet['base']['sex'],
  138. 'sex_must' => $formSet['base']['sex_must'] ? : "0",
  139. 'address' => (bool)$formSet['base']['address'],
  140. 'address_must' => $formSet['base']['address_must'] ? : "0",
  141. 'birthday' => (bool)$formSet['base']['birthday'],
  142. 'birthday_must' => $formSet['base']['birthday_must'] ? : "0",
  143. 'change_info' => $formSet['base']['change_info'] ? : "0",
  144. 'is_custom' => $memberSet['is_custom'] ? : "0",
  145. 'is_custom_register' => $memberSet['is_custom_register'] ? : "0",
  146. 'custom_title' => $memberSet['custom_title'] ? : "",
  147. 'form_register' => $formSet['base']['form_register'] ? : "0",
  148. 'form_open' => $formSet['base']['form_open'] ? : "0",
  149. 'form_edit' => $formSet['base']['form_edit'] ? : "0",
  150. 'form' => $form ? : [],
  151. 'form_id' => $memberSet['form_id'] ? : "",
  152. 'form_id_register' => $memberSet['form_id_register'] ? : "0",
  153. ],
  154. 'diyForm' => $diyForm
  155. ])->render();
  156. }
  157. public function informationStore()
  158. {
  159. $set = request()->set;
  160. $formSet = json_decode(Setting::get('shop.form'),true);
  161. $memberSet = Setting::get('shop.member');
  162. $memberSet['is_custom'] = $set['is_custom'] ? : "0";
  163. $memberSet['is_custom_register'] = $set['is_custom_register'] ? : "0";
  164. $memberSet['custom_title'] = $set['custom_title'] ? : "";
  165. $memberSet['form_id'] = $set['form_id'] ? : "";
  166. $memberSet['form_id_register'] = $set['form_id_register'] ? : "0";
  167. $base = $formSet['base'];
  168. $base['basic_register'] = $set['basic_register'] ? : "0";
  169. $base['name'] = (bool)$set['name'];
  170. $base['name_must'] = $set['name_must'] ? : "0";
  171. $base['sex'] = (bool)$set['sex'];
  172. $base['sex_must'] = $set['sex_must'] ? : "0";
  173. $base['address'] = (bool)$set['address'];
  174. $base['address_must'] = $set['address_must'] ? : "0";
  175. $base['birthday'] = (bool)$set['birthday'];
  176. $base['birthday_must'] = $set['birthday_must'] ? : "0";
  177. $base['change_info'] = $set['change_info'] ? : "0";
  178. $base['form_register'] = $set['form_register'] ? : "0";
  179. $base['form_open'] = $set['form_open'] ? : "0";
  180. $base['form_edit'] = $set['form_edit'] ? : "0";
  181. $form = [];
  182. foreach ($set['form'] as $value) {
  183. if (empty($value['name'])) {
  184. return $this->successJson('自定义表单数据错误');
  185. }
  186. $sort = $value['sort']?:99;
  187. $pinyin = implode('', pinyin($value['name']));
  188. $form[] =['name'=>$value['name'], 'sort'=>$sort, 'del'=>0, 'pinyin'=>$pinyin, 'value'=>''];
  189. }
  190. $form = array_values(array_sort($form, function ($value) {
  191. return $value['sort'];
  192. }));
  193. Setting::set('shop.form', json_encode(['base'=>$base, 'form'=>$form]));
  194. if (!$this->shopMemberSave($memberSet)) {
  195. $this->errorJson('会员设置失败');
  196. }
  197. return $this->successJson('保存成功');
  198. }
  199. public function level()
  200. {
  201. $memberSet = Setting::get('shop.member');
  202. return view('member.memberSet.level', [
  203. 'set' => [
  204. 'level_name' => $memberSet['level_name'] ? : '普通会员',
  205. 'display_page' => $memberSet['display_page'] ? "1" : "0",
  206. 'level_type' => $memberSet['level_type'] ? : "0",
  207. 'level_after' => $memberSet['level_after'] ? : "0",
  208. 'term' => $memberSet['term'] ? "1" : "0",
  209. 'level_discount_calculation' => $memberSet['level_discount_calculation'] ? "1" : "0",
  210. 'discount' => $memberSet['discount'] ? : "1",
  211. 'vip_price' => $memberSet['vip_price'] ? : "2",
  212. ],
  213. ])->render();
  214. }
  215. public function levelStore()
  216. {
  217. $set = request()->set;
  218. $memberSet = Setting::get('shop.member');
  219. $memberSet['level_name'] = $set['level_name'] ? : '';
  220. $memberSet['display_page'] = $set['display_page']? "1" : "0";
  221. $memberSet['level_type'] = $set['level_type'];
  222. $memberSet['level_after'] = $set['level_after'];
  223. $memberSet['term'] = $set['term'];
  224. $memberSet['level_discount_calculation'] = $set['level_discount_calculation'];
  225. $memberSet['discount'] = $set['discount'];
  226. $memberSet['vip_price'] = $set['vip_price'];
  227. if (!$this->shopMemberSave($memberSet)) {
  228. $this->errorJson('会员设置失败');
  229. }
  230. return $this->successJson('会员设置成功');
  231. }
  232. public function relation()
  233. {
  234. $relationSet = Setting::get('member.relation');
  235. $relation = Relation::uniacid()->first();
  236. if (!empty($relation)) {
  237. $relation = $relation->toArray();
  238. }
  239. if (!empty($relation['become_term'])) {
  240. $relation['become_term'] = array_values(unserialize($relation['become_term']));
  241. }
  242. $goods = [];
  243. if (!empty($relation['become_goods'])) {
  244. $relation_goods = unserialize($relation['become_goods']);
  245. $goods_ids = array_column($relation_goods,'goods_id');
  246. // 查询当前未被删除的商品
  247. $goods_ids && $current_goods = Goods::uniacid()->select('id', 'title', 'thumb')
  248. ->whereIn('id', $goods_ids)
  249. ->whereNull('deleted_at')
  250. ->get();
  251. if (!empty($current_goods)) {
  252. $current_goods = $current_goods->toArray();
  253. foreach ($current_goods as $key => $value) {
  254. $current_goods[$key]['thumb'] = yz_tomedia($value['thumb']);
  255. }
  256. $goods = $current_goods;
  257. }
  258. }
  259. return view('member.memberSet.relation', [
  260. 'set' => [
  261. 'is_sales_commission' => app('plugins')->isEnabled('sales-commission') ? 1 : 0,
  262. 'status' => $relation['status'] ? (string)$relation['status'] : '0',
  263. 'become' => $relation['become'] ? : 0,
  264. 'become_term' => $relation['become_term'] ? : [],
  265. 'goods' => $goods,
  266. 'become_order' => $relation['become_order'] ? : 0,
  267. 'become_ordercount' => $relation['become_ordercount'] ? : 0,
  268. 'become_moneycount' => $relation['become_moneycount'] ? : 0,
  269. 'become_selfmoney' => $relation['become_selfmoney'],
  270. 'become_child' => $relation['become_child'] ? : 0,
  271. 'become_check' => $relation['become_check'] ? : 0,
  272. 'reward_points' => $relation['reward_points'] ? : '',
  273. 'maximum_number' => $relation['maximum_number'] ? : 0,
  274. 'is_jump' => $relationSet['is_jump'] ? : 0,
  275. 'jump_link' => $relationSet['jump_link'] ? : "",
  276. 'small_jump_link' => $relationSet['small_jump_link'] ? : "",
  277. 'share_page' => $relation['share_page'] ? (string)$relation['share_page'] : "0",
  278. 'share_page_deail' => $relation['share_page_deail'] ? (string)$relation['share_page_deail'] : "0",
  279. ],
  280. ])->render();
  281. }
  282. public function relationStore()
  283. {
  284. $set = request()->set;
  285. $relationSet = Setting::get('member.relation');
  286. $relationSet['is_jump'] = $set['is_jump'] ? : 0;
  287. $relationSet['jump_link'] = $set['jump_link'] ? : "";
  288. $relationSet['small_jump_link'] = $set['small_jump_link'] ? : "";
  289. Setting::set('member.relation', $relationSet);
  290. $become_term = [];
  291. foreach ($set['become_term'] as $item) {
  292. $become_term[$item] = $item;
  293. }
  294. $relation = Relation::uniacid()->first();
  295. if (!$relation) {
  296. $relation = new Relation(['uniacid'=>\YunShop::app()->uniacid]);
  297. }
  298. $relation->status = $set['status'] ? : 0;
  299. $relation->become = $set['become'] ? : 0;
  300. $relation->become_term = ($set['become']>1&&$become_term) ? serialize($become_term) : "";
  301. $relation->become_order = $set['become_order'] ? : 0;
  302. $relation->become_ordercount = $set['become_ordercount'] ? : 0;
  303. $relation->become_moneycount = $set['become_moneycount'] ? : 0;
  304. $relation->become_selfmoney = $set['become_selfmoney'] ? : "";
  305. $relation->become_child = $set['become_child'] ? : 0;
  306. $relation->become_check = $set['become_check'] ? : 0;
  307. $relation->reward_points = $set['reward_points'] ? : '';
  308. $relation->maximum_number = $set['maximum_number'];
  309. $relation->share_page = $set['share_page'] ? : "0";
  310. $relation->share_page_deail = $set['share_page_deail'] ? : "0";
  311. $goods_ids = array_column($set['goods'],'id');
  312. $goods = [];
  313. if ($goods_ids) {
  314. $goods = Goods::uniacid()->selectRaw('id as goods_id,title,thumb')
  315. ->whereIn('id', $goods_ids)
  316. ->whereNull('deleted_at')
  317. ->get()->toArray();
  318. $goods_ids = array_column($goods,'goods_id');
  319. }
  320. $relation->become_goods = $goods ? serialize($goods) : 0;
  321. $relation->become_goods_id = $goods_ids ? implode(',',$goods_ids) : "";
  322. $relation->save();
  323. Cache::forget('member_relation');
  324. return $this->successJson('ok');
  325. }
  326. public function memberCenter()
  327. {
  328. $memberSet = Setting::get('shop.member');
  329. $relationSet = Setting::get('shop.relation_base');
  330. $relation_level = [];
  331. $relationSet['relation_level'][0]==1 && $relation_level[] = "1";
  332. $relationSet['relation_level'][1]==2 && $relation_level[] = "2";
  333. $nameInfo = [];
  334. $relationSet['relation_level']['phone']==1 && $nameInfo[] = 'phone';
  335. $relationSet['relation_level']['realname']==1 && $nameInfo[] = 'realname';
  336. $relationSet['relation_level']['wechat']==1 && $nameInfo[] = 'wechat';
  337. return view('member.memberSet.member-center', [
  338. 'set' => [
  339. 'show_balance' => $memberSet['show_balance'] ? : '0',
  340. 'show_point' => $memberSet['show_point'] ? : '0',
  341. 'show_member_id' => $memberSet['show_member_id'] ? : '0',
  342. 'is_referrer' => empty($relationSet['is_referrer']) ? '0' : $relationSet['is_referrer'],
  343. 'parent_is_referrer' => empty($relationSet['parent_is_referrer']) ? '0' : $relationSet['parent_is_referrer'],
  344. 'is_recommend_wechat' => empty($relationSet['is_recommend_wechat']) ? '0' : $relationSet['is_recommend_wechat'],
  345. 'relation_level' => $relation_level,
  346. 'name1' => $relationSet['relation_level']['name1'] ? : '',
  347. 'name2' => $relationSet['relation_level']['name2'] ? : '',
  348. 'nameInfo' => $nameInfo,
  349. 'is_statistical_goods' => $relationSet['is_statistical_goods'] ? : "0",
  350. 'statistical_goods' => $relationSet['statistical_goods'] ? : []
  351. ],
  352. ])->render();
  353. }
  354. public function memberCenterStore()
  355. {
  356. $set = request()->set;
  357. $memberSet = Setting::get('shop.member');
  358. $memberSet['show_balance'] = $set['show_balance'] ? : '0';
  359. $memberSet['show_point'] = $set['show_point'] ? : '0';
  360. $memberSet['show_member_id'] = $set['show_member_id'] ? : '0';
  361. if (!$this->shopMemberSave($memberSet)) {
  362. $this->errorJson('会员中心显示设置失败');
  363. }
  364. $relationSet = Setting::get('shop.relation_base');
  365. $relationSet['is_referrer'] = $set['is_referrer'] ? : '0';
  366. $relationSet['parent_is_referrer'] = $set['parent_is_referrer'] ? : '0';
  367. $relationSet['is_recommend_wechat'] = $set['is_recommend_wechat'] ? : '0';
  368. $relationSet['relation_level'][0] = in_array("1",$set['relation_level']) ? 1 : 0;
  369. $relationSet['relation_level'][1] = in_array("2",$set['relation_level']) ? 2 : 0;
  370. $relationSet['relation_level']['name1'] = $set['name1'] ? : "";
  371. $relationSet['relation_level']['name2'] = $set['name2'] ? : "";
  372. $relationSet['relation_level']['phone'] = in_array('phone',$set['nameInfo']) ? 1 : 0;
  373. $relationSet['relation_level']['realname'] = in_array('realname',$set['nameInfo']) ? 1 : 0;
  374. $relationSet['relation_level']['wechat'] = in_array('wechat',$set['nameInfo']) ? 1 : 0;
  375. $relationSet['is_statistical_goods'] = $set['is_statistical_goods'] ? : '0';
  376. $relationSet['statistical_goods'] = $set['statistical_goods'] ? : [];
  377. if (!Setting::set('shop.relation_base', $relationSet)) {
  378. $this->errorJson('会员中心显示设置失败');
  379. }
  380. return $this->successJson('ok');
  381. }
  382. public function agreement()
  383. {
  384. $protocol = Protocol::uniacid()->first();
  385. $shopSet = Setting::get('shop.shop');
  386. $agreement = RichText::get('shop.agreement');
  387. return view('member.memberSet.agreement', [
  388. 'set' => [
  389. 'register_status' => $protocol->status ? : "0",
  390. 'register_title' => $protocol->title ? : "",
  391. 'register_content' => $protocol->content ? : "",
  392. 'register_default_tick' => $protocol->default_tick ? : "0",
  393. 'register_agreement_url' => yzAppFullUrl('registerAgreement/'),
  394. 'register_agreement_mini_url' => "/packageF/new_info_v2/agreement/agreement",
  395. 'is_agreement' => $shopSet['is_agreement'] ? : "0",
  396. 'agreement_name' => $shopSet['agreement_name'] ? : "",
  397. 'agreement' => $agreement ? : "",
  398. ],
  399. ])->render();
  400. }
  401. public function agreementStore()
  402. {
  403. $set = request()->set;
  404. $protocol = Protocol::uniacid()->first();
  405. if (!$protocol) {
  406. $protocol = new Protocol();
  407. $protocol->uniacid = \YunShop::app()->uniacid;
  408. }
  409. $protocol->status = $set['register_status'] ? : 0;
  410. $protocol->title = $set['register_title'] ? : "";
  411. $protocol->content = $set['register_content'] ? : "";
  412. $protocol->default_tick = $set['register_default_tick'] ? : 0;
  413. if (!$protocol->save()) {
  414. return $this->errorJson('协议保存失败');
  415. }
  416. $shopSet = Setting::get('shop.shop');
  417. $shopSet['is_agreement'] = $set['is_agreement'] ? : "0";
  418. $shopSet['agreement_name'] = $set['agreement_name'] ? : "";
  419. if (!$this->shopSetSave($shopSet)) {
  420. return $this->errorJson('协议保存失败');
  421. }
  422. RichText::set('shop.agreement', ($set['agreement']?:""));
  423. return $this->successJson('ok');
  424. }
  425. private function shopSetSave($data)
  426. {
  427. if (Cache::has('shop_setting')) {
  428. Cache::forget('shop_setting');
  429. }
  430. if (!Setting::set('shop.shop', $data)) {
  431. return false;
  432. }
  433. return true;
  434. }
  435. private function shopMemberSave($data)
  436. {
  437. if (Cache::has('shop_member')) {
  438. Cache::forget('shop_member');
  439. }
  440. if (!Setting::set('shop.member', $data)) {
  441. return false;
  442. }
  443. return true;
  444. }
  445. }