UserRiceCard.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\store\controller\card;
  4. use app\api\service\User as UserService;
  5. use app\common\library\helper;
  6. use app\store\controller\Controller;
  7. use app\store\model\card\UserRiceCard as UserRiceCardModel;
  8. use app\store\model\card\UserRiceCardConsume;
  9. /**
  10. * 用户现金卡管理控制器
  11. * Class RiceCard
  12. * @package app\store\controller\card
  13. */
  14. class UserRiceCard extends Controller
  15. {
  16. public function list()
  17. {
  18. $model = new UserRiceCardModel;
  19. $lists = $model->getList($this->request->param());
  20. $list = $lists['list'];
  21. //面值
  22. $currBalance = $currCost = 0;
  23. foreach ($list['data'] as $key=>$item){
  24. if ($item['activation_state'] == 1){
  25. $currCost += ($item['face_value'] - $item['balance']);
  26. $currBalance += $item['balance'];
  27. }
  28. }
  29. //本页面值
  30. $currFaceValue = helper::bcadd(array_sum(array_column($list['data'], 'face_value')),0,2);
  31. //余额
  32. //$currBalance = helper::bcadd(array_sum(array_column($list['data'], 'balance')),0);
  33. //已消费
  34. //$currCost = helper::bcadd($currFaceValue - $currBalance,0);
  35. $currBalance = helper::bcadd($currBalance,0);
  36. $currCost = helper::bcadd($currCost,0);
  37. $stat = $lists['stat'];
  38. $faceValue = helper::bcadd($stat['face_value']??0,0);//总面值
  39. $balance = helper::bcadd($stat['balance']??0,0);//总余额
  40. $cost = helper::bcadd($faceValue - $balance,0);//总消费
  41. return $this->renderSuccess(compact('list','currFaceValue','currBalance','currCost','faceValue','balance','cost'));
  42. }
  43. /**
  44. * 米卡-现金卡详情记录
  45. * @param int $id
  46. * @return array
  47. */
  48. public function consumeDetail()
  49. {
  50. $model = new UserRiceCardConsume();
  51. $list = $model->getList($this->request->param());
  52. return $this->renderSuccess(compact('list'));
  53. }
  54. /**
  55. * 冻结米卡现金卡
  56. * @param int $id
  57. * @param int $state 1:冻结,0:解冻
  58. * @return array
  59. */
  60. public function frozenState( int $id, int $state)
  61. {
  62. $model = new UserRiceCardModel;
  63. if (!$model->freezeCard($id, $state)) {
  64. return $this->renderError($model->getError() ?: '操作失败');
  65. }
  66. return $this->renderSuccess('操作成功');
  67. }
  68. /**
  69. * 撤回
  70. * @param $cardId
  71. * @return array
  72. * @throws \think\db\exception\DataNotFoundException
  73. * @throws \think\db\exception\DbException
  74. * @throws \think\db\exception\ModelNotFoundException
  75. */
  76. public function revoke($cardId){
  77. $rice_card = \app\api\model\card\UserRiceCard::where('id',$cardId)->find();
  78. if(!$rice_card){
  79. return $this->renderError('找不到信息');
  80. }
  81. if($rice_card->effect_state==2){
  82. return $this->renderError('该卡已被领取');
  83. }
  84. if($rice_card->effect_state==1){
  85. return $this->renderError("该卡已撤回");
  86. }
  87. $childrenRice = UserRiceCardModel::where('parent_id',$rice_card->id)->where('is_delete',0)->where('effect_state',1)->find();
  88. if($childrenRice){
  89. if($childrenRice->user_id>0){
  90. return $this->renderError("该卡已被领取,不能撤回");
  91. }
  92. }
  93. $childrenRice->effect_state =2;//失效,删除
  94. $childrenRice->is_delete = 1;
  95. $childrenRice->save();
  96. $rice_card->effect_state = 1;
  97. $rice_card->save();
  98. //原米卡改为失效
  99. //原米卡的限制商品所属用户更换ID
  100. return $this->renderSuccess('撤回成功');
  101. }
  102. /**
  103. * 实物兑换卡用户表
  104. * @return array
  105. */
  106. public function listReal(){
  107. $model = new UserRiceCardModel;
  108. $list = $model->getListReal($this->request->param());
  109. return $this->renderSuccess(compact('list'));
  110. }
  111. }