Mytask.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use app\common\model\MoneyLog;
  5. use think\Db;
  6. /**
  7. * 会员接口
  8. */
  9. class Mytask extends Api
  10. {
  11. protected $noNeedLogin = [];
  12. protected $noNeedRight = '*';
  13. public function _initialize()
  14. {
  15. parent::_initialize();
  16. $this->model = model('Task');
  17. $this->Usermodel = model('User');
  18. }
  19. /**
  20. * 会员中心
  21. */
  22. public function index()
  23. {
  24. $config=config('site');
  25. $this->relationSearch = true;
  26. //如果发送的来源是Selectpage,则转发到Selectpage
  27. if ($this->request->request('keyField')) {
  28. return $this->selectpage();
  29. }
  30. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  31. $map=[];
  32. if(input('uid',0)>0){
  33. $map['uid']=input('uid');
  34. }
  35. if(input('tabIndex')==1){
  36. $map['paytype']=1;
  37. }
  38. if(input('tabIndex')==0){
  39. $map['paytype']=2;
  40. $map['endtimesjc']=['>',time()];
  41. }
  42. if(input('tabIndex')==2){
  43. $map['endtimesjc']=['<',time()];
  44. }
  45. $total = $this->model
  46. ->with('users')
  47. ->where($where)
  48. ->where($map)
  49. ->order($sort, $order)
  50. ->count();
  51. $list = $this->model
  52. ->with('users')
  53. ->where($where)
  54. ->where($map)
  55. ->order($sort, $order)
  56. ->limit($offset, $limit)
  57. ->select();
  58. if($list){
  59. foreach ($list as $k=>$v){
  60. $list[$k]['createtime']=date('Y-m-d H:i',$v['createtime']);
  61. $TaskOrder=model('TaskOrder')->where(['oid'=>$v['id']])->select();
  62. $TaskOrdercount=model('TaskOrder')->where(['oid'=>$v['id'],'stype'=>2])->count();
  63. $list[$k]['TaskOrder']=$TaskOrder;
  64. $list[$k]['TaskOrdercount']=$TaskOrdercount;
  65. if(isset($v['users']['avatar'])){
  66. if(strpos($v['users']['avatar'],'http') !== false){
  67. $list[$k]['avatar']=$v['users']['avatar'];
  68. }else{
  69. if($v['users']['avatar']){
  70. $list[$k]['avatar']= $config['imgurl'].$v['users']['avatar'];
  71. }else{
  72. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  73. }
  74. }
  75. }else{
  76. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  77. }
  78. }
  79. }
  80. $result = array("total" => $total, "rows" => $list);
  81. return json($result);
  82. }
  83. public function tasksh()
  84. {
  85. $config=config('site');
  86. // $this->relationSearch = true;
  87. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  88. $map['oid']=input('id',0);
  89. if(input('stype')>1){
  90. $map['stype']=input('stype');
  91. }
  92. $total = model('TaskOrder')
  93. ->where($where)
  94. ->where($map)
  95. ->order($sort, $order)
  96. ->count();
  97. $list = model('TaskOrder')
  98. ->where($where)
  99. ->where($map)
  100. ->order($sort, $order)
  101. ->limit($offset, $limit)
  102. ->select();
  103. if($list){
  104. foreach ($list as $k=>$v){
  105. $list[$k]['createtime']=date('Y-m-d H:i',$v['createtime']);
  106. $list[$k]['ttime']=date('Y-m-d H:i',$v['ttime']);
  107. $v['users']=model('User')->where(['id'=>$v['uid']])->find();
  108. if(isset($v['users']['avatar'])){
  109. if(strpos($v['users']['avatar'],'http') !== false){
  110. $list[$k]['avatar']=$v['users']['avatar'];
  111. }else{
  112. if($v['users']['avatar']){
  113. $list[$k]['avatar']= $config['imgurl'].$v['users']['avatar'];
  114. }else{
  115. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  116. }
  117. }
  118. }else{
  119. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  120. }
  121. }
  122. }
  123. $result = array("total" => $total, "rows" => $list);
  124. return json($result);
  125. }
  126. public function renwjsuan()
  127. {
  128. $Task=$this->model->where(['id'=>input('id')])->find();
  129. if($Task['sfjs']==2){
  130. $this->error('已经结算 请勿重复操作');
  131. }
  132. $money=$Task['zprice']-$Task['kprice'];
  133. if($money>0){
  134. $this->model->where(['id'=>input('id')])->update(['sfjs'=>2]);
  135. $user=$this->auth->getUserinfo();
  136. $user = $this->Usermodel::get($user['id']);
  137. if ($user && $money != 0) {
  138. $before = $user->money;
  139. $after = $user->money + $money;
  140. //更新会员信息
  141. $user->save(['money' => $after]);
  142. //写入日志
  143. MoneyLog::create(['user_id' => $user['id'], 'money' => $money, 'before' => $before, 'after' => $after,'fid' => 0, 'sxf' =>0,'memo' => '任务结算']);
  144. }else{
  145. $this->error(__('金额不对'));
  146. }
  147. $this->success(__('操作成功'));
  148. }else{
  149. $this->error('没有金额可以结算');
  150. }
  151. }
  152. public function onsubshnehe()
  153. {
  154. $TaskOrder=model('TaskOrder')->where(['id'=>input('id',0)])->find();
  155. if($TaskOrder['stype']>2){
  156. $this->error('已经审核 请勿重复操作');
  157. }
  158. if($TaskOrder['stype']==1){
  159. $this->error('未提交 不能操作');
  160. }
  161. model('TaskOrder')->where(['id'=>$TaskOrder['id']])->update(['stype'=>4,'stime'=>time(),'sbz'=>input('sbz')]);
  162. $this->success('提交成功');
  163. }
  164. public function subshnehe()
  165. {
  166. $TaskOrder=model('TaskOrder')->where(['id'=>input('id',0)])->find();
  167. if($TaskOrder){
  168. if($TaskOrder['stype']>2){
  169. $this->error('已经审核 请勿重复操作');
  170. }
  171. if($TaskOrder['stype']==1){
  172. $this->error('未提交 不能操作');
  173. }
  174. $User=model('User')->where(['id'=>$TaskOrder['uid']])->find();
  175. if(!$User){
  176. $this->error('User错误');
  177. }
  178. $User['group_id']=isset($User['group_id'])?$User['group_id']:1;
  179. $User['group_id']=!empty($User['group_id'])?$User['group_id']:1;
  180. $UserGroup=model('UserGroup')->where(['id'=>$User['group_id']])->find();
  181. if(!$UserGroup){
  182. $this->error('UserGroup错误');
  183. }
  184. $yongj=$TaskOrder['price']-$TaskOrder['price']*$UserGroup['huilv'];
  185. $sxf=$TaskOrder['price']*$UserGroup['huilv'];
  186. Db::startTrans();
  187. try {
  188. $this->money($yongj,$User['id'],$TaskOrder['id'],$sxf);
  189. model('TaskOrder')->where(['id'=>$TaskOrder['id']])->update(['stype'=>3,'stime'=>time(),'sbz'=>input('sbz')]);
  190. $this->model->where(['id'=>$TaskOrder['oid']])->setInc('kprice',$TaskOrder['price']);
  191. Db::commit();
  192. $this->success('审核成功');
  193. }catch (Exception $e){
  194. Db::rollback();
  195. $this->error($e->getMessage());
  196. }
  197. }
  198. }
  199. public function lqyj(){
  200. $TaskOrder=model('TaskOrder')->where(['id'=>input('id',0)])->find();
  201. if($TaskOrder){
  202. if($TaskOrder['stype']>2){
  203. $this->error('已经审核 请勿重复操作');
  204. }
  205. if($TaskOrder['stype']==1){
  206. $this->error('未提交 不能操作');
  207. }
  208. $User=model('User')->where(['id'=>$TaskOrder['uid']])->find();
  209. if(!$User){
  210. $this->error('User错误');
  211. }
  212. $User['group_id']=isset($User['group_id'])?$User['group_id']:1;
  213. $User['group_id']=!empty($User['group_id'])?$User['group_id']:1;
  214. $UserGroup=model('UserGroup')->where(['id'=>$User['group_id']])->find();
  215. if(!$UserGroup){
  216. $this->error('UserGroup错误');
  217. }
  218. $yongj=$TaskOrder['price']-$TaskOrder['price']*$UserGroup['huilv'];
  219. $sxf=$TaskOrder['price']*$UserGroup['huilv'];
  220. Db::startTrans();
  221. try {
  222. $this->money($yongj,$User['id'],$TaskOrder['id'],$sxf);
  223. model('TaskOrder')->where(['id'=>$TaskOrder['id']])->update(['stype'=>3,'stime'=>time(),'sbz'=>'用户领取']);
  224. $this->model->where(['id'=>$TaskOrder['oid']])->setInc('kprice',$TaskOrder['price']);
  225. Db::commit();
  226. $this->success('领取成功');
  227. }catch (Exception $e){
  228. Db::rollback();
  229. $this->error($e->getMessage());
  230. }
  231. }
  232. }
  233. public function money($money,$user_id,$id,$sxf=0){
  234. $user = $this->Usermodel::get($user_id);
  235. if ($user && $money != 0) {
  236. $before = $user->money;
  237. $after = $user->money + $money;
  238. //更新会员信息
  239. $user->save(['money' => $after]);
  240. //写入日志
  241. MoneyLog::create(['user_id' => $user_id, 'money' => $money, 'before' => $before, 'after' => $after,'fid' => $id, 'sxf' =>$sxf,'memo' => '用户佣金']);
  242. }else{
  243. $this->error(__('金额不对'));
  244. }
  245. }
  246. public function del()
  247. {
  248. $tdata=$this->model->where(['id'=>input('oid')])->find();
  249. if($tdata['paytype']==2){
  250. $this->error(__('当前任务正在进行不能删除'));
  251. }
  252. $this->model->where(['id'=>input('id')])->delete();
  253. $this->success(__('删除成功'));
  254. }
  255. public function statusn()
  256. {
  257. $this->model->where(['id'=>input('id')])->update(['status'=>'hidden']);
  258. $this->success(__('操作成功'));
  259. }
  260. public function statuson()
  261. {
  262. $this->model->where(['id'=>input('id')])->update(['status'=>'normal']);
  263. $this->success(__('操作成功'));
  264. }
  265. public function lqrw()
  266. {
  267. $tdata=$this->model->where(['id'=>input('oid')])->find();
  268. $up=[
  269. 'name'=>input('name'),
  270. 'stype'=>1,
  271. 'uid'=>input('uid'),
  272. 'oid'=>input('oid'),
  273. 'price'=>input('price'),
  274. 'img'=>input('img'),
  275. 'fid'=>$tdata['uid'],
  276. 'createtime'=>time(),
  277. ];
  278. if($tdata['sumsy']<=0){
  279. $this->error(__('任务已经做完'));
  280. }
  281. if($tdata['status']=='hidden'){
  282. $this->error(__('任务停止推广'));
  283. }
  284. if($tdata['sumsy']==1){
  285. $this->model->where(['id'=>input('oid')])->update(['endtimesjc'=>0]);
  286. }
  287. $this->model->where(['id'=>input('oid')])->setInc('sumed',1);
  288. $this->model->where(['id'=>input('oid')])->setDec('sumsy',1);
  289. $id=Db::name('task_order')->insertGetId($up);
  290. $this->success(__('领取成功'));
  291. }
  292. public function rwtj()
  293. {
  294. $datapost =input('param.');//订单数据
  295. $datapost['buzs']=htmlspecialchars_decode($datapost['buz']);
  296. $up=[
  297. 'stype'=>2,
  298. 'buz'=>$datapost['buzs'],
  299. 'ttime'=>time(),
  300. ];
  301. $rt=model('TaskOrder')->where(['id'=>input('id')])->update($up);
  302. $this->success(__('提交成功'));
  303. }
  304. public function order()
  305. {
  306. $config=config('site');
  307. $this->relationSearch = true;
  308. //如果发送的来源是Selectpage,则转发到Selectpage
  309. if ($this->request->request('keyField')) {
  310. return $this->selectpage();
  311. }
  312. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  313. $map['uid']=input('uid',0);
  314. if(input('stype')>0){
  315. $map['stype']=input('stype');
  316. }
  317. $total = model('TaskOrder')
  318. ->where($where)
  319. ->where($map)
  320. ->order($sort, $order)
  321. ->count();
  322. $list = model('TaskOrder')
  323. ->where($where)
  324. ->where($map)
  325. ->order($sort, $order)
  326. ->limit($offset, $limit)
  327. ->select();
  328. if($list){
  329. foreach ($list as $k=>$v){
  330. $list[$k]['createtime']=date('Y-m-d H:i',$v['createtime']);
  331. if(isset($v['users']['avatar'])){
  332. if(strpos($v['users']['avatar'],'http') !== false){
  333. $list[$k]['avatar']=$v['users']['avatar'];
  334. }else{
  335. if($v['users']['avatar']){
  336. $list[$k]['avatar']= $config['imgurl'].$v['users']['avatar'];
  337. }else{
  338. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  339. }
  340. }
  341. }else{
  342. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  343. }
  344. }
  345. }
  346. $result = array("total" => $total, "rows" => $list);
  347. return json($result);
  348. }
  349. }