PageRenderTime 26ms CodeModel.GetById 27ms RepoModel.GetById 0ms app.codeStats 0ms

/KPPW/task/reward/control/release.php

https://github.com/kazaff/destoon
PHP | 399 lines | 312 code | 85 blank | 2 comment | 45 complexity | dfc9a02a0fae3e7e8f450639fb010bbf MD5 | raw file
  1. <?php
  2. if (! defined ( 'IN_KEKE' )) {
  3. exit ( 'Access Denied' );
  4. }
  5. Func_comm_class::check_login('index.php?do=login');
  6. $xs_config = Cache_ext_Class::getConfig('xs_task');
  7. $user_info = Func_comm_class::getuserinfo($uid);
  8. $access_rule = Cache_ext_Class::getRule("taskpub",$uid,$user_info,$model_id);
  9. if ($access_rule<0){
  10. Func_comm_class::showmessage("消息提示","index.php?do=release",5,"您所在的用户组不允许发布此类型的任务","error");
  11. }
  12. elseif($access_rule>0){
  13. $count = db_factory::query("select count(*) count from ".TABLEPRE."witkey_task where uid=$uid and model_id = $model_id and start_time <".time()-24*3600);
  14. $count = $count[0]['count'];
  15. if ($count>=$access_rule){
  16. Func_comm_class::showmessage("消息提示","index.php?do=release",5,"您所在的用户组每天只允许发布{$access_rule}个{$model_list[$model_id]['model_name']}","error");
  17. }
  18. }
  19. $task_obj = new Keke_witkey_task_class();
  20. $file_obj = new Keke_witkey_file_class();
  21. $indus_obj = new Keke_witkey_industry_class();
  22. $finance_obj = new Keke_witkey_finance_class();
  23. $finance_objc = new Keke_witkey_finance_class();
  24. $finance_obj->setFina_type(1);
  25. $finance_obj->setUid($uid);
  26. $finance_obj->setUsername($username);
  27. $finance_objc->setFina_type(1);
  28. $finance_objc->setUid($uid);
  29. $finance_objc->setUsername($username);
  30. $basic_config = Cache_ext_Class::getConfig('basic');
  31. $upload_size = Func_comm_class::formatBytes(UPLOAD_MAXSIZE);
  32. $indus_obj->setWhere(' indus_pid = 0 and indus_type=1 order by listorder asc ');
  33. $indus_p_arr = $indus_obj->query_keke_witkey_industry();
  34. $user_info['credit'] = $basic_config['credit_is_allow']==1?$user_info['credit']:0;
  35. if(Func_comm_class::submitcheck ('formhash')){
  36. $task_cash = intval($txt_task_cash)+0;
  37. $prom_cash = $ckb_is_prom==1?intval($txt_prom_cash)+0:0;
  38. $user_credit = floatval($user_info['credit'])+0;
  39. $user_balance = floatval($user_info['balance'])+0;
  40. $_SESSION['form_hash'] = $_POST['form_hash'];
  41. switch ($hdn_paystatus) {
  42. case 'confirm':
  43. if($user_credit+$user_balance < $task_cash+$prom_cash)die(Func_comm_class::showmessage('非法提交!'));
  44. $sy_credit = $user_credit-$task_cash;
  45. if($sy_credit>0)
  46. {
  47. $task_obj->setCredit_cost($task_cash);
  48. db_factory::execute("update " .TABLEPRE."witkey_space set credit = credit-{$task_cash} where uid ={$uid}");
  49. $finance_obj->setFina_credit($task_cash);
  50. $u_credit_arr = db_factory::query("select credit from ".TABLEPRE."witkey_space where uid =".$uid);
  51. $user_credit = $basic_config['credit_is_allow']==1?$u_credit_arr[0]['credit']:0;
  52. $finance_obj->setFina_narrate(4);
  53. $finance_obj->setUser_credit($user_credit);
  54. }
  55. else
  56. {
  57. $task_obj->setCredit_cost($user_credit);
  58. $task_obj->setCash_cost(abs($sy_credit));
  59. db_factory::execute("update " .TABLEPRE."witkey_space set credit = credit-{$user_credit},balance = balance-".abs($sy_credit)." where uid ={$uid}");
  60. $finance_obj->setFina_cash(abs($sy_credit));
  61. $finance_obj->setFina_credit($user_credit);
  62. $u_space_arr = db_factory::query("select credit,balance from ".TABLEPRE."witkey_space where uid =".$uid);
  63. $user_credit = $basic_config['credit_is_allow']==1?$u_space_arr[0]['credit']:0;
  64. $finance_obj->setFina_narrate(4);
  65. $finance_obj->setUser_balance($u_space_arr[0]['balance']);
  66. $finance_obj->setUser_credit($user_credit);
  67. }
  68. if($ckb_is_prom==1&&$txt_prom_cash>0)
  69. {
  70. $sy_creditt = $user_credit - $prom_cash;
  71. if($sy_creditt>0)
  72. {
  73. $task_obj->setProm_credit($prom_cash);
  74. db_factory::execute("update " .TABLEPRE."witkey_space set credit = credit-{$prom_cash} where uid ={$uid}");
  75. $finance_objc->setFina_credit($prom_cash);
  76. $u_credit_arr = db_factory::query("select credit from ".TABLEPRE."witkey_space where uid =".$uid);
  77. $finance_objc->setFina_narrate(5);
  78. $finance_objc->setUser_credit($u_credit_arr[0]['credit']);
  79. }else
  80. {
  81. $task_obj->setProm_credit($ssy_creditt);
  82. $task_obj->setProm_cash(abs($sy_creditt));
  83. db_factory::execute("update " .TABLEPRE."witkey_space set credit = credit-".$user_credit.",balance = balance-".abs($sy_creditt)." where uid ={$uid}");
  84. $finance_objc->setFina_cash(abs($sy_creditt));
  85. $finance_objc->setFina_credit($user_credit);
  86. $u_space_arr = db_factory::query("select credit,balance from ".TABLEPRE."witkey_space where uid =".$uid);
  87. $finance_objc->setFina_narrate(5);
  88. $finance_objc->setUser_balance($u_space_arr[0]['balance']);
  89. $finance_objc->setUser_credit($u_space_arr[0]['credit']);
  90. }
  91. }
  92. if($task_cash >=$xs_config[audit_cash])
  93. {
  94. $task_obj->setTask_status(2);
  95. $finance_obj->setSite_profit($task_cash*$xs_config['deduct_scale']/100);
  96. }
  97. else
  98. {
  99. $task_obj->setTask_status(1);
  100. $audit_status = 1;
  101. }
  102. break;
  103. case 'online':
  104. $task_obj->setTask_status(0);
  105. break;
  106. case 'wait':
  107. $task_obj->setTask_status(0);
  108. break;
  109. }
  110. $task_obj->setTask_cash($task_cash);
  111. $txt_task_title = Func_comm_class::str_filter($txt_task_title);
  112. $task_obj->setTask_title($txt_task_title);
  113. $task_obj->setModel_id(1);
  114. $task_obj->setTask_mode($slt_task_mode);
  115. if($slt_task_mode==3)
  116. {
  117. $task_obj->setWork_count(intval($gj_num));
  118. $task_obj->setSingle_cash(floatval($gj_money));
  119. }
  120. if($user_info[isvip]==1){
  121. $task_obj->setIsvip(1);
  122. }
  123. $task_obj->setStart_time(time());
  124. $task_obj->setEnd_time(time()+intval($txt_task_day)*24*3600);
  125. $task_obj->setIndus_id($slt_indus_id);
  126. $tar_content = Func_comm_class::str_filter($tar_content);
  127. $task_obj->setTask_desc($tar_content);
  128. $task_obj->setUid($uid);
  129. $task_obj->setUsername($username);
  130. $task_obj->setIs_prom($ckb_is_prom==1?1:2);
  131. $task_obj->setProm_count($prom_cash);
  132. $kf_arr = Cache_ext_Class::gettabledata('witkey_space',' group_id = 7','',NULL);
  133. $kf_arr_count = count($kf_arr);
  134. $randno = rand(0,$kf_arr_count-1);
  135. $kf_uid = $kf_arr[$randno][uid]?$kf_arr[$randno][uid]:ADMIN_UID;
  136. $task_obj->setKf_uid($kf_uid);
  137. $task_obj->setCity($slt_city?"$slt_province,$slt_city":"$slt_province");
  138. $res = $task_obj->create_keke_witkey_task();
  139. //upload attachment save to database
  140. if($hdn_att_file){
  141. $file_arr = array_filter(explode(',',$hdn_att_file));
  142. foreach ($file_arr as $v) {
  143. $file_obj->setFile_id($v);
  144. $file_obj->setUid($uid);
  145. $file_obj->setUsername($username);
  146. $file_obj->setTask_id($res);
  147. $file_obj->edit_keke_witkey_file();
  148. }
  149. }
  150. if($hdn_paystatus == 'confirm')
  151. {
  152. $finance_obj->setTask_id($res);
  153. $finance_obj->setFina_time(time());
  154. $finance_obj->create_keke_witkey_finance();
  155. if($ckb_is_prom==1){
  156. $finance_objc->setTask_id($res);
  157. $finance_objc->setFina_time(time());
  158. $finance_objc->create_keke_witkey_finance();
  159. }
  160. else
  161. {
  162. unset($finance_objc);
  163. }
  164. }
  165. $mulit_mode_obj = new Keke_witkey_task_prize_class();
  166. if($slt_task_mode==2)
  167. {
  168. for($i=1;$i<=$hdn_mulit;$i++)
  169. {
  170. $mulit_mode_obj->setTask_id($res);
  171. $mulit_mode_obj->setPrize($i);
  172. $mulit_mode_obj->setPrize_count($_POST['txt_pople_'.$i]);
  173. $mulit_mode_obj->setPrize_cash($_POST['txt_avg_money_'.$i]);
  174. $mulit_mode_obj->create_keke_witkey_task_prize();
  175. }
  176. }
  177. if($res){
  178. db_factory::execute("update ".TABLEPRE."witkey_space set pub_num = pub_num+1 where uid=$uid ");
  179. switch ($hdn_paystatus) {
  180. case 'confirm':
  181. if ($task_obj->getTask_status()==2){
  182. $message_obj = new Message_Class();
  183. if ($message_obj->validate('task_pub_isnotice')){
  184. $message_obj->setUid($uid);
  185. $message_obj->setUsername($username);
  186. $message_obj->setValue('任务编号',$res);
  187. $message_obj->setValue('任务标题',$txt_task_title);
  188. $url= "<a href =\'index.php?do=task&task_id=$res\' target=\'_blank\' >$txt_task_title</a>";
  189. $message_obj->setValue ( '任务链接', $url );
  190. $message_obj->setValue('开始时间',date('Y-m-d H:i:s',time()));
  191. $message_obj->setValue('结束时间',date('Y-m-d H:i:s',time()+intval($txt_task_day)*24*3600));
  192. $message_obj->setTitle('任务发布成功');
  193. $message_obj->send();
  194. }
  195. Func_comm_class::feed_add('<a href="index.php?do=space&member_id='.$uid.'" target="_blank">'.$username.'</a>发布了任务 <a target="_blank" href="index.php?do=task&task_id='.$res.'">'.$task_obj->getTask_title().'</a>',$uid,$username,'pub_task',$res);
  196. Func_comm_class::update_score_value($uid,'pub_task',2);
  197. }
  198. if($xs_config['vip_recommend']==1 && $audit_status != 1){
  199. $space_obj = new Keke_witkey_space_class();
  200. $space_obj->setWhere(" isvip = 1 and indus_id ='$slt_indus_id' and username != '$username'");
  201. $user_arr = $space_obj->query_keke_witkey_space();
  202. $js = '悬赏任务发布成功!<br>';
  203. if(count($user_arr))
  204. {
  205. $js .= '<script>
  206. $(function(){
  207. showWindow("invite","index.php?do=release&model_id='.$model_id.'&ajax=invite&indus_id='.$slt_indus_id.'&task_id='.$res.'&task_title='.$txt_task_title.'");
  208. })
  209. </script>';
  210. $js.='<p>
  211. <a href="index.php?do=release&model_id='.$model_id.'">继续发布任务</a> <a href="index.php?do=task_list&model_id='.$model_id.'">返回任务大厅</a>
  212. </P>';
  213. Func_comm_class::showmessage('任务发布提示','index.php?do=user',9999999,$js);
  214. }else{
  215. Func_comm_class::showmessage('任务发布提示','index.php?do=task_list&model_id='.$model_id,2,'任务发布成功!');
  216. }
  217. }else if($audit_status == 1) {
  218. Func_comm_class::showmessage('任务发布提示','index.php?do=task_list&model_id='.$model_id,5,'您的任务付款成功,此任务已进入后台审核流程,审核通过后才可看到该任务<p>
  219. <a href="index.php?do=release&model_id='.$model_id.'">继续发布任务</a> <a href="index.php?do=task_list&model_id='.$model_id.'">返回任务大厅</a>
  220. </P>');
  221. }else{
  222. Func_comm_class::showmessage('任务发布提示','index.php?do=user',3,'悬赏任务发布成功!');
  223. }
  224. break;
  225. case 'online':
  226. $pay_cash = $task_cash-($user_balance+$user_credit);
  227. Func_comm_class::showmessage('任务发布提示','index.php?do=user&view=cash&type=task&obj_id='.$res.'&cash='.$pay_cash,2,sprintf('您需要在线支付%10.2f元',$pay_cash));
  228. break;
  229. default:
  230. Func_comm_class::showmessage('任务发布提示','index.php?do=user',3,'您的任务已经保存到未付款的任务中...');
  231. break;
  232. }
  233. }
  234. }
  235. $reward_day_rule = Cache_ext_Class::gettabledata("witkey_day_rule","model_id='{$model_info['model_id']}'","rule_cash",null,"day_rule_id");
  236. $day_rul_str = "";
  237. foreach ($reward_day_rule as $value) {
  238. $day_rul_str .= $value['rule_cash']."元以上,任务的最大天数为".$value['rule_day']."天<br>";
  239. }
  240. if(isset($ajax))
  241. {
  242. $msg="";
  243. $status = 0;
  244. switch ($ajax) {
  245. case "getmaxday":
  246. if($task_cash>=$xs_config[task_min_cash]){
  247. $max_day = Func_comm_class::getShowDay($task_cash,$model_id);
  248. Func_comm_class::echojson($max_day,1);
  249. }else
  250. {
  251. Func_comm_class::echojson("任务最小金额不能低于".$xs_config[task_min_cash],0);
  252. }
  253. die();
  254. break;
  255. case "confirm":
  256. $title ="悬赏任务确定";
  257. $service_cash = $task_cash_val*$xs_config['deduct_scale']/100;
  258. require_once $template_obj->template('task/'.$model_info['model_dir'].'/tpl/'.$_K['template'].'/confirm');
  259. die();
  260. break;
  261. case 'invite':
  262. $indus_id = $indus_id?$indus_id:-1;
  263. $space_obj = new Keke_witkey_space_class();
  264. $space_obj->setWhere(" isvip = 1 and indus_id ={$indus_id} and username != '$username'");
  265. $user_arr = $space_obj->query_keke_witkey_space();
  266. $title = "推荐VIP名单";
  267. if(count($user_arr))
  268. {
  269. require_once $template_obj->template('task/'.$model_info['model_dir'].'/tpl/'.$_K['template'].'/invite');
  270. }
  271. die();
  272. break;
  273. case 'sms':
  274. global $_K;
  275. if($uids)
  276. {
  277. $uid_arr = explode(',',$uids);
  278. if($_K['charset'] == 'GBK'){
  279. $task_title = Func_comm_class::utftogbk($task_title);
  280. $usernames = Func_comm_class::utftogbk($usernames);
  281. }
  282. $username_arr = explode(',',$usernames);
  283. $sms_conent = $username.'于'.date('Y年-m月-d日',time()).'发布了悬赏任务<< <a href="index.php?do=task&task_id='.$task_id.'" target="_blank" >'.$task_title.' </a> >> 特邀请您参与投标!';
  284. $sql = "insert into ".TABLEPRE."witkey_message (recive_uid,recive_username,title,content,on_time) values";
  285. for ($i=0;$i<count($uid_arr);$i++)
  286. {
  287. if ($i){
  288. $sql .= ',';
  289. }
  290. $sql .= "($uid_arr[$i],'$username_arr[$i]','悬赏任务邀请通知!','$sms_conent',".time().")";
  291. }
  292. $res = db_factory::execute($sql);
  293. if($res){
  294. Func_comm_class::echojson('',1);
  295. }else{
  296. Func_comm_class::echojson('',0);
  297. }
  298. }
  299. die();
  300. break;
  301. //delete attachment in database and io
  302. case 'del_att':
  303. if (Cache_ext_Class::gettabledata("witkey_file","file_id = '$fid' and uid = $uid")){
  304. $b = Func_comm_class::del_att_file($fid);
  305. if($b){
  306. Func_comm_class::echojson(1);
  307. }else {
  308. Func_comm_class::echojson(0);
  309. }
  310. }
  311. break;
  312. }
  313. }
  314. require_once $template_obj->template ( 'task/'.$model_info['model_dir'].'/tpl/'.$_K['template'].'/release' );