| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <?php
- /**
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: https://www.niushop.com
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
- * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
- * =========================================================
- */
- namespace addon\store\shopapi\controller;
- use app\model\member\MemberCoupon;
- use app\model\system\Promotion as PromotionModel;
- class Coupon extends BaseStoreApi
- {
- /**
- * 列表
- */
- public function lists()
- {
- $from_type = $this->params[ 'from_type' ] ?? '';
- $page = $this->params[ 'page' ] ?? 1;
- $page_size = $this->params[ 'page_size' ] ?? PAGE_LIST_ROWS;
- $from_type_id = $this->params[ 'from_type_id' ] ?? 0;
- $from_type_name = $this->params[ 'from_type_name' ] ?? '';
- $name = $this->params[ 'name' ] ?? '';
- $start_time = $this->params[ 'fetch_time_start' ] ?? '';
- $end_time = $this->params[ 'fetch_time_end' ] ?? '';
- $type = $this->params[ 'type' ] ?? '';
- $use_type = $this->params[ 'use_type' ] ?? '';
- $coupon_model = new MemberCoupon();
- $condition = [
- [ 'site_id', "=", $this->site_id ],
- ];
- if (!empty($from_type)) {
- $condition[] = [ "from_type", "=", $from_type ];
- if (!empty($from_type_id)) {
- $condition[] = [ "from_type_id", "=", $from_type_id ];
- }
- }
- if (!empty($from_type_name)) {
- $condition[] = [ "from_type_name", 'like', '%' . $from_type_name . '%' ];
- }
- if (!empty($type)) {
- $condition[] = [ "type", '=', $type ];
- }
- if (!empty($use_type)) {
- $condition[] = [ "use_type", '=', $use_type ];
- }
- if ($name !== '') {
- $condition[] = [ "name", 'like', '%' . $name . '%' ];
- }
- if (!empty($start_time) && empty($end_time)) {
- $condition[] = [ 'create_time', '>=', date_to_time($start_time) ];
- } elseif (empty($start_time) && !empty($end_time)) {
- $condition[] = [ "create_time", "<=", date_to_time($end_time) ];
- } elseif (!empty($start_time) && !empty($end_time)) {
- $condition[] = [ 'create_time', 'between', [ date_to_time($start_time), date_to_time($end_time) ] ];
- }
- $list = $coupon_model->getCouponPageList($condition, $page, $page_size, 'id desc');
- return $this->response($list);
- }
- /**
- * 顶部活动列表
- */
- public function couponList()
- {
- $promotion_model = new PromotionModel();
- $promotion_type_list = $promotion_model->getPromotionType('member');
- $coupon_list = [];
- foreach ($promotion_type_list as $k => $v) {
- if ($v[ 'name' ] == 'sitecoupon') {
- $coupon_list [ $v[ 'name' ] ] = $v;
- }
- }
- return $this->response($this->success($coupon_list));
- }
- /**
- * 账户优惠券数据
- */
- public function couponAccount()
- {
- $coupon_model = new MemberCoupon();
- $site_id = $this->site_id;
- //累计发放优惠券数
- $total_info = $coupon_model->getMemberCouponInfo([ [ 'site_id', '=', $site_id ] ], 'count(coupon_id) as count_coupon')[ 'data' ];
- //累计使用
- $use_info = $coupon_model->getMemberCouponInfo([ [ 'site_id', '=', $site_id ], [ 'state', '=', 2 ] ], 'count(coupon_id) as count_coupon')[ 'data' ];
- //剩余
- $surplus_info = $coupon_model->getMemberCouponInfo([ [ 'site_id', '=', $site_id ], [ 'state', '=', 1 ] ], 'count(coupon_id) as count_coupon')[ 'data' ];
- $data = [];
- $data[ 'coupon_count' ] = $total_info[ 'count_coupon' ] ?? 0;
- $data[ 'use_coupon' ] = $use_info[ 'count_coupon' ] ?? 0;
- $data[ 'surplus_coupon' ] = $surplus_info[ 'count_coupon' ] ?? 0;
- return $this->response($this->success($data));
- }
- /**
- * 会员优惠券
- */
- public function receivelists()
- {
- $site_id = $this->site_id;
- $from_type = $this->params[ 'from_type' ] ?? '';
- $page = $this->params[ 'page' ] ?? 1;
- $page_size = $this->params[ 'page_size' ] ?? PAGE_LIST_ROWS;
- $from_type_id = $this->params[ 'from_type_id' ] ?? 0;
- $from_type_name = $this->params[ 'from_type_name' ] ?? '';
- $coupon_code = $this->params[ 'coupon_code' ] ?? '';
- $start_time = $this->params[ 'fetch_time_start' ] ?? '';
- $end_time = $this->params[ 'fetch_time_end' ] ?? '';
- $type = $this->params[ 'type' ] ?? '';
- $parent_id = $this->params[ 'parent_id' ] ?? '';
- $nick_name = $this->params[ 'nickname' ] ?? '';
- $state = $this->params[ 'state' ] ?? '';
- $coupon_model = new MemberCoupon();
- $condition = [
- [ 'site_id', "=", $site_id ],
- ];
- if (!empty($from_type)) {
- $condition[] = [ "from_type", "=", $from_type ];
- if (!empty($from_type_id)) {
- $condition[] = [ "from_type_id", "=", $from_type_id ];
- }
- }
- if (!empty($from_type_name)) {
- $condition[] = [ "from_type_name", 'like', '%' . $from_type_name . '%' ];
- }
- if (!empty($parent_id)) {
- $condition[] = [ "parent_id", "=", $parent_id ];
- }
- if (!empty($coupon_code)) {
- $condition[] = [ "coupon_code", 'like', '%' . $coupon_code . '%' ];
- }
- if (!empty($nick_name)) {
- $condition[] = [ "member_name", 'like', '%' . $nick_name . '%' ];
- }
- if (!empty($type)) {
- $condition[] = [ "type", '=', $type ];
- }
- if ($state !== '') {
- $condition[] = [ "state", '=', $state ];
- }
- if (!empty($start_time) && empty($end_time)) {
- $condition[] = [ 'fetch_time', '>=', date_to_time($start_time) ];
- } elseif (empty($start_time) && !empty($end_time)) {
- $condition[] = [ "fetch_time", "<=", date_to_time($end_time) ];
- } elseif (!empty($start_time) && !empty($end_time)) {
- $condition[] = [ 'fetch_time', 'between', [ date_to_time($start_time), date_to_time($end_time) ] ];
- }
- $list = $coupon_model->getMemberCouponPageList($condition, $page, $page_size);
- return $this->response($list);
- }
- /**
- * 优惠券详情
- */
- public function detail()
- {
- $id = $this->params[ 'id' ] ?? 0;
- $site_id = $this->site_id;
- $coupon_model = new MemberCoupon();
- $info = $coupon_model->getCouponDetail($id, $site_id);
- return $this->response($info);
- }
- }
|