Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
my-yaf-project
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenchuanwen
my-yaf-project
Commits
912c13c6
Commit
912c13c6
authored
Jan 02, 2019
by
wwccw0591
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新
parent
2617f711
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
181 additions
and
31 deletions
+181
-31
OrderConfirmUtil.php
application/library/Order/OrderConfirmUtil.php
+1
-28
OrderService.php
application/models/Business/Order/OrderService.php
+180
-3
No files found.
application/library/Order/OrderConfirmUtil.php
View file @
912c13c6
...
...
@@ -709,34 +709,7 @@ class OrderConfirmUtil {
\Error\ErrorModel
::
throwException
(
\Error\CodeConfigModel
::
failedUpdateFavoritesStoreForOrder
);
}
$orderModel
->
db
->
doCommit
();
//订单通过小程序表单提交过来
if
(
$formId
&&
(
$access_token
=
$this
->
getLitAccesstoken
()))
{
$settingDAO
=
\DAO\SettingModel
::
getInstance
();
$msg_tpl
=
$settingDAO
->
getListCache
(
array
(
'wxapp_order_create_tpl'
))[
'wxapp_order_create_tpl'
];
$goods_str
=
''
;
if
(
count
(
$goods_datas
)
>
1
)
{
$goods_str
.=
$goods_datas
[
0
]
.
'等'
.
count
(
$goods_datas
)
.
'件商品'
;
}
else
{
$goods_str
.=
$goods_datas
[
0
];
}
$sess
=
\Yaf\Session
::
getInstance
();
$authInfo
=
$sess
->
get
(
'wxAuthInfo'
);
$openid
=
$authInfo
[
'openid'
];
$req_data
=
array
(
'touser'
=>
$openid
,
'template_id'
=>
$msg_tpl
,
'form_id'
=>
$formId
,
'page'
=>
'pages/orders/detail/index?id='
.
$orderId
,
'data'
=>
array
(
'keyword1'
=>
array
(
'value'
=>
'下单成功'
),
'keyword2'
=>
array
(
'value'
=>
$order
[
'order_sn'
]),
'keyword3'
=>
array
(
'value'
=>
number_format
(
$order
[
'order_amount'
]
/
100
,
2
)
.
'元'
),
'keyword4'
=>
array
(
'value'
=>
$order
[
'store_name'
]),
'keyword5'
=>
array
(
'value'
=>
$goods_str
),
));
// \Our\Log::getInstance()->write(json_encode($req_data), '/data/log/apptest');
$url
=
'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='
;
$result
=
$this
->
sendurl
(
$url
,
$access_token
,
json_encode
(
$req_data
),
'post'
);
\Our\Log
::
getInstance
()
->
write
(
var_export
(
$result
,
true
),
'/data/log/apptest'
);
}
$this
->
opCacheInfo
();
$this
->
pushMessage
();
return
array
(
'needPayFlag'
=>
$needPayFlag
,
'paySn'
=>
$paySn
);
...
...
application/models/Business/Order/OrderService.php
View file @
912c13c6
...
...
@@ -2,6 +2,7 @@
namespace
Business\Order
;
use
Business\Store\StoreServiceModel
;
use
DAO\Order\OrderCommonModel
;
use
Error\CodeConfigModel
;
use
Error\ErrorModel
;
...
...
@@ -146,11 +147,12 @@ class OrderServiceModel extends \Business\AbstractModel
$model_order_goods
=
\DAO\Order\OrderGoodsModel
::
getInstance
(
DbNameConst
::
salveDBConnectName
);
$settingDAO
=
\DAO\SettingModel
::
getInstance
();
$access_token
=
$this
->
getLitAccesstoken
();
$wxapp_templates
=
$settingDAO
->
getListCache
(
array
(
'wxapp_order_paysucc_tpl'
,
'wxapp_order_shipping_tpl'
,
'wxapp_order_receive_tpl'
));
$where
=
array
(
'msg_status'
=>
array
(
'elt'
,
1
),
'payment_type'
=>
5
,
'order_state'
=>
array
(
'gt'
,
10
),
'prepay_id'
=>
//付款7天内付款消息通知
$where
=
array
(
'msg_status'
=>
array
(
'elt'
,
1
),
'payment_type'
=>
5
,
'order_state'
=>
array
(
'egt'
,
20
),
'prepay_id'
=>
array
(
'neq'
,
''
),
'payment_time'
=>
array
(
'gt'
,
TIMESTAMP
-
7
*
24
*
60
*
60
));
$wxapp_templates
=
$settingDAO
->
getListCache
(
array
(
'wxapp_order_paysucc_tpl'
,
'wxapp_order_shipping_tpl'
,
'wxapp_order_receive_tpl'
));
''
),
'payment_time'
=>
array
(
'gt'
,
TIMESTAMP
-
7
*
24
*
60
*
60
),
'payment_time'
=>
array
(
'lt'
,
TIMESTAMP
-
10
));
if
(
$list
=
$model
->
getList
(
$where
,
'order_id,order_sn,store_name,buyer_id,order_amount,payment_time, order_state, prepay_id'
,
0
,
10
,
array
(
'payment_time'
=>
'asc'
)))
{
echo
$access_token
.
' order num: '
.
count
(
$list
[
'list'
])
.
"
\n
"
;
foreach
(
$list
[
'list'
]
as
$order
)
{
...
...
@@ -191,6 +193,123 @@ class OrderServiceModel extends \Business\AbstractModel
}
}
}
//付款7天内订单发货通知
$where
=
array
(
'msg_status'
=>
2
,
'payment_type'
=>
5
,
'shipping_type'
=>
array
(
'in'
,
'1,2'
),
'order_state'
=>
array
(
'egt'
,
30
),
'prepay_id'
=>
array
(
'neq'
,
''
),
'payment_time'
=>
array
(
'gt'
,
TIMESTAMP
-
7
*
24
*
60
*
60
));
if
(
$list
=
$model
->
getList
(
$where
,
'order_id,order_sn,store_id,store_name,buyer_id,order_amount,add_time, send_time, order_state, prepay_id'
,
0
,
10
,
array
(
'payment_time'
=>
'asc'
)))
{
echo
$access_token
.
' order num: '
.
count
(
$list
[
'list'
])
.
"
\n
"
;
$common_model
=
\DAO\Order\OrderCommonModel
::
getInstance
();
foreach
(
$list
[
'list'
]
as
$order
)
{
// \Our\Log::getInstance()->write('order:'.json_encode($order), '/data/log/apptest');
if
(
$access_token
&&
(
$member
=
$model_member
->
getOneByMemberId
(
$order
[
'buyer_id'
],
array
(
'member_id'
,
'member_wxappopenid'
)
)))
{
$msg_tpl
=
$wxapp_templates
[
'wxapp_order_shipping_tpl'
];
$sub_data
=
$common_model
->
findByOrderId
(
$order
[
'order_id'
],
'reciver_name, reciver_info'
);
$address
=
''
;
if
(
$sub_data
[
'reciver_info'
])
{
$reciver_info
=
json_decode
(
$sub_data
[
'reciver_info'
],
true
);
$address
=
$reciver_info
[
'address'
]
.
$reciver_info
[
'subaddress'
];
}
$where
=
array
(
'order_id'
=>
$order
[
'order_id'
]);
$goods_datas
=
$model_order_goods
->
getOrderGoods
(
$where
,
'order_id, goods_name'
);
$goods_str
=
''
;
if
(
count
(
$goods_datas
)
>
1
)
{
$goods_str
.=
$goods_datas
[
0
][
'goods_name'
]
.
'等'
.
count
(
$goods_datas
)
.
'个商品'
;
}
else
{
$goods_str
.=
$goods_datas
[
0
][
'goods_name'
];
}
$req_data
=
array
(
'touser'
=>
$member
[
'member_wxappopenid'
],
'template_id'
=>
$msg_tpl
,
'form_id'
=>
$order
[
'prepay_id'
],
'page'
=>
'pages/orders/detail/index?id='
.
$order
[
'order_id'
],
'data'
=>
array
(
'keyword1'
=>
array
(
'value'
=>
date
(
'Y-m-d H:i'
,
$order
[
'add_time'
])),
'keyword2'
=>
array
(
'value'
=>
date
(
'Y-m-d H:i'
,
$order
[
'send_time'
])),
'keyword3'
=>
array
(
'value'
=>
$order
[
'order_sn'
]),
'keyword4'
=>
array
(
'value'
=>
$address
),
'keyword5'
=>
array
(
'value'
=>
$order
[
'store_name'
]),
'keyword6'
=>
array
(
'value'
=>
$goods_str
),
'keyword7'
=>
array
(
'value'
=>
number_format
(
$order
[
'order_amount'
]
/
100
,
2
)
.
'元'
),
));
// \Our\Log::getInstance()->write(json_encode($req_data), '/data/log/apptest');
$url
=
'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='
;
if
(
$result
=
$this
->
sendurl
(
$url
,
$access_token
,
json_encode
(
$req_data
),
'post'
))
{
$json
=
json_decode
(
$result
,
true
);
if
(
$json
[
'errmsg'
]
==
'ok'
)
{
$model
->
updateByOrderId
(
array
(
'msg_status'
=>
3
),
$order
[
'order_id'
]);
echo
'order['
.
$order
[
'order_id'
]
.
'] send payment succ'
.
"
\n
"
;
}
}
}
}
}
//付款7天内订单确认收货通知
$where
=
array
(
'msg_status'
=>
3
,
'payment_type'
=>
5
,
'order_state'
=>
array
(
'egt'
,
40
),
'prepay_id'
=>
array
(
'neq'
,
''
),
'payment_time'
=>
array
(
'gt'
,
TIMESTAMP
-
7
*
24
*
60
*
60
),
'finnished_time'
=>
array
(
'lt'
,
TIMESTAMP
-
15
));
if
(
$list
=
$model
->
getList
(
$where
,
'order_id,order_sn,store_id,store_name,buyer_id, shipping_type,order_amount,add_time, send_time, finnished_time, order_state, prepay_id'
,
0
,
10
,
array
(
'payment_time'
=>
'asc'
)))
{
echo
$access_token
.
' order num: '
.
count
(
$list
[
'list'
])
.
"
\n
"
;
$common_model
=
\DAO\Order\OrderCommonModel
::
getInstance
();
$store_model
=
\DAO\StoreModel
::
getInstance
();
foreach
(
$list
[
'list'
]
as
$order
)
{
// \Our\Log::getInstance()->write('order:'.json_encode($order), '/data/log/apptest');
if
(
$access_token
&&
(
$member
=
$model_member
->
getOneByMemberId
(
$order
[
'buyer_id'
],
array
(
'member_id'
,
'member_wxappopenid'
)
)))
{
$msg_tpl
=
$wxapp_templates
[
'wxapp_order_receive_tpl'
];
$where
=
array
(
'order_id'
=>
$order
[
'order_id'
]);
$goods_datas
=
$model_order_goods
->
getOrderGoods
(
$where
,
'order_id, goods_name'
);
$goods_str
=
''
;
if
(
count
(
$goods_datas
)
>
1
)
{
$goods_str
.=
$goods_datas
[
0
][
'goods_name'
]
.
'等'
.
count
(
$goods_datas
)
.
'个商品'
;
}
else
{
$goods_str
.=
$goods_datas
[
0
][
'goods_name'
];
}
$store_data
=
$store_model
->
getFieldsInfo
(
array
(
'store_id'
=>
$order
[
'store_id'
]),
'store_phone'
);
$shipping_type
=
''
;
switch
(
$order
[
'shipping_type'
])
{
case
1
:
$shipping_type
.=
'商家配送'
;
break
;
case
2
:
$shipping_type
.=
'快递配送'
;
break
;
default
:
$shipping_type
.=
'到店自提'
;
break
;
}
$req_data
=
array
(
'touser'
=>
$member
[
'member_wxappopenid'
],
'template_id'
=>
$msg_tpl
,
'form_id'
=>
$order
[
'prepay_id'
],
'page'
=>
'pages/orders/detail/index?id='
.
$order
[
'order_id'
],
'data'
=>
array
(
'keyword1'
=>
array
(
'value'
=>
$order
[
'order_sn'
]),
'keyword2'
=>
array
(
'value'
=>
date
(
'Y-m-d H:i'
,
$order
[
'send_time'
])),
'keyword3'
=>
array
(
'value'
=>
date
(
'Y-m-d H:i'
,
$order
[
'finnished_time'
])),
'keyword4'
=>
array
(
'value'
=>
$order
[
'store_name'
]),
'keyword5'
=>
array
(
'value'
=>
$store_data
[
'store_phone'
]),
'keyword6'
=>
array
(
'value'
=>
$goods_str
),
'keyword7'
=>
array
(
'value'
=>
number_format
(
$order
[
'order_amount'
]
/
100
,
2
)
.
'元'
),
'keyword8'
=>
array
(
'value'
=>
$shipping_type
),
'keyword9'
=>
array
(
'value'
=>
'您购买的商品已被签收,如不是您本人签收,请尽快联系商家'
),
));
// \Our\Log::getInstance()->write(json_encode($req_data), '/data/log/apptest');
$url
=
'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='
;
if
(
$result
=
$this
->
sendurl
(
$url
,
$access_token
,
json_encode
(
$req_data
),
'post'
))
{
$json
=
json_decode
(
$result
,
true
);
if
(
$json
[
'errmsg'
]
==
'ok'
)
{
$model
->
updateByOrderId
(
array
(
'msg_status'
=>
3
),
$order
[
'order_id'
]);
echo
'order['
.
$order
[
'order_id'
]
.
'] send payment succ'
.
"
\n
"
;
}
}
}
}
}
}
...
...
@@ -565,6 +684,64 @@ class OrderServiceModel extends \Business\AbstractModel
'orderId'
=>
$order
[
'order_id'
]));
$push
->
addOneToClient
(
$pushData
);
$push
->
sendTcpMessage
();
$model_member
=
\DAO\MemberModel
::
getInstance
(
DbNameConst
::
salveDBConnectName
);
$access_token
=
$this
->
getLitAccesstoken
();
$settingDAO
=
\DAO\SettingModel
::
getInstance
();
$wxapp_templates
=
$settingDAO
->
getListCache
(
array
(
'wxapp_order_receive_tpl'
));
if
(
$access_token
&&
(
$member
=
$model_member
->
getOneByMemberId
(
$order
[
'buyer_id'
],
array
(
'member_id'
,
'member_wxappopenid'
)
)))
{
$model_order_goods
=
\DAO\Order\OrderGoodsModel
::
getInstance
(
DbNameConst
::
salveDBConnectName
);
$msg_tpl
=
$wxapp_templates
[
'wxapp_order_receive_tpl'
];
$where
=
array
(
'order_id'
=>
$order
[
'order_id'
]);
$goods_datas
=
$model_order_goods
->
getOrderGoods
(
$where
,
'order_id, goods_name'
);
$goods_str
=
''
;
if
(
count
(
$goods_datas
)
>
1
)
{
$goods_str
.=
$goods_datas
[
0
][
'goods_name'
]
.
'等'
.
count
(
$goods_datas
)
.
'个商品'
;
}
else
{
$goods_str
.=
$goods_datas
[
0
][
'goods_name'
];
}
$store_data
=
$storeDao
->
getFieldsInfo
(
array
(
'store_id'
=>
$order
[
'store_id'
]),
'store_phone'
);
$shipping_type
=
''
;
switch
(
$order
[
'shipping_type'
])
{
case
1
:
$shipping_type
.=
'商家配送'
;
break
;
case
2
:
$shipping_type
.=
'快递配送'
;
break
;
default
:
$shipping_type
.=
'到店自提'
;
break
;
}
$req_data
=
array
(
'touser'
=>
$member
[
'member_wxappopenid'
],
'template_id'
=>
$msg_tpl
,
'form_id'
=>
$order
[
'prepay_id'
],
'page'
=>
'pages/orders/detail/index?id='
.
$order
[
'order_id'
],
'data'
=>
array
(
'keyword1'
=>
array
(
'value'
=>
$order
[
'order_sn'
]),
'keyword2'
=>
array
(
'value'
=>
date
(
'Y-m-d H:i'
,
$order
[
'send_time'
])),
'keyword3'
=>
array
(
'value'
=>
date
(
'Y-m-d H:i'
,
$order
[
'finnished_time'
])),
'keyword4'
=>
array
(
'value'
=>
$order
[
'store_name'
]),
'keyword5'
=>
array
(
'value'
=>
$store_data
[
'store_phone'
]),
'keyword6'
=>
array
(
'value'
=>
$goods_str
),
'keyword7'
=>
array
(
'value'
=>
number_format
(
$order
[
'order_amount'
]
/
100
,
2
)
.
'元'
),
'keyword8'
=>
array
(
'value'
=>
$shipping_type
),
'keyword9'
=>
array
(
'value'
=>
'您购买的商品已被签收,如不是您本人签收,请尽快联系商家'
),
));
// \Our\Log::getInstance()->write(json_encode($req_data), '/data/log/apptest');
$url
=
'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='
;
if
(
$result
=
$this
->
sendurl
(
$url
,
$access_token
,
json_encode
(
$req_data
),
'post'
))
{
$json
=
json_decode
(
$result
,
true
);
if
(
$json
[
'errmsg'
]
==
'ok'
)
{
$orderDao
->
updateByOrderId
(
array
(
'msg_status'
=>
3
),
$order
[
'order_id'
]);
}
}
}
// \Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
$orderDao
->
deleteOrderCache
(
$memberId
,
$orderId
,
$order
[
'store_id'
],
true
,
true
);
$storeDao
->
deleteStoreCache
(
$order
[
'storeId'
],
$order
[
'orderId'
]);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment