MemberrechargeCard.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 山西牛酷信息科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com.cn
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace addon\memberrecharge\model;
  13. use addon\coupon\model\Coupon;
  14. use app\model\BaseModel;
  15. use addon\coupon\model\CouponType;
  16. use app\model\member\MemberAccount;
  17. use think\facade\Cache;
  18. /**
  19. * 开卡
  20. */
  21. class MemberrechargeCard extends BaseModel
  22. {
  23. /**
  24. * 开卡
  25. * @param $data
  26. * @return array
  27. */
  28. public function addMemberRechargeCard($data)
  29. {
  30. $card_account = substr(md5(date('YmdHis') . mt_rand(100, 999)), 8, 16);
  31. $card_data = [
  32. 'recharge_id' => $data['recharge_id'],
  33. 'card_account' => $card_account,
  34. 'recharge_name' => $data['recharge_name'],
  35. 'cover_img' => $data['cover_img'],
  36. 'face_value' => $data['face_value'],
  37. 'point' => $data['point'],
  38. 'growth' => $data['growth'],
  39. 'coupon_id' => $data['coupon_id'],
  40. 'buy_price' => $data['buy_price'],
  41. 'member_id' => $data['member_id'],
  42. 'member_img' => $data['member_img'],
  43. 'nickname' => $data['nickname'],
  44. 'order_id' => $data['order_id'],
  45. 'order_no' => $data['order_no'],
  46. 'use_status' => $data['use_status'],
  47. 'create_time' => time(),
  48. 'use_time' => $data['use_time']
  49. ];
  50. $res = model('member_recharge_card')->add($card_data);
  51. Cache::tag("member_recharge_card")->clear();
  52. return $this->success($res);
  53. }
  54. /**
  55. * 开卡发放礼包
  56. * @param $order_info
  57. */
  58. public function addMemberAccount($order_info)
  59. {
  60. $member_account = new MemberAccount();
  61. //修改用户的余额
  62. $member_account->addMemberAccount($order_info['member_id'], 'balance', $order_info['buy_price'], 'memberrecharge', '0', '会员充值增加余额');
  63. //积分
  64. if ($order_info['point'] > 0) {
  65. $member_account->addMemberAccount($order_info['member_id'], 'point', $order_info['point'], 'memberrecharge', '0', '会员充值增加积分');
  66. }
  67. //成长值
  68. if ($order_info['growth'] > 0) {
  69. $member_account->addMemberAccount($order_info['member_id'], 'growth', $order_info['growth'], 'memberrecharge', '0', '会员充值增加成长值');
  70. }
  71. //添加优惠券
  72. if (!empty($order_info['coupon_id'])) {
  73. $coupon_model = new Coupon();
  74. $coupon_id = explode(',', $order_info['coupon_id']);
  75. foreach ($coupon_id as $v) {
  76. //获取优惠券站点ID
  77. $coupon_type_model = new CouponType();
  78. $coupon_type = $coupon_type_model->getCouponTypeInfo($v);
  79. $coupon_model->receiveCoupon($v, $coupon_type['data']['site_id'], $order_info['member_id'], 1);
  80. }
  81. }
  82. }
  83. /**
  84. * 套餐详情
  85. * @param array $condition
  86. * @param string $field
  87. * @return array
  88. */
  89. public function getMemberRechargeCardInfo($condition = [], $field = '*')
  90. {
  91. $card = model('member_recharge_card')->getInfo($condition, $field);
  92. if ($card) {
  93. //获取优惠券信息
  94. if ($card['coupon_id']) {
  95. //优惠券字段
  96. $coupon_field = 'coupon_type_id,coupon_name,money,count,lead_count,max_fetch,at_least,end_time,image,validity_type,fixed_term';
  97. $model = new CouponType();
  98. $coupon = $model->getCouponTypeList([['coupon_type_id', 'in', $card['coupon_id']]], $coupon_field);
  99. $card['coupon_list'] = $coupon;
  100. }
  101. }
  102. Cache::tag("member_recharge_card")->clear();
  103. return $this->success($card);
  104. }
  105. /**
  106. * 开卡列表
  107. * @param array $condition
  108. * @param int $page
  109. * @param int $page_size
  110. * @param string $order
  111. * @param string $field
  112. * @return array
  113. */
  114. public function getMemberRechargeCardPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = '*')
  115. {
  116. $list = model('member_recharge_card')->pageList($condition, $field, $order, $page, $page_size);
  117. Cache::tag("member_recharge_card")->clear();
  118. return $this->success($list);
  119. }
  120. }