ChannelApply.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <?php
  2. /**
  3. * 渠道注册申请控制器
  4. */
  5. namespace app\admin\controller;
  6. use app\common\model\ChannelApply as ChannelApplyModel;
  7. use app\common\model\Channel;
  8. use app\common\model\CoinSetting;
  9. use app\common\model\Admin as AdminModel;
  10. use app\common\library\MakeReport;
  11. use app\common\logic\Coin as CoinLogic;
  12. use think\Db;
  13. class ChannelApply extends Admin
  14. {
  15. private $applyModel;
  16. /**
  17. * 不进行父类的登录验证,所以增加构造方法重写了父类的初始化方法
  18. */
  19. protected function _initialize()
  20. {
  21. parent::_initialize();
  22. $this->applyModel = new ChannelApplyModel;
  23. }
  24. /**
  25. * 发币申请列表
  26. */
  27. public function index()
  28. {
  29. $where = $this->getListCondition();
  30. $param = input('request.'); //分页带条件
  31. $list = $this->applyModel
  32. ->field('*')
  33. ->where($where)
  34. ->order('status asc,create_time desc')
  35. ->paginate(10,false,array('query' => $param));
  36. // 获取分页显示的HTML
  37. $page = $list->render();
  38. //后台管理员列表
  39. $adminList = model('Admin')->field('id,username as name')->where(['status'=>1,'type'=>1])->order('username asc')->select();
  40. $this->assign('page', $page);
  41. $this->assign('list',$list);
  42. $this->assign('admin_list',$adminList);
  43. return $this->fetch('list');
  44. }
  45. /**
  46. * 发币申请列表的查询条件
  47. *
  48. * @return array $where 查询条件
  49. */
  50. private function getListCondition()
  51. {
  52. $start_time = input('request.start_time',date('Y-m-d'));
  53. //渠道名
  54. if(input('request.username')!='')
  55. {
  56. $where['username'] = input('request.username','','trim');
  57. }
  58. //手机号
  59. if(input('request.linkman_mobile')!='')
  60. {
  61. $where['linkman_mobile'] = input('request.linkman_mobile','','trim');
  62. }
  63. //审核状态
  64. if(input('request.status')!='')
  65. {
  66. $where['status'] = input('request.status',0,'intval');
  67. }
  68. //开始时间和结束时间不为空时
  69. if ($start_time != '' && input('request.end_time') != '') {
  70. $where['create_time'] = [
  71. ['>=', strtotime($start_time)],
  72. ['<=', strtotime(input('request.end_time').' 23:59:59')],
  73. ];
  74. } //开始时间不为空时
  75. elseif ($start_time!= '') {
  76. $where['create_time'] = ['>=', strtotime($start_time)];
  77. } //结束时间不为空时
  78. elseif (input('request.end_time') != '') {
  79. $where['create_time'] = ['<=', strtotime(input('request.end_time').' 23:59:59')];
  80. }
  81. return $where;
  82. }
  83. /**
  84. * 审核
  85. *
  86. */
  87. public function audit()
  88. {
  89. if (request()->isAjax()) {
  90. $id = input('id',0,'intval');
  91. $contact_admin_id = input('contact_admin_id',0,'intval');
  92. $beizhu = input('beizhu','','trim');
  93. $status = input('status','0','intval');
  94. if(empty($id)){
  95. $this->error('ID不能为空');
  96. }
  97. if($status<>1 && $status<>2){
  98. $this->error('非法审核状态');
  99. }
  100. if($status==1 && !$contact_admin_id){
  101. $this->error('请选择对接人');
  102. }
  103. $applyInfo = model('ChannelApply')->where(['id' => $id])->find();
  104. if(empty($applyInfo)){
  105. $this->error('渠道注册申请不存在');
  106. }
  107. if($applyInfo['status'] <> 0){
  108. $this->error('该渠道注册申请已审核过');
  109. }
  110. if($status==1){
  111. $channelInfo = model('Channel')->where(['name' => $applyInfo['username']])->find();
  112. if ( $channelInfo ) {
  113. $this->error('该渠道信息已存在');
  114. }
  115. $userInfo = model('Admin')->field('id')->where(['username' => $applyInfo['username']])->find();
  116. if ($userInfo) {
  117. $this->error("该用户名已存在! ");
  118. }
  119. }
  120. $auditData = array();
  121. $auditData['id'] = $id;
  122. $auditData['status'] = $status;
  123. $auditData['audit_time'] = NOW_TIMESTAMP;
  124. $auditData['beizhu'] = $beizhu;
  125. $auditData['contact_admin_id'] = $contact_admin_id;
  126. $auditData['audit_admin_id'] = session('ADMIN_ID');
  127. Db::startTrans();
  128. try {
  129. if($status==1){
  130. $channelInfo = model("Channel")->where(['name' => $applyInfo['username']])->find();
  131. if ( $channelInfo ) {
  132. throw new Exception("该渠道信息已存在");
  133. }
  134. $userInfo = model("Admin")->field('id')->where(['username' => $applyInfo['username']])->find();
  135. if ($userInfo) {
  136. throw new Exception("用户名已存在! ");
  137. }
  138. //添加渠道信息
  139. $channelModel = model('channel');
  140. $channelModel->save([
  141. 'name' => $applyInfo['username'],
  142. 'parent_id' => config('TOP_CHANNEL_ID'),
  143. 'id_path' => ','.config('TOP_CHANNEL_ID').',',
  144. 'create_time' => $applyInfo['create_time'],
  145. 'flag' => 3,
  146. 'show_full_account' => 0,
  147. 'remark' => $beizhu,
  148. 'status' => 1]);
  149. // echo $channelModel->id."----channelModel->id-----<br>";
  150. if ( !$channelModel->id) {
  151. throw new Exception("添加渠道信息失败");
  152. }
  153. $channelData = array();
  154. $channelData['channel_id'] = $channelModel->id;
  155. $channelData['real_name'] = $applyInfo['real_name'];
  156. $channelData['account_wechat'] = $applyInfo['account_wechat'];
  157. $channelData['account_qq'] = $applyInfo['account_qq'];
  158. $channelData['account_type'] = $applyInfo['account_type'];
  159. $channelData['alipay_realname'] = $applyInfo['alipay_realname'];
  160. $channelData['alipay_account'] = $applyInfo['alipay_account'];
  161. $channelData['bank_account'] = $applyInfo['bank_account'];
  162. $channelData['company_name'] = $applyInfo['company_name'];
  163. $channelData['bank_name'] = $applyInfo['bank_name'];
  164. $channelData['linkman_email'] = $applyInfo['linkman_email'];
  165. $channelData['business_mode_public'] = $applyInfo['business_mode_public'];
  166. $channelData['business_mode_private'] = $applyInfo['business_mode_private'];
  167. $channelData['company_scale'] = $applyInfo['company_scale'];
  168. $channelData['promote_games'] = $applyInfo['promote_games'];
  169. $channelData['promote_platforms'] = $applyInfo['promote_platforms'];
  170. $channelData['company_has_shop'] = $applyInfo['company_has_shop'];
  171. $channelData['shop_platform'] = $applyInfo['shop_platform'];
  172. $channelData['shop_address'] = $applyInfo['shop_address'];
  173. $channelData['shop_name'] = $applyInfo['shop_name'];
  174. $channelData['linkman_address'] = $applyInfo['linkman_address'];
  175. $channelData['linkman_mobile'] = $applyInfo['linkman_mobile'];
  176. $channelData['create_time'] = $applyInfo['create_time'];
  177. $channelData['audit_time'] = NOW_TIMESTAMP;
  178. $channelData['contact_admin_id'] = $contact_admin_id;
  179. $channelData['audit_admin_id'] = session('ADMIN_ID');
  180. $channelData['update_time'] = NOW_TIMESTAMP;
  181. $channelData['admin_id'] = session('ADMIN_ID');
  182. $insertChannelResult = model("ChannelInfo")->insertGetId($channelData);
  183. // echo $insertChannelResult."----insertChannelResult-----<br>";
  184. if ($insertChannelResult === false) {
  185. throw new Exception("添加渠道更多信息失败");
  186. }
  187. $adminData = array();
  188. $adminData['username'] = $applyInfo['username'];
  189. $adminData['password'] = $applyInfo['password'];
  190. $adminData['pay_password'] = $applyInfo['pay_password'];
  191. $adminData['type'] = 2;
  192. $adminData['channel_id'] = $channelModel->id;
  193. $adminData['beizhu'] = $beizhu;
  194. $adminData['status'] = 1;
  195. $adminData['mobile'] = $applyInfo['linkman_mobile'];
  196. $adminData['create_time'] = $applyInfo['create_time'];
  197. $adminData['password_update_time'] = NOW_TIMESTAMP;
  198. $insertAdminResult = model("Admin")->insertGetId($adminData);
  199. // echo $insertAdminResult."----insertAdminResult-----<br>";
  200. if ($insertAdminResult === false) {
  201. throw new Exception("添加管理员账号失败");
  202. }
  203. $auditData['channel_id'] = $channelModel->id;
  204. $result = $this->applyModel->where(['id'=>$id])->update($auditData);
  205. // echo $result."---result-----<Br>";
  206. if ($result === false) {
  207. throw new Exception("审核修改状态失败");
  208. }
  209. $this->insertLog($this->current_node, "渠道审核表审核通过新增子渠道:".$applyInfo['username'].",状态:正常",41);
  210. }
  211. else if($status==2){
  212. $result = $this->applyModel->where(['id'=>$id])->update($auditData);
  213. if ($result === false) {
  214. throw new Exception("审核修改状态失败");
  215. }
  216. }
  217. Db::commit();
  218. // $this->success('审核成功');
  219. } catch (\Exception $e) {
  220. Db::rollback();
  221. $this->error("添加失败: " . $e->getMessage());
  222. }
  223. $this->success('审核成功');
  224. }
  225. else{
  226. $this->error('非法请求');
  227. }
  228. }
  229. }