Commit 62da0b21 authored by liuyuzhen's avatar liuyuzhen

Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into lyz

parents 97b829c1 9e9bbb5a
......@@ -64,7 +64,8 @@ class ClientPush
}
public function push($pushData)
{
$pushFlag=(APP_ENV=='product' || APP_ENV=='productone')?true:false;
// $pushFlag=(APP_ENV=='product' || APP_ENV=='productone')?true:false;
$pushFlag=true;
// echo json_encode($pushData);
$title=$this->getMessageType($pushData['fromType']);
$messageContent=$this->getMessageContent($pushData['message']);
......
......@@ -278,8 +278,8 @@ class Common
$result=trim($result);
return $result;
}
public static function getDivNum(){
public static function getDivNum($num){
return bcdiv($num,100,2);
}
public static function mutiplicative($num){
return intval(bcmul($num, \Our\ApiConst::oneHandred));
......
......@@ -164,10 +164,12 @@ class DescribeConst
//店铺有新订单
const recieveWaitTitle='您有新的订单';
const recieveWaitContent='您有新的订单号为{0}的订单,是否需要接单';
//用户订单被接单
//用户订单被接单
const recieveOrderTitle='您的订单已被接单';
const recieveOrderContent='您有订单号为{0}的订单,已被接单';
//用户订单价格被修改
const updateOrderTitle='您的订单已被修改';
const updateOrderContent='您有订单号为{0}的订单,已被修改价格';
//消息按钮成功提示信息
const recieveOrderSuccess='接单成功';
//消息按钮描述
......
......@@ -234,21 +234,42 @@ class Push
return $messageContent;
}
//用户被接单消息
public function getUpdateOrderAmountContent($orderDetail){
$messageContent='订单号:'.$orderDetail['orderSn']."\n";
$messageContent.='商品名称:';
foreach($orderDetail['orderGoods'] as $orderGood){
$messageContent.=$orderGood['goodsName'].'×'.$orderGood['goodsNum']."\n";
}
$messageContent.='支付方式:'.ArrayConst::paymentTypes[$orderDetail['paymentType']]."\n";
$messageContent.='付款状态:'.($orderDetail['paymentTime']>ApiConst::zero?DescribeConst::payed:DescribeConst::notPayed)."\n";
$messageContent.='收货地址:'.$orderDetail['reciverInfo']['address']."\n";
$messageContent.='收货人:'.$orderDetail['reciverInfo']['trueName']."\n";
$messageContent.='收货人电话:'.$orderDetail['reciverInfo']['mobPhone']."\n";
$messageContent.='订单金额:'.Common::getDivNum($orderDetail['goodsAmount'])."\n";
$messageContent.='运费:'.Common::getDivNum($orderDetail['shippingFee'])."\n";
$messageContent.='优惠金额:'.Common::getDivNum($orderDetail['couponAmount'])."\n";
$messageContent.='应付金额:'.Common::getDivNum($orderDetail['orderAmount'])."\n";
return $messageContent;
}
//用户被修改价格消息
public function updateOrderAmount($storeId,$orderId,$orderSn)
{
$storeDao=\DAO\StoreModel::getInstance();
$orderDao=\DAO\Order\OrderModel::getInstance();
$condition['store_id'] = $storeId;
$store = \Our\RedisHelper::cachedFunction(\Redis\Db6\StoreRedisModel::getInstance(), array(&$storeDao, 'getInfo'), array($condition), ApiConst::oneDaySecond, array($storeId));
//$store = $storeDao->getInfo(array('store_id'=>$storeId));
$orderService=\Business\Order\OrderServiceModel::getInstance();
$orderDetail=$orderService->getOrderDetail($orderId);
$amountOrder=$orderDao->getClienOrderCommon($orderDetail);
$orderDetail=array_merge($orderDetail,$amountOrder);
$toUserId=$orderDetail['buyerId'];
$messageContent=$this->getOrderMessageContent($orderDetail);
$messageContent=$this->getUpdateOrderAmountContent($orderDetail);
$fromAvatar=Common::getStaticFile(ImageConst::orderAvatarName, ImageConst::systemAvatar);
$href=Common::format(PathConst::orderId,$orderId);
// $buttons=$this->getComfirmRecieveButtons($orderId);
$message=$this->getMessageTemplate(ApiConst::reicieveOrderType,DescribeConst::recieveOrderTitle,$messageContent,'','',$href,ApiConst::zero);
$message=$this->getMessageTemplate(ApiConst::reicieveOrderType,DescribeConst::updateOrderTitle,$messageContent,'','',$href,ApiConst::zero);
$id = time() . (string)$this->orderIdStr.$orderId;
$this->pushMessage($id,$this->orderId,$orderDetail['buyerId'],$this->orderId,$toUserId,$this->orderName,$store['store_name'],ApiConst::orderMessageType,ApiConst::memberMessageType,$fromAvatar,$message);
}
......
......@@ -61,9 +61,9 @@ class WxPay extends \Payment\TencentPay
public function refund($param){
if($param['subMchId']){
$this->serviceRefund($param);
return $this->serviceRefund($param);
}else{
$this->commonRefund($param);
return $this->commonRefund($param);
}
}
......
......@@ -713,8 +713,6 @@ class OrderServiceModel extends \Business\AbstractModel
public function changeOrderStatus()
{
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$orderConfirmUtilDao=OrderConfirmUtil::getInstance(DbNameConst::masterDBConnectName);
$beginTime = file_get_contents($this->baseDir . \Our\PathConst::orderCloseWaitRecieveOrder, TIMESTAMP);
$beginTime = $beginTime ? $beginTime : ApiConst::zero;
$endTime = TIMESTAMP - ApiConst::orderStateWaitConfirmBeyond;
......@@ -769,27 +767,7 @@ class OrderServiceModel extends \Business\AbstractModel
}
$orderIds = array_column($orders, 'orderId');
//更新商品库存
$orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $this->getGoodsDetailField());
$storeCartsList=array();
$storeCarts=array();
$storeCarts['storeCarts']=array();
foreach($orderGoods as $orderGood){
$orderGood['type']=!empty($orderGood['goodsGroup'])? \Our\ApiConst::addBundingToCart:\Our\ApiConst::addGoodsToCart;
$orderGood['goodsNum']=$orderGood['goodsNum'];
$orderGood['goodsList']=\Our\Common::isSerialized($orderGood['goodsGroup'])?unserialize($orderGood['goodsGroup']):array();
array_push($storeCarts['storeCarts'],$orderGood);
}
if(!empty($storeCarts['storeCarts'])){
array_push($storeCartsList,$storeCarts);
}
// $orderDao->updateNotRecieveOrders(ApiConst::orderStateWaitConfirm, ApiConst::orderStateClose, 'add_time', ApiConst::orderStateWaitConfirmBeyond, $this->orderMessageField);
try{
$orderConfirmUtilDao->updateGoodsStorage($storeCartsList,\Our\ApiConst::plus);
}catch(\Exception $ex){
$orderidsStr=implode(',',array_column($orders,'orderId'));
echo '商品库存更新失败:'.$ex->getMessage().$ex->getCode().":".$orderidsStr;
}
$this->updateOrderGoodsStoregeByOrderIds($orderIds);
//发送消息
$push = Push::getInstance();
$push->pushOrderCloseMessage($orders);
......@@ -798,6 +776,32 @@ class OrderServiceModel extends \Business\AbstractModel
file_put_contents($this->baseDir . \Our\PathConst::orderCloseWaitRecieveOrder, $endTime);
}
public function updateOrderGoodsStoregeByOrderIds($orderIds){
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$orderConfirmUtilDao=OrderConfirmUtil::getInstance(DbNameConst::masterDBConnectName);
//更新商品库存
$orderGoods = $orderGoodsDao->getOrderGoodsByOrderIds($orderIds, $this->getGoodsDetailField());
$storeCartsList=array();
$storeCarts=array();
$storeCarts['storeCarts']=array();
foreach($orderGoods as $orderGood){
$orderGood['type']=!empty($orderGood['goodsGroup'])? \Our\ApiConst::addBundingToCart:\Our\ApiConst::addGoodsToCart;
$orderGood['goodsNum']=$orderGood['goodsNum'];
$orderGood['goodsList']=\Our\Common::isSerialized($orderGood['goodsGroup'])?unserialize($orderGood['goodsGroup']):array();
array_push($storeCarts['storeCarts'],$orderGood);
}
if(!empty($storeCarts['storeCarts'])){
array_push($storeCartsList,$storeCarts);
}
// $orderDao->updateNotRecieveOrders(ApiConst::orderStateWaitConfirm, ApiConst::orderStateClose, 'add_time', ApiConst::orderStateWaitConfirmBeyond, $this->orderMessageField);
try{
$orderConfirmUtilDao->updateGoodsStorage($storeCartsList,\Our\ApiConst::plus);
}catch(\Exception $ex){
$orderidsStr=implode(',',$orderIds);
echo '商品库存更新失败:'.$ex->getMessage().$ex->getCode().":".$orderidsStr;
}
}
//订单任务脚本自动确认收货
public function canformRecieveOrder()
{
......@@ -973,6 +977,7 @@ class OrderServiceModel extends \Business\AbstractModel
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$orderLogDao=\DAO\Order\OrderLogModel::getInstance(DbNameConst::masterDBConnectName);
$orderDetail=$orderDao->getByOrderId($orderId,$orderDao->getOrderDetailField());
$messageService=new \Business\Message\MessageServiceModel();
$orderDetail=$orderDetail[ApiConst::arrBegin];
$storeDao=\DAO\StoreModel::getInstance();
if($orderDetail['storeId']!=$storeId){
......@@ -984,8 +989,9 @@ class OrderServiceModel extends \Business\AbstractModel
$data['order_amount']=$newOrderAmount;
$res=$orderDao->updateByOrderId($data,$orderId);
$push=\Our\Push::getInstance();
$push->recievedOrder($orderDetail['storeId'], $orderDetail['orderId'], $orderDetail['orderSn']);
$push->updateOrderAmount($orderDetail['storeId'], $orderDetail['orderId'], $orderDetail['orderSn']);
$push->sendTcpMessage();
$messageService->addMessageCenterToDb();
$orderDao->deleteOrderCache($orderDetail['memberId'], $orderId, $storeId, true);
$storeDao->deleteStoreCache($storeId,$orderId);
$orderLogDao->add($orderDetail['orderId'],ArrayConst::logMsgType[ApiConst::sellerUpdateOrderAmount],DescribeConst::sellerLog,$memberName,$orderDetail['orderState']);
......
......@@ -136,8 +136,8 @@ class RefundServiceModel extends \Business\AbstractModel
}
$refundReturnDao->db->doTransaction();
$state = $refundReturnDao->editRefundReturn($whereRefund, $refund_array);
if($state){ //退款记录成功
//记录操作日志
$sellerLogDAO = \DAO\SellerLogModel::getInstance();
$sellerLogDAO->record('退货确认收货,退货编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId));
......@@ -159,6 +159,7 @@ class RefundServiceModel extends \Business\AbstractModel
if (!in_array($payment_type, array(0, 2))) {
$state = $refundReturnDao->storeRefund(array_merge($order_info, array('refund_order_no' => $refund['order_sn'], 'refund_amount' => $refund['refund_amount'])));
if (!$state) {
ErrorModel::throwException(CodeConfigModel::refundMoneyError);
//throw new Exception('更新订单信息失败');
$refundReturnDao->db->doRollback();
return false;
......@@ -168,6 +169,7 @@ class RefundServiceModel extends \Business\AbstractModel
$refundUpdate = array('is_suc_refund' => 1, 'gmt_update' => TIMESTAMP, 'refund_state' => 3);
$res = $refundReturnDao->update(array('refund_id' => $refund['refund_id']), $refundUpdate);
if (!$res) {
ErrorModel::throwException(CodeConfigModel::refundWriteError);
$refundReturnDao->db->doRollback();
// showDialog('退款成功,退款表写入失败,请联系工作人员!',$reload,'error');
return false;
......@@ -184,6 +186,8 @@ class RefundServiceModel extends \Business\AbstractModel
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']);
$orderDao->deleteOrderCache($refund['buyer_id'], $refund['order_id'], $refund['store_id']);
$storeDAO->deleteStoreRefundCache($refund['store_id'],$refund['order_id']);
$orderService=\Business\Order\OrderServiceModel::getInstance();
$orderService->updateOrderGoodsStoregeByOrderIds($refund['order_id']);
$refundReturnDao->db->doCommit();
$push=\Our\Push::getInstance();
$pushData=array('storeId'=>$storeId,
......@@ -960,7 +964,9 @@ class RefundServiceModel extends \Business\AbstractModel
$refundAmount = $orderGoods['goodsPrice']*$orderGoods['goodsNum'];
}
$returnData['refundAmount'] = $refundAmount - $orderInfo['refundAmount'] - $returnData['needShippingFee'] + $shippingFee;
$returnData['refundAmount']= $returnData['refundAmount']<ApiConst::zero?ApiConst::zero:$refundAmount['refundAmount'];
if((int)$returnData['refundAmount'] <ApiConst::zero){
$returnData['refundAmount']=ApiConst::zero;
}
// if($orderGoods['goodsType']==ApiConst::goodsTypeFour){
// //已经退款过的金额
// $alreadyRefundMoney=$orderGoodsDao->getIsRefundMoney($orderGoodses,$orderGoods['promotionsId']);
......
......@@ -276,6 +276,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
'orderId'=>$order['order_id']));
$push->addOneToClient($pushData);
$push->sendTcpMessage();
$push->addOneToClient();
// \Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
//\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::add,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
$orderDao->deleteOrderCache($order['buyer_id'], $orderId, $order['store_id'], true);
......
......@@ -82,7 +82,7 @@ class StoreServiceModel extends \Business\AbstractModel{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyStoreId);
}
list($storeInfo,$storeLabel) = \DAO\StoreModel::getInstance()->get($storeId,true,false);
list($storeInfo,$storeLabel) = \DAO\StoreModel::getInstance()->get($storeId,true);
if((int)$param['isScan'] > 0) {
//扫码进入
if($memberId > 0) {
......
......@@ -62,7 +62,7 @@ class ApiReciverInfoModel extends \DAO\AbstractModel
$this->cityCode=isset($reciverInfo['citycode'])?$reciverInfo['citycode']:'';
$this->addressId=$reciverInfo['address_id'];
$this->subAddress=isset($reciverInfo['subaddress'])?$reciverInfo['subaddress']:'';
$this->trueName=$reciverInfo['true_name'];
$this->trueName=$reciverInfo['name'];
}
public function getReceiverInfo(){
......
......@@ -354,7 +354,8 @@ class StoreModel extends \DAO\AbstractModel
if ($storeInfo['open_flag'] != 1 || $storeInfo['store_state'] != 1) {
if ($reportError) {
if($storeInfo['open_flag'] != 1) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::storeNotOpen);
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::storeNotOpen);
\Error\ErrorModel::throwException(\Error\CodeConfigModel::storeNotExistOrClose);
}else{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::storeNotExistOrClose);
}
......
......@@ -320,6 +320,8 @@ class CodeConfigModel
const wrongRefundState=300139;
const updateIsRefundFail=300140;
const updateRefundStateNameFail=300141;
const refundMoneyError=300142;
const refundWriteError=300143;
//店铺相关错误码
//商品分类
......@@ -821,6 +823,8 @@ class CodeConfigModel
self::wrongRefundState=>'订单状态有误',
self::updateIsRefundFail=>'更新is_refund失败',
self::updateRefundStateNameFail=>'更新order表refund_state_name失败',
self::refundMoneyError=>'退款失败',
self::refundWriteError=>'退款表写入失败',
//销售员
self::emptySaleGoodsId => '商品id不能为空',
self::emptySaleGoods => '销售商品不存在',
......
......@@ -294,7 +294,10 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
$refundService=\Business\Order\RefundServiceModel::getInstance();
$goodsState= intval($this->req['data']['goodsState']);
$res = $refundService->receive($this->storeId, $this->sellerId, $this->sellerName, $refundId, $goodsState);
$this->success($res);
if($res){
$this->success($res);
}
}
......
......@@ -33,7 +33,7 @@ class UserController extends \Our\Controller_AbstractIndex {
$password=$data[NameConst::password];
$shopKeeperServvice=\Business\Store\ShopkeeperServiceModel::getInstance();
$seller=$shopKeeperServvice->sellerLogin($sellerName);
$storeService =\Business\Store\StoreServiceModel::getInstance();
if(!empty($seller)){
......@@ -42,6 +42,8 @@ class UserController extends \Our\Controller_AbstractIndex {
if(empty($isStore)){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::storeIsRefuse);
}
$storeService =\Business\Store\StoreServiceModel::getInstance();
$storeOne=$storeService->getStoreDetail($seller);
}else{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::errorUsernameOrPassword);
}
......@@ -82,7 +84,7 @@ class UserController extends \Our\Controller_AbstractIndex {
//通知退出
$this->memberService->saveMember($member,'seller');
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberMobile'=>$member['member_mobile'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'],'storeId'=>(int)$seller['storeId'],'storeLabel'=>$member['memberAvatarUrl']));
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberMobile'=>$member['member_mobile'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'],'storeId'=>(int)$seller['storeId'],'storeLabel'=>$storeOne['storeLabel']));
}else{
ErrorModel::throwException(CodeConfigModel::errorUsernameOrPassword);
}
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="http://testadmin.shenbd.com/mall/templates/default/css/seller_center.css" rel="stylesheet" type="text/css"/>
<title>打印--陈传文的测试店发货单</title>
</head>
<body>
<a href="gotoshenbd://share.shenbd.com/share.html?type=goods&gid=101612&cid=103089&sid=12">商品详情</a>
<a href="gotoshenbd://share.shenbd.com/share.html?type=store&id=131">店铺详情</a>
</body>
</html>
\ No newline at end of file
<span style="color: rgb(51, 51, 51); font-family: " helvetica="" neue",="" helvetica,="" "pingfang="" sc",="" "hiragino="" sans="" gb",="" "microsoft="" yahei",="" "noto="" cjk="" "wenquanyi="" micro="" hei",="" arial,="" sans-serif;="" font-size:="" 14px;"="">1:关于退货退款要显示的按钮</span>
<br>
return_type
<table class="">
<tbody><tr>
<td> refundShippingType</td>
<td> sellerState</td>
<td> shippingOver</td>
<td> returnType</td>
<td> 要显示的按钮</td>
</tr>
<tr>
<td> 1</td>
<td> 2</td>
<td> 0</td>
<td> 2</td>
<td> 修改收货时间,选择配送员,确认收货</td>
</tr>
<tr>
<td> 1</td>
<td> 2</td>
<td> 0</td>
<td> 1</td>
<td> </td>
</tr>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,Chrome=1">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="email=no">
<title>我的身边店</title>
<link rel="stylesheet" href="//static.shenbd.com/lib/m/css/reset-m.css">
<link rel="stylesheet" href="//static.shenbd.com/www/index/2018/m/css/style.css">
<script src="//static.shenbd.com/lib/m/js/jquery-2.1.1.min.js"></script>
<script src="//static.shenbd.com/lib/m/js/swiper-3.4.1.jquery.min.js"></script>
</head>
<body class="page-index">
<div class="wrap">
<h1 class="logo"><a href="#"><img src="//static.shenbd.com/lib/img/logo.png" alt=""></a></h1>
<section class="pn-download">
<div class="focus-download swiper-container js-focus">
<ul class="swiper-wrapper">
<li class="swiper-slide">
<div class="item item1">
<div class="item-in">
<p class="txt">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s1-t1.png" class="t1" alt="">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s1-t2.png" class="t2" alt="">
</p>
<div class="phone">
<img src="//static.shenbd.com/www/index/2018/m/img/download-phone1.jpg" class="phone-img" alt="">
</div>
</div>
</div>
</li>
<li class="swiper-slide">
<div class="item item2">
<div class="item-in">
<p class="txt">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s2-t1.png" class="t1" alt="">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s2-t2.png" class="t2" alt="">
</p>
<div class="phone">
<img src="//static.shenbd.com/www/index/2018/m/img/download-phone2.jpg" class="phone-img" alt="" >
<p class="s1">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone2-s1.png" alt="">
</p>
</div>
</div>
</div>
</li>
<li class="swiper-slide">
<div class="item item3">
<div class="item-in">
<p class="txt">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s3-t1.png" class="t1" alt="">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s3-t2.png" class="t2" alt="">
</p>
<div class="phone">
<img src="//static.shenbd.com/www/index/2018/m/img/download-phone3.jpg" class="phone-img" alt="" >
<p class="s1">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone3-s1.png" alt="">
</p>
<p class="s2">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone3-s2.png" alt="">
</p>
</div>
</div>
</div>
</li>
<li class="swiper-slide">
<div class="item item4">
<div class="item-in">
<p class="txt">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s4-t1.png" class="t1" alt="">
<img src="//static.shenbd.com/www/index/2018/m/img/download-s4-t2.png" class="t2" alt="">
</p>
<div class="phone">
<img src="//static.shenbd.com/www/index/2018/m/img/download-phone4.jpg" class="phone-img" alt="" >
<p class="s1">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s1.png" alt="">
</p>
<p class="s2">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s2.png" alt="">
</p>
<p class="s3">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s3.png" alt="">
</p>
<p class="s4">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s4.png" alt="">
</p>
<p class="s5">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s5.png" alt="">
</p>
<p class="s6">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s6.png" alt="">
</p>
<p class="s7">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s7.png" alt="">
</p>
<p class="s8">
<img src="//static.shenbd.com/www/index/2018/m/img/down-phone4-s8.png" alt="">
</p>
</div>
</div>
</div>
</li>
</ul>
<div class="swiper-nav"></div>
</div>
<div class="link-box">
<a href="javascript:;" class="btn-download" title="敬请期待">APP下载</a>
<a href="javascript:;" class="btn-xcx" title="敬请期待">前往微信小程序<i></i></a>
</div>
<tr>
<td> 任意</td>
<td> 1</td>
<td> 0</td>
<td> 任意</td>
<td> 同意,不同意</td>
</tr>
<tr>
<td> 0</td>
<td> 2</td>
<td> 0</td>
<td> 任意</td>
<td> 确认收货</td>
</tr>
</tbody>
</table><br><p>2:修改收货时间</p><p>修改收货时间用的是receiveTime字段</p><p><br></p><p style="color: rgb(51, 51, 51); font-family: " helvetica="" neue",="" helvetica,="" "pingfang="" sc",="" "hiragino="" sans="" gb",="" "microsoft="" yahei",="" "noto="" cjk="" "wenquanyi="" micro="" hei",="" arial,="" sans-serif;="" font-size:="" 14px;"="">3 商品属性显示方式</p>
<p style="color: rgb(51, 51, 51); font-family: " helvetica="" neue",="" helvetica,="" "pingfang="" sc",="" "hiragino="" sans="" gb",="" "microsoft="" yahei",="" "noto="" cjk="" "wenquanyi="" micro="" hei",="" arial,="" sans-serif;="" font-size:="" 14px;"="">goodsAttr-&gt;attrName:goodsAttr-&gt;attrValue goodsAttr-&gt;attrName:goodsAttr-&gt;attrValue</p>
<p><br><br></p><p><br></p><p><br></p><p><br></p>
\ No newline at end of file
</section>
</div>
<script src="//static.shenbd.com/www/index/2018/m/js/design.js"></script>
<!--<script>-->
<!--function isWeiXin(){-->
<!--//window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性可以用来判断浏览器类型-->
<!--var ua = window.navigator.userAgent.toLowerCase();-->
<!--//通过正则表达式匹配ua中是否含有MicroMessenger字符串-->
<!--if(ua.match(/MicroMessenger/i) == 'micromessenger'){-->
<!--return true;-->
<!--}else{-->
<!--return false;-->
<!--}-->
<!--}-->
<!--window.onload=function(){-->
<!--if(!isWeiXin()){-->
<!--window.location="gotoshenbd://share.shenbd.com/?type=store&id=131";-->
<!--}-->
<!--}-->
<!--</script>-->
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment