MemberCard.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\admin\controller\user;
  12. use app\admin\model\user\MemberCardBatch;
  13. use app\admin\model\user\MemberCard as MemberCardModel;
  14. use app\admin\controller\AuthController;
  15. use service\JsonService as Json;
  16. use service\FormBuilder as Form;
  17. use think\Db;
  18. use think\Url;
  19. /**
  20. * 会员卡管理控制器
  21. * Class MemberCard
  22. * @package app\admin\controller\user
  23. */
  24. class MemberCard extends AuthController
  25. {
  26. public function index()
  27. {
  28. $this->assign(['activity_type' => 1]);
  29. return $this->fetch('batch_index');
  30. }
  31. public function batch_list()
  32. {
  33. $where = parent::getMore([
  34. ['title', ''],
  35. ['page', 1],
  36. ['limit', 20],
  37. ]);
  38. $batch_list = MemberCardBatch::getBatchList($where);
  39. return Json::successlayui($batch_list);
  40. }
  41. public function add_batch()
  42. {
  43. return $this->fetch();
  44. }
  45. public function save_batch()
  46. {
  47. $data = parent::postMore([
  48. ['title', ''],
  49. ['use_day', 1],
  50. ['total_num', 1],
  51. ['status', 0],
  52. ['remark', '']
  53. ]);
  54. if (!isset($data['use_day']) || $data['use_day'] <= 0 || !is_numeric($data['use_day'])) return Json::fail('体验时间未填写或不合法');
  55. if (!isset($data['total_num']) || $data['total_num'] <= 0 || !is_numeric($data['total_num'])) return Json::fail('制卡未填写或不合法');
  56. if ($data['total_num'] > 6000) return Json::fail('单次制卡数量最高不得超过6000张');
  57. try {
  58. MemberCardBatch::beginTrans();
  59. $data['create_time'] = time();
  60. $batch_id = MemberCardBatch::addBatch($data);
  61. $batch_card = MemberCardModel::addCard($batch_id, $data['total_num']);
  62. if ($batch_id && $batch_card) {
  63. $qrcodeUrl = MemberCardBatch::qrcodes_url($batch_id, 5);
  64. MemberCardBatch::where('id', $batch_id)->update(['qrcode' => $qrcodeUrl]);
  65. }
  66. MemberCardBatch::commitTrans();
  67. return Json::successful('添加成功');
  68. } catch (\Exception $e) {
  69. MemberCardBatch::rollbackTrans();
  70. return Json::fail('添加失败');
  71. }
  72. }
  73. /**
  74. * 快速编辑
  75. * @param string $field 字段名
  76. * @param int $id 修改的主键
  77. * @param string value 修改后的值
  78. * @return json
  79. */
  80. public function set_value($field = '', $id, $value = '', $model_type)
  81. {
  82. if ($field == "use_day" && $id) {
  83. if (!$value || !is_numeric($value) || $value <= 0) return Json::fail('非法数值');
  84. $get_one = MemberCardModel::getCardOne(['card_batch_id' => $id, 'use_uid' => ['>', 0]]);
  85. if ($get_one) {
  86. return Json::fail('此批次卡片已经在使用当中,无法进行此非法操作');
  87. }
  88. }
  89. if ($model_type == 'member_card_batch' && $field != 'remark') {
  90. $use = MemberCardModel::where('card_batch_id', $id)->where('use_uid', '>', 0)->count();
  91. if ($use) return Json::fail('此批次卡片已经在使用当中,无法进行此非法操作');
  92. }
  93. if ($model_type == 'member_card' && $id) {
  94. $card = MemberCardModel::where(['id' => $id, 'use_uid' => ['>', 0]])->find();
  95. if ($card) return Json::fail('此卡片已经在使用当中,无法进行此非法操作');
  96. }
  97. $res = parent::getDataModification($model_type, $id, $field, $value);
  98. if ($res)
  99. return Json::successful('保存成功');
  100. else
  101. return Json::fail('保存失败');
  102. }
  103. public function card_index()
  104. {
  105. $data = parent::getMore([
  106. ['activity_type', 2],
  107. ['card_batch_id', 0],
  108. ]);
  109. $batch_list = MemberCardBatch::getBatchAll([]);
  110. $this->assign([
  111. 'activity_type' => $data['activity_type'],
  112. 'card_batch_id' => $data['card_batch_id'],
  113. 'batch_list' => $batch_list ? $batch_list->toArray() : [],
  114. ]);
  115. return $this->fetch();
  116. }
  117. public function card_list()
  118. {
  119. $card_batch_id = $this->request->param('card_batch_id', 0);
  120. $excel = $this->request->param('excel', 0);
  121. $where = parent::getMore([
  122. ['card_number', ""],
  123. ['phone', ""],
  124. ['card_batch_id', $card_batch_id],
  125. ['is_use', ""],
  126. ['is_status', ""],
  127. ['page', 1],
  128. ['limit', 20],
  129. ['excel', $excel],
  130. ]);
  131. $card_list = MemberCardModel::getCardList($where);
  132. return Json::successlayui($card_list);
  133. }
  134. /**删除
  135. * @param int $id
  136. */
  137. public function delete($id = 0)
  138. {
  139. $res = MemberCardBatch::delMemberCard($id);
  140. if (!$res)
  141. return Json::fail(MemberCardModel::getErrorInfo('删除失败,请稍候再试!'));
  142. else
  143. return Json::successful('删除成功!');
  144. }
  145. }