SmsPay.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <?php
  2. namespace app\admin\controller\sms;
  3. use crmeb\services\SMSService;
  4. use think\facade\Route;
  5. use app\admin\controller\AuthController;
  6. use crmeb\services\FormBuilder;
  7. use crmeb\services\JsonService;
  8. use crmeb\services\UtilService;
  9. /**
  10. * 短信购买
  11. * Class SmsPay
  12. * @package app\admin\controller\sms
  13. */
  14. class SmsPay extends AuthController
  15. {
  16. /**
  17. * 显示资源列表
  18. * @return string
  19. */
  20. public function index()
  21. {
  22. $sms = new SMSService();
  23. if(!$sms::$status) return $this->failed('请先填写短信配置');
  24. return $this->fetch();
  25. }
  26. /**
  27. * 获取账号信息
  28. */
  29. public function number()
  30. {
  31. $countInfo = SMSService::count();
  32. if($countInfo['status'] == 400) return JsonService::fail($countInfo['msg']);
  33. return JsonService::success($countInfo['data']);
  34. }
  35. /**
  36. * 获取支付套餐
  37. */
  38. public function price()
  39. {
  40. list($page, $limit) = UtilService::getMore([
  41. ['page',1],
  42. ['limit',20],
  43. ], null, true);
  44. $mealInfo = SMSService::meal($page, $limit);
  45. if($mealInfo['status'] == 400) return JsonService::fail($mealInfo['msg']);
  46. return JsonService::success($mealInfo['data']['data']);
  47. }
  48. /**
  49. * 获取支付码
  50. */
  51. public function pay()
  52. {
  53. list($payType, $mealId, $price)= UtilService::postMore([
  54. ['payType', 'weixin'],
  55. ['mealId', 0],
  56. ['price', 0],
  57. ], null, true);
  58. $payInfo = SMSService::pay($payType, $mealId, $price, $this->adminId);
  59. if($payInfo['status'] == 400) return JsonService::fail($payInfo['msg']);
  60. return JsonService::success($payInfo['data']);
  61. }
  62. public function meal()
  63. {
  64. $this->assign('badge',SmsMeal::reckonNumber());
  65. return $this->fetch();
  66. }
  67. /*
  68. * 异步获取分类列表
  69. * @return json
  70. */
  71. public function meal_list(){
  72. $where = UtilService::getMore([
  73. ['is_show',''],
  74. ['title',''],
  75. ['page',1],
  76. ['limit',20],
  77. ['order','']
  78. ]);
  79. return JsonService::successlayui(SmsMeal::lst($where));
  80. }
  81. /**
  82. * 显示创建资源表单页.
  83. *
  84. * @return string
  85. * @throws \FormBuilder\exception\FormBuilderException
  86. */
  87. public function create()
  88. {
  89. $field = [
  90. FormBuilder::input('title','套餐名称'),
  91. FormBuilder::number('price','套餐价格',0)->min(0),
  92. FormBuilder::number('num','短信条数',0)->min(0),
  93. FormBuilder::datePicker('end_time','使用期限',0),
  94. FormBuilder::radio('is_show','是否可用',1)->options([['label'=>'可用','value'=>1],['label'=>'不可用','value'=>0]])
  95. ];
  96. $form = FormBuilder::make_post_form('添加短信套餐',$field,Route::buildUrl('save'),2);
  97. $this->assign(compact('form'));
  98. return $this->fetch('public/form-builder');
  99. }
  100. /**
  101. * 保存新建的资源
  102. */
  103. public function save()
  104. {
  105. $data = UtilService::postMore([
  106. ['title',''],
  107. ['price',''],
  108. ['num',''],
  109. ['end_time',''],
  110. ['is_show',1],
  111. ]);
  112. if(!strlen(trim($data['title']))) return JsonService::fail('请输入套餐名称');
  113. if(!strlen(trim($data['price']))) return JsonService::fail('请输入套餐价格');
  114. if(!strlen(trim($data['num']))) return JsonService::fail('请输入短信条数');
  115. $data['end_time'] = strtotime($data['end_time']);
  116. $data['add_time'] = time();
  117. $res = SmsMeal::create($data);
  118. if($res)
  119. return JsonService::successful('添加成功');
  120. return JsonService::fail('添加失败');
  121. }
  122. /**
  123. * 设置单个产品上架|下架
  124. * @param string $is_show
  125. * @param string $id
  126. */
  127. public function set_show($is_show='',$id=''){
  128. ($is_show=='' || $id=='') && JsonService::fail('缺少参数');
  129. $res=SmsMeal::where('id', $id)->update(['is_show'=>(int)$is_show]);
  130. if($res){
  131. return JsonService::successful($is_show==1 ? '显示成功':'隐藏成功');
  132. }else{
  133. return JsonService::fail($is_show==1 ? '显示失败':'隐藏失败');
  134. }
  135. }
  136. /**
  137. * 显示编辑资源表单页.
  138. * @param $id
  139. * @return string|void
  140. * @throws \FormBuilder\exception\FormBuilderException
  141. */
  142. public function edit($id)
  143. {
  144. $adminInfo = SmsMeal::get($id);
  145. if(!$adminInfo) return $this->failed('数据不存在!');
  146. $field = [
  147. FormBuilder::input('title','账号', $adminInfo->getData('title'))->disabled(true),
  148. FormBuilder::number('price','短信条数', $adminInfo->getData('price'))->min(0),
  149. FormBuilder::number('num','短信条数', $adminInfo->getData('num'))->min(0),
  150. FormBuilder::datePicker('end_time','使用期限',date('Y-m-d H:i',$adminInfo->getData('end_time'))),
  151. FormBuilder::radio('is_show','是否可用', $adminInfo->getData('is_show'))->options([['label'=>'可用','value'=>1],['label'=>'不可用','value'=>0]])
  152. ];
  153. $form = FormBuilder::make_post_form('编辑短信套餐',$field,Route::buildUrl('update',array('id'=>$id)),2);
  154. $this->assign(compact('form'));
  155. return $this->fetch('public/form-builder');
  156. }
  157. /**
  158. * 保存更新的资源
  159. * @param \think\Request $request
  160. * @param int $id
  161. * @return \think\Response
  162. */
  163. public function update($id)
  164. {
  165. $adminInfo = SmsAdminModel::get($id);
  166. if(!$adminInfo) return $this->failed('数据不存在!');
  167. $data = Util::postMore([
  168. ['title',''],
  169. ['price',''],
  170. ['num',''],
  171. ['end_time',''],
  172. ['is_show',1],
  173. ]);
  174. if(!strlen(trim($data['title']))) return JsonService::fail('请输入套餐名称');
  175. if(!strlen(trim($data['price']))) return JsonService::fail('请输入套餐价格');
  176. if(!strlen(trim($data['num']))) return JsonService::fail('请输入短信条数');
  177. $data['end_time'] = strtotime($data['end_time']);
  178. $data['add_time'] = time();
  179. $res = SmsMeal::edit($data, $id);
  180. if($res)
  181. return JsonService::successful('修改成功');
  182. return JsonService::fail('修改失败');
  183. }
  184. /**
  185. * 删除指定资源
  186. * @param $id
  187. */
  188. public function delete($id)
  189. {
  190. $smsAdmin = SmsMeal::get($id);
  191. if(!$smsAdmin) return JsonService::fail('数据不存在!');
  192. if($smsAdmin['is_del']) return JsonService::fail('已删除');
  193. if(SmsMeal::del($id)){
  194. return JsonService::successful('删除成功');
  195. }
  196. return JsonService::fail('删除失败');
  197. }
  198. }