Gmcoupon.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. /**
  3. * 优惠券
  4. */
  5. namespace app\ais\controller\api\v1;
  6. use app\ais\controller\api\Base;
  7. use app\ais\model\AisCoupon;
  8. use app\ais\model\AisStore;
  9. use app\ais\model\AisCouponUser;
  10. use think\Db;
  11. class Gmcoupon extends Base{
  12. protected $store;
  13. public function initialize() {
  14. parent::initialize();
  15. $this->isUserAuth();
  16. $this->store = AisStore::manageStore($this->user->id);
  17. if(empty($this->store)){
  18. exit(json_encode(['code' => 403,'msg'=>'无法找到该商家']));
  19. }
  20. }
  21. /**
  22. * 指定商家的优惠券
  23. * @return void
  24. */
  25. public function index(){
  26. $this->apiSign();
  27. $coupon = AisCoupon::where(['member_miniapp_id' => $this->miniapp_id,'store_id' => $this->store->id,'is_end' => 0])->where('types','<',3)->order('is_top desc,sort desc,create_time desc')->select();
  28. if ($coupon->isEmpty()) {
  29. return enjson(204);
  30. }
  31. return enjson(200,$coupon);
  32. }
  33. /**
  34. * 显示单个优惠券信息
  35. * @return void
  36. */
  37. public function read(){
  38. $param['id'] = $this->request->param('id'); //优惠券id
  39. $this->apiSign($param);
  40. $info = AisCoupon::where(['member_miniapp_id' => $this->miniapp_id,'id' => $param['id'],'store_id' => $this->store->id])->find();
  41. if (empty($info)) {
  42. return enjson(404,'未找到优惠券');
  43. }
  44. $count = AisCouponUser::where(['coupon_id' => $info->id])->count(); //已领取
  45. $order = AisCouponUser::where(['coupon_id' => $info->id,'is_end' => 0,'money' => 0])->count(); //待使用
  46. $money = AisCouponUser::where(['coupon_id' => $info->id,'is_end' => 1])->sum('money'); //共优惠
  47. return enjson(200,['coupon' => $info,'count' => $count,'order' => $order,'money' => $money]);
  48. }
  49. /**
  50. * 添加和修改
  51. */
  52. public function edit(){
  53. $param['id'] = $this->request->param('id');
  54. $param['types'] = $this->request->param('types/d',0);
  55. $param['price'] = $this->request->param('price/d',0);
  56. $param['amount'] = $this->request->param('amount/d',0);
  57. $param['discount'] = $this->request->param('discount/s',0);
  58. $param['num'] = $this->request->param('num/d',1);
  59. $param['howmuch'] = $this->request->param('howmuch/d',0);
  60. $param['name'] = $this->request->param('name/s');
  61. $param['tips'] = $this->request->param('tips/s');
  62. $this->apiSign($param);
  63. $validate = $this->validate($param,'Coupon.edit');
  64. if(true !== $validate){
  65. return enjson(403,$validate);
  66. }
  67. switch ($param['types']) {
  68. case 1: //折扣券
  69. $param['amount'] = 0;
  70. $param['price'] = 0;
  71. break;
  72. case 2: //兑换券
  73. $param['discount'] = 0;
  74. $param['price'] = 0;
  75. break;
  76. default: //代金券
  77. $param['discount'] = 0;
  78. $param['amount'] = 0;
  79. break;
  80. }
  81. $param['is_top'] = 0;
  82. $param['citycode'] = $this->store->citycode;
  83. $coupon = new AisCoupon();
  84. if($param['id']){
  85. $info = $coupon->where(['member_miniapp_id' => $this->miniapp_id,'id' => $param['id']])->find();
  86. if(!$info){
  87. return enjson(403,'未找到要修改的优惠券');
  88. }
  89. if($info->is_lock){
  90. return enjson(403,'本券禁止修改');
  91. }
  92. $result = $coupon->allowField(true)->save($param,['id' => $param['id']]);
  93. }else{
  94. $param['member_miniapp_id'] = $this->miniapp_id;
  95. $param['store_id'] = $this->store->id;
  96. $param['create_time'] = time();
  97. $param['update_time'] = time();
  98. $result = $coupon->create($param);
  99. }
  100. return enjson(200,'优惠券设置成功');
  101. }
  102. //商户删除优惠券
  103. public function delete(){
  104. $param['id'] = $this->request->param('id/d',0);
  105. $this->apiSign($param);
  106. $coupon = AisCoupon::where(['member_miniapp_id' => $this->miniapp_id,'store_id' => $this->store->id,'id' => $param['id'],'is_lock' => 0,'is_end' => 0])->find();
  107. if (empty($coupon)) {
  108. return enjson(404,'当前优惠券禁止删除');
  109. }
  110. $coupon->is_end = 1;
  111. $coupon->save();
  112. return enjson(200,'成功删除优惠券');
  113. }
  114. }