Coupon.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 会员设置
  7. */
  8. namespace app\ais\controller\vip;
  9. use app\ais\controller\Common;
  10. use app\ais\model\AisVip;
  11. use app\ais\model\AisCoupon;
  12. class Coupon extends Common{
  13. public $mini_program = [];
  14. public function initialize() {
  15. parent::initialize();
  16. $this->assign('pathMaps',[['name'=>'会员组','url'=>url("vip.index/index")],['name'=>'优惠券','url'=>url("vip.coupon/index")]]);
  17. }
  18. /**
  19. * 列表
  20. */
  21. public function index(int $id){
  22. $condition = [];
  23. $vip = AisVip::where(['id' => $id,'member_miniapp_id' => $this->member_miniapp_id])->where($condition)->field('coupon_ids')->find();
  24. if(empty($vip)){
  25. $this->error('没有找到对应会员类型');
  26. }
  27. $view['lists'] = AisCoupon::where($this->mini_program)->whereIn('id',$vip->coupon_ids)->order('sort desc,id desc')->paginate(20,false,['query' => ['id' => $id]]);
  28. $view['id'] = $id;
  29. return view()->assign($view);
  30. }
  31. /**
  32. * 弹出选择优惠券
  33. */
  34. public function coupon(int $id){
  35. if(request()->isAjax()){
  36. $ids = $this->request->param('ids/s');
  37. if(empty($ids)){
  38. return json(['code'=>0,'msg'=>'请选择要关联的优惠券']);
  39. }
  40. $result = AisVip::editCoupon($id,ids($ids,true));
  41. if($result){
  42. return json(['code'=>302,'msg'=>'关联优惠券成功','data' =>[]]);
  43. }else{
  44. return json(['code'=>0,'msg'=>'关联优惠券失败']);
  45. }
  46. }else{
  47. $coupon = AisVip::where($this->mini_program)->where(['id' => $id])->field('coupon_ids')->find();
  48. $coupon_ids = [];
  49. if($coupon->coupon_ids){
  50. $coupon_ids = explode(',',$coupon->coupon_ids);
  51. }
  52. $keyword = $this->request->param('keyword');
  53. if(empty($keyword)){
  54. $sql = AisCoupon::where($this->mini_program);
  55. }else{
  56. $sql = AisCoupon::where($this->mini_program)->whereLike('name','%'.$keyword.'%');
  57. }
  58. $view['lists'] = $sql->whereNotIn('id',$coupon_ids)->where(['is_end' => 0])->order('id desc')->paginate(10,false,['query' => ['id' => $id,'keyword'=>$keyword]]);
  59. $view['id'] = $id;
  60. $view['keyword'] = $keyword;
  61. return view()->assign($view);
  62. }
  63. }
  64. //删除
  65. public function delete(int $id,int $coupon_id){
  66. $result = AisVip::where($this->mini_program)->where(['id' => $id])->find();
  67. if($result){
  68. $result->coupon_ids = ids(array_values_unset($coupon_id,explode(',',$result->coupon_ids)));
  69. $result->save();
  70. return enjson(200);
  71. }
  72. return enjson(0);
  73. }
  74. }