MemberLevelController.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 2017/2/27
  6. * Time: 上午10:44
  7. */
  8. namespace app\backend\modules\member\controllers;
  9. use app\backend\modules\goods\models\Goods;
  10. use app\backend\modules\member\models\MemberLevel;
  11. use app\backend\modules\member\models\MemberShopInfo;
  12. use app\common\components\BaseController;
  13. use app\common\facades\Setting;
  14. use app\common\helpers\PaginationHelper;
  15. use app\common\helpers\Url;
  16. class MemberLevelController extends BaseController
  17. {
  18. /**
  19. * 加载模板
  20. * @return string
  21. * @throws \Throwable
  22. */
  23. public function index()
  24. {
  25. return view('member.level.list', [])->render();
  26. }
  27. /*
  28. * Member level pager list
  29. * 17.3,31 restructure
  30. *
  31. * @autor yitian */
  32. public function show()
  33. {
  34. $pageSize = 10;
  35. $levelList = MemberLevel::getLevelPageList($pageSize);
  36. return $this->successJson('ok', [
  37. 'levelList' => $levelList,
  38. 'level_type' => Setting::get('shop.member')['level_type']
  39. ]);
  40. }
  41. public function searchGoods()
  42. {
  43. $goods = Goods::getGoodsByNameLevelNew(request()->keyword);
  44. foreach ($goods as $k => $v) {
  45. $goods[$k]['thumb'] = yz_tomedia($v['thumb']);
  46. }
  47. return $this->successJson('ok', [
  48. 'goods' => $goods,
  49. ]);
  50. }
  51. /*
  52. * Add member level
  53. *
  54. * @autor yitian */
  55. public function form()
  56. {
  57. $id = request()->id;
  58. return view('member.level.form', [
  59. 'id' => $id,
  60. 'shopSet' => Setting::get('shop.member'),
  61. 'integral' => (app('plugins')->isEnabled('integral') && \Yunshop\Integral\Common\Services\SetService::getIntegralSet()['member_show']) ? 1 : 0
  62. ])->render();
  63. }
  64. public function store()
  65. {
  66. $levelModel = new memberLevel();
  67. $requestLevel = \YunShop::request()->level;
  68. $get_setting = Setting::get('shop.member');
  69. $shop_set = [
  70. 'level_type' => $get_setting['level_type'],
  71. 'level_discount_calculation' => empty($get_setting['level_discount_calculation']) ? 0 : $get_setting['level_discount_calculation']
  72. ];
  73. if ($requestLevel) {
  74. //将数据赋值到model
  75. $levelModel->fill($requestLevel);
  76. //其他字段赋值
  77. $levelModel->uniacid = \YunShop::app()->uniacid;
  78. unset($levelModel->goods);
  79. unset($levelModel->goods_id);
  80. if ($requestLevel['goods']) {
  81. foreach ($requestLevel['goods'] as $k => $v) {
  82. if ($v['goods_id']) {
  83. $arr[] = $v['goods_id'];
  84. }
  85. }
  86. } else {
  87. $arr[] = [];
  88. }
  89. if (empty($requestLevel['goods_id'])) {
  90. $levelModel->goods_id = implode(',', array_unique($arr));
  91. } else {
  92. $ids = implode(',', array_unique(array_merge(array_filter($arr), array_values($requestLevel['goods_id']))));
  93. $levelModel->goods_id = $ids;
  94. }
  95. //字段检测
  96. $validator = $levelModel->validator();
  97. if ($validator->fails()) {//检测失败
  98. return $this->errorJson($validator->errors()->first(),$shop_set);
  99. } else {
  100. //数据保存
  101. if ($levelModel->save()) {
  102. //显示信息并跳转
  103. return $this->successJson('添加会员等级成功', ['data' => true]);
  104. } else {
  105. return $this->errorJson('添加会员等级失败');
  106. }
  107. }
  108. }
  109. return $this->successJson('ok', [
  110. 'shopSet' => $shop_set
  111. ]);
  112. }
  113. /**
  114. * Modify membership level
  115. */
  116. public function update()
  117. {
  118. $levelModel = MemberLevel::getMemberLevelById(\YunShop::request()->id);
  119. if (!$levelModel) {
  120. return $this->message('无此记录或已被删除', '', 'error');
  121. }
  122. $requestLevel = \YunShop::request()->level;
  123. $requestLevel['order_count'] = isset($requestLevel['order_count']) ? $requestLevel['order_count'] : 0;
  124. if ($levelModel['goods_id']) {
  125. $goods = MemberLevel::getGoodsId($levelModel['goods_id']);
  126. $levelModel->goods = $goods ? $goods->toArray() : [];
  127. }
  128. $get_setting = Setting::get('shop.member');
  129. $shop_set = [
  130. 'level_type' => $get_setting['level_type'],
  131. 'level_discount_calculation' => empty($get_setting['level_discount_calculation']) ? 0 : $get_setting['level_discount_calculation']
  132. ];
  133. if ($requestLevel) {
  134. if (!isset($requestLevel['goods_id'])) {
  135. $requestLevel['goods_id'] = 0;
  136. }else{
  137. $requestLevel['goods_id'] = implode(',',array_unique(array_filter($requestLevel['goods_id'])));
  138. }
  139. unset($levelModel->goods);
  140. unset($requestLevel['goods']);
  141. $levelModel->fill($requestLevel);
  142. $validator = $levelModel->validator();
  143. if ($validator->fails()) {//检测失败
  144. return $this->errorJson($validator->messages());
  145. } else {
  146. // $saveModel = \app\common\models\MemberLevel::find(\YunShop::request()->id);
  147. // $bool = $saveModel->fill($requestLevel)->save();
  148. if ($levelModel->fill($requestLevel)->save()) {
  149. return $this->successJson('修改会员等级信息成功', ['data' => true]);
  150. } else {
  151. return $this->errorJson('修改会员等级信息失败');
  152. }
  153. }
  154. }
  155. return $this->successJson('获取数据成功', [
  156. 'levelModel' => $levelModel,
  157. 'shopSet' => $shop_set
  158. ]);
  159. }
  160. /*
  161. * Delete membership
  162. *
  163. * @author yitain */
  164. public function destroy()
  165. {
  166. $id = \YunShop::request()->id;
  167. $uniacid = \YunShop::app()->uniacid;
  168. $levelModel = MemberLevel::getMemberLevelById($id);
  169. if (!$levelModel) {
  170. return $this->error('未找到记录或已删除');
  171. }
  172. if ($levelModel->where(['uniacid' => $uniacid, 'id' => $id])->delete()) {
  173. MemberShopInfo::where('level_id', $id)->update(['level_id' => '0']);
  174. return $this->successJson('删除等级成功', ['data' => true]);
  175. } else {
  176. return $this->error('删除等级失败');
  177. }
  178. }
  179. public function getLevel()
  180. {
  181. $keyword = request()->keyword;
  182. $level = MemberLevel::uniacid()->where('level_name', 'like', '%' . $keyword . '%')->select('id', 'level_name')->get()->toArray();
  183. return $this->successJson('ok', $level);
  184. }
  185. }