MemberRechargeCard.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\memberrecharge\model;
  11. use addon\coupon\model\Coupon;
  12. use app\model\BaseModel;
  13. use addon\coupon\model\CouponType;
  14. use app\model\member\MemberAccount;
  15. use app\model\system\Site;
  16. use think\facade\Cache;
  17. /**
  18. * 开卡
  19. */
  20. class MemberRechargeCard extends BaseModel
  21. {
  22. /**
  23. * 开卡
  24. * @param $data
  25. * @return array
  26. */
  27. public function addMemberRechargeCard($data)
  28. {
  29. $site_model = new Site();
  30. $site_info = $site_model->getSiteInfo([ [ 'site_id', '=', $data[ 'site_id' ] ] ]);
  31. $card_account = substr(md5(date('YmdHis') . mt_rand(100, 999)), 8, 16);
  32. $card_data = [
  33. 'recharge_id' => $data[ 'recharge_id' ],
  34. 'site_id' => $data[ 'site_id' ],
  35. 'site_name' => $site_info[ 'data' ][ 'site_name' ],
  36. 'recharge_name' => $data[ 'recharge_name' ],
  37. 'card_account' => $card_account,
  38. 'cover_img' => $data[ 'cover_img' ],
  39. 'face_value' => $data[ 'face_value' ],
  40. 'point' => $data[ 'point' ],
  41. 'growth' => $data[ 'growth' ],
  42. 'coupon_id' => $data[ 'coupon_id' ],
  43. 'buy_price' => $data[ 'buy_price' ],
  44. 'member_id' => $data[ 'member_id' ],
  45. 'member_img' => $data[ 'member_img' ],
  46. 'nickname' => $data[ 'nickname' ],
  47. 'order_id' => $data[ 'order_id' ],
  48. 'order_no' => $data[ 'order_no' ],
  49. 'use_status' => $data[ 'use_status' ],
  50. 'create_time' => time(),
  51. 'use_time' => $data[ 'use_time' ]
  52. ];
  53. $res = model('member_recharge_card')->add($card_data);
  54. Cache::tag("member_recharge_card")->clear();
  55. return $this->success($res);
  56. }
  57. /**
  58. * 开卡发放礼包
  59. * @param $order_info
  60. */
  61. public function addMemberAccount($order_info)
  62. {
  63. $member_account = new MemberAccount();
  64. //修改用户的余额
  65. $member_account->addMemberAccount($order_info[ 'site_id' ], $order_info[ 'member_id' ], 'balance', $order_info[ 'face_value' ], 'memberrecharge', '0', '会员充值');
  66. //积分
  67. if ($order_info[ 'point' ] > 0) {
  68. $member_account->addMemberAccount($order_info[ 'site_id' ], $order_info[ 'member_id' ], 'point', $order_info[ 'point' ], 'memberrecharge', '0', '会员充值奖励');
  69. }
  70. //成长值
  71. if ($order_info[ 'growth' ] > 0) {
  72. $member_account->addMemberAccount($order_info[ 'site_id' ], $order_info[ 'member_id' ], 'growth', $order_info[ 'growth' ], 'memberrecharge', '0', '会员充值奖励');
  73. }
  74. //添加优惠券
  75. if (!empty($order_info[ 'coupon_id' ])) {
  76. $coupon_model = new Coupon();
  77. $coupon_id = explode(',', $order_info[ 'coupon_id' ]);
  78. $coupon_list = array_map(function($value) {
  79. return [ 'coupon_type_id' => $value, 'num' => 1 ];
  80. }, $coupon_id);
  81. $coupon_model->giveCoupon($coupon_list, $order_info[ 'site_id' ], $order_info[ 'member_id' ], 6);
  82. }
  83. }
  84. /**
  85. * 套餐详情
  86. * @param array $condition
  87. * @param string $field
  88. * @return array
  89. */
  90. public function getMemberRechargeCardInfo($condition = [], $field = '*')
  91. {
  92. $info = model('member_recharge_card')->getInfo($condition, $field);
  93. if ($info) {
  94. //获取优惠券信息
  95. if ($info[ 'coupon_id' ]) {
  96. //优惠券字段
  97. $coupon_field = '*';
  98. $model = new CouponType();
  99. $coupon_list = $model->getCouponTypeList([ [ 'coupon_type_id', 'in', $info[ 'coupon_id' ] ] ], $coupon_field);
  100. $info[ 'coupon_list' ] = $coupon_list;
  101. }
  102. }
  103. Cache::tag("member_recharge_card")->clear();
  104. return $this->success($info);
  105. }
  106. /**
  107. * 开卡列表
  108. * @param array $condition
  109. * @param int $page
  110. * @param int $page_size
  111. * @param string $order
  112. * @param string $field
  113. * @return array
  114. */
  115. public function getMemberRechargeCardPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = '*')
  116. {
  117. $list = model('member_recharge_card')->pageList($condition, $field, $order, $page, $page_size);
  118. Cache::tag("member_recharge_card")->clear();
  119. return $this->success($list);
  120. }
  121. }