c5_labsci/web/ambap/me.php

1074 lines
41 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace web\ambap;
class me {
public static function json_user_bank_change() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$bankno = $post->get('bankno');
$bankname = $post->get('bankname');
$bankaccount = $post->get('bankaccount');
$bankcode = $post->get('bankcode');
$updata = array();
$updata['bankno'] = $bankno;
$updata['bankname'] = $bankname;
$updata['bankaccount'] = $bankaccount;
$updata['bankcode'] = $bankcode;
$csql = new \ciy\sql('ap_usr_ext');
$csql->where('id', $rsuser['id']);
$extrow = $db->getone($csql);
if (is_array($extrow)) {
if ($db->update($csql, $updata) === false)
return errjson('ext更新失败:' . $db->error);
} else {
$updata['id'] = $rsuser['id'];
if ($db->insert($csql, $updata) === false)
return errjson('ext新增失败:' . $db->error);
}
return succjson();
}
public static function json_cashout_lst_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$query = $post->get('query');
$csql = new \ciy\sql('ap_cash_out');
$csql->where('vuser', $rsuser['id']);
$liid = $post->getint('liid');
if ($liid > 0)
$csql->where('cashstatus', $liid);
$csql->order(objstr($query, 'order', 'id desc'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
return succjson($ret);
}
public static function json_cashout_cash_inv() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('id');
$invcode = $post->get('invcode');
$invfile = $post->get('invfile');
if (empty($invcode))
return errjson('请填写发票编号');
if (empty($invfile))
return errjson('请上传发票');
$csql = new \ciy\sql('ap_cash_out');
$csql->where('vuser', $rsuser['id']);
$csql->where('id', $id);
$cashoutrow = $db->getone($csql);
if (!is_array($cashoutrow))
return errjson('提现不存在');
if ($cashoutrow['cashstatus'] != 20)
return errjson('提现不是已通过状态');
try {
$db->begin();
$updata = array();
$updata['cashstatus'] = 30;
$updata['invcode'] = $invcode;
$updata['invfile'] = $invfile;
$updata['cashtimes'] = tostamp();
$csql = new \ciy\sql('ap_cash_out');
$csql->where('id', $id);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
$updata['id'] = $id;
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
return errjson($ex->getMessage());
}
$ret['data'] = $updata;
return succjson($ret);
}
public static function json_cashout_cash_wxrecvpay() {
global $db;
global $_token;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('id');
$csql = new \ciy\sql('ap_cash_out');
$csql->where('id', $id);
$cashrow = $db->getone($csql);
if (!is_array($cashrow))
return errjson('提现不存在');
if ($cashrow['cashstatus'] == 21) {
if ($cashrow['cashtimes'] > tostamp() - 86400)
return errjson('提现打款进程被打断。24小时后重新操作请务必点击收款');
} else if ($cashrow['cashstatus'] != 20)
return errjson('提现不是已通过状态');
if ($cashrow['vuser'] != $rsuser['id'])
return errjson('提现用户不匹配');
$updata = array();
$updata['cashstatus'] = 21;
$updata['cashtimes'] = tostamp();
$csql = new \ciy\sql('ap_cash_out');
$csql->where('id', $id);
if ($db->update($csql, $updata) === false)
return errjson('更新失败');
$cashmoney = $cashrow['cashmoney'];
if ($cashrow['taxmoney'] > 0)
$cashmoney -= $cashrow['taxmoney'];
$param = array();
$param['out_bill_no'] = 'TB' . date('ymd') . '8' . $id;
$param['transfer_scene_id'] = '1005';
$param['openid'] = $rsuser['wxminaid'];
$param['notify_url'] = $_token['maindomain'] . 'wxpay.transfer';
$param['transfer_remark'] = '佣金奖励';
$param['transfer_amount'] = toint($cashmoney);
$param['transfer_scene_report_infos'] = array();
$param['transfer_scene_report_infos'][] = array('info_type' => '岗位类型', 'info_content' => '采集员');
$param['transfer_scene_report_infos'][] = array('info_type' => '报酬说明', 'info_content' => '用户主动申请提现');
$weixinapi = new \web\api\weixin(1);
$wxret = $weixinapi->transfer($param);
if (is_string($wxret))
return errjson($wxret);
$ret['transfer'] = $wxret;
return succjson($ret);
}
private static function caltax($money) {
$threshold = 500000;
$taxable_income = $money - $threshold;
if ($taxable_income <= 0)
return 0;
if ($taxable_income <= 300000) {
return toint($taxable_income * 0.03);
} else if ($taxable_income <= 1200000) {
return toint($taxable_income * 0.1 - 21000);
} else if ($taxable_income <= 2500000) {
return toint($taxable_income * 0.2 - 141000);
} else if ($taxable_income <= 3500000) {
return toint($taxable_income * 0.25 - 266000);
} else if ($taxable_income <= 5500000) {
return toint($taxable_income * 0.3 - 441000);
} else if ($taxable_income <= 8000000) {
return toint($taxable_income * 0.35 - 716000);
} else {
return toint($taxable_income * 0.45 - 1516000);
}
}
public static function json_cashout_cash_submit() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$cashtype = $post->getint('cashtype');
$cash = $post->getint('cash');
if ($rsuser['mycashmoney'] < $cash)
return errjson('余额不足');
$csql = new \ciy\sql('ap_cash_out');
$csql->where('vuser', $rsuser['id']);
$csql->where('cashstatus<90');
$chkrow = $db->getone($csql);
if (is_array($chkrow))
return errjson('有未处理提现');
$taxperson = true;
if ($cashtype == 1) {
$csql = new \ciy\sql('ap_usr_ext');
$csql->where('id', $rsuser['id']);
$extrow = $db->getone($csql);
if (!is_array($extrow))
return errjson('用户信息不存在');
if (empty($extrow['truename']))
return errjson('请先完善个人信息');
if ($extrow['truename'] != $extrow['bankaccount'])
$taxperson = false;
}
$taxmoney = -1;
if ($taxperson) {
$monthstart = strtotime(date('Y-m-01'));
$csql = new \ciy\sql('ap_cash_out');
$csql->where('vuser', $rsuser['id']);
$csql->where('cashstatus=100');
$csql->where('addtimes>=', $monthstart);
$cashoutrows = $db->get($csql);
$totalcash = 0;
$totaltax = 0;
foreach ($cashoutrows as $cashoutrow) {
$totalcash += $cashoutrow['cashmoney'];
$totaltax += $cashoutrow['taxmoney'];
}
$taxmoney = self::caltax($totalcash + $cash) - $totaltax;
}
try {
$db->begin();
\web\cwebcomon::usercashoe($db, 11, $rsuser['id'], -$cash, '提现');
$updata = array();
$updata['cashstatus'] = 10;
$updata['cashmoney'] = $cash;
$updata['taxmoney'] = $taxmoney;
$updata['cashtype'] = $cashtype;
$updata['vuser'] = $rsuser['id'];
$updata['addtimes'] = tostamp();
if ($cashtype == 1) {
$updata['bankaccount'] = $extrow['bankaccount'];
$updata['bankno'] = $extrow['bankno'];
$updata['bankname'] = $extrow['bankname'];
$updata['bankcode'] = $extrow['bankcode'];
}
$csql = new \ciy\sql('ap_cash_out');
if ($db->insert($csql, $updata) === false)
throw new \Exception('创建失败:' . $db->error);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
return errjson($ex->getMessage());
}
return succjson();
}
public static function json_cashout_cash_init() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
$csql->column('myinvmoney,mycashmoney,mybondmoney');
$ret['user'] = $db->getone($csql);
$csql = new \ciy\sql('ap_cash_out');
$csql->where('vuser', $rsuser['id']);
$csql->where('cashstatus<90');
$ret['cashs'] = $db->get($csql);
$ret['tip'] = '[MD]
每天可提交1次以元为单位申请。
非对公提现,平台代扣缴劳务个税。
多次提现以本月1日开始累计计算个税。
由于微信支付限制,申请提现平台审核通过后,需手动点击收款操作。
';
return succjson($ret);
}
public static function json_user_info_change() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$name = $post->get('name');
$icon = $post->get('icon');
$mobile = $post->get('mobile');
$wxno = $post->get('wxno');
$email = $post->get('email');
if (empty($name))
return errjson('姓名不能为空');
if (!ismobile($mobile))
return errjson('手机号码格式不正确');
if (empty($email)) {
if (ismail($email))
return errjson('邮箱格式不正确');
}
$bad = \web\api\thirdapi::checkbadword_wx($name, $rsuser);
if (is_string($bad))
return errjson('昵称' . $bad);
$bad = \web\api\thirdapi::checkbadmedia_wx(file_stor($icon), $rsuser, 2);
if (is_string($bad))
return errjson('头像' . $bad);
try {
$db->begin();
$updata = array();
$updata['name'] = $name;
$updata['icon'] = $icon;
$updata['mobile'] = $mobile;
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
$updata = array();
$updata['wxno'] = $wxno;
$updata['email'] = $email;
$csql = new \ciy\sql('ap_usr_ext');
$csql->where('id', $rsuser['id']);
$extrow = $db->getone($csql);
if (is_array($extrow)) {
if ($db->update($csql, $updata) === false)
throw new \Exception('ext更新失败:' . $db->error);
} else {
$updata['id'] = $rsuser['id'];
if ($db->insert($csql, $updata) === false)
throw new \Exception('ext新增失败:' . $db->error);
}
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
return errjson($ex->getMessage());
}
return succjson();
}
public static function json_cashie_lst_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$query = $post->get('query');
$csql = new \ciy\sql('ap_cash_ie');
$csql->where('vuser', $rsuser['id']);
$liid = $post->getint('liid');
if ($liid == 1)
$csql->where('iemoney>0');
if ($liid == 2)
$csql->where('iemoney<0');
$csql->order(objstr($query, 'order', 'id desc'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
return succjson($ret);
}
public static function json_cashoe_lst_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$query = $post->get('query');
$csql = new \ciy\sql('ap_cash_oe');
$csql->where('vuser', $rsuser['id']);
$liid = $post->getint('liid');
if ($liid == 1)
$csql->where('oemoney>0');
if ($liid == 2)
$csql->where('oemoney<0');
$csql->order(objstr($query, 'order', 'id desc'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
return succjson($ret);
}
public static function json_cashin_lst_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$query = $post->get('query');
$csql = new \ciy\sql('ap_cash_in');
$csql->where('paytimes>0');
$csql->where('vuser', $rsuser['id']);
$csql->order(objstr($query, 'order', 'id desc'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
return succjson($ret);
}
public static function json_cash_charge_chk() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('orderid');
for ($i = 0; $i < 10; $i++) {
$csql = new \ciy\sql('ap_cash_in');
$csql->where('id', $id);
$buyrow = $db->getone($csql);
if (!is_array($buyrow))
return errjson('订单不存在');
if ($buyrow['paytimes'] > 0)
return succjson();
sleep(1);
}
return errjson('充值不成功,请联系客服');
}
public static function json_cash_charge_pay() {
global $db;
global $_token;
$rsuser = verifyfast();
$post = new \ciy\post();
$money = $post->getint('money');
$updata = array();
$updata['name'] = '';
$updata['inmoney'] = $money;
$updata['vuser'] = $rsuser['id'];
$updata['addtimes'] = tostamp();
$updata['paytimes'] = 0;
$csql = new \ciy\sql('ap_cash_in');
if ($db->insert($csql, $updata) === false)
return errjson('订单创建失败:' . $db->error);
$orderid = $db->insert_id();
$param = array();
$param['description'] = '充值';
$param['out_trade_no'] = 'IN' . date('ymd') . '2' . $orderid;
$param['notify_url'] = $_token['maindomain'] . 'wxpay.charge';
$param['amount'] = array();
$param['amount']['total'] = (int)$money;
$param['payer'] = array();
$param['payer']['openid'] = $rsuser['wxminaid'];
$weixinapi = new \web\api\weixin(1);
$retpay = $weixinapi->pay($param);
if (is_string($retpay))
return errjson($retpay);
$retpay['orderid'] = $orderid;
return succjson($retpay);
}
public static function json_cash_charge_init() {
global $db;
$csql = new \ciy\sql('ap_cash_bundle');
$ret['charges'] = $db->get($csql);
return succjson($ret);
}
public static function json_pnt_buylst_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$query = $post->get('query');
$csql = new \ciy\sql('ap_pnt_buy');
$csql->where('vuser', $rsuser['id']);
$csql->where('paytimes>0');
$csql->order(objstr($query, 'order', 'id desc'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
return succjson($ret);
}
public static function json_pnt_buynow_chk() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('orderid');
for ($i = 0; $i < 10; $i++) {
$csql = new \ciy\sql('ap_pnt_buy');
$csql->where('id', $id);
$buyrow = $db->getone($csql);
if (!is_array($buyrow))
return errjson('订单不存在');
if ($buyrow['paytimes'] > 0)
return succjson();
sleep(1);
}
return errjson('支付不成功,请联系客服');
}
public static function json_pnt_buynow_pay() {
global $db;
global $_token;
$rsuser = verifyfast();
//建立订单,支付
$post = new \ciy\post();
$id = $post->getint('id');
$csql = new \ciy\sql('ap_pnt_bundle');
$csql->where('id', $id);
$bundlerow = $db->getone($csql);
if (!is_array($bundlerow))
return errjson('购买项目不存在');
$payprice = $bundlerow['buymoney'];
$updata = array();
$updata['pnt'] = $bundlerow['buypnt'];
$updata['buypntmoney'] = $payprice;
$updata['vuser'] = $rsuser['id'];
$updata['addtimes'] = tostamp();
$csql = new \ciy\sql('ap_pnt_buy');
if ($db->insert($csql, $updata) === false)
return errjson('订单创建失败:' . $db->error);
$orderid = $db->insert_id();
$param = array();
$param['description'] = '购买金币';
$param['out_trade_no'] = 'PT' . date('ymd') . '9' . $orderid;
$param['notify_url'] = $_token['maindomain'] . 'wxpay.pay_pnt';
$param['amount'] = array();
$param['amount']['total'] = (int)$payprice;
$param['payer'] = array();
$param['payer']['openid'] = $rsuser['wxminaid'];
$weixinapi = new \web\api\weixin(1);
$retpay = $weixinapi->pay($param);
if (is_string($retpay))
return errjson($retpay);
$retpay['orderid'] = $orderid;
return succjson($retpay);
}
public static function json_pnt_buynow_init() {
global $db;
$csql = new \ciy\sql('ap_pnt_bundle');
$ret['buys'] = $db->get($csql);
return succjson($ret);
}
public static function json_pnt_lst_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$query = $post->get('query');
$csql = new \ciy\sql('ap_pnt_record');
$csql->where('vuser', $rsuser['id']);
$csql->order(objstr($query, 'order', 'id desc'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
return succjson($ret);
}
public static function json_safe_ccub_init() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('dao_ccub_apply');
$csql->where('vuser', $rsuser['id']);
$csql->order('id desc');
$ret['data'] = $db->getone($csql);
if (is_array($ret['data']))
$ret['data']['cciy'] = $ret['data']['cciy'] . '';
$ret['tip'] = '[MD]
打造一人一码的唯一标识。
申请标识后可参与众产投票。
#主体国籍
#多国身份
在非主体国拥有居留、永居、入籍等身份。
与普通公民有同种社会标识的情况。
';
return succjson($ret);
}
public static function json_safe_ccub_submit() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$country = $post->get('country');
if (empty($country))
return errjson('主体国籍不能为空');
$dualcitizen = $post->getint('dualcitizen');
$csql = new \ciy\sql('ap_usr_ext');
$csql->where('id', $rsuser['id']);
$usrextrow = $db->getone($csql);
if (!is_array($usrextrow))
return errjson('用户不存在');
$updata = array();
$updata['auditstatus'] = 20;
$updata['vuser'] = $rsuser['id'];
$updata['name'] = $usrextrow['truename'];
$updata['idid'] = $usrextrow['idid'];
$updata['country'] = $country;
$updata['dualcitizen'] = $dualcitizen;
$updata['addtimes'] = tostamp();
$csql = new \ciy\sql('dao_ccub_apply');
if ($db->insert($csql, $updata) === false)
return errjson('新增失败:' . $db->error);
return succjson();
}
public static function json_user_show_more() {
global $db;
$ret['data'] = null;
return succjson($ret);
}
public static function json_safe_real_init() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('ap_usr_real_apply');
$csql->where('vuser', $rsuser['id']);
$csql->order('id desc');
$ret['data'] = $db->getone($csql);
$ret['inputtype'] = 1;
return succjson($ret);
}
public static function json_safe_real_submit() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$name = $post->get('name');
if (empty($name))
return errjson('姓名不能为空.');
$idid = idcard($post->get('idid'));
if (is_string($idid))
return errjson($idid);
$idcard1 = $post->get('idcard1');
$idcard2 = $post->get('idcard2');
$updata = array();
$updata['auditstatus'] = 20;
$updata['vuser'] = $rsuser['id'];
$updata['name'] = $name;
$updata['idid'] = $idid['code'];
$updata['idcard1'] = $idcard1;
$updata['idcard2'] = $idcard2;
$updata['addtimes'] = tostamp();
$csql = new \ciy\sql('ap_usr_real_apply');
if ($db->insert($csql, $updata) === false)
return errjson('新增失败:' . $db->error);
return succjson();
}
public static function json_invoicetitle_del() {
global $db;
$rsuser = verifyfast();
if ($rsuser === null)
return errjson('您还未登陆', 2);
$post = new \ciy\post();
$id = $post->getint('id');
$csql = new \ciy\sql('ap_invoicetitle');
$csql->where('vuser', $rsuser['id']);
$csql->where('id', $id);
if ($db->delete($csql) === false)
return errjson('删除失败:' . $db->error);
return succjson();
}
public static function json_invoicetitle_edit() {
global $db;
$rsuser = verifyfast();
if ($rsuser === null)
return errjson('您还未登陆', 2);
$post = new \ciy\post();
$id = $post->getint('id');
if ($id > 0) {
$csql = new \ciy\sql('ap_invoicetitle');
$csql->where('vuser', $rsuser['id']);
$csql->where('id', $id);
$shiprow = $db->getone($csql);
if (!is_array($shiprow))
return errjson('抬头不存在' . $id);
}
$name = $post->get('name');
$addr = $post->get('addr');
$phone = $post->get('phone');
$taxnumber = $post->get('taxnumber');
$bankname = $post->get('bankname');
$bankaccount = $post->get('bankaccount');
try {
$db->begin();
$updata = array();
$updata['name'] = $name;
$updata['addr'] = $addr;
$updata['taxnumber'] = $taxnumber;
$updata['phone'] = $phone;
$updata['bankname'] = $bankname;
$updata['bankaccount'] = $bankaccount;
$updata['uptimes'] = tostamp();
$csql = new \ciy\sql('ap_invoicetitle');
if ($id > 0) {
$csql->where('id', $id);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
} else {
$updata['vuser'] = $rsuser['id'];
if ($db->insert($csql, $updata) === false)
throw new \Exception('新增失败:' . $db->error);
$id = $db->insert_id();
}
$updata['id'] = $id;
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
return errjson($ex->getMessage());
}
$ret['data'] = $updata;
return succjson($ret);
}
public static function json_invoicetitle_list() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('ap_invoicetitle');
$csql->where('vuser', $rsuser['id']);
$csql->order('id desc');
$ret['list'] = $db->get($csql);
return succjson($ret);
}
public static function json_invoice_lst_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$query = $post->get('query');
$csql = new \ciy\sql('ap_invoicing');
$csql->where('vuser', $rsuser['id']);
$liid = $post->getint('liid');
if ($liid > 0)
$csql->where('auditstatus', $liid);
$csql->order(objstr($query, 'order', 'id desc'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
$ret['ap_invoicedetail'] = getrelation($db, $rows, 'ap_invoicedetail', 'invoicedetailid');
return succjson($ret);
}
public static function json_invoicing_submit() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$invoicetitleid = $post->getint('invoicetitleid');
$invoicedetailid = $post->getint('invoicedetailid');
$money = $post->getint('money');
if ($money < 100)
return errjson('需填开票金额');
if ($rsuser['myinvmoney'] < $money)
return errjson('可开票金额不足');
$csql = new \ciy\sql('ap_invoicetitle');
$csql->where('id', $invoicetitleid);
$invoicerow = $db->getone($csql);
if (!is_array($invoicerow))
return errjson('开票抬头不存在');
try {
$db->begin();
$updata = array();
$updata['myinvmoney'] = array('myinvmoney-' . $money);
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新账户失败:' . $db->error);
$updata = array();
$updata['invoicemoney'] = $money;
$updata['invoicetitleid'] = $invoicetitleid;
$updata['invoicedetailid'] = $invoicedetailid;
$updata['vuser'] = $rsuser['id'];
$updata['addtimes'] = tostamp();
$updata['auditstatus'] = 20;
$updata['name'] = $invoicerow['name'];
$updata['taxnumber'] = $invoicerow['taxnumber'];
$updata['addr'] = $invoicerow['addr'];
$updata['phone'] = $invoicerow['phone'];
$updata['bankname'] = $invoicerow['bankname'];
$updata['bankaccount'] = $invoicerow['bankaccount'];
$csql = new \ciy\sql('ap_invoicing');
if ($db->insert($csql, $updata) === false)
throw new \Exception('创建失败:' . $db->error);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
return errjson($ex->getMessage());
}
return succjson();
}
public static function json_invoicing_init() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
$csql->column('myinvmoney');
$ret['user'] = $db->getone($csql);
$csql = new \ciy\sql('ap_invoicedetail');
$csql->column('id,name');
$ret['details'] = $db->get($csql);
$ret['tip'] = '[MD]
可联系客服签订相关合同。
';
return succjson($ret);
}
public static function json_user_shipaddr_list() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('ap_usr_shipaddr');
$csql->where('vuser', $rsuser['id']);
$csql->order('id desc');
$ret['list'] = $db->get($csql);
return succjson($ret);
}
public static function json_user_shipaddr_edit() {
global $db;
$rsuser = verifyfast();
if ($rsuser === null)
return errjson('您还未登陆', 2);
$post = new \ciy\post();
$id = $post->getint('id');
if ($id > 0) {
$csql = new \ciy\sql('ap_usr_shipaddr');
$csql->where('vuser', $rsuser['id']);
$csql->where('id', $id);
$shiprow = $db->getone($csql);
if (!is_array($shiprow))
return errjson('地址不存在' . $id);
}
$name = $post->get('name');
$addr = $post->get('addr');
$phone = $post->get('phone');
$areacode = $post->getint('areacode');
try {
$db->begin();
$updata = array();
$updata['name'] = $name;
$updata['addr'] = $addr;
$updata['areacode'] = $areacode;
$updata['phone'] = $phone;
$updata['uptimes'] = tostamp();
$csql = new \ciy\sql('ap_usr_shipaddr');
if ($id > 0) {
$csql->where('id', $id);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
} else {
$updata['vuser'] = $rsuser['id'];
if ($db->insert($csql, $updata) === false)
throw new \Exception('新增失败:' . $db->error);
$id = $db->insert_id();
}
$updata['id'] = $id;
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
return errjson($ex->getMessage());
}
$ret['data'] = $updata;
return succjson($ret);
}
public static function json_user_shipaddr_del() {
global $db;
$rsuser = verifyfast();
if ($rsuser === null)
return errjson('您还未登陆', 2);
$post = new \ciy\post();
$id = $post->getint('id');
$csql = new \ciy\sql('ap_usr_shipaddr');
$csql->where('vuser', $rsuser['id']);
$csql->where('id', $id);
if ($db->delete($csql) === false)
return errjson('删除失败:' . $db->error);
return succjson();
}
public static function json_share_qrcode_get() {
$rsuser = verifyfast();
$filename = '/xcxqrcode/' . $rsuser['id'] . '.jpg';
$ret['qrcode'] = $filename;
$filename = PATH_WEB . 'ud' . $filename;
if (file_exists($filename))
return succjson($ret);
$param = array();
$param['scene'] = 'upid=' . $rsuser['id'] . '&carduser=' . $rsuser['id'];
$param['page'] = 'pages/main/index';
$param['check_path'] = true;
$param['env_version'] = 'release';
$param['width'] = 1280;
$weixinapi = new \web\api\weixin(1);
$wxret = $weixinapi->call('https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token={accesstoken}', $param, true);
if (is_string($wxret))
return errjson($wxret);
dirmake(dirname($filename));
$fp = fopen($filename, 'w');
fwrite($fp, $wxret['bin']);
fclose($fp);
return succjson($ret);
}
public static function json_safe_password_change() {
global $db;
global $_token;
$rsuser = verifyfast();
$post = new \ciy\post();
$oldpass = $post->get('oldpass');
$newpass = $post->get('newpass');
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
$rsuser = $db->getone($csql);
if (!empty($rsuser['password']) && $rsuser['password'] != md5($oldpass . $_token['salt']))
return errjson('旧密码错误.');
$updata = array();
$updata['password'] = md5($newpass . $_token['salt']);
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
if ($db->update($csql, $updata) === false)
return errjson('密码更新失败:' . $db->error);
return succjson();
}
public static function json_suggest_get() {
global $db;
$rsuser = verifyuser();
$ret['list'] = array();
if ($rsuser == null)
return succjson($ret);
$csql = new \ciy\sql('ap_usr_suggest');
$csql->where('vuser', $rsuser['id']);
$csql->order('id desc');
$csql->limit(1, 10);
$ret['list'] = $db->get($csql);
return succjson($ret);
}
public static function json_suggest_submit() {
global $db;
$rsuser = verifyuser();
$post = new \ciy\post();
$content = $post->get('content');
$imgs = $post->get('imgs');
$contract = $post->get('contract');
$updata = array();
$updata['content'] = $content;
$updata['imgs'] = $imgs;
$updata['contract'] = $contract;
if ($rsuser === null)
$updata['vuser'] = 0;
else
$updata['vuser'] = $rsuser['id'];
$updata['addtimes'] = tostamp();
$csql = new \ciy\sql('ap_usr_suggest');
if ($db->insert($csql, $updata) === false)
return errjson('更新失败:' . $db->error);
$updata['id'] = $db->insert_id();
$ret['data'] = $updata;
return succjson($ret);
}
public static function json_problem_chat_send() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$content = $post->get('content');
$id = $post->getint('id');
$updata = array();
$updata['problemid'] = $id;
$updata['content'] = $content;
$updata['sendtype'] = 1;
$updata['addtimes'] = tostamp();
$csql = new \ciy\sql('ap_usr_problechat');
if ($db->insert($csql, $updata) === false)
return errjson('更新失败:' . $db->error);
$updata['id'] = $db->insert_id();
$ret['data'] = $updata;
$updata = array();
$updata['replytimes'] = 0;
$updata['closetimes'] = 0;
$csql = new \ciy\sql('ap_usr_problem');
$csql->where('id', $id);
if ($db->update($csql, $updata) === false)
return errjson('更新失败:' . $db->error);
return succjson($ret);
}
public static function json_problem_chat_get() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('id');
$csql = new \ciy\sql('ap_usr_problechat');
$csql->where('problemid', $id);
$mid = $post->getint('mid');
$pagecount = $post->getint('pagecount', 20);
if ($post->get('op') == 'max') {
$csql->where('id>', $mid);
$csql->order('id');
} else {
$csql->where('id<', $mid);
$csql->order('id desc');
$csql->limit(1, $pagecount);
}
$rows = $db->get($csql);
$ret['list'] = $rows;
$ret['pagecount'] = $pagecount;
if ($post->getbool('once')) {
$ret['once'] = true;
$csql = new \ciy\sql('ap_usr_problem');
$csql->where('id', $id);
$ret['problem'] = $db->getone($csql);
}
return succjson($ret);
}
public static function json_problem_pub_close() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('id');
$updata = array();
$updata['closetimes'] = tostamp();
$csql = new \ciy\sql('ap_usr_problem');
$csql->where('id', $id);
if ($db->update($csql, $updata) === false)
return errjson('更新失败:' . $db->error);
return succjson();
}
public static function json_problem_pub_add() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$content = $post->get('content');
$imgs = $post->get('imgs');
$contract = $post->get('contract');
$updata = array();
$updata['content'] = $content;
$updata['imgs'] = $imgs;
$updata['contract'] = $contract;
$updata['vuser'] = $rsuser['id'];
$updata['addtimes'] = tostamp();
$csql = new \ciy\sql('ap_usr_problem');
if ($db->insert($csql, $updata) === false)
return errjson('更新失败:' . $db->error);
$updata['id'] = $db->insert_id();
$ret['data'] = $updata;
return succjson($ret);
}
public static function json_problem_pub_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$csql = new \ciy\sql('ap_usr_problem');
$liid = $post->getint('liid');
if ($liid == 3)
$csql->where('closetimes=0')->where('replytimes>0');
else if ($liid == 9)
$csql->where('closetimes>0');
else
$csql->where('closetimes=0')->where('replytimes=0');
$csql->where('vuser', $rsuser['id']);
$csql->order('id desc');
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$rows = $db->get($csql);
$ret = array('pageno' => $pageno, 'pagecount' => $pagecount, 'list' => $rows);
return succjson($ret);
}
public static function json_me_userbuy_chk() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('orderid');
for ($i = 0; $i < 10; $i++) {
$csql = new \ciy\sql('ap_usr_buy_user');
$csql->where('id', $id);
$buyrow = $db->getone($csql);
if (!is_array($buyrow))
return errjson('订单不存在');
if ($buyrow['paytimes'] > 0) {
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
$userrow = $db->getone($csql);
$ret['accounttimes'] = $userrow['accounttimes'];
$ret['userlevel'] = $userrow['userlevel'];
return succjson($ret);
}
sleep(1);
}
return errjson('支付信息未同步,请下拉刷新');
}
public static function json_me_userbuy_create() {
global $db;
global $_token;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('id');
$csql = new \ciy\sql('ap_usr_buy_bundle');
$csql->where('id', $id);
$bundlerow = $db->getone($csql);
if (!is_array($bundlerow))
return errjson('购买项目不存在');
$money = $bundlerow['usermoney'];
$updata = array();
$updata['bundleid'] = $id;
$updata['userlevel'] = $bundlerow['userlevel'];
$updata['days'] = $bundlerow['days'];
$updata['buydaymoney'] = $money;
$updata['vuser'] = $rsuser['id'];
$updata['addtimes'] = tostamp();
$csql = new \ciy\sql('ap_usr_buy_user');
if ($db->insert($csql, $updata) === false)
return errjson('订单创建失败:' . $db->error);
$orderid = $db->insert_id();
$param = array();
$param['description'] = '购买会员';
$param['out_trade_no'] = 'UB' . date('ymd') . '9' . $orderid;
$param['notify_url'] = $_token['maindomain'] . 'wxpay.pay_user';
$param['amount'] = array();
$param['amount']['total'] = (int)$money;
$param['payer'] = array();
$param['payer']['openid'] = $rsuser['wxminaid'];
$weixinapi = new \web\api\weixin(1);
$retpay = $weixinapi->pay($param);
if (is_string($retpay))
return errjson($retpay);
$retpay['orderid'] = $orderid;
return succjson($retpay);
}
public static function json_me_balance_get() {
global $db;
$rsuser = verifyfast();
$csql = new \ciy\sql('ap_user');
$csql->where('id', $rsuser['id']);
$ret['user'] = $db->getone($csql);
unset($ret['user']['password']);
unset($ret['user']['sid']);
unset($ret['user']['wxminaid']);
unset($ret['user']['wxminakey']);
unset($ret['user']['wxunionid']);
unset($ret['user']['memo']);
return succjson($ret);
}
}