123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- <?php
- defined('IN_WEB') or die('Include Error!');
- /**
- * 机器人相关
- */
- class Shop
- {
- public function getRecommend($param){
- return oo::commonOprModel('readconfig')->getSysCon('Shop',"recommend");
- }
- public function saveRecommend($param){
- return oo::commonOprModel('readconfig')->setSysCon('Shop',"recommend",$param['data']);
- }
- public function config($param){
- $type = oo::functions()->uint($param['type']);
- if(empty($type))
- return json_encode(['code'=>-1]);
- $tb = otable::goodsCrazy();
- $sql = "SELECT * FROM {$tb} WHERE gtype={$type}";
- $ret = oo::commonOprDb('common')->getAll($sql,1);
- $returnData = [
- 'code'=>1,
- 'data'=>$ret,
- ];
- if($type != 21){
- return json_encode($returnData);
- }
- //钻石商城和兑换列表
- $dtb = otable::diamondCrazy();
- $sql = "SELECT * FROM {$dtb} WHERE pid IN(1, 2, 3,6) order by gid";
- $returnData['exchanges'] = oo::commonOprDb('common')->getAll($sql,1);
- $sql = "SELECT * FROM {$dtb} WHERE pid IN(4, 5) order by gid";
- $returnData['notenough'] = oo::commonOprDb('common')->getAll($sql,1);
- return json_encode($returnData);
- }
- public function saveConfig($param){
- $type = oo::functions()->escape($param['type']);
- $data = json_decode($param['data']);
- $tb = otable::goodsCrazy();
- foreach ($data as $key=>$row){
- switch ($type){
- case 1:
- $sql = "UPDATE {$tb} SET gattribute='{$row->gattribute}',gsku='{$row->gsku}',gname='{$row->gname}',gname_en='{$row->gname_en}',gdesc='{$row->gdesc}',gdesc_en='{$row->gdesc_en}',goriginReward='{$row->goriginReward}',gbaseReward='{$row->gbaseReward}',gimg='{$row->gimg}',gstatus='{$row->gstatus}',gprice='{$row->gprice}' WHERE gid={$row->gid}";
- break;
- case 2:
- $sql = "UPDATE {$tb} SET gattribute='{$row->gattribute}',gsku='{$row->gsku}',gname='{$row->gname}',gname_en='{$row->gname_en}',gdesc='{$row->gdesc}',gdesc_en='{$row->gdesc_en}',gimg='{$row->gimg}',gstatus='{$row->gstatus}',gprice='{$row->gprice}' WHERE gid={$row->gid}";
- break;
- case 3:
- $sql = "UPDATE {$tb} SET gname='{$row->gname}',gname_en='{$row->gname_en}',gdesc='{$row->gdesc}',gdesc_en='{$row->gdesc_en}',goriginReward='{$row->goriginReward}',gbaseReward='{$row->gbaseReward}',gimg='{$row->gimg}',gstatus='{$row->gstatus}' WHERE gid={$row->gid}";
- break;
- case 4:
- $sql = "UPDATE {$tb} SET gsku='{$row->gsku}',gname='{$row->gname}',gname_en='{$row->gname_en}',gdesc='{$row->gdesc}',gdesc_en='{$row->gdesc_en}',goriginReward='{$row->goriginReward}',gbaseReward='{$row->gbaseReward}',gimg='{$row->gimg}',gstatus='{$row->gstatus}',gprice='{$row->gprice}' WHERE gid={$row->gid}";
- break;
- case 5:
- $sql = "UPDATE {$tb} SET gsku='{$row->gsku}',gname='{$row->gname}',gname_en='{$row->gname_en}',gdesc='{$row->gdesc}',gdesc_en='{$row->gdesc_en}',goriginReward='{$row->goriginReward}',gbaseReward='{$row->gbaseReward}',gimg='{$row->gimg}',gstatus='{$row->gstatus}',gprice='{$row->gprice}' WHERE gid={$row->gid}";
- break;
- case 6:
- $sql = "UPDATE {$tb} SET gsku='{$row->gsku}',gname='{$row->gname}',gname_en='{$row->gname_en}',gdesc='{$row->gdesc}',gdesc_en='{$row->gdesc_en}',goriginReward='{$row->goriginReward}',gbaseReward='{$row->gbaseReward}',gimg='{$row->gimg}',gstatus='{$row->gstatus}',gprice='{$row->gprice}',gdiscount='{$row->gdiscount}' WHERE gid={$row->gid}";
- break;
- case 9:
- $sql = "UPDATE {$tb} SET gsku='{$row->gsku}',gname='{$row->gname}',gdesc='{$row->gdesc}',gbaseReward='{$row->gbaseReward}',gprice='{$row->gprice}',gMax='{$row->gMax}' WHERE gid={$row->gid}";
- break;
- default:
- $sql = "UPDATE {$tb} SET ";
- $update = '';
- foreach ($row as $x=>$y){
- $update .= "$x='$y',";
- }
- $update = trim($update,',');
- $sql = $sql.$update." WHERE gid='{$key}'";
- }
- $rs = oo::commonOprDb('common')->query($sql);
- }
- if($type == 21){
- $exchanges = json_decode($param['exchanges']);
- $tb = otable::diamondCrazy();
- foreach ($exchanges as $row){
- $sql = "UPDATE {$tb} SET name='{$row->name}',price='{$row->price}',gbaseReward='{$row->gbaseReward}',times={$row->times} WHERE gid={$row->gid}";
- $rs = oo::commonOprDb('common')->query($sql);
- }
- $notenough = json_decode($param['notenough']);
- foreach ($notenough as $row){
- $sql = "UPDATE {$tb} SET name='{$row->name}',price='{$row->price}',gbaseReward='{$row->gbaseReward}',gaddRatio={$row->gaddRatio} WHERE gid={$row->gid}";
- $rs = oo::commonOprDb('common')->query($sql);
- }
- oo::commonOprRedis("common")->delete(okeys::shopDiamond()); //清除缓存
- oo::commonOprRedis("common")->delete(okeys::notEnouthDiamond()); //清除缓存
- }
- return $rs ? $rs : 0;
- }
- public function level(){
- $tb = otable::goodsCoin();
- $sql = "SELECT * FROM {$tb} WHERE 1";
- $ret = oo::commonOprDb('common')->getAll($sql,1);
- $temp = [];
- $i = 0;
- foreach ($ret as $key=>$row){
- $temp[$i]['levelId'] = $row['levelId'];
- $temp[$i][$row['gsku']] = $row['num'];
- if(($key+1)%6 == 0){
- $i += 1;
- }
- }
- $returnData = [
- 'code'=>1,
- 'data'=>$temp,
- ];
- return json_encode($returnData);
- }
- public function saveLevel($param){
- $data = json_decode($param['data'],true);
- $tb = otable::goodsCoin();
- $dbConn = 'common';
- oo::commonOprDb($dbConn)->Start();
- try{
- // 组装数据
- $insertData = [];
- $redisKeys = [];
- foreach ($data as $row){
- foreach ($row['data'] as $key=>$col){
- $redisKeys[] = okeys::GoodsCoin($row['levelId'],str_replace('com.gworld.cc.','',$key));
- $insertData[] = [
- 'levelId' => $row['levelId'],
- 'gsku' => $key,
- 'num' => $col,
- ];
- }
- }
- // 删除记录
- $sql = "delete from {$tb} ";
- $deleteRes = oo::commonOprDb('common')->query($sql);
- if (!$deleteRes)throw new Exception('delete data failed', __LINE__);
- // 插入新纪录
- $insertSql = funs::db_intsertBatchSQLByKeys($tb, $insertData);
- $insertRes = oo::commonOprDb($dbConn)->query($insertSql);
- if (!$insertRes)throw new Exception('insert data failed', __LINE__);
- oo::commonOprDb($dbConn)->Commit();
- }catch (\throwable $e){
- oo::commonOprDb($dbConn)->Rollback();
- oo::logs()->debug3('操作失败:'.$e->getMessage());
- return 0;
- }
- // 删除缓存
- foreach ($redisKeys as $redisKey){
- oo::commonOprRedis('config')->delete($redisKey);
- }
- return 1;
- }
-
- public function CardChest(){
- $tb = otable::CardChest();
- $sql = "SELECT * FROM {$tb} WHERE 1";
- $ret = oo::commonOprDb('common')->getAll($sql,MYSQLI_ASSOC);
- $returnData = [
- 'code'=>1,
- 'data'=>$ret,
- ];
- return json_encode($returnData);
- }
- public function saveCardChest($param){
- $data = json_decode($param['data'],true);
- $tb = otable::CardChest();
- $sql = "SELECT * FROM {$tb} WHERE 1";
- $ret = oo::commonOprDb('common')->getAll($sql,MYSQLI_ASSOC);
- $id = [];
- foreach ($ret as $row){
- $id[] = $row['levelId'];
- }
- foreach ($data as $row){
- $superChest = empty($row['superChest']) ? 0 : $row['superChest'];
- if(in_array($row['levelId'],$id)){
- $sql = "UPDATE {$tb} SET woodenChest='{$row['woodenChest']}',goldenChest='{$row['goldenChest']}',magicalChest='{$row['magicalChest']}',superChest='{$superChest}' WHERE levelId={$row['levelId']}";
- $rs = oo::commonOprDb('common')->query($sql);
- }else{
- $sql = "INSERT INTO {$tb} (levelId,woodenChest,goldenChest,magicalChest,superChest) VALUES ({$row['levelId']},'{$row['woodenChest']}','{$row['goldenChest']}','{$row['magicalChest']}','{$superChest}')";
- $rs = oo::commonOprDb('common')->query($sql);
- }
- }
- oo::commonOprRedis('Config')->delete(okeys::CardChestConfig());
- return $rs?$rs:0;
- }
-
- public function payDistributed($param){
- $this->payBlackList['uid'] = oo::commonOprModel("config")->payWhiteList();
- $stime = $param['stime'];
- $etime = $param['etime'];
- $out = [];
- $days = $this->diffDay($stime,$etime);
- $tb = otable::summarylist();
-
- $blackUidArr = $this->payBlackList['uid'];
- $blackUidStr = implode(',', $blackUidArr);
- for($i=0;$i<=$days;$i++){
- $s = strtotime("$stime +$i days 00:00:00");
- $e = strtotime("$stime +$i days 23:59:59");
- $sql = "SELECT * FROM {$tb} WHERE sl_status=2 AND sl_sid != -1 AND sl_pay_time>={$s} AND sl_pay_time<{$e} AND sl_uid NOT IN ({$blackUidStr}) ";
- $ret = oo::commonOprDb('payment')->getAll($sql,MYSQLI_ASSOC);
- $out[] = $ret;
- }
- $tb = otable::goodsCrazy();
- $sql = "SELECT gid,gname,gpid FROM {$tb} WHERE 1";
- $good = oo::commonOprDb('payment')->getAll($sql,MYSQLI_ASSOC);
- return oo::response(1,['good'=>$good,'data'=>$out]);
- }
- public function diffDay($start_date,$end_date){
- $datetime_start = new DateTime($start_date);
- $datetime_end = new DateTime($end_date);
- $days = $datetime_start->diff($datetime_end)->days;
- return $days;
- }
- public function setSerialPack($param){
- $data = json_decode($param['data'],true);
- $tb = otable::goodsCrazy();
- foreach ($data as $gid=>$gInfo){
- $set = "";
- foreach ($gInfo as $key=>$value){
- $set .= "`{$key}`='{$value}',";
- }
- $set = trim($set,',');
- $rs = oo::commonOprDb('common')->query("UPDATE {$tb} SET {$set} WHERE gid={$gid}");
- }
- return $rs;
- }
- }
|