123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- <?php
- namespace app\controller\admin\system\sms;
- use ln\basic\BaseController;
- use app\common\repositories\system\config\ConfigValueRepository;
- use app\common\repositories\system\sms\SmsRecordRepository;
- use app\validate\admin\SmsRegisterValidate;
- use ln\services\YunxinSmsService;
- use think\App;
- use think\db\exception\DataNotFoundException;
- use think\db\exception\DbException;
- use think\db\exception\ModelNotFoundException;
- use think\facade\Cache;
- /**
- * Class Sms
- * @package app\controller\admin\system\sms
- * @author zfy
- * @day 2020-05-18
- */
- class Sms extends BaseController
- {
- /**
- * @var YunxinSmsService
- */
- protected $service;
- /**
- * Sms constructor.
- * @param App $app
- */
- public function __construct(App $app)
- {
- parent::__construct($app);
- $this->service = YunxinSmsService::create();
- }
- /**
- * @return mixed
- * @author zfy
- * @day 2020-05-18
- */
- public function captcha()
- {
- $phone = request()->param('phone');
- if (!$phone)
- return app('json')->fail('请输入手机号');
- if (!preg_match('/^1[3456789]{1}\d{9}$/', $phone))
- return app('json')->fail('请输入正确的手机号');
- $res = $this->service->captcha($phone);
- if (!isset($res['status']) && $res['status'] !== 200)
- return app('json')->fail($res['data']['message'] ?? $res['msg'] ?? '发送失败');
- return app('json')->success($res['data']['message'] ?? $res['msg'] ?? '发送成功');
- }
- /**
- * @param SmsRegisterValidate $validate
- * @return mixed
- * @author zfy
- * @day 2020-05-18
- */
- public function save(SmsRegisterValidate $validate)
- {
- $data = $this->request->params(['account', 'password', 'phone', 'code', 'url', 'sign']);
- $validate->check($data);
- $data['password'] = md5($data['password']);
- $res = $this->service->registerData($data);
- if ($res['status'] == 400) return app('json')->fail('短信平台:' . $res['msg']);
- $this->service->setConfig($data['account'], $data['password']);
- return app('json')->success('短信平台:' . $res['msg']);
- }
- /**
- * @param SmsRegisterValidate $validate
- * @param ConfigValueRepository $repository
- * @return mixed
- * @author zfy
- * @day 2020-05-18
- */
- public function save_basics(SmsRegisterValidate $validate, ConfigValueRepository $repository)
- {
- $data = $this->request->params([
- 'account', 'password'
- ]);
- $validate->isLogin()->check($data);
- $this->service->setConfig($data['account'], md5($data['password']));
- //添加公共短信模板
- $templateList = $this->service->publictemp([]);
- if ($templateList['status'] != 400) {
- $repository->setFormData(['sms_account' => $data['account'], 'sms_token' => md5($data['password'])], 0);
- return app('json')->success('登录成功');
- } else {
- return app('json')->fail('账号或密码错误');
- }
- }
- /**
- * @return mixed
- * @author zfy
- * @day 2020-05-18
- */
- public function is_login()
- {
- if ($sms_info = $this->service->account()) {
- return app('json')->success(['status' => true, 'info' => $sms_info]);
- } else {
- return app('json')->success(['status' => false]);
- }
- }
- /**
- * @param SmsRecordRepository $repository
- * @return mixed
- * @throws DataNotFoundException
- * @throws DbException
- * @throws ModelNotFoundException
- * @author zfy
- * @day 2020-05-18
- */
- public function record(SmsRecordRepository $repository)
- {
- [$page, $limit] = $this->getPage();
- $where = $this->request->params(['type']);
- return app('json')->success($repository->getList($where, $page, $limit));
- }
- /**
- * @param SmsRecordRepository $repository
- * @return mixed
- * @author zfy
- * @day 2020-05-18
- */
- public function data(SmsRecordRepository $repository)
- {
- $countInfo = $this->service->count();
- if ($countInfo['status'] == 400) {
- $info['number'] = 0;
- $info['total_number'] = 0;
- } else {
- $info['number'] = $countInfo['data']['number'];
- $info['total_number'] = $countInfo['data']['send_total'];
- }
- $info['record_number'] = $repository->count();
- $info['sms_account'] = $this->service->account();
- return app('json')->success($info);
- }
- /**
- * @param ConfigValueRepository $repository
- * @return mixed
- * @throws DbException
- * @author zfy
- * @day 2020-05-18
- */
- public function logout(ConfigValueRepository $repository)
- {
- Cache::delete('sms_account');
- Cache::delete('serve_account');
- $repository->clear(['sms_account', 'sms_token','serve_account','serve_token'], 0);
- return app('json')->success('退出成功');
- }
- /**
- * 修改密码
- * @Author:Qinii
- * @Date: 2020/9/2
- * @return mixed
- */
- public function changePassword()
- {
- $data = $this->request->params(['password','phone','code']);
- if(empty($data['password']))
- return app('json')->fail('密码不能为空');
- $data['password'] = md5($data['password']);
- $res = $this->service->smsChange($data);
- if ($res['status'] == 400) return app('json')->fail('短信平台:' . $res['msg']);
- $this->service->setConfig($this->service->account(), $data['password']);
- return app('json')->success('修改成功');
- }
- /**
- * 修改签名
- * @Author:Qinii
- * @Date: 2020/9/2
- * @return mixed
- */
- public function changeSign()
- {
- $data = $this->request->params(['sign','phone','code']);
- if(empty($data['sign'])) return app('json')->fail('签名不能为空');
- $res = $this->service->smsChange($data);
- if ($res['status'] == 400) return app('json')->fail('短信平台:' . $res['msg']);
- return app('json')->success('修改已提交,审核通过后自动更改');
- }
- }
|