1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- namespace app\data\controller\api;
- use app\data\controller\api\business\Order;
- use app\data\model\DataNewsItem;
- use app\data\model\DataNewsMark;
- use app\data\model\DataNewsXCollect;
- use app\data\model\DataUser;
- use app\data\model\ShopOrder;
- use app\data\model\ShopOrderPay;
- use app\data\service\NewsService;
- use think\admin\Controller;
- use think\admin\model\SystemConfig;
- /**
- * 定时脚本
- * Class News
- * @package app\data\controller\api
- */
- class Timedtask extends Controller
- {
- /**
- * 用户vip到期判断
- */
- public function checkuservip(){
- DataUser::mk()->where('is_vip',1)->field('id,is_vip,vip_datetime')->chunk(10,function ($list){
- $list = $list->toArray();
- foreach ($list as &$v) {
- if (strtotime($v['vip_datetime'])<time()){
- DataUser::mk()->where('id',$v['id'])->update(
- [
- 'is_vip'=>0,
- 'vip_name'=>'普通用户',
- 'update_at'=>date('Y-m-d H:i:s')
- ]
- );
- }
- }
- },'id','asc');
- }
- /**
- * 订单过期
- */
- public function checkshoporder(){
- $config = SystemConfig('merchant_config');
- $time = date('Y-m-d H:i:s',time()-($config['cancellation_time']*60));
- ShopOrder::mk()->where('status',2)->where('create_at','<',$time)->chunk(20,function ($list){
- $list = $list->toArray();
- foreach ($list as &$v){
- ShopOrder::mk()->where('id',$v['id'])->save(['status'=>0,'cancel_remark'=>'超时自动取消']);
- }
- });
- }
- /**
- * 订单退款
- */
- public function order_timeout_refund(){
- $config = SystemConfig('merchant_config');
- $timeout = $config['refund_time'];
- $time = date('Y-m-d H:i:s',time()-($timeout*60*60));
- ShopOrder::mk()->where('status',7)->where('refund_time','<',$time)->chunk(20,function ($list){
- $list = $list->toArray();
- foreach ($list as &$v){
- //同意退款
- $pay_money = ShopOrderPay::mk()->where(['status' => 2, 'pay_no'=>$v['payment_trade']])->value('money');
- if($v['payment_type']=='支付宝支付') {
- $result = json_decode(Order::refund_order($v['payment_trade'], $v['refund_money']), true);
- }
- if($v['payment_type']=='微信支付') {
- $result = json_decode(Order::wxrefund_order($v['payment_trade'], $v['refund_money'],$pay_money), true);
- }
- if($result) {
- ShopOrder::mk()->where('id',$v['id'])->save(['status' => 8, 'refund_status' => 2, 'dk_time' => date('Y-m-d H:i:s')]);
- }else{
- print_r('失败');
- }
- }
- });
- }
- }
|