Initial commit
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
//距离确认收货时间
|
||||
function auto_receipt_time($delivery_time){
|
||||
$auto_time=C("shop.auto_receipt_time");
|
||||
$auto_time=$auto_time*3600*24;
|
||||
$has_time=$auto_time+$delivery_time-time();
|
||||
//天
|
||||
$day=floor($has_time / 86400);
|
||||
$hours=ceil($has_time % 86400 / 3600);
|
||||
if($day){
|
||||
return $day."天".$hours."小时";
|
||||
}else{
|
||||
return $hours."小时";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
return array(
|
||||
'TOKEN_ON' => true, // 是否开启令牌验证 默认关闭
|
||||
'TOKEN_NAME' => '__hash__', // 令牌验证的表单隐藏字段名称,默认为__hash__
|
||||
'TOKEN_TYPE' => 'md5', //令牌哈希验证规则 默认为MD5
|
||||
'TOKEN_RESET' => true, //令牌验证出错后是否重置令牌 默认为true
|
||||
'alipay'=>array (
|
||||
//应用ID,您的APPID。
|
||||
'app_id' => "2016071401617215",
|
||||
//商户私钥
|
||||
'merchant_private_key' => "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCBEXV+4jOBnuUur0QX6f01flJ6gzk2CbHWD3+VXgSV3JJ+vsQVoz2juIN59EF2cgBgKOml3DQuZ5zymijg1B3+0cxzBAVAQJv0znCrITF1iyCEHP/Sk0c/Ix2kndUj+0gja75dpQ0pilXSOfDUvhvPhIMqjxztPY/f6xvlBHYw8UdIpEnhUG4X/blTLEkYPMskpmRaIYB5q0LqDqJX8M0ZrscHlUx+YZno8gyn1oAN46YGafj8ceBeB3+uwmqymr3FBwPqZtTRoGz03qjpjyDMWNCQTr3yiwGkK86+7Vty+dvzXhV2nElPZLsA+J4P1VnlbUmsyAjNpAeVDhf26THTAgMBAAECggEADiFiMrUDHJLP1o+brd6ROTUORJlvPwpKrPvfZPP5HosagsPR5eiMTAtcYZKrRBNxFRYFloIIOHhhh3H3Pb4bVpWTg5gSFxm7uU6MqT+mEY9czPn7zAsRxsjKawZYmmrdV/toyQnT6hNaF/z979ysYMjKL3OhoBuYT9SGpkkZw3vPGL6aVIoYrnuop9TpEv5M5gSdiuc+sEfP8i6b/AiH51/NIR8fLaiYrMD2M7tB0tsVz+utQNMRfXZhAZkTyjzNeQ2iw2MmAbrKcWW1Uzrxv8GEQMpecPD4VclbeMVOTLW9ss7HR8dt0obsXiDka1r3iDWg4b8cCSP2Jsu1tDTR+QKBgQC6UUwu/z7dFHJd/8BLIlGAA+RzWG727YsT1a6M0/ZQUDFRmsTmMXkT6FrF3uCnEej/vJcDReyV76iXxC6kdKLYAe6CYX2fPvhMpHmxutn7zzrs6CRRQlmaSKfUGgsKrlrdrpyx/qyclC6dzO0OzIn/j5IOlpc/lZzp6DIxyUeZPQKBgQCxVueIoMKQdT4bFdrHshRB4CjSKTzhjMAFDKYUx24OLya9W4lHn7pzC0WkvWtkPLRxu3s3xf57ivRi1TPIaENVjQmZOaJoPfYCH12N2+LQnhfJq9qsOOblLABiUu+xWguNHAc1x2ebiQ4fBWchE282+INif8QvgL4a+OWWC5MITwKBgQC2HCpjsVaHjqmumQEiLxwMDUHpQCHNtyb+LxjaS39wxsE96xHTkb2vqKe4yf05L3dXJ8VPDLSPZN2b4cRZOCvHCDRROesokMrvVsAf6OuRhd8pmkmNJ1YfSC7KUN5EBWGJVleQXsXmkavyz09R7Lhhk7oGCkkxfBIQSsVtBji2XQKBgQCSzCd5F+o2/nZcoWirKaRPK6le3rgA1SwWgfPw+20E3M8qrF0lJvmGRexuhEYjgYS1KMbE0mboCYxnS6lD2drzNH6fke/4bmH4O9KLnVtR6awzSskHC0tGpXfj7Fdx7eHl+y+Uuu3u+DLyRtypqpbDYFAR90WFNQMo/KO/4vDhTQKBgQCeNg5Hc7rEk7ZVi7kb/l74gYM4buP07DCWPhxnMpflCMOEIs7uI4Azvf6Nk8kcankc3FdJhkb4w68JaF5iFzFnEhLmBflmamohQbQeTCm10Mqo6GRXsodgn0aqauYly1fmE4bB9onvJ4Ythsge8HmubLM/LFsY3JaeCDyJAXUBkA==",
|
||||
//异步通知地址
|
||||
'notify_url' => "http://paytest.win-8.cn/index.php/Shop/PayNotify/notify_url.html",//注意这里url一定不能带有参数的形式,否则会和支付宝的参数冲突
|
||||
'wap_notify_url' => "http://paytest.win-8.cn/index.php/Shop/PayNotify/wap_notify_url.html",//注意这里url一定不能带有参数的形式,否则会和支付宝的参数冲突
|
||||
//同步跳转
|
||||
'return_url' => "http://paytest.win-8.cn/index.php/Shop/PayNotify/return_url.html",
|
||||
'wap_return_url' => "http://paytest.win-8.cn/index.php/Shop/PayNotify/return_url.html",
|
||||
//编码格式
|
||||
'charset' => "UTF-8",
|
||||
//签名方式
|
||||
'sign_type'=>"RSA2",
|
||||
//支付宝网关
|
||||
//'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
|
||||
'gatewayUrl' => "https://openapi.alipaydev.com/gateway.do",
|
||||
//支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
|
||||
'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgRF1fuIzgZ7lLq9EF+n9NX5SeoM5Ngmx1g9/lV4EldySfr7EFaM9o7iDefRBdnIAYCjppdw0Lmec8poo4NQd/tHMcwQFQECb9M5wqyExdYsghBz/0pNHPyMdpJ3VI/tII2u+XaUNKYpV0jnw1L4bz4SDKo8c7T2P3+sb5QR2MPFHSKRJ4VBuF/25UyxJGDzLJKZkWiGAeatC6g6iV/DNGa7HB5VMfmGZ6PIMp9aADeOmBmn4/HHgXgd/rsJqspq9xQcD6mbU0aBs9N6o6Y8gzFjQkE698osBpCvOvu1bcvnb814VdpxJT2S7APieD9VZ5W1JrMgIzaQHlQ4X9ukx0wIDAQAB",
|
||||
),
|
||||
//'配置项'=>'配置值'
|
||||
//自定义success和error的提示页面模板
|
||||
'TMPL_ACTION_SUCCESS'=>'Public:success',
|
||||
'TMPL_ACTION_ERROR'=>'Public:error',
|
||||
);
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
return array(
|
||||
'view_filter' => array('Behavior\TokenBuildBehavior'),
|
||||
);
|
||||
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
namespace Shop\Controller;
|
||||
use Think\Controller;
|
||||
class PayController extends Controller {
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
$this->order_id=I("get.order_id",0,"intval");
|
||||
$this->order=M("shop_order")->find($this->order_id);
|
||||
if(!$this->order){
|
||||
$this->error("订单不存在");
|
||||
}
|
||||
if($this->order["is_pay"]){
|
||||
$this->error("该订单已支付");
|
||||
}
|
||||
}
|
||||
//线下付款
|
||||
public function bankPay(){
|
||||
if(I("get.is_submit")){
|
||||
M("shop_order")->save(array(
|
||||
"order_id"=>$this->order_id,
|
||||
"is_offline_pay"=>1,
|
||||
));
|
||||
//设置订单状态
|
||||
D("shop_order")->setOrderState($this->order_id);
|
||||
//订单日志
|
||||
D("shop_order")->log($this->order_id,"用户选择对公转账付款");
|
||||
$this->success("操作成功");
|
||||
}else{
|
||||
$this->display();
|
||||
}
|
||||
}
|
||||
//支付宝pc端支付
|
||||
public function aliPay(){
|
||||
if(isMobile()){
|
||||
if(isWxClient()){
|
||||
//$this->success("微信端不支持支付宝付款,请点击右上角【浏览器打开】这个链接,使用支付宝付款",U("Shop/ShopOrder/index"),60);
|
||||
}
|
||||
$this->aliWapPay();
|
||||
}else{
|
||||
$this->aliPcPay();
|
||||
}
|
||||
}
|
||||
//支付宝pc端支付
|
||||
public function aliPcPay(){
|
||||
//
|
||||
$proName="订单号:".$this->order["order_num"];
|
||||
$out_trade_no=$this->order["order_num"];
|
||||
$total_amount =$this->order['pay_money'];
|
||||
$body="";
|
||||
//
|
||||
Vendor('AlipaySdk.aop.AopClient');
|
||||
Vendor('AlipaySdk.aop.request.AlipayTradePagePayRequest');
|
||||
$c = new \AopClient();
|
||||
$config = C('alipay');
|
||||
$c->gatewayUrl = $config['gatewayUrl'];;
|
||||
$c->appId = $config['app_id'];
|
||||
$c->rsaPrivateKey = $config['merchant_private_key'];
|
||||
$c->format = "json";
|
||||
$c->charset= "UTF-8";
|
||||
$c->signType= "RSA2";
|
||||
$c->alipayrsaPublicKey = $config['alipay_public_key'];
|
||||
$request = new \AlipayTradePagePayRequest();
|
||||
$request->setReturnUrl($config['return_url']);
|
||||
$request->setNotifyUrl($config['notify_url']);
|
||||
$request->setBizContent("{" .
|
||||
" \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," .
|
||||
" \"subject\":\"$proName\"," .
|
||||
" \"out_trade_no\":\"$out_trade_no\"," .
|
||||
" \"total_amount\":$total_amount," .
|
||||
" \"body\":\"$body\"" .
|
||||
" }");
|
||||
$result = $c->pageExecute ($request);
|
||||
//输出
|
||||
echo $result;
|
||||
}
|
||||
//支付宝手机端支付
|
||||
public function aliWapPay(){
|
||||
Vendor('AlipaySdk.aop.AopClient');
|
||||
Vendor('AlipaySdk.aop.request.AlipayTradeWapPayRequest');
|
||||
Vendor('AlipaySdk.wappay.service.AlipayTradeService');
|
||||
Vendor('AlipaySdk.wappay.buildermodel.AlipayTradeWapPayContentBuilder');
|
||||
$c = new \AopClient();
|
||||
$config = C('alipay');
|
||||
//商户订单号,商户网站订单系统中唯一订单号,必填
|
||||
$out_trade_no = $this->order["order_num"];
|
||||
//订单名称,必填
|
||||
$subject = "订单号:".$this->order["order_num"];
|
||||
//付款金额,必填
|
||||
$total_amount = $this->order['pay_money'];
|
||||
//商品描述,可空
|
||||
$body = "";
|
||||
//超时时间
|
||||
$timeout_express="1m";
|
||||
$payRequestBuilder = new \AlipayTradeWapPayContentBuilder();
|
||||
$payRequestBuilder->setBody($body);
|
||||
$payRequestBuilder->setSubject($subject);
|
||||
$payRequestBuilder->setOutTradeNo($out_trade_no);
|
||||
$payRequestBuilder->setTotalAmount($total_amount);
|
||||
$payRequestBuilder->setTimeExpress($timeout_express);
|
||||
//这里要把return_url和notify_url重新改变成手机的
|
||||
$config["return_url"]=$config['wap_return_url'];
|
||||
$config["notify_url"]=$config['wap_notify_url'];
|
||||
$payResponse = new \AlipayTradeService($config);
|
||||
$result=$payResponse->wapPay($payRequestBuilder,$config['return_url'],$config['notify_url']);
|
||||
}
|
||||
//异步通知(PC支付)
|
||||
public function notify_url(){
|
||||
$arr=$_POST;
|
||||
Vendor('AlipaySdk.pagepay.service.AlipayTradeService');
|
||||
$alipaySevice = new \AlipayTradeService(C('alipay'));
|
||||
$result = $alipaySevice->check($arr);
|
||||
if($result){
|
||||
$out_trade_no = $_POST['out_trade_no'];
|
||||
$total_amount= $_POST['total_amount'];
|
||||
if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
|
||||
//这里加入商业逻辑处理
|
||||
$order=D("shop_order")->where(array("order_num"=>$out_trade_no))->find();
|
||||
//这里要判断是否is_pay为0才执行商业处理,防止异步通知执行两次以上从而造成多条付款明细
|
||||
if($order&&!$order["is_pay"]){
|
||||
M("shop_order")->save(array(
|
||||
"order_id"=>$order["order_id"],
|
||||
"is_pay"=>1,
|
||||
));
|
||||
//设置订单状态
|
||||
D("shop_order")->setOrderState($order["order_id"]);
|
||||
//订单日志
|
||||
D("shop_order")->log($order["order_id"],"用户在线支付,金额:{$total_amount},支付方式:阿里云");
|
||||
//
|
||||
$this->payMent($order["order_id"],"alipay",json_encode($_POST));
|
||||
}
|
||||
}
|
||||
echo "success";//请不要修改或删除
|
||||
}else{
|
||||
|
||||
}
|
||||
}
|
||||
public function return_url(){
|
||||
redirect(U("Shop/ShopOrder/index"));
|
||||
}
|
||||
//付款记录
|
||||
private function payMent($orderid,$paytype,$detail){
|
||||
M("shop_order_payment")->add(array(
|
||||
"order_id" =>$orderid,
|
||||
"addtime" =>time(),
|
||||
"paytype" =>$paytype,
|
||||
"detail" =>$detail,
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
namespace Shop\Controller;
|
||||
use Think\Controller;
|
||||
class PayNotifyController extends Controller {
|
||||
//异步通知(PC支付)
|
||||
public function notify_url(){
|
||||
$arr=$_POST;
|
||||
Vendor('AlipaySdk.pagepay.service.AlipayTradeService');
|
||||
$alipaySevice = new \AlipayTradeService(C('alipay'));
|
||||
$alipaySevice->writeLog(var_export($_POST,true));
|
||||
$result = $alipaySevice->check($arr);
|
||||
if($result){
|
||||
$out_trade_no = $_POST['out_trade_no'];
|
||||
$total_amount= $_POST['total_amount'];
|
||||
if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
|
||||
//这里加入商业逻辑处理
|
||||
$order=D("shop_order")->where(array("order_num"=>$out_trade_no))->find();
|
||||
//这里要判断是否is_pay为0才执行商业处理,防止异步通知执行两次以上从而造成多条付款明细
|
||||
if($order&&!$order["is_pay"]){
|
||||
M("shop_order")->save(array(
|
||||
"order_id"=>$order["order_id"],
|
||||
"is_pay"=>1,
|
||||
));
|
||||
//设置订单状态
|
||||
D("shop_order")->setOrderState($order["order_id"]);
|
||||
//订单日志
|
||||
D("shop_order")->log($order["order_id"],"用户在线支付,金额:{$total_amount},支付方式:支付宝");
|
||||
//
|
||||
$this->payMent($order["order_id"],"alipay",json_encode($_POST));
|
||||
}
|
||||
}
|
||||
echo "success";//请不要修改或删除
|
||||
}else{
|
||||
|
||||
}
|
||||
}
|
||||
//异步通知(手机支付)
|
||||
public function wap_notify_url(){
|
||||
$arr=$_POST;
|
||||
Vendor('AlipaySdk.aop.AopClient');
|
||||
Vendor('AlipaySdk.wappay.service.AlipayTradeService');
|
||||
$alipaySevice = new \AlipayTradeService(C('alipay'));
|
||||
$result = $alipaySevice->check($arr);
|
||||
if($result){
|
||||
$out_trade_no = $_POST['out_trade_no'];
|
||||
$total_amount= $_POST['total_amount'];
|
||||
if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
|
||||
//这里加入商业逻辑处理
|
||||
$order=D("shop_order")->where(array("order_num"=>$out_trade_no))->find();
|
||||
//这里要判断是否is_pay为0才执行商业处理,防止异步通知执行两次以上从而造成多条付款明细
|
||||
if($order&&!$order["is_pay"]){
|
||||
M("shop_order")->save(array(
|
||||
"order_id"=>$order["order_id"],
|
||||
"is_pay"=>1,
|
||||
));
|
||||
//设置订单状态
|
||||
D("shop_order")->setOrderState($order["order_id"]);
|
||||
//订单日志
|
||||
D("shop_order")->log($order["order_id"],"用户在线支付,金额:{$total_amount},支付方式:支付宝(wap)");
|
||||
//
|
||||
$this->payMent($order["order_id"],"alipay",json_encode($_POST));
|
||||
}
|
||||
}
|
||||
echo "success";//请不要修改或删除
|
||||
}else{
|
||||
}
|
||||
}
|
||||
//支付定同步返回
|
||||
public function return_url(){
|
||||
redirect(U("Shop/ShopOrder/index"));
|
||||
}
|
||||
//付款记录
|
||||
private function payMent($orderid,$paytype,$detail){
|
||||
M("shop_order_payment")->add(array(
|
||||
"order_id" =>$orderid,
|
||||
"addtime" =>time(),
|
||||
"paytype" =>$paytype,
|
||||
"detail" =>$detail,
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
<?php
|
||||
|
||||
namespace Shop\Controller;
|
||||
use Member\Controller\BaseController;
|
||||
|
||||
class ShopCartController extends BaseController{
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
$this->ShopCart = D("ShopCart");
|
||||
}
|
||||
|
||||
public function confirmation_order(){
|
||||
$ids = session("confirmation_order_ids");
|
||||
$member_id = session("member.member_id");
|
||||
if(!$ids){
|
||||
$this->error("请选择购买商品");
|
||||
}
|
||||
$where["id"] = array("in",$ids);
|
||||
$where["member_id"] = $member_id;
|
||||
$data = $this->ShopCart->relation(true)->where($where)->select();
|
||||
if(!$data){
|
||||
$this->error('数据错误');
|
||||
}
|
||||
if(IS_POST){
|
||||
//收货地址
|
||||
$sh_address=M("member_address")->where(array(
|
||||
"member_id"=>$member_id,
|
||||
"id"=>I("post.order_sh_address_id")
|
||||
))->find();
|
||||
//发票信息
|
||||
$order_invoice=M("member_invoice")->where(array(
|
||||
"member_id"=>$member_id,
|
||||
"id"=>I("post.order_invoice_id")
|
||||
))->find();
|
||||
//收票地址
|
||||
$sp_address=M("member_address")->where(array(
|
||||
"member_id"=>$member_id,
|
||||
"id"=>I("post.order_sp_address_id")
|
||||
))->find();
|
||||
//
|
||||
if(!$sh_address){
|
||||
$this->error('请选择收货地址');
|
||||
}
|
||||
if(!I("post.order_invoice_id")){
|
||||
$this->error('请设置发票信息');
|
||||
}
|
||||
//
|
||||
if(!$sp_address){
|
||||
$this->error('请选择收票地址');
|
||||
}
|
||||
$order_id = D("ShopOrder")->add_order($data,$sh_address,$order_invoice,$sp_address);
|
||||
$url=U("pay",array("order_id"=>$order_id));
|
||||
$this->success($url);
|
||||
}else{
|
||||
//默认收货地址
|
||||
$this->sh_address = M("member_address")->where(array(
|
||||
"member_id"=>$member_id,
|
||||
"sh_status"=>1,
|
||||
))->find();
|
||||
//默认发票
|
||||
$this->invoice = M("member_invoice")->where(array(
|
||||
"member_id"=>$member_id,
|
||||
"status"=>1,
|
||||
))->find();
|
||||
//默认收票地址
|
||||
$this->sp_address = M("member_address")->where(array(
|
||||
"member_id"=>$member_id,
|
||||
"sp_status"=>1,
|
||||
))->find();
|
||||
$this->pagetitle="确认订单信息";
|
||||
$this->data = $data;
|
||||
$this->display();
|
||||
}
|
||||
}
|
||||
|
||||
public function pay($order_id){
|
||||
$this->order=M("shop_order")->find($order_id);
|
||||
if(!$this->order){
|
||||
$this->error("订单不存在");
|
||||
}
|
||||
$this->display();
|
||||
}
|
||||
|
||||
public function index(){
|
||||
if(IS_POST){
|
||||
$ids = I("post.ids");
|
||||
if(count($ids) <= 0){
|
||||
$this->error("请选择购物车商品提交");
|
||||
}
|
||||
session("confirmation_order_ids",$ids);
|
||||
$this->success("提交成功");
|
||||
}else{
|
||||
$this->pagetitle="我的购物车";
|
||||
$member_id = session("member.member_id");
|
||||
$where["member_id"] = $member_id;
|
||||
$data = $this->ShopCart->relation(true)->where($where)->select();
|
||||
$this->data = $data;
|
||||
$this->shopcart_act = "on";
|
||||
$this->display();
|
||||
}
|
||||
}
|
||||
public function change_shop_cart(){
|
||||
$id = I("get.id");
|
||||
$quantity = I("get.num");
|
||||
// 修改条件
|
||||
$where["id"] = $id;
|
||||
$where["member_id"] = session("member.member_id");
|
||||
// 保存数据
|
||||
$data["quantity"] = $quantity;
|
||||
$res = $this->ShopCart->where($where)->save($data);
|
||||
$this->success($res);
|
||||
}
|
||||
|
||||
|
||||
public function add_shop_cart(){
|
||||
$product_id = I("post.id");
|
||||
$member_id = session("member.member_id");
|
||||
$quantity = I("post.num");
|
||||
$where["product_id"] = $product_id;
|
||||
$where["member_id"] = $member_id;
|
||||
|
||||
$res = $this->ShopCart->where($where)->find();
|
||||
if($res){
|
||||
$res["quantity"] += $quantity;
|
||||
$this->ShopCart->save($res);
|
||||
}else{
|
||||
$data["quantity"] = $quantity;
|
||||
$data["catid"] = M("cms_product")->where(array("id"=>$product_id))->getField("catid");
|
||||
$data["product_id"] = $product_id;
|
||||
$data["member_id"] = $member_id;
|
||||
$data["addtime"] = time();
|
||||
$this->ShopCart->add($data);
|
||||
}
|
||||
$this->success("加入购物车成功!");
|
||||
}
|
||||
|
||||
public function move_collect(){
|
||||
$member_id = session("member.member_id");
|
||||
$ids = I("post.ids");
|
||||
if(is_array($ids)){
|
||||
$where["id"] = array("in",$ids);
|
||||
}else if($ids){
|
||||
$where["id"] = $ids;
|
||||
}else{
|
||||
$this->error("请选择购物车商品");
|
||||
}
|
||||
$where["member_id"] = $member_id;
|
||||
// 查询所有需要修改的购物车信息
|
||||
$res_data = $this->ShopCart->where($where)->select();
|
||||
// 删除购物车信息
|
||||
// $this->ShopCart->where($where)->delete();
|
||||
$collect = M("collect");
|
||||
foreach($res_data as $k => $v){
|
||||
$where = array();
|
||||
$where["product_id"] = $v["product_id"];
|
||||
$where["member_id"] = $member_id;
|
||||
$rs = $collect->where($where)->find();
|
||||
if(!$rs){
|
||||
$data[$k]["product_id"] = $v["product_id"];
|
||||
$data[$k]["member_id"] = $member_id;
|
||||
$data[$k]["addtime"] = time();
|
||||
$data[$k]["checked"] = 1;
|
||||
}
|
||||
if($rs["checked"] == 0){
|
||||
$rs["checked"] = 1;
|
||||
$collect->save($rs);
|
||||
}
|
||||
}
|
||||
if($data){
|
||||
$res = $collect->addAll($data);
|
||||
}
|
||||
$this->success("添加成功");
|
||||
}
|
||||
|
||||
public function delete(){
|
||||
$id = I("get.delete_id");
|
||||
$member_id = session("member.member_id");
|
||||
$where["id"] = $id;
|
||||
$where["member_id"] = $member_id;
|
||||
$this->ShopCart->where($where)->delete();
|
||||
$this->success();
|
||||
}
|
||||
//当前用户收件地址列表
|
||||
public function addressList(){
|
||||
$member_id = session("member.member_id");
|
||||
$where["member_id"] = $member_id;
|
||||
$this->data= M("member_address")->where($where)->select();
|
||||
$this->display();
|
||||
}
|
||||
//新增收件地址
|
||||
public function addAddress(){
|
||||
$this->display();
|
||||
}
|
||||
//编辑收货地址
|
||||
public function editorAddress(){
|
||||
$where["id"] = I("get.id");
|
||||
$where["member_id"] = session("member.member_id");
|
||||
$this->r= M("member_address")->where($where)->find();
|
||||
$this->display();
|
||||
}
|
||||
//发票抬头列表
|
||||
public function fpList(){
|
||||
$member_id = session("member.member_id");
|
||||
$where["member_id"] = $member_id;
|
||||
$data= M("member_invoice")->where($where)->order("id desc")->select();
|
||||
$this->success($data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
<?php
|
||||
namespace Shop\Controller;
|
||||
use Member\Controller\BaseController;
|
||||
class ShopOrderController extends BaseController {
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
$this->table = D("ShopOrder");
|
||||
//系统查询哪些超时付款,超时未收货自动做相关操作
|
||||
$this->table->autoReceipt();
|
||||
$this->table->autoCancelOrder();
|
||||
}
|
||||
public function index(){
|
||||
$this->status_code=I("get.status_code");//订单状态
|
||||
$where=array();
|
||||
$where["member_id"]=session("member.member_id");
|
||||
//订单号
|
||||
$order_num=I("get.order_num");
|
||||
if($order_num){
|
||||
$where["db_shop_order.order_num"]=$order_num;
|
||||
}
|
||||
//订货号
|
||||
$type_no=I("get.type_no");
|
||||
if($type_no){
|
||||
$where["type_no"]=$type_no;
|
||||
}
|
||||
//产品名称
|
||||
$title=I("get.title");
|
||||
if($title){
|
||||
$where["title"]=array("like","%".$title."%");
|
||||
}
|
||||
//订单状态
|
||||
if($this->status_code){
|
||||
$where["status_code"]=$this->status_code;
|
||||
}
|
||||
//不同状态下的订单统计
|
||||
$this->readyPayCount=$this->table->where(array(
|
||||
"member_id"=>session("member.member_id"),
|
||||
"status_code"=>101,
|
||||
))->count();
|
||||
$this->readyDeliveryCount=$this->table->where(array(
|
||||
"member_id"=>session("member.member_id"),
|
||||
"status_code"=>102,
|
||||
))->count();
|
||||
$this->readyReceiptCount=$this->table->where(array(
|
||||
"member_id"=>session("member.member_id"),
|
||||
"status_code"=>103,
|
||||
))->count();
|
||||
$this->ReceiptCount=$this->table->where(array(
|
||||
"member_id"=>session("member.member_id"),
|
||||
"status_code"=>104,
|
||||
))->count();
|
||||
//
|
||||
$total=$this->table
|
||||
->join("db_shop_order_detail on db_shop_order.order_id=db_shop_order_detail.order_id")
|
||||
->where($where)->group("db_shop_order.order_id")->count();
|
||||
$page = new \Think\Page($total,10);
|
||||
$data=$this->table
|
||||
->join("db_shop_order_detail on db_shop_order.order_id=db_shop_order_detail.order_id")
|
||||
->relation(true)->where($where)->group("db_shop_order.order_id")->order("db_shop_order.order_id desc")->limit($page->firstRow,$page->listRows)->select();
|
||||
$this->assign("listpage", $page->show());
|
||||
$this->assign("data",$data);
|
||||
$this->pagetitle="我的订单";
|
||||
$this->navLight="wddj";//菜单高亮
|
||||
$this->display();
|
||||
}
|
||||
//订单详情
|
||||
public function show($order_id){
|
||||
$where["member_id"]=session("member.member_id");
|
||||
$where["order_id"]=$order_id;
|
||||
$this->r=$this->table->relation(true)->where($where)->find();
|
||||
$this->pagetitle="订单详情";
|
||||
$this->navLight="wddj";//菜单高亮
|
||||
$this->display();
|
||||
}
|
||||
//取消订单
|
||||
public function cancelOrder($order_id){
|
||||
$where["member_id"]=session("member.member_id");
|
||||
$where["order_id"]=$order_id;
|
||||
$order=$this->table->where($where)->find();
|
||||
if(!$order){
|
||||
$this->error("订单不存在");
|
||||
}
|
||||
//
|
||||
if($order[status_code]!=101){
|
||||
$this->error("订单状态不允许取消");
|
||||
}
|
||||
//调用模型里的取消订单
|
||||
$this->table->cancelOrder($order_id,"用户取消订单");
|
||||
$this->success("取消成功");
|
||||
}
|
||||
//用户申请退款
|
||||
public function refundOrder($order_id){
|
||||
$where["member_id"]=session("member.member_id");
|
||||
$where["order_id"]=$order_id;
|
||||
$order=$this->table->where($where)->find();
|
||||
if(!$order){
|
||||
$this->error("订单不存在");
|
||||
}
|
||||
//查看是否支付
|
||||
if($order[is_pay]!=1){
|
||||
$this->error("未付款订单不需要申请退款");
|
||||
}
|
||||
if(M("shop_order_refund")->find($order_id)){
|
||||
$this->error("您已经申请过了");
|
||||
}
|
||||
//增加退款表
|
||||
M("shop_order_refund")->add(array(
|
||||
"order_id"=>$order_id,
|
||||
"is_refund"=>1,
|
||||
"is_refund_time"=>time(),
|
||||
));
|
||||
//改状态
|
||||
$this->table->setOrderState($order_id);//改状态
|
||||
//写日志
|
||||
$this->table->log($order_id,"用户申请退款");
|
||||
$this->success("操作成功");
|
||||
}
|
||||
//删除订单
|
||||
public function deleteOrder($order_id){
|
||||
$where["member_id"]=session("member.member_id");
|
||||
$where["order_id"]=$order_id;
|
||||
$order=$this->table->where($where)->find();
|
||||
if(!$order){
|
||||
$this->error("订单不存在");
|
||||
}
|
||||
//
|
||||
if($order[status_code]!=201){
|
||||
$this->error("订单状态不允许删除");
|
||||
}
|
||||
//调用模型里的取消订单
|
||||
$this->table->deleteOrder($order_id);
|
||||
$this->success("删除成功");
|
||||
}
|
||||
//用户确认收货
|
||||
public function confirmReceipt($order_id){
|
||||
$where["member_id"]=session("member.member_id");
|
||||
$where["order_id"]=$order_id;
|
||||
$order=$this->table->where($where)->find();
|
||||
if(!$order){
|
||||
$this->error("订单不存在");
|
||||
}
|
||||
//
|
||||
if($order[status_code]!=103){
|
||||
$this->error("订单状态不允许操作");
|
||||
}
|
||||
//调用模型里的确认收货
|
||||
$this->table->confirmReceipt($order_id,"用户确认收货");
|
||||
$this->success("取消成功");
|
||||
}
|
||||
//快递
|
||||
public function kuaidi($com,$num){
|
||||
$kuaidi=new \Model\KuaidiModel($com, $num);
|
||||
$kuaidi_result=$kuaidi->getKuaidi();
|
||||
if(!$kuaidi_result){
|
||||
$this->error($kuaidi->getError());
|
||||
}else{
|
||||
$this->data=$kuaidi_result;
|
||||
$this->pagetitle="物流查询";
|
||||
$this->display();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
namespace Shop\Model;
|
||||
use Think\Model\RelationModel;
|
||||
class ShopCartModel extends RelationModel{
|
||||
//关联模型
|
||||
Protected $_link=array(
|
||||
"cms_product"=>array(
|
||||
'mapping_type' => self::BELONGS_TO,
|
||||
'foreign_key' => 'product_id',
|
||||
),
|
||||
"cat"=>array(
|
||||
'mapping_type' => self::BELONGS_TO,
|
||||
'foreign_key' => 'catid',
|
||||
),
|
||||
);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
<?php
|
||||
namespace Shop\Model;
|
||||
use Think\Model\RelationModel;
|
||||
class ShopOrderModel extends RelationModel{
|
||||
private $order_status_config=array(
|
||||
/*
|
||||
* status_code为订单状态码
|
||||
* set_table 为查询的对象表
|
||||
* sql_where 为查询的对象表的判断条件
|
||||
*/
|
||||
/*******************以1开头的是正常购买状态************************/
|
||||
//待付款
|
||||
array(
|
||||
"status_code"=>101,
|
||||
"status_name"=>"待付款",
|
||||
"set_table"=>"shop_order",
|
||||
"sql_where"=>array(
|
||||
"is_pay"=>0,
|
||||
),
|
||||
),
|
||||
//待付款
|
||||
array(
|
||||
"status_code"=>111,
|
||||
"status_name"=>"对公转账",
|
||||
"set_table"=>"shop_order",
|
||||
"sql_where"=>array(
|
||||
"is_pay"=>0,
|
||||
"is_offline_pay"=>1,
|
||||
),
|
||||
),
|
||||
//待发货
|
||||
array(
|
||||
"status_code"=>102,
|
||||
"status_name"=>"待发货",
|
||||
"set_table"=>"shop_order",
|
||||
"sql_where"=>array(
|
||||
"is_pay"=>1,
|
||||
"is_delivery"=>0,
|
||||
),
|
||||
),
|
||||
//待收货
|
||||
array(
|
||||
"status_code"=>103,
|
||||
"status_name"=>"待收货",
|
||||
"set_table"=>"shop_order",
|
||||
"sql_where"=>array(
|
||||
"is_delivery"=>1,
|
||||
"is_receipt"=>0,
|
||||
),
|
||||
),
|
||||
//已收货
|
||||
array(
|
||||
"status_code"=>104,
|
||||
"status_name"=>"已收货",
|
||||
"set_table"=>"shop_order",
|
||||
"sql_where"=>array(
|
||||
"is_delivery"=>1,
|
||||
"is_receipt"=>1,
|
||||
),
|
||||
),
|
||||
/*******************以2为开头的为取消订单************************/
|
||||
//取消订单(包含用户取消,超时取消)
|
||||
array(
|
||||
"status_code"=>201,
|
||||
"status_name"=>"已取消",
|
||||
"set_table"=>"shop_order",
|
||||
"sql_where"=>array(
|
||||
"is_cancel"=>1,
|
||||
),
|
||||
),
|
||||
/*******************以3为开头的为退货状态 状态表为副表:order_refund(退款表)************************/
|
||||
//用户申请退款中
|
||||
array(
|
||||
"status_code"=>301,
|
||||
"status_name"=>"申请退款中",
|
||||
"set_table"=>"shop_order_refund",
|
||||
"sql_where"=>array(
|
||||
"is_refund"=>1,
|
||||
"is_rerund_agree"=>0,//(is_rerund_agree为1表示管理员同意,为0表示还未操作但不代表不同意)
|
||||
"is_rerund_disagree"=>0,
|
||||
),
|
||||
),
|
||||
//平台同意退款
|
||||
array(
|
||||
"status_code"=>302,
|
||||
"status_name"=>"平台同意退款",
|
||||
"set_table"=>"shop_order_refund",
|
||||
"sql_where"=>array(
|
||||
"is_refund"=>1,
|
||||
"is_rerund_agree"=>1,
|
||||
),
|
||||
),
|
||||
//费用已原路返还
|
||||
array(
|
||||
"status_code"=>303,
|
||||
"status_name"=>"退款成功,费用已原路返还",
|
||||
"set_table"=>"shop_order_refund",
|
||||
"sql_where"=>array(
|
||||
"is_refund"=>1,
|
||||
"is_rerund_agree"=>1,
|
||||
"is_back_money"=>1,
|
||||
),
|
||||
),
|
||||
//平台不同意退款
|
||||
array(
|
||||
"status_code"=>311,
|
||||
"status_name"=>"平台不同意退款",
|
||||
"set_table"=>"shop_order_refund",
|
||||
"sql_where"=>array(
|
||||
"is_refund"=>1,
|
||||
"is_rerund_agree"=>0,
|
||||
"is_rerund_disagree"=>1,
|
||||
),
|
||||
),
|
||||
//用户取消退款
|
||||
array(
|
||||
"status_code"=>321,
|
||||
"status_name"=>"用户取消退款",
|
||||
"set_table"=>"shop_order_refund",
|
||||
"sql_where"=>array(
|
||||
"is_refund_cancel"=>1,
|
||||
),
|
||||
),
|
||||
);
|
||||
//关联模型
|
||||
Protected $_link=array(
|
||||
//收货地址表
|
||||
"shop_order_address"=>array(
|
||||
'mapping_type' => self::HAS_ONE,
|
||||
'parent_key' =>"order_id",
|
||||
'foreign_key' =>"order_id",
|
||||
),
|
||||
//发票信息
|
||||
"shop_order_invoice"=>array(
|
||||
'mapping_type' => self::HAS_ONE,
|
||||
'parent_key' =>"order_id",
|
||||
'foreign_key' =>"order_id",
|
||||
),
|
||||
//收票地址表
|
||||
"shop_order_invoice_address"=>array(
|
||||
'mapping_type' => self::HAS_ONE,
|
||||
'parent_key' =>"order_id",
|
||||
'foreign_key' =>"order_id",
|
||||
),
|
||||
//商品详情表
|
||||
"shop_order_detail"=>array(
|
||||
'mapping_type' => self::HAS_MANY,
|
||||
'parent_key' =>"order_id",
|
||||
'foreign_key' =>"order_id",
|
||||
),
|
||||
//退款表
|
||||
"shop_order_refund"=>array(
|
||||
'mapping_type' => self::HAS_ONE,
|
||||
'parent_key' =>"order_id",
|
||||
'foreign_key' =>"order_id",
|
||||
),
|
||||
//日志表
|
||||
"shop_order_log"=>array(
|
||||
'mapping_type' => self::HAS_MANY,
|
||||
'parent_key' =>"order_id",
|
||||
'foreign_key' =>"order_id",
|
||||
),
|
||||
//会员表
|
||||
"member" => array(
|
||||
'mapping_type' => self::BELONGS_TO,
|
||||
"parent_key" => 'member_id', //parent_key一定是主键,否则会列不出子表的数据
|
||||
'foreign_key' => 'member_id',
|
||||
),
|
||||
);
|
||||
/*设置订单状态
|
||||
* $order(Array) 是一个订单信息的所有字段,包含关联的数据表
|
||||
*/
|
||||
public function setOrderState($order_id){
|
||||
//这里一定要将数组倒序一下,订单最初状态判断条件很少。否则会造成判断不准确
|
||||
$order_status_config = array_reverse($this->order_status_config);
|
||||
foreach($order_status_config as $v){
|
||||
$sql_where=$v["sql_where"];
|
||||
$sql_where["order_id"]=$order_id;
|
||||
//这里一定是配置里的表名,因为退款表是shop_order_refund表
|
||||
$count=M($v["set_table"])->where($sql_where)->count();
|
||||
if($count){
|
||||
M("shop_order")->save(array(
|
||||
"order_id"=>$order_id,
|
||||
"status_code"=>$v["status_code"],
|
||||
"status_name"=>$v["status_name"],
|
||||
));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//前台的增加订单
|
||||
public function add_order($data,$sh_address,$order_invoice,$sp_address){
|
||||
$member_id = session("member.member_id");
|
||||
// 创建订单 计算金额
|
||||
$money=0;
|
||||
foreach($data as $k=>$v){
|
||||
$money += ($v[cms_product]['price2']?$v[cms_product]['price2']:$v[cms_product]['price'])* $v["quantity"];
|
||||
}
|
||||
$data_order["money"] = number_format($money,2, '.', '');//这里第4个参数一定要加一个空,否则金额超出1000会转换为类似于2,155.00的,会增加一个千分位,存入数据只保存了前面2
|
||||
$data_order["pay_money"] = number_format($money,2, '.', '');
|
||||
$data_order["order_num"] = date("YmdHis").$member_id.rand(1000,9999);
|
||||
$data_order["member_id"] = $member_id;
|
||||
$data_order["addtime"] = time();
|
||||
$data_order["remark"] = I("remark");
|
||||
//收货地址表
|
||||
$data_order["shop_order_address"] = D("shop_order_address")->create($sh_address);
|
||||
//发票表
|
||||
if($order_invoice){
|
||||
$data_order["shop_order_invoice"] = D("shop_order_invoice")->create($order_invoice);
|
||||
}
|
||||
//收票地址表
|
||||
if($order_invoice){
|
||||
$data_order["shop_order_invoice_address"] = D("shop_order_invoice_address")->create($sp_address);
|
||||
}
|
||||
//商品详情表
|
||||
foreach ($data as $k=>$v){
|
||||
$price=($v[cms_product]['price2']?$v[cms_product]['price2']:$v[cms_product]['price']);
|
||||
$money=($v[cms_product]['price2']?$v[cms_product]['price2']:$v[cms_product]['price']) * $v["quantity"];
|
||||
$data_order["shop_order_detail"][$k]["thumb"] = $v["cms_product"]["thumb"];
|
||||
$data_order["shop_order_detail"][$k]["title"] = $v["cms_product"]["title"];
|
||||
$data_order["shop_order_detail"][$k]["type_no"] = $v["cms_product"]["type_no"];
|
||||
$data_order["shop_order_detail"][$k]["price"] = number_format($price,2);
|
||||
$data_order["shop_order_detail"][$k]["product_id"] = $v["cms_product"]["id"];
|
||||
$data_order["shop_order_detail"][$k]["catid"] = $v["cat"]["catid"];
|
||||
$data_order["shop_order_detail"][$k]["quantity"] = $v["quantity"];
|
||||
$data_order["shop_order_detail"][$k]["money"] = number_format($money,2);
|
||||
//更新订单销量
|
||||
M("cms_product")->where(array("id"=>$v["cms_product"]["id"]))->setInc('sales',$v["quantity"]);
|
||||
//
|
||||
}
|
||||
$order_id = $this->relation(true)->add($data_order);
|
||||
//订单日志
|
||||
$this->log($order_id,"用户创建订单");
|
||||
//修改订单状态
|
||||
$this->setOrderState($order_id);
|
||||
// 删除购物车数据
|
||||
$ids = session("confirmation_order_ids");
|
||||
$ids[] = 0;
|
||||
$where["id"] = array("in",$ids);
|
||||
M("shop_cart")->where($where)->delete();
|
||||
session("confirmation_order_ids",null);
|
||||
return $order_id;
|
||||
}
|
||||
//取消订单
|
||||
public function cancelOrder($order_id,$content){
|
||||
$this->save(array(
|
||||
"order_id"=>$order_id,
|
||||
"is_cancel"=>1,
|
||||
));
|
||||
//订单日志
|
||||
$this->log($order_id,$content);
|
||||
//更新状态
|
||||
$this->setOrderState($order_id);
|
||||
}
|
||||
//确认收货
|
||||
public function confirmReceipt($order_id,$content){
|
||||
$this->save(array(
|
||||
"order_id"=>$order_id,
|
||||
"is_receipt"=>1,
|
||||
));
|
||||
//订单日志
|
||||
$this->log($order_id,$content);
|
||||
//更新状态
|
||||
$this->setOrderState($order_id);
|
||||
}
|
||||
//删除订单
|
||||
public function deleteOrder($order_id){
|
||||
$this->relation(true)->delete($order_id);
|
||||
}
|
||||
//订单日志
|
||||
public function log($order_id,$content){
|
||||
M("shop_order_log")->add(array(
|
||||
"addtime"=>time(),
|
||||
"order_id"=>$order_id,
|
||||
"content"=>$content,
|
||||
));
|
||||
}
|
||||
//自动收货
|
||||
public function autoReceipt(){
|
||||
$auto_time=C("shop.auto_receipt_time");
|
||||
$auto_time=$auto_time?$auto_time:5;
|
||||
$auto_time=$auto_time*3600*24;
|
||||
$ago_time=time()-$auto_time;
|
||||
$data=$this->where(array(
|
||||
"status_code"=>103,
|
||||
"delivery_time"=>array("lt",$ago_time),
|
||||
))->getField("order_id",true);
|
||||
foreach($data as $v){
|
||||
$this->confirmReceipt($v,"超时系统自动收货");
|
||||
}
|
||||
}
|
||||
//自动取消
|
||||
public function autoCancelOrder(){
|
||||
$auto_time=C("shop.order_timeout");
|
||||
//$auto_time=$auto_time?$auto_time:60;
|
||||
$auto_time=$auto_time*3600;
|
||||
$ago_time=time()-$auto_time;
|
||||
$data=$this->where(array(
|
||||
"status_code"=>101,
|
||||
"addtime"=>array("lt",$ago_time),
|
||||
))->getField("order_id",true);
|
||||
foreach($data as $v){
|
||||
$this->cancelOrder($v,"超时系统取消订单");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
<?php
|
||||
|
||||
namespace Shop\Model;
|
||||
|
||||
use Think\Model\RelationModel;
|
||||
use Org\pay\lib;
|
||||
|
||||
class ShopOrderModel extends RelationModel {
|
||||
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
ini_set('date.timezone', 'Asia/Shanghai');
|
||||
//error_reporting(E_ERROR);
|
||||
require_once "./ThinkPHP/Library/Vendor/Wxpay/lib/WxPay.Api.php";
|
||||
require_once "./ThinkPHP/Library/Vendor/Wxpay/example/WxPay.NativePay.php";
|
||||
require_once './ThinkPHP/Library/Vendor/Wxpay/example/WxPay.JsApiPay.php';
|
||||
require_once './ThinkPHP/Library/Vendor/Wxpay/example/log.php';
|
||||
require_once './ThinkPHP/Library/Vendor/Wxpay/example/phpqrcode/phpqrcode.php';
|
||||
require_once './ThinkPHP/Library/Vendor/Wxpay/example/WxpayService.php';
|
||||
}
|
||||
|
||||
//关联模型
|
||||
Protected $_link = array(
|
||||
"shop_order_detail" => array(
|
||||
'mapping_type' => self::HAS_MANY,
|
||||
"parent_key" => 'order_id', //parent_key一定是主键,否则会列不出子表的数据
|
||||
'foreign_key' => 'order_id',
|
||||
),
|
||||
);
|
||||
//验证
|
||||
protected $_validate = array(
|
||||
//array("字段","验证规则","错误提示",["验证条件","附加条件","验证时间"]),
|
||||
array("provinceName", "require", "送货地址不能为空"),
|
||||
array("cityName", "require", "送货地址不能为空"),
|
||||
array("countryName", "require", "送货地址不能为空"),
|
||||
array("detailInfo", "require", "送货地址不能为空"),
|
||||
array("userName", "require", "送货地址不能为空"),
|
||||
array("telNumber", "require", "送货地址不能为空"),
|
||||
);
|
||||
|
||||
public function Wxpay_order_h5($order) {
|
||||
|
||||
$input = new \WxpayService();
|
||||
|
||||
$input->SetAttach($order["order_id"]);
|
||||
$input->setTotalFee($order["money"]*100);
|
||||
$input->setOutTradeNo($order["order_num"]."1");
|
||||
$input->setOrderName("维健乐");
|
||||
$input->setWapUrl("http://" . $_SERVER['HTTP_HOST']);
|
||||
$input->setWapName("维健乐");
|
||||
$input->setNotifyUrl("http://" . $_SERVER['HTTP_HOST'] . "/payment.php");
|
||||
|
||||
$where["order_id"] = $order["order_id"];
|
||||
$where["order_num"] = $order["order_num"];
|
||||
$rs = M("transaction")->where($where)->find();
|
||||
if (!$rs) {
|
||||
$data = array();
|
||||
$data["order_type"] = 1;
|
||||
$data["pay_type"] = 1;
|
||||
$data["order_num"] = $order["order_num"];
|
||||
$data["order_id"] = $order["order_id"];
|
||||
$data["money"] = $order["money"];
|
||||
$data["addtime"] = $order["addtime"];
|
||||
M("transaction")->add($data);
|
||||
}
|
||||
|
||||
return $input->createJsBizPackage();
|
||||
}
|
||||
|
||||
public function Wxpay_order_jssdk($order) {
|
||||
//①、获取用户openid
|
||||
$tools = new \JsApiPay();
|
||||
$openId = session("member_r.openid");
|
||||
// ②、统一下单
|
||||
$input = new \WxPayUnifiedOrder();
|
||||
$input->SetBody("维健乐");
|
||||
$input->SetAttach($order["order_id"]);
|
||||
$input->SetOut_trade_no($order["order_num"]."2");
|
||||
$input->SetTotal_fee($order["money"]*100);
|
||||
$input->SetTime_start(date("YmdHis"));
|
||||
$input->SetTime_expire(date("YmdHis", time() + 600));
|
||||
$input->SetGoods_tag("维健乐");
|
||||
$input->SetNotify_url("http://".$_SERVER['HTTP_HOST']."/payment.php");
|
||||
$input->SetTrade_type("JSAPI");
|
||||
$input->SetOpenid($openId);
|
||||
$orders = \WxPayApi::unifiedOrder($input);
|
||||
$jsApiParameters = $tools->GetJsApiParameters($orders);
|
||||
$where["order_id"] = $order["order_id"];
|
||||
$where["order_num"] = $order["order_num"];
|
||||
$rs = M("transaction")->where($where)->find();
|
||||
if(!$rs){
|
||||
$data = array();
|
||||
$data["order_type"] = 1;
|
||||
$data["pay_type"] = 1;
|
||||
$data["order_num"] = $order["order_num"];
|
||||
$data["order_id"] = $order["order_id"];
|
||||
$data["money"] = $order["money"];
|
||||
$data["addtime"] = $order["addtime"];
|
||||
M("transaction")->add($data);
|
||||
}
|
||||
return $jsApiParameters;
|
||||
}
|
||||
|
||||
public function Wxpay_order($order) {
|
||||
//模式二
|
||||
/**
|
||||
* 流程:
|
||||
* 1、调用统一下单,取得code_url,生成二维码
|
||||
* 2、用户扫描二维码,进行支付
|
||||
* 3、支付完成之后,微信服务器会通知支付成功 $order["money"]*100
|
||||
* 4、在支付成功通知中需要查单确认是否真正支付成功(见:notify.php)
|
||||
*/
|
||||
$notify = new \NativePay();
|
||||
$input = new \WxPayUnifiedOrder();
|
||||
$input->SetBody("维健乐");
|
||||
$input->SetAttach($order["order_id"]);
|
||||
$input->SetOut_trade_no($order["order_num"]."3");
|
||||
$input->SetTotal_fee($order["money"]*100);
|
||||
$input->SetTime_start(date("YmdHis"));
|
||||
$input->SetTime_expire(date("YmdHis", time() + 600));
|
||||
$input->SetGoods_tag("维健乐");
|
||||
$input->SetNotify_url("http://" . $_SERVER['HTTP_HOST'] . "/payment.php");
|
||||
$input->SetTrade_type("NATIVE");
|
||||
$input->SetProduct_id();
|
||||
$result = $notify->GetPayUrl($input);
|
||||
$url = $result["code_url"];
|
||||
$where["order_id"] = $order["order_id"];
|
||||
$where["order_num"] = $order["order_num"];
|
||||
$rs = M("transaction")->where($where)->find();
|
||||
if (!$rs) {
|
||||
$data = array();
|
||||
$data["order_type"] = 1;
|
||||
$data["pay_type"] = 1;
|
||||
$data["order_num"] = $order["order_num"];
|
||||
$data["order_id"] = $order["order_id"];
|
||||
$data["money"] = $order["money"];
|
||||
$data["addtime"] = $order["addtime"];
|
||||
M("transaction")->add($data);
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
public function qrcode($url) {
|
||||
\QRcode::png($url);
|
||||
}
|
||||
|
||||
|
||||
function getIPaddress(){
|
||||
$IPaddress='';
|
||||
if (isset($_SERVER)){
|
||||
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
|
||||
$IPaddress = $_SERVER["HTTP_X_FORWARDED_FOR"];
|
||||
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
|
||||
$IPaddress = $_SERVER["HTTP_CLIENT_IP"];
|
||||
} else {
|
||||
$IPaddress = $_SERVER["REMOTE_ADDR"];
|
||||
}
|
||||
} else {
|
||||
if (getenv("HTTP_X_FORWARDED_FOR")){
|
||||
$IPaddress = getenv("HTTP_X_FORWARDED_FOR");
|
||||
} else if (getenv("HTTP_CLIENT_IP")) {
|
||||
$IPaddress = getenv("HTTP_CLIENT_IP");
|
||||
} else {
|
||||
$IPaddress = getenv("REMOTE_ADDR");
|
||||
}
|
||||
}
|
||||
return $IPaddress;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
<div class="bottom_txt_list">
|
||||
<div class="txt_list_title clear">
|
||||
<span class="fl">订单编号:{$v.order_num}</span>
|
||||
<span class="fl">下单时间:{:date("Y-m-d H:i:s",$v[addtime])}</span>
|
||||
<if condition="$v.status_code eq 201">
|
||||
<a href="{:U('Shop/ShopOrder/deleteOrder',array('order_id'=>$v['order_id']))}" confirm_info="您确定要删除这个订单吗?" class="delete fr ajax_del" title="删除订单"><img src="/Public/skin/images/icon_delete.png"/></a>
|
||||
</if>
|
||||
<if condition="$v.is_pay eq 1">
|
||||
<a href="{:U('Shop/ShopOrder/refundOrder',array('order_id'=>$v['order_id']))}" confirm_info="您确认要申请退款吗?" class="delete fr ajax_del" title="申请退款"><img src="/Public/skin/images/icon_tui.png"/></a>
|
||||
</if>
|
||||
|
||||
</div>
|
||||
<div class="txt_list_body clear">
|
||||
<div class="list_body_lister clear">
|
||||
<div class="list_body_list fl clear list_body_product">
|
||||
<foreach name="v[shop_order_detail]" item="vv">
|
||||
<div class="body_list_lister clear">
|
||||
<div class="body_list_img fl"><img src="{$vv.thumb}" /></div>
|
||||
<div class="body_list_txt fl">
|
||||
<dd><a href="/{$vv.catid}/{$vv.product_id}.html" target="_blank">{$vv.title}</a></dd>
|
||||
<dt>¥{$vv.price}<span>{$vv.quantity}</span></dt>
|
||||
</div>
|
||||
</div>
|
||||
</foreach>
|
||||
</div>
|
||||
<div class="list_body_list fl body_product_li">
|
||||
<dt>¥{$v.pay_money}</dt>
|
||||
</div>
|
||||
<div class="list_body_list fl body_product_li">
|
||||
<dt>{$v.status_name}</dt>
|
||||
|
||||
</div>
|
||||
<div class="list_body_list fl body_product_li">
|
||||
<if condition="$v.status_code eq 101">
|
||||
<a href="{:U('Shop/ShopCart/pay',array('order_id'=>$v['order_id']))}" class="body_list_Pay">立即支付</a>
|
||||
<a href="{:U('Shop/ShopOrder/cancelOrder',array('order_id'=>$v['order_id']))}" confirm_info="您确定要取消这个订单吗?" class="body_list_cancel ajax_del">取消订单</a>
|
||||
</if>
|
||||
<if condition="$v.status_code eq 103">
|
||||
<div>还剩{:auto_receipt_time($v[delivery_time])}</div>
|
||||
<a href="{:U('Shop/ShopOrder/confirmReceipt',array('order_id'=>$v['order_id']))}" confirm_info="您确定确认收货吗?" class="body_list_Pay ajax_del">确认收货</a>
|
||||
</if>
|
||||
<a href="{:U('Shop/ShopOrder/show',array('order_id'=>$v[order_id]))}">订单详情</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,86 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<title>{$pagetitle}-{$Think.config.setting.sitename}</title>
|
||||
<link href="__PUBLIC__/skin/css/animate.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav2.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/slick-min.css" type="text/css" rel="stylesheet"/>
|
||||
<link href="__PUBLIC__/skin/css/global.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<include file="./Application/Data/templateFile/header.html"/>
|
||||
<div class="indexProduct UserCenter_nav">
|
||||
<div class="indexProduct_content clear all">
|
||||
<a href="/">首页</a>
|
||||
<span class="fa fa-angle-right"></span>
|
||||
<a href="#" class="on">在线支付</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="indexProduct UserCenter shopping Pay">
|
||||
<div class="indexProduct_content clear all">
|
||||
<div class="shopping_title clear">
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>1</dd>
|
||||
<dt>我的购物车</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>2</dd>
|
||||
<dt>确认订单信息</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>3</dd>
|
||||
<dt>支付订单(对公转账)</dt>
|
||||
</div>
|
||||
</div>
|
||||
<form action="{:U('bankPay',array('order_id'=>$order[order_id],'is_submit'=>1))}" method="get" class="form1" onsubmit="return save_form(this,isback)">
|
||||
<div class="Pay_top">
|
||||
<div class="Pay_top_title">
|
||||
<p><b>开户银行:</b>中国银行上海通河路支行 </p>
|
||||
<p><b>银行账号:</b>441664296740</p>
|
||||
<p><b>账户名称:</b>上海集锦信息科技有限公司 </p>
|
||||
<p><b>特别提醒:</b><font style="color_F03A58">付款账户名称请与发票抬头(xxx公司)保持一致,否则无法开具发票</font></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="Pay_bottom clear">
|
||||
<div class="Pay_bottom_content fr">
|
||||
<a onclick="$('.form1').submit()">提交</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<include file="./Application/Data/templateFile/footer.html"/>
|
||||
<script type="text/javascript" src="/Public/skin/js/jquery-1.8.3.min.js"></script>
|
||||
<script src="/Public/skin/js/global.js"></script>
|
||||
<script src="/Public/skin/js/nav.js"></script>
|
||||
<script src="/Public/Admin/layer/layer.js"></script>
|
||||
<script src="/Public/Admin/js/globals.js"></script>
|
||||
<script src="/Public/skin/js/plugin.js"></script>
|
||||
<script src="/Public/Home/js/shop.js"></script>
|
||||
<script src="/Public/skin/js/distpicker.data.js"></script>
|
||||
<script src="/Public/skin/js/distpicker.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
function isback(){
|
||||
layer.alert("操作成功", { icon: 1, closeBtn: 0 }, function (index) {
|
||||
window.location.href="/index.php?m=Shop&c=ShopOrder&a=index";
|
||||
});
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cmn-Hans">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">
|
||||
<title>跳转提示</title>
|
||||
<link rel="stylesheet" href="/Public/Home/css/weui.css"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body ontouchstart>
|
||||
<div class="page msg_success js_show">
|
||||
<div class="weui-msg">
|
||||
<div class="weui-msg__icon-area"><i class="weui-icon-warn weui-icon_msg"></i></div>
|
||||
<div class="weui-msg__text-area">
|
||||
<h2 class="weui-msg__title">
|
||||
|
||||
<?php if(isset($message)) {?>
|
||||
<?php echo($message); ?>
|
||||
<?php }else{?>
|
||||
<?php echo($error); ?>
|
||||
<?php }?>
|
||||
|
||||
</h2>
|
||||
|
||||
</div>
|
||||
<div class="weui-msg__opr-area">
|
||||
<p class="weui-btn-area">
|
||||
<a href="<?php echo($jumpUrl); ?>" id="href" class="weui-btn weui-btn_primary">返回上一页</a>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div class="weui-msg__extra-area">
|
||||
<div class="weui-footer">
|
||||
<p class="weui-footer__links">
|
||||
|
||||
</p>
|
||||
<p class="weui-footer__text">Copyright © {:date("Y")}-{:date("Y")+1}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
(function(){
|
||||
var wait = {$waitSecond},href = document.getElementById('href').href;
|
||||
var interval = setInterval(function(){
|
||||
var time = --wait;
|
||||
if(time <= 0) {
|
||||
location.href = href;
|
||||
clearInterval(interval);
|
||||
};
|
||||
}, 1000);
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cmn-Hans">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover">
|
||||
<title>操作成功</title>
|
||||
<link rel="stylesheet" href="/Public/Home/css/weui.css"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body ontouchstart>
|
||||
<div class="page msg_success js_show">
|
||||
<div class="weui-msg">
|
||||
<div class="weui-msg__icon-area"><i class="weui-icon-success weui-icon_msg"></i></div>
|
||||
<div class="weui-msg__text-area">
|
||||
<h2 class="weui-msg__title">
|
||||
|
||||
<?php if(isset($message)) {?>
|
||||
<?php echo($message); ?>
|
||||
<?php }else{?>
|
||||
<?php echo($error); ?>
|
||||
<?php }?>
|
||||
|
||||
</h2>
|
||||
|
||||
</div>
|
||||
<div class="weui-msg__opr-area">
|
||||
<p class="weui-btn-area">
|
||||
<a href="<?php echo($jumpUrl); ?>" id="href" class="weui-btn weui-btn_primary">继续操作</a>
|
||||
|
||||
</p>
|
||||
</div>
|
||||
<div class="weui-msg__extra-area">
|
||||
<div class="weui-footer">
|
||||
<p class="weui-footer__links">
|
||||
|
||||
</p>
|
||||
<p class="weui-footer__text">Copyright © {:date("Y")}-{:date("Y")+1}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
(function(){
|
||||
var wait ={$waitSecond},href = document.getElementById('href').href;
|
||||
var interval = setInterval(function(){
|
||||
var time = --wait;
|
||||
if(time <= 0) {
|
||||
location.href = href;
|
||||
clearInterval(interval);
|
||||
};
|
||||
}, 1000);
|
||||
})();
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,53 @@
|
||||
<div class="Address NewAddress">
|
||||
<div class="SelectAddress_title clear">
|
||||
<dd class="fl">新增收件地址</dd>
|
||||
<a href="javascript:closeAddAddress();" class="fr NewAddress_close"><img src="/Public/skin/images/close.png" /></a>
|
||||
</div>
|
||||
<form action="{:U('Member/Index/address')}" method="post" onsubmit="return save_form(this,thiscallback)">
|
||||
<div class="NewAddress_content">
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">收货人</dd>
|
||||
<dt class="fl"><input name="username" type="text" placeholder="请输入收件人姓名" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">手机号</dd>
|
||||
<dt class="fl"><input name="mobile" type="text" placeholder="请输入收件人姓名" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">所在地区</dd>
|
||||
<dt class="fl">
|
||||
<div id="distpicker5" >
|
||||
<select name="province" ></select>
|
||||
<select name="city" ></select>
|
||||
<select name="area" ></select>
|
||||
</div>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">详细地址</dd>
|
||||
<dt class="fl"><textarea name="detail" placeholder="请输入详细地址"></textarea></dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="NewAddress_bottom">
|
||||
<label class="NewAddress_bottom_checkbox">
|
||||
<input name="sh_status" type="checkbox" value="1"/>
|
||||
<div class="button">设为默认收货地址</div>
|
||||
</label>
|
||||
<label class="NewAddress_bottom_checkbox">
|
||||
<input name="sp_status" type="checkbox" value="1"/>
|
||||
<div class="button">设为默认收票地址</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="NewAddress_submit">
|
||||
<input type="submit" value="保存" />
|
||||
<a href="javascript:closeAddAddress()">取消</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
function thiscallback(){
|
||||
closeAddAddress();
|
||||
closeAddressList();
|
||||
addressList();
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1,28 @@
|
||||
<div class="bg2"></div>
|
||||
<div class="Address SelectAddress">
|
||||
<div class="SelectAddress_title clear">
|
||||
<dd class="fl">选择地址</dd>
|
||||
<a href="javascript:closeAddressList();" class="fr"><img src="/Public/skin/images/close.png" /></a>
|
||||
</div>
|
||||
<div class="SelectAddress_content">
|
||||
<div class="SelectAddress_content_title" style="display: none;">您还没有设置收货地址</div>
|
||||
<div class="SelectAddress_content_txt">
|
||||
<foreach name="data" item="v">
|
||||
<div class="radio_SelectAddress clear">
|
||||
<label class="fl">
|
||||
<input name="sh_address_id" type="radio" value="{$v.id}">
|
||||
<div class="button">{$v.province}{$v.city}{$v.district}{$v.detail}-{$v.username}({$v.mobile})</div>
|
||||
</label>
|
||||
<div class="radio_SelectAddress_operating fl">
|
||||
<a href="javascript:editorAddress({$v.id});" class="fl address_edit">编辑</a>
|
||||
</div>
|
||||
</div>
|
||||
</foreach>
|
||||
</div>
|
||||
<a href="javascript:addAddress()" class="new new_address">新增地址</a>
|
||||
</div>
|
||||
<div class="SelectAddress_bottom clear">
|
||||
<a href="javascript:setShAddress()" class="save">保存</a>
|
||||
<a href="javascript:closeAddressList()">取消</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,340 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<title>{$pagetitle}-{$Think.config.setting.sitename}</title>
|
||||
<link href="__PUBLIC__/skin/css/animate.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav2.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/slick-min.css" type="text/css" rel="stylesheet"/>
|
||||
<link href="__PUBLIC__/skin/css/global.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<include file="./Application/Data/templateFile/header.html"/>
|
||||
<div class="indexProduct UserCenter_nav">
|
||||
<div class="indexProduct_content clear all">
|
||||
<a href="#">首页</a>
|
||||
<span class="fa fa-angle-right"></span>
|
||||
<a href="#" class="on">购物车</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="app">
|
||||
|
||||
|
||||
<div class="indexProduct UserCenter shopping Order">
|
||||
<div class="indexProduct_content clear all">
|
||||
<div class="shopping_title clear">
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>1</dd>
|
||||
<dt>我的购物车</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>2</dd>
|
||||
<dt>确认订单信息</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl">
|
||||
<dd>3</dd>
|
||||
<dt>支付订单</dt>
|
||||
</div>
|
||||
</div>
|
||||
<form action="{:U('confirmation_order')}" method="post" onsubmit="return save_form(this,isOk)">
|
||||
<input type="hidden" name="order_invoice_id" v-model="order_invoice_id"/>
|
||||
<div class="Order_top">
|
||||
<div class="Order_top_list clear">
|
||||
<dd class="fl">收件地址</dd>
|
||||
<dt class="fl">
|
||||
<input type="hidden" name="order_sh_address_id" value="{$sh_address.id}">
|
||||
<if condition="$sh_address">
|
||||
<span id="sh_address_str">{$sh_address.province}{$sh_address.city}{$sh_address.district}{$sh_address.detail}-{$sh_address.username}({$sh_address.mobile})</span>
|
||||
<else/>
|
||||
<span id="sh_address_str">请设置收货地址</span>
|
||||
</if>
|
||||
<a href="javascript:addressList('sh')">设置</a>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="Order_top_list clear">
|
||||
<dd class="fl">发票信息</dd>
|
||||
<dt class="fl">
|
||||
<if condition="$invoice">
|
||||
<span id="invoice_str">{$invoice[type]?'增值税专用发票':'增值税普通发票'} 发票抬头:{$invoice.company_name}</span>
|
||||
<else/>
|
||||
<span id="invoice_str">请设置发票信息</span>
|
||||
</if>
|
||||
<a @click="openFpList" class="InvoiceSetting">设置</a>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="Order_top_list clear" :style="order_invoice_id>0?'display:block':'display:none'">
|
||||
<dd class="fl">收票地址</dd>
|
||||
<dt class="fl">
|
||||
<input type="hidden" name="order_sp_address_id" value="{$sp_address.id}">
|
||||
<if condition="$sp_address">
|
||||
<span id="sp_address_str">{$sp_address.province}{$sp_address.city}{$sp_address.district}{$sp_address.detail}-{$sp_address.username}({$sp_address.mobile})</span>
|
||||
<else/>
|
||||
<span id="sp_address_str">请设置收票地址</span>
|
||||
</if>
|
||||
<a href="javascript:addressList('sp')">设置</a>
|
||||
</dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mygwc cartBox">
|
||||
<div class="mygwc_title clear">
|
||||
<div class="mygwc_title_xun fl">商品清单</div>
|
||||
<div class="mygwc_title_xun fl">商品信息</div>
|
||||
<div class="mygwc_title_xun fl">单价</div>
|
||||
<div class="mygwc_title_xun fl">数量</div>
|
||||
<div class="mygwc_title_xun fl">金额</div>
|
||||
</div>
|
||||
<div class="mygwc_wen">
|
||||
|
||||
<foreach name="data" item="v">
|
||||
<?php
|
||||
$total1=($v[cms_product]['price2']?$v[cms_product]['price2']:$v[cms_product]['price'])*$v[quantity];
|
||||
$total=$total+$total1;
|
||||
?>
|
||||
<div class="mygwc_wen_xun clear order_lists">
|
||||
<div class="wen_xun_img fl clear">
|
||||
<div class="xun_img_left fl"><img src="{$v.cms_product.thumb}"></div>
|
||||
<div class="xun_img_right fl">
|
||||
<dd>{$v.cms_product.title}</dd>
|
||||
<dt>
|
||||
<p>商品型号:{$v.cms_product.type_no}</p>
|
||||
<p>订货号:{$v.cms_product.type_no}</p>
|
||||
</dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wen_xun_dj fl list_price">
|
||||
<dd class="price">¥{$v[cms_product]['price2']?$v[cms_product]['price2']:$v[cms_product]['price']} / 个</dd>
|
||||
<if condition="$v[cms_product]['price2']"><dt><s>¥{$v.cms_product.price} / 个</s></dt></if>
|
||||
</div>
|
||||
<div class="wen_xun_sl fl amount_box">{$v[quantity]}</div>
|
||||
<div class="wen_xun_xj fl list_sum"><span class="sum_price">¥{$total1}</span></div>
|
||||
</div>
|
||||
</foreach>
|
||||
</div>
|
||||
<div class="Order_bottom clear">
|
||||
<div class="Order_bottom_left fl">
|
||||
<dd class="fl">备注:</dd>
|
||||
<dt class="fl">
|
||||
<textarea name="remark" placeholder="若您对订单有特殊要求,请在此留言告知我们,我们的客服会在第一时间跟您沟通,尽量满足您的需求!"></textarea>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="Order_bottom_right fr">
|
||||
<div class="bottom_right_list">
|
||||
<span>商品总金额:</span>
|
||||
<i>{:number_format($total,2)}元</i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Order_Amounts clear">
|
||||
<div class="Order_Amounts_content fr clear">
|
||||
<dd class="fl">应付金额:</dd>
|
||||
<dt class="fl">{:number_format($total,2)} 元</dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Order_submit clear">
|
||||
<div class="fr">
|
||||
<div class="Order_submit_content clear">
|
||||
<a href="{:U('index')}">返回继续购物</a>
|
||||
<input type="submit" value="提交订单" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="fwtk_tan" id="fwtk">
|
||||
<div class="fwtk_tan_bg"></div>
|
||||
<div class="sfwtk_tan_wen">
|
||||
<div class="tan_wen_title">销售合同条款<i class="fa fa-close"></i></div>
|
||||
<div class="tan_wen_nei"><img src="skin/images/bg116.jpg" /></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="bg"></div>
|
||||
<div class="Address SelectInvoice">
|
||||
<div class="SelectAddress_title clear">
|
||||
<dd class="fl">选择发票</dd>
|
||||
<a @click="closeFplist" class="fr SelectInvoice_close"><img src="/Public/skin/images/close.png" /></a>
|
||||
</div>
|
||||
<div class="SelectAddress_content">
|
||||
<div class="SelectAddress_content_title" style="display: none;">您还没有设置收货地址</div>
|
||||
<div class="SelectAddress_content_txt">
|
||||
<div class="radio_SelectAddress clear">
|
||||
<!--<label class="fl">
|
||||
<template v-if="0==order_invoice_id"><input name="fp_id" type="radio" value="0" checked/></template>
|
||||
<template v-else><input name="fp_id" type="radio" value="0"/></template>
|
||||
<div class="button">不需要发票</div>
|
||||
</label>-->
|
||||
<div class="radio_SelectAddress_operating fl"></div>
|
||||
</div>
|
||||
<template v-for="(item,index) in fpList">
|
||||
<div class="radio_SelectAddress clear">
|
||||
<label class="fl">
|
||||
<template v-if="item.id==order_invoice_id"><input name="fp_id" type="radio" :value="item.id" checked/></template>
|
||||
<template v-else><input name="fp_id" type="radio" :value="item.id"/></template>
|
||||
<div class="button">{{item.type==1?'增值税专用发票':'增值税普通发票'}} 发票抬头:{{item.company_name}}</div>
|
||||
</label>
|
||||
<div class="radio_SelectAddress_operating fl">
|
||||
<a @click="openEditorInvoice(item)" class="fl Invoice_edit">编辑</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
<a @click="openEditorInvoice({type:0})" class="new new_Invoice" >新增发票</a>
|
||||
</div>
|
||||
<div class="SelectAddress_bottom clear">
|
||||
<a @click="checkFp" class="save">保存</a>
|
||||
<a @click="closeFplist">取消</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Address Invoice NewInvoice">
|
||||
<div class="SelectAddress_title clear">
|
||||
<dd class="fl">新增发票</dd>
|
||||
<a @click="closeEditorInvoice" class="fr"><img src="/Public/skin/images/close.png" /></a>
|
||||
</div>
|
||||
<form action="{:U('Member/index/invoice')}" method="post" onsubmit="return save_form(this,function(){app.closeEditorInvoice();app.openFpList();})">
|
||||
<input type="hidden" name="type" v-model="fpContent.type">
|
||||
<input type="hidden" name="id" v-model="fpContent.id">
|
||||
<div class="SelectInvoice_content">
|
||||
<div class="SelectInvoice_content_title">
|
||||
<a href="javascript:;" :class="fpContent.type==1?'on':''" onclick="app.fpContent.type=1">增值税专用发票</a>
|
||||
<a href="javascript:;" :class="fpContent.type!=1?'on':''" onclick="app.fpContent.type=0">增值税普通发票</a>
|
||||
</div>
|
||||
<div class="NewAddress_content SelectInvoice_content_txt">
|
||||
<div class="NewAddress_content_list">
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">发票抬头</dd>
|
||||
<dt class="fl"><input type="text" name="company_name" v-model="fpContent.company_name" placeholder="输入公司名称" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">纳税人识别号</dd>
|
||||
<dt class="fl"><input type="text" name="taxpayer_number" v-model="fpContent.taxpayer_number" placeholder="输入纳税人识别号" /></dt>
|
||||
</div>
|
||||
<div :style="fpContent.type==1?'display:block':'display:none'"><!--根据发票类型判断是否要显示专票的相关字段-->
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">注册地址</dd>
|
||||
<dt class="fl"><input type="text" name="registration_address" v-model="fpContent.registration_address" placeholder="输入单位注册地址" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">注册电话</dd>
|
||||
<dt class="fl"><input type="text" name="registration_mobile" v-model="fpContent.registration_mobile" placeholder="输入单位注册电话" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">开户银行</dd>
|
||||
<dt class="fl"><input type="text" name="opening_bank" v-model="fpContent.opening_bank" placeholder="输入开户银行" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">银行账户</dd>
|
||||
<dt class="fl"><input type="text" name="bank_account" v-model="fpContent.bank_account" placeholder="输入银行账户" /></dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="NewAddress_bottom">
|
||||
<label class="NewAddress_bottom_checkbox">
|
||||
<template v-if="fpContent.status==1"><input name="status" type="checkbox" value="1" checked="true"/></template>
|
||||
<template v-else><input name="status" value="1" type="checkbox"/></template>
|
||||
|
||||
<div class="button">设为默认发票</div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="NewAddress_submit">
|
||||
<input type="submit" value="保存" />
|
||||
<a @click="closeEditorInvoice">取消</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<include file="./Application/Data/templateFile/footer.html"/>
|
||||
<script type="text/javascript" src="/Public/skin/js/jquery-1.8.3.min.js"></script>
|
||||
<script src="/Public/skin/js/global.js"></script>
|
||||
<script src="/Public/skin/js/nav.js"></script>
|
||||
<script src="/Public/Admin/layer/layer.js"></script>
|
||||
<script src="/Public/Admin/js/globals.js"></script>
|
||||
<script src="/Public/skin/js/plugin.js"></script>
|
||||
<script src="/Public/Home/js/shop.js"></script>
|
||||
<script src="/Public/skin/js/distpicker.data.js"></script>
|
||||
<script src="/Public/skin/js/distpicker.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
//提交表单成功回调函数
|
||||
function isOk(result){
|
||||
window.location.href=result;
|
||||
}
|
||||
//
|
||||
var app = new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
fpList:[],//发票列表
|
||||
fpContent:[],//发票详情
|
||||
order_invoice_id:"{$invoice.id}",//表单里的发票ID
|
||||
},
|
||||
methods:{
|
||||
//发票列表
|
||||
openFpList:function(){
|
||||
$.get("/index.php?m=Shop&c=ShopCart&a=fpList",function(result){
|
||||
if(result.status==1){
|
||||
app.fpList=result.info;
|
||||
$(".SelectInvoice").fadeIn();
|
||||
$(".bg").show();
|
||||
}
|
||||
},"json");
|
||||
},
|
||||
//关闭发票列表
|
||||
closeFplist:function(){
|
||||
$(".SelectInvoice").fadeOut();
|
||||
$(".bg").hide();
|
||||
},
|
||||
//修改发票
|
||||
openEditorInvoice:function(data){
|
||||
app.fpContent=data;
|
||||
$(".NewInvoice").fadeIn();
|
||||
$(".NewAddress_bg").show();
|
||||
},
|
||||
//关闭修改发票
|
||||
closeEditorInvoice:function(){
|
||||
$(".NewInvoice").fadeOut();
|
||||
$(".NewAddress_bg").hide();
|
||||
},
|
||||
//最终选择的发票
|
||||
checkFp:function(){
|
||||
var fpid=$("input[name='fp_id']:checked").val();
|
||||
if(fpid){
|
||||
app.order_invoice_id=fpid;
|
||||
var fpname=$("input[name='fp_id']:checked").next().html();
|
||||
$("#invoice_str").html(fpname);
|
||||
//如果不需要发票,删除收票地址
|
||||
if(fpid==0){
|
||||
$("input[name='order_sp_address_id']").val("");
|
||||
$("#sp_address_str").html("未选择收票地址");
|
||||
}
|
||||
}else{
|
||||
layer.alert("未选择发票");
|
||||
}
|
||||
app.closeFplist();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,60 @@
|
||||
<div class="Address NewAddress">
|
||||
<div class="SelectAddress_title clear">
|
||||
<dd class="fl">新增收件地址</dd>
|
||||
<a href="javascript:closeAddAddress();" class="fr NewAddress_close"><img src="/Public/skin/images/close.png" /></a>
|
||||
</div>
|
||||
<form action="{:U('Member/Index/address')}" method="post" onsubmit="return save_form(this,thiscallback)">
|
||||
<input type="hidden" name="id" value="{$r.id}">
|
||||
<div class="NewAddress_content">
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">收货人</dd>
|
||||
<dt class="fl"><input name="username" value="{$r.username}" type="text" placeholder="请输入收件人姓名" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">手机号</dd>
|
||||
<dt class="fl"><input name="mobile" value="{$r.mobile}" type="text" placeholder="请输入收件人姓名" /></dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">所在地区</dd>
|
||||
<dt class="fl">
|
||||
<div id="distpicker5" >
|
||||
<select name="province" ></select>
|
||||
<select name="city" ></select>
|
||||
<select name="area" ></select>
|
||||
</div>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="NewAddress_content_list clear">
|
||||
<dd class="fl">详细地址</dd>
|
||||
<dt class="fl"><textarea name="detail" placeholder="请输入详细地址">{$r.detail}</textarea></dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="NewAddress_bottom">
|
||||
<label class="NewAddress_bottom_checkbox">
|
||||
<input name="sh_status" type="checkbox" value="1" {$r[sh_status]?'checked':''}/>
|
||||
<div class="button">设为默认收货地址</div>
|
||||
</label>
|
||||
<label class="NewAddress_bottom_checkbox">
|
||||
<input name="sp_status" type="checkbox" value="1" {$r[sp_status]?'checked':''}/>
|
||||
<div class="button">设为默认收票地址</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="NewAddress_submit">
|
||||
<input type="submit" value="保存" />
|
||||
<a href="javascript:closeAddAddress()">取消</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<script>
|
||||
function thiscallback(){
|
||||
closeAddAddress();
|
||||
closeAddressList();
|
||||
addressList();
|
||||
}
|
||||
//
|
||||
$("#distpicker5").distpicker({
|
||||
province: "{$r.province}",
|
||||
city: "{$r.city:}",
|
||||
district: "{$r.area}"
|
||||
});
|
||||
</script>
|
||||
@@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<title>{$pagetitle}-{$Think.config.setting.sitename}</title>
|
||||
<link href="__PUBLIC__/skin/css/animate.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav2.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/slick-min.css" type="text/css" rel="stylesheet"/>
|
||||
<link href="__PUBLIC__/skin/css/global.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<include file="./Application/Data/templateFile/header.html"/>
|
||||
<div class="indexProduct UserCenter shopping">
|
||||
<div class="indexProduct_content clear all">
|
||||
<div class="shopping_title clear">
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>1</dd>
|
||||
<dt>我的购物车</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl">
|
||||
<dd>2</dd>
|
||||
<dt>确认订单信息</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl">
|
||||
<dd>3</dd>
|
||||
<dt>支付订单</dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mygwc cartBox">
|
||||
<form name="" method="post" action="" onsubmit="return save_form(this,callback)">
|
||||
<div class="mygwc_title clear">
|
||||
<div class="mygwc_title_xun fl">
|
||||
<label class="checkbox_gwc">
|
||||
<input name="nm" type="checkbox" value="" id="mor" class="whole_check"/>
|
||||
<div class="title_wen_xun clear">
|
||||
<dd class="fl"></dd>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="mygwc_title_xun fl">商品信息</div>
|
||||
<div class="mygwc_title_xun fl">单价</div>
|
||||
<div class="mygwc_title_xun fl">数量</div>
|
||||
<div class="mygwc_title_xun fl">小计</div>
|
||||
<div class="mygwc_title_xun fl">操作</div>
|
||||
</div>
|
||||
<div class="mygwc_wen">
|
||||
<foreach name="data" item="v">
|
||||
<div class="mygwc_wen_xun clear order_lists" data-id="{$v.id}">
|
||||
<div class="wen_xun_buttom fl">
|
||||
<label class="checkbox_gwc">
|
||||
<input name="ids[]" type="checkbox" value="{$v.id}" id="mor" class="son_check"/>
|
||||
<div class="title_wen_xun"><dd></dd></div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="wen_xun_img fl clear">
|
||||
<div class="xun_img_left fl"><a href="{:titleurl($v[cms_product])}" target="_blank"><img src="{$v.cms_product.thumb}"></a></div>
|
||||
<div class="xun_img_right fl">
|
||||
<dd><a href="{:titleurl($v[cms_product])}" target="_blank">{$v.cms_product.title}</a></dd>
|
||||
<dt>
|
||||
<p>商品型号:{$v.cms_product.type_no}</p>
|
||||
<p>订货号:{$v.cms_product.type_no}</p>
|
||||
</dt>
|
||||
</div>
|
||||
</div>
|
||||
<div class="wen_xun_dj fl list_price">
|
||||
<dd class="price">¥{$v[cms_product]['price2']?$v[cms_product]['price2']:$v[cms_product]['price']} / 个</dd>
|
||||
<if condition="$v[cms_product]['price2']"><dt><s>¥{$v.cms_product.price} / 个</s></dt></if>
|
||||
|
||||
</div>
|
||||
<div class="wen_xun_sl fl amount_box">
|
||||
<a href="javascript:;" class="reduce reSty fl" data-id="{$v.id}">-</a>
|
||||
<input type="text" value="{$v.quantity}" data-id="{$v.id}" class="sum fl">
|
||||
<a href="javascript:;" class="plus fl" data-id="{$v.id}">+</a>
|
||||
</div>
|
||||
<div class="wen_xun_xj fl list_sum"><span class="sum_price">¥{:($v[cms_product]['price2']?$v[cms_product]['price2']:$v[cms_product]['price'])*$v[quantity]}</span></div>
|
||||
<div class="wen_xun_cz fl">
|
||||
<a href="javascript:;" class="delBtn" data-id="{$v.id}">删除</a>
|
||||
</div>
|
||||
</div>
|
||||
</foreach>
|
||||
|
||||
</div>
|
||||
<div class="mygwc_jieg clear">
|
||||
<div class="mygwc_jieg_left fl">
|
||||
<a href="javascript:history.go(-1)"><img src="/Public/skin/images/bn81.png" />返回继续购物</a>
|
||||
<a href="javascript:;" id="deleteAll">删除选中商品</a>
|
||||
</div>
|
||||
<div class="mygwc_jieg_right fr clear">
|
||||
<div class="jieg_right_gj totalMoney">总金额(不含运费):<span class="total_text">¥0.00</span> 元 </div>
|
||||
<input type="submit" value="结算" disabled class="fr" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<section class="model_bg"></section>
|
||||
<section class="my_model">
|
||||
<p class="title">删除宝贝<span class="closeModel">X</span></p>
|
||||
<p>您确认要删除该宝贝吗?</p>
|
||||
<div class="opBtn"><a href="javascript:;" class="dialog-sure">确定</a><a href="javascript:;" class="dialog-close">关闭</a></div>
|
||||
</section>
|
||||
<include file="./Application/Data/templateFile/footer.html"/>
|
||||
<script type="text/javascript" src="__PUBLIC__/skin/js/jquery-1.8.3.min.js"></script>
|
||||
<script src="__PUBLIC__/skin/js/global.js"></script>
|
||||
<script src="__PUBLIC__/skin/js/nav.js"></script>
|
||||
<script src="/Public/Admin/layer/layer.js"></script>
|
||||
<script src="/Public/Admin/js/globals.js"></script>
|
||||
<script>
|
||||
function callback(data){
|
||||
window.location.href="{:U('confirmation_order')}";
|
||||
}
|
||||
var change_shop_cart_url = "{:U('change_shop_cart')}";
|
||||
var delete_url = "{:U('delete')}";
|
||||
</script>
|
||||
<script src="/Public/Home/js/shop.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,92 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/html" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="renderer" content="webkit" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<title>{$pagetitle}-{$Think.config.setting.sitename}</title>
|
||||
<link href="__PUBLIC__/skin/css/animate.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav2.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/slick-min.css" type="text/css" rel="stylesheet"/>
|
||||
<link href="__PUBLIC__/skin/css/global.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<include file="./Application/Data/templateFile/header.html"/>
|
||||
<div class="indexProduct UserCenter_nav">
|
||||
<div class="indexProduct_content clear all">
|
||||
<a href="/">首页</a>
|
||||
<span class="fa fa-angle-right"></span>
|
||||
<a href="#" class="on">在线支付</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="indexProduct UserCenter shopping Pay">
|
||||
<div class="indexProduct_content clear all">
|
||||
<div class="shopping_title clear">
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>1</dd>
|
||||
<dt>我的购物车</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>2</dd>
|
||||
<dt>确认订单信息</dt>
|
||||
</div>
|
||||
<div class="shopping_title_list fl on">
|
||||
<dd>3</dd>
|
||||
<dt>支付订单</dt>
|
||||
</div>
|
||||
</div>
|
||||
<form>
|
||||
<div class="Pay_top">
|
||||
<div class="Pay_top_title">
|
||||
<p>感谢您提交订单,请在24小时内完成支付,我们将在您成功付款后处理此订单。</p>
|
||||
<p>订单号:{$order.order_num}</p>
|
||||
</div>
|
||||
<div class="Pay_top_content clear">
|
||||
<label class="top_content_list fl">
|
||||
<input name="payType" type="radio" value="{:U('Pay/aliPay',array('order_id'=>$order[order_id]))}" checked/>
|
||||
<div class="button"><img src="/Public/skin/images/bg46.jpg" /></div>
|
||||
</label>
|
||||
<label class="top_content_list fl">
|
||||
<input name="payType" type="radio" value="{:U('Pay/bankPay',array('order_id'=>$order[order_id]))}" />
|
||||
<div class="button"><img src="/Public/skin/images/gdg_tran.jpg" /></div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Pay_bottom clear">
|
||||
<div class="Pay_bottom_content fr">
|
||||
<dd>支付金额:<span>¥{$order.pay_money}</span></dd>
|
||||
<a href="javascript:pay()">去支付</a>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<include file="./Application/Data/templateFile/footer.html"/>
|
||||
<script type="text/javascript" src="/Public/skin/js/jquery-1.8.3.min.js"></script>
|
||||
<script src="/Public/skin/js/global.js"></script>
|
||||
<script src="/Public/skin/js/nav.js"></script>
|
||||
<script src="/Public/Admin/layer/layer.js"></script>
|
||||
<script src="/Public/Admin/js/globals.js"></script>
|
||||
<script src="/Public/skin/js/plugin.js"></script>
|
||||
<script src="/Public/Home/js/shop.js"></script>
|
||||
<script src="/Public/skin/js/distpicker.data.js"></script>
|
||||
<script src="/Public/skin/js/distpicker.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
|
||||
<script type="text/javascript">
|
||||
function pay(){
|
||||
var url=$("input[name='payType']:checked").val();
|
||||
window.location.href=url;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,92 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html class="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="text/html" http-equiv="content-type" />
|
||||
<meta content="IE=edge" http-equiv="X-UA-Compatible">
|
||||
<meta content="webkit" name="renderer" />
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
||||
<title>{$pagetitle}-{$Think.config.setting.sitename}</title>
|
||||
<link href="__PUBLIC__/skin/css/animate.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav2.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/slick-min.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="__PUBLIC__/skin/css/global.css" rel="stylesheet">
|
||||
</head>
|
||||
<body>
|
||||
<include file="./Application/Data/templateFile/header.html"/>
|
||||
<div class="indexProduct UserCenter_nav">
|
||||
<div class="indexProduct_content clear all">
|
||||
<a href="/">首页</a>
|
||||
<span class="fa fa-angle-right"></span>
|
||||
<a href="#" class="on">用户中心</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="indexProduct UserCenter MyOrder">
|
||||
<div class="indexProduct_content clear all">
|
||||
<div class="UserCenter_left fl"><include file="./Application/Member/View/Inc/left.html"/></div>
|
||||
<div class="UserCenter_right fl">
|
||||
<div class="MyOrder_title">
|
||||
<form action="/index.php/Shop/ShopOrder/index.html" mehod="get" class="clear">
|
||||
<div class="MyOrder_title_list fl">
|
||||
订单号:<input type="text" name="order_num" value="{$_GET[order_num]}"/>
|
||||
</div>
|
||||
<div class="MyOrder_title_list fl">
|
||||
订货号:<input type="text" name="type_no" value="{$_GET[type_no]}"/>
|
||||
</div>
|
||||
<div class="MyOrder_title_list fl">
|
||||
产品名称:<input type="text" name="title" value="{$_GET[title]}"/>
|
||||
</div>
|
||||
<div class="MyOrder_title_submit">
|
||||
<input type="submit" value="查询" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="MyOrder_content">
|
||||
<div class="MyOrder_content_top clear">
|
||||
<a href="/index.php/Shop/ShopOrder/index.html" class="fl {$_GET[status_code]?'':'on'}">全部订单</a>
|
||||
<a href="/index.php/Shop/ShopOrder/index.html?status_code=101" class="fl {$_GET[status_code]==101?'on':''}">待付款(<span>{$readyPayCount}</span>)</a>
|
||||
<a href="/index.php/Shop/ShopOrder/index.html?status_code=102" class="fl {$_GET[status_code]==102?'on':''}">待发货(<span>{$readyDeliveryCount}</span>)</a>
|
||||
<a href="/index.php/Shop/ShopOrder/index.html?status_code=103" class="fl {$_GET[status_code]==103?'on':''}">待收货(<span>{$readyReceiptCount}</span>)</a>
|
||||
<a href="/index.php/Shop/ShopOrder/index.html?status_code=104" class="fl {$_GET[status_code]==104?'on':''}">已完成订单(<span>{$ReceiptCount}</span>)</a>
|
||||
</div>
|
||||
<div class="MyOrder_content_bottom">
|
||||
<div class="content_bottom_title clear">
|
||||
<dd class="fl">商品信息</dd>
|
||||
<dd class="fl">金额</dd>
|
||||
<dd class="fl">订单状态</dd>
|
||||
<dd class="fl">操作</dd>
|
||||
</div>
|
||||
|
||||
<div class="content_bottom_txt">
|
||||
|
||||
<foreach name="data" item="v">
|
||||
<include file="./Application/Shop/View/Inc/orderLi.html"/>
|
||||
</foreach>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="page vertical">{$listpage}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<include file="./Application/Data/templateFile/footer.html"/>
|
||||
<script type="text/javascript" src="/Public/skin/js/jquery-1.8.3.min.js"></script>
|
||||
<script src="/Public/skin/js/global.js"></script>
|
||||
<script src="/Public/skin/js/nav.js"></script>
|
||||
<script src="/Public/Admin/layer/layer.js"></script>
|
||||
<script src="/Public/Admin/js/globals.js"></script>
|
||||
<script>
|
||||
$(document).ready(function($){
|
||||
$(".MyOrder .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list").each(function() {
|
||||
var h_1 = $(this).find(".list_body_product").height();
|
||||
$(this).find(".body_product_li").height(h_1);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html>
|
||||
<html class="">
|
||||
<style>
|
||||
|
||||
</style>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="text/html" http-equiv="content-type" />
|
||||
<meta content="IE=edge" http-equiv="X-UA-Compatible">
|
||||
<meta content="webkit" name="renderer" />
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
||||
<title>{$pagetitle}</title>
|
||||
<link href="/Public/skin/css/animate.min.css" rel="stylesheet">
|
||||
<link href="/Public/skin/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="/Public/skin/css/nav.css" rel="stylesheet">
|
||||
<link href="/Public/skin/css/nav2.css" rel="stylesheet">
|
||||
<link href="/Public/skin/css/slick-min.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="/Public/skin/css/global.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
|
||||
<style>
|
||||
.Logistics{ background: #f3f3f3; width: 100%; margin: 0 auto; padding: 25px;}
|
||||
.Logistics .Logistics_title{ font-size: 18px; border-bottom: 1px solid #e7e7e7; margin: 0; padding: 14px 0 14px 20px; position: relative;}
|
||||
.Logistics .Logistics_content{ margin: 20px 0px; margin-left: 12px; padding: 20px 0px; padding-left: 10px; position: relative;}
|
||||
.Logistics .Logistics_content:before{
|
||||
content: "";
|
||||
width: 2px;
|
||||
height: 100%;
|
||||
background: #dcdcdc;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
}
|
||||
.Logistics .Logistics_content .Logistics_content_list{ position: relative; padding-left: 12px; margin-bottom: 15px;}
|
||||
.Logistics .Logistics_content .Logistics_content_list dd{ width: 20%; font-size: 13px; font-weight: bolder; color: #666; line-height: 24px;}
|
||||
.Logistics .Logistics_content .Logistics_content_list dt{ font-size: 13px; color: #333; width: 77%; margin-left: 3%; line-height: 24px;}
|
||||
.Logistics .Logistics_content .Logistics_content_list:before{
|
||||
content: '';
|
||||
position: absolute;
|
||||
border: 3px solid #f3f3f3;
|
||||
background-color: #d9d9d9;
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
border-radius: 5px;
|
||||
left: -5px;
|
||||
top: 5px;
|
||||
}
|
||||
.Logistics .Logistics_content .Logistics_content_list:first-child:before{ background: #b8182c;}
|
||||
.Logistics .Logistics_content .Logistics_content_list:first-child dd{ color: #b8182c;}
|
||||
|
||||
</style>
|
||||
<body>
|
||||
<div class="Logistics">
|
||||
<div class="Logistics_content">
|
||||
<foreach name="data" item="v" >
|
||||
<div class="Logistics_content_list clear">
|
||||
<dd class="fl">{$v.time}</dd>
|
||||
<dt class="fl">{$v.context}</dt>
|
||||
</div>
|
||||
</foreach>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="/Public/skin/js/jquery-1.8.3.min.js"></script>
|
||||
<script src="/Public/Admin/layer/layer.js"></script>
|
||||
<script src="/Public/Admin/js/globals.js"></script>
|
||||
<script language="javascript">
|
||||
$(function(){
|
||||
//改变高度
|
||||
var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
|
||||
parent.layer.iframeAuto(index);
|
||||
var title=$("title").html();
|
||||
parent.$(".layui-layer-title").html(title);
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,217 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html class="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="text/html" http-equiv="content-type" />
|
||||
<meta content="IE=edge" http-equiv="X-UA-Compatible">
|
||||
<meta content="webkit" name="renderer" />
|
||||
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
||||
<title>{$pagetitle}-{$Think.config.setting.sitename}</title>
|
||||
<link href="__PUBLIC__/skin/css/animate.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/nav2.css" rel="stylesheet">
|
||||
<link href="__PUBLIC__/skin/css/slick-min.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="__PUBLIC__/skin/css/global.css" rel="stylesheet">
|
||||
</head>
|
||||
<body> <include file="./Application/Data/templateFile/header.html"/>
|
||||
|
||||
<div class="indexProduct UserCenter_nav">
|
||||
<div class="indexProduct_content clear all">
|
||||
<a href="#">首页</a>
|
||||
<span class="fa fa-angle-right"></span>
|
||||
<a href="#" class="on">订单详情</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
|
||||
.MyOrder .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list .txt_list_body .list_body_list .body_list_lister{ margin-bottom:7px;}
|
||||
.MyOrder .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list .txt_list_body .list_body_list .body_list_lister:last-child{ margin-bottom:0px;}
|
||||
.MyOrder .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list .txt_list_body .list_body_list .body_list_lister .body_list_txt dd a{ display:inline-block; width:100%;}
|
||||
|
||||
.Order_details .indexProduct_content{ background: none;}
|
||||
.Order_details .mygwc{ width: 81%; background: #fff; padding: 20px; border: 1px solid #e5e5e5; border-left: 0px; padding-top: 0px;}
|
||||
.Order_details .Safety_title{ margin-bottom: 30px;}
|
||||
.Order_details .UserCenter_left{ width: 19%;}
|
||||
.Order_details .Order_bottom{ padding: 0px;}
|
||||
.Order_details .UserCenter_right{ padding:0px; width:100%; border:0px;}
|
||||
.Order_details .MyOrder_content .MyOrder_content_bottom .content_bottom_title dd:nth-child(1){ width:80%;}
|
||||
.Order_details .MyOrder_content .MyOrder_content_bottom .content_bottom_title dd:nth-child(2){ width:20%; text-align:center;}
|
||||
.Order_details .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list .txt_list_body .list_body_list:nth-child(1){ width:80%;}
|
||||
.Order_details .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list .txt_list_body .list_body_list:nth-child(2){ width:20%;}
|
||||
.Order_details .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list .txt_list_body .list_body_list .body_list_img{ width:100px; margin-right:15px;}
|
||||
.Order_details .UserCenter_right{ min-height:auto; }
|
||||
.Order_details .Order_bottom .Order_bottom_right{ margin-top:20px;}
|
||||
.Order_details .Order_details_top .details_top_list{ border:1px solid #dcdcdc; padding:30px 0px; margin-bottom:20px;}
|
||||
.Order_details .Order_details_top .details_top_list:last-child{ margin-bottom:0px;}
|
||||
.Order_details .Order_details_top .details_top_list .top_list_lister{ line-height:24px; width:33.333%; padding:0px 35px; position:relative;}
|
||||
.Order_details .Order_details_top .details_top_list .top_list_lister:before{ content:""; position:absolute; display:inline-block; height:122px; background:#dcdcdc; right:0; top:3%; width:1px;}
|
||||
.Order_details .Order_details_top .details_top_list .top_list_lister:last-child:before{ display:none;}
|
||||
.Order_details .Order_details_top .details_top_list .top_list_lister dd{ color:#000; font-size:14px;}
|
||||
.Order_details .Order_details_top .details_top_list .top_list_lister dd span{ color:#b8182c; font-size:16px;}
|
||||
.Order_details .Order_details_top .details_top_list .top_list_lister dt p{ color:#999; font-size:12px;}
|
||||
.Order_details .Order_details_top .details_top_list .top_list_lister a{ font-size:14px; color:#b8182c; display:inline-block; border:1px solid #b8182c; padding:3px 15px; border-radius:5px; margin-top:25px;}
|
||||
.Order_details .Order_details_top .details_top_list:nth-child(2) .top_list_lister:before{ height:210px;}
|
||||
.Order_details .MyOrder_content .MyOrder_content_bottom .content_bottom_txt .bottom_txt_list .txt_list_body .list_body_list:last-child{ border-right: 0px;}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
<div class="indexProduct UserCenter Safety shopping MyOrder Order Order_details">
|
||||
<div class="indexProduct_content clear all">
|
||||
<div class="UserCenter_left fl"><include file="./Application/Member/View/Inc/left.html"/></div>
|
||||
<div class="mygwc cartBox fr">
|
||||
<div class="Safety_title">订单详情</div>
|
||||
<div class="Order_bottom clear">
|
||||
<div class="Order_details_top">
|
||||
<div class="details_top_list clear">
|
||||
<div class="top_list_lister fl">
|
||||
<dd>订单状态:<span>{$r.status_name}</span></dd>
|
||||
<dt>
|
||||
<p>订单号:<span>{$r.order_num}</span></p>
|
||||
<p>下单时间:{:date("Y-m-d H:i:s",$r[addtime])}</p>
|
||||
<p>订单备注:{$r[remark]?$r[remark]:'-'}</p>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="top_list_lister fl">
|
||||
<dd>订单收货信息</dd>
|
||||
<dt>
|
||||
<p>收货人:{$r.shop_order_address.username} {$r.shop_order_address.mobile}</p>
|
||||
<p>收货地址:{$r.shop_order_address.province} {$r.shop_order_address.city} {$r.shop_order_address.area} {$r.shop_order_address.detail}</p>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="top_list_lister fl">
|
||||
<dd>订单物流信息</dd>
|
||||
<dt>
|
||||
<p>物流公司:{$r[shop_order_address][express_company]?$r[shop_order_address][express_company]:'-'}</p>
|
||||
<p>物流单号:{$r[shop_order_address][express_company_num]?$r[shop_order_address][express_company_num]:'-'}</p>
|
||||
</dt>
|
||||
<?php
|
||||
if($r[shop_order_address][express_company_num]){
|
||||
$com=$r['shop_order_address'][express_company_code];
|
||||
$num=$r['shop_order_address'][express_company_num];
|
||||
?>
|
||||
<a href="{:U('kuaidi',array('com'=>$com,'num'=>$num))}" class="iframe" >物流跟踪</a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
if($r[shop_order_invoice]){
|
||||
?>
|
||||
<div class="details_top_list clear">
|
||||
<div class="top_list_lister fl">
|
||||
<dd>发票信息:</dd>
|
||||
<dt>
|
||||
<p>发票类型:<span>{$r[shop_order_invoice][type]?'增值税专用发票':'增值税普通发票'}</span></p>
|
||||
<p>公司名称:{$r.shop_order_invoice.company_name}</p>
|
||||
<p>纳税人识别号:{$r.shop_order_invoice.taxpayer_number}</p>
|
||||
<?php
|
||||
if($r[shop_order_invoice][type]){
|
||||
?>
|
||||
<p>注册地址:{$r.shop_order_invoice.registration_address}</p>
|
||||
<p>注册电话:{$r.shop_order_invoice.registration_mobile}</p>
|
||||
<p>开户银行:{$r.shop_order_invoice.opening_bank}</p>
|
||||
<p>银行招账户:{$r.shop_order_invoice.bank_account}</p>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="top_list_lister fl">
|
||||
<dd>发票收货信息</dd>
|
||||
<dt>
|
||||
<p>收货人:{$r.shop_order_invoice_address.username} {$r.shop_order_invoice_address.mobile}</p>
|
||||
<p>收货地址:{$r.shop_order_invoice_address.province} {$r.shop_order_invoice_address.city} {$r.shop_order_invoice_address.area} {$r.shop_order_invoice_address.detail}</p>
|
||||
</dt>
|
||||
</div>
|
||||
<div class="top_list_lister fl">
|
||||
<dd>订单物流信息</dd>
|
||||
<dt>
|
||||
<p>物流公司:{$r[shop_order_invoice_address][express_company]?$r[shop_order_invoice_address][express_company]:'-'}</p>
|
||||
<p>物流单号:{$r[shop_order_invoice_address][express_company_num]?$r[shop_order_invoice_address][express_company_num]:'-'}</p>
|
||||
</dt>
|
||||
<?php
|
||||
if($r[shop_order_invoice_address][express_company_num]){
|
||||
$com=$r['shop_order_invoice_address'][express_company_code];
|
||||
$num=$r['shop_order_invoice_address'][express_company_num];
|
||||
?>
|
||||
<a href="{:U('kuaidi',array('com'=>$com,'num'=>$num))}" class="iframe" >物流跟踪</a>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="UserCenter_right fl">
|
||||
<div class="MyOrder_content">
|
||||
<div class="MyOrder_content_bottom">
|
||||
<div class="content_bottom_title clear">
|
||||
<dd class="fl">商品信息</dd>
|
||||
<dd class="fl">金额</dd>
|
||||
</div>
|
||||
<div class="content_bottom_txt">
|
||||
<div class="bottom_txt_list">
|
||||
<div class="txt_list_title">
|
||||
<span>订单编号:{$r.order_num}</span>
|
||||
<span>下单时间:{:date("Y-m-d H:i:s",$r[addtime])}</span>
|
||||
</div>
|
||||
<div class="txt_list_body clear">
|
||||
<div class="list_body_lister clear">
|
||||
<div class="list_body_list fl clear list_body_product">
|
||||
<foreach name="r[shop_order_detail]" item="vv">
|
||||
<div class="body_list_lister clear">
|
||||
<div class="body_list_img fl"><img src="{$vv.thumb}" /></div>
|
||||
<div class="body_list_txt fl">
|
||||
<dd><a href="/{$vv.catid}/{$vv.product_id}.html" target="_blank">{$vv.title}</a></dd>
|
||||
<dt>¥{$vv.price}<span>{$vv.quantity}</span></dt>
|
||||
</div>
|
||||
</div>
|
||||
</foreach>
|
||||
|
||||
</div>
|
||||
<div class="list_body_list fl body_product_li">
|
||||
<dt>¥{$r.money}</dt>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Order_bottom_right fr">
|
||||
<div class="bottom_right_list">
|
||||
<span>商品总金额:</span>
|
||||
<i>{$r.money} 元</i>
|
||||
</div>
|
||||
<div class="bottom_right_list">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Order_Amounts clear">
|
||||
<div class="Order_Amounts_content fr clear">
|
||||
<dd class="fl">应付金额:</dd>
|
||||
<dt class="fl">{$r.pay_money}元</dt>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<include file="./Application/Data/templateFile/footer.html"/>
|
||||
<script type="text/javascript" src="__PUBLIC__/skin/js/jquery-1.8.3.min.js"></script>
|
||||
<script src="/Public/Admin/layer/layer.js"></script>
|
||||
<script src="/Public/Admin/js/globals.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user