where(['status'=>3,'issell'=>2,'create_time'=>$yestday])->select();
foreach ($list as $v)
{
$appointcnt=db('trade')->where(['goodsid'=>$v['goodsid'],'isout'=>0,'status'=>0])->count();
$goods=db('goods')->where(['id'=>$v['goodsid']])->find();
if($goods['on_sale'] == 1 && $appointcnt == 0)
{
db('goods')->where(['id'=>$v['goodsid']])->update(['istrade'=>0]);
db('trade')->where(['id'=>$v['id']])->update(['status'=>4]);
}elseif($goods['on_sale'] == 1 && $appointcnt >0){
db('trade')->where(['id'=>$v['id']])->update(['status'=>4]);
}elseif($goods['on_sale'] != 1){
db('trade')->where(['id'=>$v['id']])->update(['status'=>4]);
}else{
continue;
}
}
$list1=db('goods')->where(['isnew'=>1,'on_sale'=>0,'create_user'=>1,'utime'=>[['gt',$yestday],['lt',strtotime('today')]]])->select();
foreach ($list1 as $v)
{
db('goods')->where(['id'=>$v['id']])->update(['create_user'=>0,'on_sale'=>1,'istrade'=>0]);
}
$this->success('请求成功');
}
/**
* 转售产品每日释放
* @throws \think\exception\DbException
* @throws db\exception\DataNotFoundException
* @throws db\exception\ModelNotFoundException
*/
public function release()
{
$key = input('key','');
if($key != md5('hua')){
$this->error('非法请求');
}
if(date('H:i') >= '20:00'){
$this->error('不在释放处理时间段内');
}
// 计算获取奖池和已释放总额
$awards = Trade::getAwardTotal();
$releaseTotalUsdt = Trade::where(['status'=> 3,'on_resale'=>1])->sum('release_usdt');
$awardTotalUsdt = isset($awards['total_usdt'])? $awards['total_usdt'] : 0;
// 奖池是否还有钱,若已释放完
if($awardTotalUsdt <= $releaseTotalUsdt){
$this->error('抱歉,奖池金额已释放完');
}
// 处理转售释放
$tradeConfig = \app\common\model\Config::getConfigByGroup('trade');
$config['release_rate'] = isset($tradeConfig['release_rate'])? $tradeConfig['release_rate']['value'] : 0;
if($config['release_rate'] <= 0){
$this->error('释放参数错误,请先配置');
}
$coinRate = CoinRate::getRate('USD','CNY');
if($coinRate<=0){
$this->error('汇率参数错误,请稍后重试');
}
// 待释放产品
$tradeList = \app\common\model\Trade::where(['on_resale'=>1])
->whereIn('status', [3,4])
->whereRaw('release_usdt < endnums')
->where('release_time','<', strtotime(date('Y-m-d')))
->field('id,orderNo,goodsid,userid,relevant_userid,status,endnums,release_total,release_usdt,release_time')
->order('ctime','asc')
->limit(1000)
->select();
if(empty($tradeList)){
$this->error('暂时没有可释放的转售产品');
}
$success = 0;
$fail = 0;
foreach ($tradeList as $k => $item){
$tradeUserId = isset($item['relevant_userid'])? $item['relevant_userid'] : 0;
$speedData = Trade::getSpeedTotalByUser($tradeUserId); // 加速值
$speedUsdt = isset($speedData['speed_usdt'])? $speedData['speed_usdt'] : 0;
// 计算释放额度
$amount = isset($item['endnums'])? $item['endnums'] : 0;
$releaseUsdt = isset($item['release_usdt'])? $item['release_usdt'] : 0;
$usdt = $amount? round($amount * $config['release_rate']/100 + $speedUsdt, 2) : 0;
$usdt = ($amount-$releaseUsdt)<$usdt? ($amount-$releaseUsdt) : $usdt;
$releaseTotal = isset($item['release_total'])? $item['release_total'] : 0;
if($tradeUserId<=0 || $amount<=0 || $usdt<=0 || $amount<=$releaseUsdt){
$fail++;
continue;
}
// 用户信息
$user = \app\common\model\User::where(['id'=> $tradeUserId,'status'=>1])
->field('id,bonus,nickname')
->find();
if(empty($user)){
$fail++;
continue;
}
// 释放到余额
Db::startTrans();
$money = round( + $coinRate * $usdt, 2);
$user->bonus = $user->bonus + $money;
$user->updatetime = time();
if(!$user->save()){
$fail++;
Db::rollback();
continue;
}
// 释放明细
$data = [
'userid'=> $tradeUserId,
'type'=>1,
'money'=> $money,
'usdt_num'=> $usdt,
'speed_usdt'=> $speedUsdt,
'speed_total'=> CoinRate::transfer($speedUsdt,'USD','CNY'),
'balance'=> $user->bonus,
'orderid'=> $item['id'],
'status'=> 1,
'create_time'=> time(),
'update_time'=> time(),
'remark'=> '转售产品每日释放到账',
];
if(!ReleaseLog::insertGetId($data)){
$fail++;
Db::rollback();
continue;
}
// 更新释放交易商品数据
$tradeData = ['release_total'=> $releaseTotal+$money,'release_usdt'=> $releaseUsdt+$usdt,'release_time'=> time()];
if($releaseUsdt+$usdt >= $amount){
$tradeData['status'] = 4;
}
if(!Trade::where(['id'=> $item['id']])->update($tradeData)){
$fail++;
Db::rollback();
continue;
}
$success++;
Db::commit();
}
$this->success('请求处理成功', ['success'=> $success,'fail'=> $fail]);
}
/*预约上架*/
function checkappoint()
{
$gids=db('trade')->where(['status'=>0])->group('goodsid')->column('goodsid');
foreach ($gids as $vl)
{
$tradelist=db('trade')->where(['goodsid'=>$vl,'status'=>0])->select();
if(count($tradelist) == 1)
{
continue;
}else{
$cnt=0;
foreach ($tradelist as $vs)
{
$cnt++;
if($cnt == 1)
{
continue;
}else{
#取消
db('trade')->where(['id'=>$vs['id']])->update(['status'=>-2,'iscancel'=>1,'confirm_time'=>time()]);
}
}
}
}
$list=db('goods_cats')->where(['status'=>1])->select();
foreach($list as $v)
{
if(time()>=strtotime(date("Y-m-d {$v['start']}")) && time()<=strtotime(date("Y-m-d {$v['end']}")))
{
db('trade')->where(['catid'=>$v['id'],'appoint_time'=>['lt',strtotime('today')],'status'=>0])->update(['status'=>1,'ctime'=>time(),'create_time'=>strtotime('today')]);
}
}
$this->success('操作完成');
}
function getnowtime()
{
$time=date('Y年m月d日H:i:s',time());
if(date('week') == 1)
{
$weeks='一';
}elseif(date('week') ==2)
{
$weeks='二';
}elseif(date('week') ==3)
{
$weeks='三';
}elseif(date('week') ==4)
{
$weeks='四';
}elseif(date('week') ==5)
{
$weeks='五';
}elseif(date('week') ==6)
{
$weeks='六';
}else{
$weeks='七';
}
$this->success($time.' 星期'.$weeks);
}
function getusername()
{
$names=input('username');
if(empty($names))
{
$this->error('请输入账户');
}
$user=db('user')->where(['username|mobile'=>$names,'status'=>1])->find();
if($user)
{
$this->success('',['name'=>$user['nickname']]);
}else{
$this->error('用户不存在'.$names);
}
}
/*匹配*/
function checktrade()
{
$bcf=db('bonus_config')->where('id',4)->find();
$list=db('trade')->where(['status'=>['in','1,2']])->select();
foreach ($list as $v)
{
if($v['status'] == 2)
{
$JC=time()-($v['pay_time']+60*(int)$bcf['cap']);
if($JC>0)
{//自动确认
db('trade')->where(['id'=>$v['id']])->update(['status'=>-1]);
}
}
if($v['status'] == 1)
{
$JC1=time()-($v['ctime']+60*$bcf['value']);
if($JC1>0)
{//超时未支付
db()->startTrans();
$res1=db('trade')->where(['id'=>$v['id']])->update(['status'=>-2,'iscancel'=>1,'confirm_time'=>time()]);
$res2=db('goods')->where(['id'=>$v['goodsid']])->update(['istrade'=>0]);
if($res1 && $res2)
{
db()->commit();
}else{
db()->rollback();
}
}
}
}
echo 'success';
}
function getnoticelist()
{
$map['status']=1;
$map['catid']=1;
$p=$this->request->request('p');
if(empty($p))
{
$this->error('缺少参数页码');
}
$pagesize=10;
$total=db('article')->where($map)->count();
$totalPage=ceil($total/$pagesize);
if($p>$totalPage && $total>0)
{
$this->error('页码有误');
}
$list=db('article')->where($map)->page($p,$pagesize)->order('id desc')->select();
foreach ($list as &$v)
{
$v['ctime']=date('Y-m-d H:i:s',$v['ctime']);
$v['abs']=mbsubstr($v['content'],0,30);
$v['prc']=empty($v['prc']) ?'http://' . $_SERVER['HTTP_HOST'].'/assets/shop/img/gg.png':$v['prc'];
}
if(empty($list))
{
$data['list']=[];
}else{
$data['list']=$list;
}
$data['total']=$totalPage;
$this->success('',$data);
}
function fdbonus()
{
db()->execute('call CashBonus()');
$this->success('执行完毕');
}
/*发送留言 */
function tosendmsg()
{
$uid=input('uid');
$content=input('content');
if(empty($content))
{
$this->error(__("请输入留言"));
}
$param['content']=$content;
$param['from_uid']=0;
$param['to_uid']=$uid;
$param['ctime']=time();
$param['userid']=$uid;
$ids=db('user_message')->insertGetId($param);
if($ids)
{
goeasy_sms($content);
$this->success(__("留言成功"));
}else{
$this->error(__("留言失败"));
}
}
function checkuserappoint()
{
$name=$this->request->request('name');
$sid=$this->request->request('sid');
$user=db('user')->where(['username|mobile'=>$name])->find();
if($user)
{
$isappoint=db('studio_user')->where(['userid'=>$user['id'],'sid'=>$sid])->find();
if($isappoint)
{
$this->success('',['id'=>$user['id'],'username'=>$user['username'],'isclose'=>0]);
}else{
$this->success('',['id'=>$user['id'],'username'=>$user['username'],'isclose'=>1]);
}
}else{
$this->error('您输入的会员不存在');
}
}
function setuserappoint()
{
$userid=$this->request->request('userid');
$sid=$this->request->request('sid');
$isappoint=$this->request->request('isappoint');
$info=db('studio_user')->where(['userid'=>$userid,'sid'=>$sid])->find();
if($info)
{
if($isappoint == 1)
{
db('studio_user')->where(['id'=>$info['id']])->delete();
$this->success('设置成功');
}else{
$this->error('您并未做任何修改');
}
}else{
if($isappoint == 1)
{
$this->error('您并未做任何修改');
}else{
db('studio_user')->insertGetId(['userid'=>$userid,'sid'=>$sid,'ctime'=>time(),'status'=>1]);
$this->success('设置成功');
}
}
}
/* 获取节点 */
function getClass()
{
$rootid=input('rootid');
$uid=input('uid');
$where['refereeid']=$uid;
if($uid==0){
$myself = db('user')->where(['id'=>$rootid])->find();
$value['uid'] = $myself['id'];
$value['status'] = $myself['status'];
$value['usernumber'] = $myself['username']."[姓名:".$myself['nickname']."]";
$count = db('user')->where('refereeid',$value['uid'])->count();
$value['count']= $count;
if($count!=0){
$value['isParent']= true;
}else{
$value['isParent']= false;
}
$list[] = $value;
}else{
$info = db('user')->where($where)->select();
foreach ($info as $value){
$count = db('user')->where('refereeid',$value['id'])->count();
$value['count']= $count;
if($count!=0){
$value['isParent']= true;
} else {
$value['isParent']= false;
}
$value['uid']=$value['id'];
$value['usernumber'] = $value['username']."[姓名:".$value['nickname']."]";
$list[] = $value;
}
}
return $list;
}
/* 奖金设置 */
function bonus_set()
{
$param=$this->request->get();
$data_arr=explode('-',$param['id']);
$column=$data_arr['0'];
$key=$data_arr['1'];
//模型
if(count($data_arr)<3){
$data_model="bonus_config";
}else{
$data_model=$data_arr['2'];
}
$data[$column]=$param['val'];
$info=db($data_model)->where('id',$key)->find();
$res=db($data_model)->where('id',$key)->update($data);
if($res){
$this->success("修改完成");
}else{
$this->error("修改完成");
}
}
/*切换用户名 */
function switchname()
{
$randStr = str_shuffle('1234567890');
$randZm = str_shuffle('abcdefghijklmnopqrstuvwxyz');
$username= substr($randZm,0,2).substr($randStr,0,6);//账号为7位随机数
$this->success($username);
}
function getuserid()
{
$param=$this->request->get();
$info=db('user')->where(['username|mobile'=>$param['username']])->find();
if($info)
{
$this->success($info['id']);
}else{
$this->error('用户不存在');
}
}
function getstuid()
{
$param=$this->request->get();
$info=db('studio')->where(['title'=>$param['title']])->find();
if($info)
{
$this->success($info['id']);
}else{
$this->error('商家不存在');
}
}
/* 检测用户名 */
function checkusername()
{
$param=$this->request->get();
$info=db('user')->where('username',$param['username'])->find();
if($info)
{
$this->error("用户名已注册,请更换");
}else{
$this->success("用户名可以使用");
}
}
/* 获取昵称 */
function getnickname()
{
$param=$this->request->get();
$info=db('user')->where(['username|mobile'=>$param['username']])->find();
if($info)
{
$this->success($info['nickname']);
}else{
$this->error('用户不存在');
}
}
/* 获取位置节点pos */
function getpos()
{
$param=$this->request->get();
$info=db('user')->where(['username'=>$param['username'],'status'=>1])->find();
if(!$info)
{
$this->error("会员不存在或不可用");
}
$str="";
$pos=config('pos');
$list=db('user_parent')->where('pid',$info['id'])->select();
if($list)
{
$pos_arr=[];
foreach ($list as $k=>$v)
{
$pos_arr[$v['position']]=$v;
}
foreach ($pos as $key=>$v)
{
if(empty($pos_arr[$key]['userid']))
{
$str.="';
}else{
$str.="';
}
}
}else{
foreach ($pos as $key=>$v)
{
$str.="';
}
}
$this->success($str);
}
}