Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jamesyang1999
ShopXO
提交
6e2793ba
ShopXO
项目概览
jamesyang1999
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e2793ba
编写于
11月 21, 2019
作者:
D
devil_gong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
订单自提模式优化
上级
87d7c6ce
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
236 addition
and
89 deletion
+236
-89
application/admin/controller/Order.php
application/admin/controller/Order.php
+1
-1
application/admin/view/default/order/index.html
application/admin/view/default/order/index.html
+25
-23
application/index/view/default/order/detail.html
application/index/view/default/order/detail.html
+20
-0
application/service/BuyService.php
application/service/BuyService.php
+64
-13
application/service/OrderService.php
application/service/OrderService.php
+74
-25
config/shopxo.sql
config/shopxo.sql
+49
-27
public/static/index/default/css/order.detail.css
public/static/index/default/css/order.detail.css
+3
-0
未找到文件。
application/admin/controller/Order.php
浏览文件 @
6e2793ba
...
@@ -197,7 +197,7 @@ class Order extends Common
...
@@ -197,7 +197,7 @@ class Order extends Common
}
}
/**
/**
* [Delivery 订单发货]
* [Delivery 订单发货
/取货
]
* @author Devil
* @author Devil
* @blog http://gong.gg/
* @blog http://gong.gg/
* @version 0.0.1
* @version 0.0.1
...
...
application/admin/view/default/order/index.html
浏览文件 @
6e2793ba
...
@@ -233,6 +233,24 @@
...
@@ -233,6 +233,24 @@
{{if empty($v['order_no'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$v.order_no}}{{/if}}
{{if empty($v['order_no'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$v.order_no}}{{/if}}
</dd>
</dd>
<dt>
订单模式
</dt>
<dd>
{{if empty($v['order_model_name'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}
<span
class=
"am-badge am-badge-secondary am-radius"
title=
"订单模式"
>
{{$v.order_model_name}}
</span>
{{/if}}
</dd>
<dt>
客户端类型
</dt>
<dd>
{{if empty($v['client_type_name'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}
<span
class=
"am-badge am-badge-secondary am-radius"
title=
"客户端类型"
>
{{$v.client_type_name}}
</span>
{{/if}}
</dd>
<dt>
基础信息
</dt>
<dt>
基础信息
</dt>
<dd>
<dd>
{{foreach $v.items as $vs}}
{{foreach $v.items as $vs}}
...
@@ -287,24 +305,6 @@
...
@@ -287,24 +305,6 @@
{{/if}}
{{/if}}
</dd>
</dd>
<dt>
订单模式
</dt>
<dd>
{{if empty($v['order_model_name'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}
<span
class=
"am-badge am-badge-secondary am-radius"
title=
"订单模式"
>
{{$v.order_model_name}}
</span>
{{/if}}
</dd>
<dt>
客户端类型
</dt>
<dd>
{{if empty($v['client_type_name'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}
<span
class=
"am-badge am-badge-secondary am-radius"
title=
"客户端类型"
>
{{$v.client_type_name}}
</span>
{{/if}}
</dd>
<dt>
地址信息
</dt>
<dt>
地址信息
</dt>
<dd>
<dd>
{{if in_array($v['order_model'], [0,2])}}
{{if in_array($v['order_model'], [0,2])}}
...
@@ -360,17 +360,19 @@
...
@@ -360,17 +360,19 @@
{{/if}}
{{/if}}
</dd>
</dd>
<dt>
购买
数量
</dt>
<dt>
购买
总数
</dt>
<dd>
{{if empty($v['buy_number_count'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}{{$v.buy_number_count}}{{/if}}
</dd>
<dd>
{{if empty($v['buy_number_count'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}{{$v.buy_number_count}}{{/if}}
</dd>
<dt>
退货
数量
</dt>
<dt>
退货
总数
</dt>
<dd>
{{if empty($v['returned_quantity'])}}
<span
class=
"cr-ddd"
>
未退货
</span>
{{else /}}{{$v.returned_quantity}}{{/if}}
</dd>
<dd>
{{if empty($v['returned_quantity'])}}
<span
class=
"cr-ddd"
>
未退货
</span>
{{else /}}{{$v.returned_quantity}}{{/if}}
</dd>
<dt>
退款金额
</dt>
<dt>
退款金额
</dt>
<dd>
{{if empty($v['refund_price']) or $v['refund_price'] elt 0.00}}
<span
class=
"cr-ddd"
>
未退款
</span>
{{else /}}
<span
class=
"am-text-danger"
>
{{$v.refund_price}}{{/if}}
</span></dd>
<dd>
{{if empty($v['refund_price']) or $v['refund_price'] elt 0.00}}
<span
class=
"cr-ddd"
>
未退款
</span>
{{else /}}
<span
class=
"am-text-danger"
>
{{$v.refund_price}}{{/if}}
</span></dd>
<dt>
自提取货码
</dt>
{{if $v['order_model'] eq 2}}
<dd>
{{if empty($v['extraction_code'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$v.extraction_code}}{{/if}}
</dd>
<dt>
自提取货码
</dt>
<dd>
{{if empty($v['extraction_code'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$v.extraction_code}}{{/if}}
</dd>
{{/if}}
<dt>
确认时间
</dt>
<dt>
确认时间
</dt>
<dd>
{{if empty($v['confirm_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$v.confirm_time}}{{/if}}
</dd>
<dd>
{{if empty($v['confirm_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$v.confirm_time}}{{/if}}
</dd>
...
@@ -412,7 +414,7 @@
...
@@ -412,7 +414,7 @@
{{/if}}
{{/if}}
{{if $v['status'] eq 2}}
{{if $v['status'] eq 2}}
{{if $v['order_model'] eq 2}}
{{if $v['order_model'] eq 2}}
<button
class=
"am-btn am-btn-secondary am-btn-xs am-radius am-icon-check am-btn-block submit-take"
data-url=
"{{:MyUrl('admin/order/delivery')}}"
data-id=
"{{$v.id}}"
data-user-id=
"{{$v.user_id}}"
data-extraction-code=
""
data-am-modal=
"{target: '#order-take-modal', closeViaDimmer: 0, width:
3
00, height: 160}"
>
取货
</button>
<button
class=
"am-btn am-btn-secondary am-btn-xs am-radius am-icon-check am-btn-block submit-take"
data-url=
"{{:MyUrl('admin/order/delivery')}}"
data-id=
"{{$v.id}}"
data-user-id=
"{{$v.user_id}}"
data-extraction-code=
""
data-am-modal=
"{target: '#order-take-modal', closeViaDimmer: 0, width:
2
00, height: 160}"
>
取货
</button>
{{else /}}
{{else /}}
<button
class=
"am-btn am-btn-secondary am-btn-xs am-radius am-icon-send-o am-btn-block submit-delivery"
data-url=
"{{:MyUrl('admin/order/delivery')}}"
data-id=
"{{$v.id}}"
data-user-id=
"{{$v.user_id}}"
data-express-id=
"{{$v.express_id}}"
data-am-modal=
"{target: '#order-delivery-popup'}"
>
发货
</button>
<button
class=
"am-btn am-btn-secondary am-btn-xs am-radius am-icon-send-o am-btn-block submit-delivery"
data-url=
"{{:MyUrl('admin/order/delivery')}}"
data-id=
"{{$v.id}}"
data-user-id=
"{{$v.user_id}}"
data-express-id=
"{{$v.express_id}}"
data-am-modal=
"{target: '#order-delivery-popup'}"
>
发货
</button>
{{/if}}
{{/if}}
...
...
application/index/view/default/order/detail.html
浏览文件 @
6e2793ba
...
@@ -257,6 +257,26 @@
...
@@ -257,6 +257,26 @@
{{/if}}
{{/if}}
</div>
</div>
{{/if}}
{{/if}}
<!-- 自提模式下 - 取货码 -->
{{if $data['order_model'] eq 2 and in_array($data['status'], [2,3])}}
<hr
data-am-widget=
"divider"
class=
"am-divider am-divider-dashed"
/>
<div
class=
"extraction-take-container"
>
<p>
<span>
取货码:
</span>
{{if empty($data['extraction_code'])}}
<span
class=
"am-text-danger"
>
取货码不存在、请联系管理员
</span>
{{else /}}
<span
class=
"am-badge am-badge-success am-radius"
>
{{$data.extraction_code}}
</span>
{{/if}}
</p>
{{if !empty($data['extraction_code_images'])}}
<p
class=
"am-margin-top-xs"
>
<img
class=
"qrcode-images am-img-thumbnail"
src=
"{{$data.extraction_code_images}}"
/>
</p>
{{/if}}
</div>
{{/if}}
</div>
</div>
</div>
</div>
...
...
application/service/BuyService.php
浏览文件 @
6e2793ba
...
@@ -902,10 +902,6 @@ class BuyService
...
@@ -902,10 +902,6 @@ class BuyService
{
{
$order
[
'confirm_time'
]
=
time
();
$order
[
'confirm_time'
]
=
time
();
}
}
if
(
$common_site_type
==
2
)
{
$order
[
'extraction_code'
]
=
GetNumberCode
(
4
);
}
// 订单添加前钩子
// 订单添加前钩子
$hook_name
=
'plugins_service_buy_order_insert_begin'
;
$hook_name
=
'plugins_service_buy_order_insert_begin'
;
...
@@ -938,10 +934,9 @@ class BuyService
...
@@ -938,10 +934,9 @@ class BuyService
return
$ret
;
return
$ret
;
}
}
// 自提模式 - 虚拟信息
// 自提模式 - 虚拟信息
添加
if
(
$common_site_type
==
3
)
if
(
$common_site_type
==
3
)
{
{
// 订单虚拟销售关联数据添加
$ret
=
self
::
OrderFictitiousValueInsert
(
$order_id
,
$detail_ret
[
'data'
],
$params
[
'user'
][
'id'
],
$v
[
'goods_id'
]);
$ret
=
self
::
OrderFictitiousValueInsert
(
$order_id
,
$detail_ret
[
'data'
],
$params
[
'user'
][
'id'
],
$v
[
'goods_id'
]);
if
(
$ret
[
'code'
]
!=
0
)
if
(
$ret
[
'code'
]
!=
0
)
{
{
...
@@ -951,15 +946,30 @@ class BuyService
...
@@ -951,15 +946,30 @@ class BuyService
}
}
}
}
// 销售型模式+自提模式 添加订单收货地址
// 订单模式处理
if
(
in_array
(
$common_site_type
,
[
0
,
2
])
&&
!
empty
(
$address
))
// 销售型模式+自提模式
if
(
in_array
(
$common_site_type
,
[
0
,
2
]))
{
{
// 订单地址添加前钩子
// 添加订单(收货|取货)地址
$ret
=
self
::
OrderReceiveAddressInsert
(
$order_id
,
$params
[
'user'
][
'id'
],
$address
);
if
(
!
empty
(
$address
))
if
(
$ret
[
'code'
]
!=
0
)
{
{
Db
::
rollback
();
$ret
=
self
::
OrderReceiveAddressInsert
(
$order_id
,
$params
[
'user'
][
'id'
],
$address
);
return
$ret
;
if
(
$ret
[
'code'
]
!=
0
)
{
Db
::
rollback
();
return
$ret
;
}
}
// 自提模式 添加订单取货码
if
(
$common_site_type
==
2
)
{
$ret
=
self
::
OrderExtractionCcodeInsert
(
$order_id
,
$params
[
'user'
][
'id'
]);
if
(
$ret
[
'code'
]
!=
0
)
{
Db
::
rollback
();
return
$ret
;
}
}
}
}
}
}
else
{
}
else
{
...
@@ -1081,6 +1091,47 @@ class BuyService
...
@@ -1081,6 +1091,47 @@ class BuyService
return
DataReturn
(
'订单详情添加失败'
,
-
1
);
return
DataReturn
(
'订单详情添加失败'
,
-
1
);
}
}
/**
* 订单关联自提取货码添加
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2019-11-20
* @desc description
* @param [int] $order_id [订单id]
* @param [int] $user_id [用户id]
*/
private
static
function
OrderExtractionCcodeInsert
(
$order_id
,
$user_id
)
{
$data
=
[
'order_id'
=>
$order_id
,
'user_id'
=>
$user_id
,
'code'
=>
GetNumberCode
(
4
),
'add_time'
=>
time
(),
];
// 订单取货码添加前钩子
$hook_name
=
'plugins_service_buy_order_extraction_code_insert_begin'
;
$ret
=
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'user_id'
=>
$user_id
,
'order_id'
=>
$order_id
,
'data'
=>
&
$data
,
]);
if
(
isset
(
$ret
[
'code'
])
&&
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
}
// 添加订单虚拟数据
if
(
Db
::
name
(
'OrderExtractionCode'
)
->
insertGetId
(
$data
)
>
0
)
{
return
DataReturn
(
'添加成功'
,
0
);
}
return
DataReturn
(
'订单取货码添加失败'
,
-
1
);
}
/**
/**
* 订单关联虚拟销售数据添加
* 订单关联虚拟销售数据添加
* @author Devil
* @author Devil
...
...
application/service/OrderService.php
浏览文件 @
6e2793ba
...
@@ -674,12 +674,31 @@ class OrderService
...
@@ -674,12 +674,31 @@ class OrderService
return
$ret
;
return
$ret
;
}
}
//
收件人地址
//
订单模式处理
$receive_address
=
Db
::
name
(
'OrderReceiveAddress'
)
->
where
([
'order_id'
=>
$v
[
'id'
]])
->
find
();
// 销售型模式+自提模式
if
(
!
empty
(
$receive_address
)
&&
is_array
(
$receive_address
))
if
(
in_array
(
$v
[
'order_model'
],
[
0
,
2
]
))
{
{
unset
(
$receive_address
[
'add_time'
],
$receive_address
[
'upd_time'
],
$receive_address
[
'id'
]);
// 销售模式+自提模式 地址信息
$v
=
array_merge
(
$v
,
$receive_address
);
$receive_address
=
Db
::
name
(
'OrderReceiveAddress'
)
->
where
([
'order_id'
=>
$v
[
'id'
]])
->
find
();
if
(
!
empty
(
$receive_address
)
&&
is_array
(
$receive_address
))
{
unset
(
$receive_address
[
'add_time'
],
$receive_address
[
'upd_time'
],
$receive_address
[
'id'
]);
$v
=
array_merge
(
$v
,
$receive_address
);
}
// 自提模式 添加订单取货码
if
(
$v
[
'order_model'
]
==
2
)
{
$extraction_code
=
Db
::
name
(
'OrderExtractionCode'
)
->
where
([
'order_id'
=>
$v
[
'id'
]])
->
value
(
'code'
);
if
(
empty
(
$extraction_code
))
{
$v
[
'extraction_code'
]
=
null
;
$v
[
'extraction_code_images'
]
=
null
;
}
else
{
$v
[
'extraction_code'
]
=
$extraction_code
;
$v
[
'extraction_code_images'
]
=
MyUrl
(
'index/qrcode/index'
,
[
'content'
=>
urlencode
(
base64_encode
(
$extraction_code
))]);
}
}
}
}
// 用户信息
// 用户信息
...
@@ -1047,26 +1066,56 @@ class OrderService
...
@@ -1047,26 +1066,56 @@ class OrderService
return
DataReturn
(
'状态不可操作['
.
$status_text
.
']'
,
-
1
);
return
DataReturn
(
'状态不可操作['
.
$status_text
.
']'
,
-
1
);
}
}
// 销售型订单快递信息校验
// 订单模式
if
(
$order
[
'order_model'
]
==
0
)
switch
(
$order
[
'order_model'
])
{
{
$p
=
[
// 销售模式- 订单快递信息校验
[
case
0
:
'checked_type'
=>
'empty'
,
$p
=
[
'key_name'
=>
'express_id'
,
[
'error_msg'
=>
'快递id有误'
,
'checked_type'
=>
'empty'
,
],
'key_name'
=>
'express_id'
,
[
'error_msg'
=>
'快递id有误'
,
'checked_type'
=>
'empty'
,
],
'key_name'
=>
'express_number'
,
[
'error_msg'
=>
'快递单号有误'
,
'checked_type'
=>
'empty'
,
],
'key_name'
=>
'express_number'
,
];
'error_msg'
=>
'快递单号有误'
,
$ret
=
ParamsChecked
(
$params
,
$p
);
],
if
(
$ret
!==
true
)
];
{
$ret
=
ParamsChecked
(
$params
,
$p
);
return
DataReturn
(
$ret
,
-
1
);
if
(
$ret
!==
true
)
}
{
return
DataReturn
(
$ret
,
-
1
);
}
break
;
// 自提模式 - 验证取货码
case
2
:
$p
=
[
[
'checked_type'
=>
'empty'
,
'key_name'
=>
'extraction_code'
,
'error_msg'
=>
'取货码有误'
,
],
];
$ret
=
ParamsChecked
(
$params
,
$p
);
if
(
$ret
!==
true
)
{
return
DataReturn
(
$ret
,
-
1
);
}
// 校验
$extraction_code
=
Db
::
name
(
'OrderExtractionCode'
)
->
where
([
'order_id'
=>
$order
[
'id'
]])
->
value
(
'code'
);
if
(
empty
(
$extraction_code
))
{
return
DataReturn
(
'订单取货码不存在、请联系管理员'
,
-
10
);
}
if
(
$extraction_code
!=
$params
[
'extraction_code'
])
{
return
DataReturn
(
'取货码不正确'
,
-
11
);
}
break
;
}
}
// 开启事务
// 开启事务
...
...
config/shopxo.sql
浏览文件 @
6e2793ba
此差异已折叠。
点击以展开。
public/static/index/default/css/order.detail.css
浏览文件 @
6e2793ba
...
@@ -236,6 +236,9 @@ strong.total-price-content { color: #d2364c; }
...
@@ -236,6 +236,9 @@ strong.total-price-content { color: #d2364c; }
height
:
100%
;
height
:
100%
;
padding
:
0
;
padding
:
0
;
}
}
#popup-extraction-receive-map
.am-popup-hd
{
border
:
0
;
}
/**
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录