EcShop充值卡功能插件(7)

项目跟目录创建控制器文件  ktcard.php
用户储值卡管理
<?php

define('IN_ECS', true);

require(dirname(__FILE__) . '/includes/init.php');

$action  = isset($_REQUEST['act']) ? trim($_REQUEST['act']) : 'default';

// 不需要登录的操作或自己验证是否登录(如ajax处理)的act
$not_login_arr = array('act_login','update_ktcard','next_ktcard');


$ui_arr = array('default');


if (empty($_SESSION['user_id']))
{
    if (!in_array($action, $not_login_arr))
    {
        if (in_array($action, $ui_arr))
        {
            if (!empty($_SERVER['QUERY_STRING']))
            {
                $back_act = 'ktcard.php?' . $_SERVER['QUERY_STRING'];
            }
            $action = 'default';
        }
        else
        {
            //未登录提交数据。非正常途径提交数据!
            die('已经记录此非法操作IP');
        }
    }
}


if ($action == 'default')
{
   
    assign_template();
    $smarty->assign('page_title', '用户储值卡管理');   
    $smarty->assign('ur_here',    '储值卡');
    $smarty->assign('helps',      get_shop_help());   
    $smarty->assign('act',    'act_login');   
    $smarty->assign('action',      $action);  
    $smarty->assign('back_act',      $back_act);       
   
    $smarty->display('ktcard.dwt');
   
}


if ($action == 'act_login') {

    $card_sn    = isset($_REQUEST['card_sn'])? trim($_REQUEST['card_sn']): '0';
 
    $card_pwd   = isset($_REQUEST['card_pwd'])? trim($_REQUEST['card_pwd']): '0';

        if ($card_sn != '0')

        {

               $sql = "SELECT * FROM " .$ecs->table('kt_bcards').
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";

               $record_arr = $db->getRow($sql);

             if (empty($record_arr))

             {
                 show_message('卡号或密码错误');
                 return 0;
             }
             else
             {

                   assign_template();
                $smarty->assign('page_title', '用户储值卡管理');   
                $smarty->assign('ur_here',    '储值卡');
                $smarty->assign('helps',      get_shop_help());   
                $smarty->assign('act',    'next_ktcard');   
                $smarty->assign('action',      $action);  
                $smarty->assign('back_act',     $back_act); 
                $smarty->assign('card_sn',      $card_sn);
                $smarty->assign('card_pwd',     $card_pwd);
                $smarty->assign('card_bonus',    $record_arr['card_bonus']); 
                $smarty->assign('goods_list',    get_order_goods_list());   
                $smarty->display('ktcard.dwt');
               
             }
        }

}


if ($action == 'next_ktcard')
{
      $arr       = array();
      $arr       = $_POST['goods'];
      $goods     = !empty($arr) ? join(",",$arr) : '0';
   
    $card_sn    = isset($_REQUEST['card_sn'])? trim($_REQUEST['card_sn']): '0';
      $card_pwd   = isset($_REQUEST['card_pwd'])? trim($_REQUEST['card_pwd']): '0';
   
      $sql = "SELECT * FROM " .$ecs->table('kt_bcards').
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";

    $record_arr = $db->getRow($sql);
    $card_bonus = $record_arr['card_bonus'];
   
    $sql = "SELECT SUM(shop_price) FROM " .$GLOBALS['ecs']->table('goods').
               " WHERE goods_id in ($goods)";
    $fee = $GLOBALS['db']->getOne($sql);
            
             if ($fee > $card_bonus)
             {
                 $order_msg = $fee - $card_bonus;
                 $order_msg = "订单超出储值卡余额 $order_msg 元,收货时还需补交 $order_msg 元.";
             }
            else
             {
                $order_msg = $card_bonus - $fee;
                 $order_msg = "订单总额: $fee 元,提交当前订单之后储值卡余额为: $order_msg 元.";
             }
             if (empty($record_arr))

             {
                 show_message('卡号或密码错误');
                 return 0;
             }
            if (empty($arr))
             {
                 show_message('请选择商品');
                 return 0;
             }

    assign_template();
    $smarty->assign('page_title', '用户储值卡管理');   
    $smarty->assign('ur_here',    '储值卡');
    $smarty->assign('helps',      get_shop_help());   
    $smarty->assign('act',    'update_ktcard');   
    $smarty->assign('action',      $action);  
    $smarty->assign('back_act',      $back_act); 
    $smarty->assign('card_sn',      $card_sn);
    $smarty->assign('card_pwd',     $card_pwd); 
    $smarty->assign('goods_id',     $goods);
    $smarty->assign('card_bonus',    $record_arr['card_bonus']);
    $smarty->assign('fee',    $fee);
    $smarty->assign('order_msg',    $order_msg);
   
    $smarty->display('ktcard.dwt');
   
}
   


if ($action == 'update_ktcard')
{
    $order_user    = isset($_REQUEST['order_user'])? trim($_REQUEST['order_user']): '0';
    $order_address    = isset($_REQUEST['order_address'])? trim($_REQUEST['order_address']): '0';
    $order_tel    = isset($_REQUEST['order_tel'])? trim($_REQUEST['order_tel']): '0';
    $order_phone    = isset($_REQUEST['order_phone'])? trim($_REQUEST['order_phone']): '0';
    $order_bak    = isset($_REQUEST['order_bak'])? trim($_REQUEST['order_bak']): '0';
    $shipping_time    = isset($_REQUEST['shipping_time'])? trim($_REQUEST['shipping_time']): '0';
    $order_clr     = !empty($_REQUEST['order_clr'])    ? intval($_REQUEST['order_clr'])    : 0;
   
   
  $card_sn    = isset($_REQUEST['card_sn'])? trim($_REQUEST['card_sn']): '0';
    $card_pwd   = isset($_REQUEST['card_pwd'])? trim($_REQUEST['card_pwd']): '0';
   
    $goods   = isset($_REQUEST['goods'])? trim($_REQUEST['goods']): '0';
   
    $order_sn = get_order_sn(); 
  $order_time = gmtime();
 
  $sql = "SELECT * FROM " .$ecs->table('kt_bcards').
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";

    $record_arr = $db->getRow($sql);
    $card_bonus = $record_arr['card_bonus'];
 
  $sql = "SELECT SUM(shop_price) FROM " .$GLOBALS['ecs']->table('goods').
               " WHERE goods_id in ($goods)";
  $fee = $GLOBALS['db']->getOne($sql);


            if (empty($order_user) OR (empty($order_tel) AND empty($order_phone)))
             {
                 show_message('联系人为必填项,电话任选其一.');
                 return 0;
             }
            
              if ($card_sn != '0')
            {

               $sql = "SELECT * FROM " .$ecs->table('kt_bcards').
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";

               $record_arr = $db->getRow($sql);

             if (empty($record_arr))

             {
                 show_message('卡号或密码错误');
                 return 0;
             }
             else
             {
                  $card_id = intval($record_arr['card_id']);
                  
                     if ($fee > $card_bonus)
                     {
                         $order_exc = $fee - $card_bonus;
                          $sql = "UPDATE " .$ecs->table('kt_bcards'). " SET ".
                      "card_bonus         = 0 ".
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";
                      $db->query($sql);
                      $order_clr = 0;
                     }
                     else
                      {
                         $order_exc = 0;
                         $card_bonus_last = $card_bonus - $fee;
                      $sql = "UPDATE " .$ecs->table('kt_bcards'). " SET ".
                      "card_bonus         = '$card_bonus_last' ".
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";
                      $db->query($sql);
                                             if($order_clr <> 0)
                                            {
                                                   $order_clr = $card_bonus_last;
                                                   $sql = "UPDATE " .$ecs->table('kt_bcards'). " SET ".
                      "card_bonus         = 0 ".
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";
                      $db->query($sql);
                                                  
                                            }
                       }

                  
                  $GLOBALS['db']->query("INSERT INTO ".$GLOBALS['ecs']->table('kt_order')." (card_id, order_sn, order_fee, order_exc, order_clr, order_user, order_address, order_tel, order_phone, order_bak, shipping_time, order_time, order_goods, order_status) VALUES($card_id,'$order_sn','$fee','$order_exc','$order_clr','$order_user','$order_address','$order_tel','$order_phone','$order_bak','$shipping_time','$order_time','$goods',0)");
            
                $sql = "UPDATE " .$ecs->table('kt_bcards'). " SET ".
                      "used_time         = '$order_time' ".
                      " WHERE card_sn = '$card_sn'" .
                      " AND card_pwd = '$card_pwd'";

                $db->query($sql);
               $action = 'default';
                  show_message('已经成功提交订单!', '返回储值卡管理', 'ktcard.php','default');
             }
           }
  echo 'asdfasdffffffffffffffffffffffffffffffffffffffff';
}


function get_order_sn()
{
   
    mt_srand((double) microtime() * 1000000);

    return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}


function get_order_goods_list()
{

  
    $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('goods') . " WHERE is_on_sale = 1 ORDER BY goods_id desc" ;
                           
    $result = $GLOBALS['db']->getAll($sql);
    $goods = array();
   
    foreach ($result AS $idx => $row)
    {
          $goods[$idx]['goods_id']           = $row['goods_id'];
        $goods[$idx]['goods_name']         = $row['goods_name'];
        $goods[$idx]['shop_price']         = $row['shop_price'];
    }

return $goods;
}



function get_goods_name($id)

{
    $sql = "SELECT goods_name FROM " .$GLOBALS['ecs']->table('goods').
               " WHERE goods_id = '$id'";
  $result = $GLOBALS['db']->getOne($sql);
 
  return $result;
              
}



function get_goods_bak($id)

{
    $sql = "SELECT seller_note FROM " .$GLOBALS['ecs']->table('goods').
               " WHERE goods_id = '$id'";
  $result = $GLOBALS['db']->getOne($sql);
 
  return $result;
              
}


?>
内容概要:本书《Deep Reinforcement Learning with Guaranteed Performance》探讨了基于李雅普诺夫方法的深度强化学习及其在非线性系统最优控制中的应用。书中提出了一种近似最优自适应控制方法,结合泰勒展开、神经网络、估计器设计及滑模控制思想,解决了不同场景下的跟踪控制问题。该方法不仅保证了性能指标的渐近收敛,还确保了跟踪误差的渐近收敛至零。此外,书中还涉及了执行器饱和、冗余解析等问题,并提出了新的冗余解析方法,验证了所提方法的有效性和优越性。 适合人群:研究生及以上学历的研究人员,特别是从事自适应/最优控制、机器人学和动态神经网络领域的学术界和工业界研究人员。 使用场景及目标:①研究非线性系统的最优控制问题,特别是在存在输入约束和系统动力学的情况下;②解决带有参数不确定性的线性和非线性系统的跟踪控制问题;③探索基于李雅普诺夫方法的深度强化学习在非线性系统控制中的应用;④设计和验证针对冗余机械臂的新型冗余解析方法。 其他说明:本书分为七章,每章内容相对独立,便于读者理解。书中不仅提供了理论分析,还通过实际应用(如欠驱动船舶、冗余机械臂)验证了所提方法的有效性。此外,作者鼓励读者通过仿真和实验进一步验证书中提出的理论和技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值