提交 62f1737a 编写于 作者: T Terry

后台编辑订单

上级 928f2cdd
......@@ -34,10 +34,10 @@ class Manageredit extends AppadminbaseBlockEdit implements AppadminbaseBlockEdit
public function getLastData()
{
return [
'editBar' => $this->getEditBar(),
'textareas' => $this->_textareas,
'lang_attr' => $this->_lang_attr,
'saveUrl' => $this->_saveUrl,
'editBar' => $this->getEditBar(),
'textareas' => $this->_textareas,
'lang_attr' => $this->_lang_attr,
'saveUrl' => $this->_saveUrl,
];
}
......
......@@ -23,8 +23,7 @@ class Manageredit
public function init()
{
//$this->_saveUrl = CUrl::getUrl('sales/orderinfo/managereditsave');
//parent::init();
parent::init();
}
// 传递给前端的数据 显示编辑form
......@@ -33,13 +32,85 @@ class Manageredit
$order_id = Yii::$app->request->get('order_id');
//$order = Yii::$service->order->getByPrimaryKey($order_id);
$order_info = Yii::$service->order->getOrderInfoById($order_id);
$order_info = $this->getViewOrderInfo($order_info);
return [
'order' => $order_info,
//'editBar' => $this->getEditBar(),
//'textareas' => $this->_textareas,
//'lang_attr' => $this->_lang_attr,
//'saveUrl' => $this->_saveUrl,
'saveUrl' => Yii::$service->url->getUrl('sales/orderinfo/managereditsave'),
];
}
public function getViewOrderInfo($order_info){
// 订单状态部分
$orderStatusArr = Yii::$service->order->getStatusArr();
//var_dump($orderStatusArr);exit;
$order_info['order_status_options'] = $this->getOptions($orderStatusArr,$order_info['order_status']);
// 货币部分
$currencys = Yii::$service->page->currency->getCurrencys();
$currencyArr = [];
if(is_array($currencys)){
foreach( $currencys as $code => $v){
$currencyArr[$code] = $code;
}
}
$order_info['order_currency_code_options'] = $this->getOptions($currencyArr,$order_info['order_currency_code']);
// 支付类型
$checkTypeArr = Yii::$service->order->getCheckoutTypeArr();
$order_info['checkout_method_options'] = $this->getOptions($checkTypeArr,$order_info['checkout_method']);
// 游客下单
$customerOrderArr = [ 1 => '是',2 => '否',];
$order_info['customer_is_guest_options'] = $this->getOptions($customerOrderArr,$order_info['customer_is_guest']);
// 省
$order_info['customer_address_country_options'] = Yii::$service->helper->country->getCountryOptionsHtml($order_info['customer_address_country']);
// 市
$order_info['customer_address_state_options'] = Yii::$service->helper->country->getStateOptionsByContryCode($order_info['customer_address_country'],$order_info['customer_address_state']);
return $order_info;
}
public function getOptions($orderStatusArr,$order_status){
$str = '';
if(is_array($orderStatusArr)){
foreach($orderStatusArr as $k => $v){
if($order_status == $k ){
$str .= '<option selected="selected" value="'.$k.'">'.$v.'</option>';
}else{
$str .= '<option value="'.$k.'">'.$v.'</option>';
}
}
}
return $str;
}
public function save(){
$editForm = Yii::$app->request->post('editForm');
$order_id = $editForm['order_id'];
$orderModel = Yii::$service->order->getByPrimaryKey($order_id);
if(is_array($editForm) && $orderModel['order_id']){
foreach($editForm as $k => $v){
if(isset($orderModel[$k])){
$orderModel[$k] = $v;
}
}
$orderModel->save();
}
echo json_encode([
'statusCode'=>'200',
'message'=>'save success',
]);
exit;
}
}
......@@ -10,7 +10,7 @@
namespace fecshop\app\appadmin\modules\Sales\controllers;
use fecshop\app\appadmin\modules\Sales\SalesController;
use Yii;
/**
* @author Terry Zhao <2358269014@qq.com>
* @since 1.0
......@@ -23,20 +23,32 @@ class OrderinfoController extends SalesController
return $this->render($this->action->id, $data);
}
public function actionManageredit()
{
$data = $this->getBlock()->getLastData();
return $this->render($this->action->id, $data);
}
public function actionGetstate()
{
$customer_address_country = Yii::$app->request->get('country');
$customer_address_state = Yii::$app->request->get('state');
$stateOption = Yii::$service->helper->country->getStateOptionsByContryCode($customer_address_country,$customer_address_state);
echo json_encode([
'status' => 'success',
'content'=> $stateOption,
]);
return;
}
/*
public function actionManagereditsave()
{
$data = $this->getBlock("manageredit")->save();
}
/*
public function actionManagerdelete()
{
$this->getBlock("manageredit")->delete();
......
......@@ -26,7 +26,7 @@ use fecshop\app\appfront\helper\Format;
<?php echo CRequest::getCsrfInputHtml(); ?>
<div layouth="56" class="pageFormContent" style="height: 240px; overflow: auto;">
<input type="hidden" value="<?= $product_id; ?>" size="30" name="product_id" class="textInput ">
<input type="hidden" value="<?= $order['order_id']; ?>" size="30" name="editForm[order_id]" class="textInput ">
<fieldset id="fieldset_table_qbe">
<legend style="color:#cc0000">订单信息</legend>
......@@ -38,12 +38,14 @@ use fecshop\app\appfront\helper\Format;
<p class="edit_p">
<label>订单状态:</label>
<span><?= $order['order_status'] ?></span>
<span><select name="editForm[order_status]"><?= $order['order_status_options'] ?></select></span>
</p>
<p class="edit_p">
<label>Store:</label>
<span><?= $order['store'] ?></span>
<span>
<input type="text" name="editForm[store]" value="<?= $order['store'] ?>" />
</span>
</p>
<p class="edit_p">
......@@ -60,7 +62,12 @@ use fecshop\app\appfront\helper\Format;
<p class="edit_p">
<label>订单货币简码:</label>
<span><?= $order['order_currency_code'] ?></span>
<span><?= $order['order_to_base_rate'] ?></span>
<!--
<span>
<select name="editForm[order_currency_code]"><?= $order['order_currency_code_options'] ?></select>
</span>
-->
</p>
<?php $symbol = Yii::$service->page->currency->getSymbol($order['order_currency_code']); ?>
<p class="edit_p">
......@@ -68,9 +75,16 @@ use fecshop\app\appfront\helper\Format;
<span><?= $order['order_to_base_rate'] ?></span>
</p>
<!--
<p class="edit_p">
<label>支付类型:</label>
<span>
<select name="editForm[checkout_method]"><?= $order['checkout_method_options'] ?></select>
</span>
</p>
-->
<p class="edit_p">
<label>支付方式:</label>
<span><?= $order['checkout_method'] ?></span>
</p>
<p class="edit_p">
......@@ -129,28 +143,36 @@ use fecshop\app\appfront\helper\Format;
<p class="edit_p">
<label>FirstName:</label>
<span><?= $symbol.$order['customer_firstname'] ?></span>
</p>
<span>
<input type="text" name="editForm[customer_firstname]" value="<?= $order['customer_firstname'] ?>" />
</span>
</p>
<p class="edit_p">
<label>LastName:</label>
<span><?= $order['customer_lastname'] ?></span>
</p>
<?php if($order['customer_is_guest'] == 1){ ?>
<span>
<input type="text" name="editForm[customer_lastname]" value="<?= $order['customer_lastname'] ?>" />
</span>
</p>
<p class="edit_p">
<label>游客下单?</label>
<span><?= '是' ?></span>
<label>是否游客下单:</label>
<span>
<select name="editForm[customer_is_guest]"><?= $order['customer_is_guest_options'] ?></select>
</span>
</p>
<?php } ?>
<p class="edit_p">
<label>Email:</label>
<span><?= $order['customer_email'] ?></span>
</p>
<?php if($order['customer_id']){ ?>
<span>
<input type="text" name="editForm[customer_email]" value="<?= $order['customer_email'] ?>" />
</span>
</p>
<p class="edit_p">
<label>customer_id:</label>
<span><?= $order['customer_id'] ?></span>
<span>
<input type="text" name="" value="<?= $order['customer_id'] ?>" />
</span>
</p>
<?php } ?>
</div>
</fieldset>
......@@ -169,34 +191,95 @@ use fecshop\app\appfront\helper\Format;
<p class="edit_p">
<label>电话:</label>
<span><?= $order['customer_telephone'] ?></span>
</p>
<span>
<input type="text" name="editForm[customer_telephone]" value="<?= $order['customer_telephone'] ?>" />
</span>
</p>
<p class="edit_p">
<label>国家:</label>
<span><?= $order['customer_address_country'] ?></span>
</p>
<span>
<select class="customer_country" style="width:200px;" name="editForm[customer_address_country]"><?= $order['customer_address_country_options'] ?></select>
</span>
</p>
<p class="edit_p">
<label>省/市:</label>
<span><?= $order['customer_address_state'] ?></span>
</p>
<input type="hidden" class="hidden_state" value="<?= $order['customer_address_state']; ?>" />
<span class="state_span">
<?php if($order['customer_address_state_options']): ?>
<select class="customer_state" style="width:200px;" name="editForm[customer_address_state]"><?= $order['customer_address_state_options'] ?></select>
<?php else: ?>
<input class="customer_state" type="text" name="editForm[customer_address_state]" value="<?= $order['customer_address_state'] ?>" />
<?php endif;?>
</span>
</p>
<script>
$(document).ready(function(){
$(".customer_country").change(function(){
url = '<?= Yii::$service->url->getUrl('sales/orderinfo/getstate') ?>';
country = $(this).val();
state = $(".hidden_state").val();
url += '?country='+country+'&state='+state;
//data = {"country":country};
$.ajax({
url:url,
type:'GET',
async:false,
//data:data,
dataType: 'json',
timeout: 8000,
cache: false,
contentType: false, //不可缺参数
processData: false, //不可缺参数
success:function(data, textStatus){
if(data.status == "success"){
content = data.content;
if(content){
str = '<select class="customer_state" style="width:200px;" name="editForm[customer_address_state]">'+content+'</select>';
}else{
str = '<input class="customer_state" type="text" name="editForm[customer_address_state]" value="" />';
}
$(".state_span").html(str);
}
},
error:function(){
alert('获取省市出错');
}
});
});
});
</script>
<p class="edit_p">
<label>城市:</label>
<span><?= $order['customer_address_city'] ?></span>
</p>
<span>
<input type="text" name="editForm[customer_address_city]" value="<?= $order['customer_address_city'] ?>" />
</span>
</p>
<p class="edit_p">
<label>邮编:</label>
<span><?= $order['customer_address_zip'] ?></span>
</p>
<span>
<input type="text" name="editForm[customer_address_zip]" value="<?= $order['customer_address_zip'] ?>" />
</span>
</p>
<p class="edit_p">
<label>街道1:</label>
<span><?= $order['customer_address_street1'] ?></span>
</p>
<span>
<input type="text" name="editForm[customer_address_street1]" value="<?= $order['customer_address_street1'] ?>" />
</span>
</p>
<p class="edit_p">
<label>街道2:</label>
<span><?= $order['customer_address_street2'] ?></span>
</p>
<span>
<input type="text" name="editForm[customer_address_street2]" value="<?= $order['customer_address_street2'] ?>" />
</span>
</p>
</div>
</fieldset>
......
......@@ -64,8 +64,8 @@ class Index
$product_ids = [];
$favorites = [];
foreach ($coll as $one) {
$p_id = $one['product_id'];
$product_ids[] = new \MongoDB\BSON\ObjectId($p_id);
$p_id = (string)$one['product_id']
$product_ids[] = $one['product_id'];
$favorites[$p_id] = [
'updated_at' => $one['updated_at'],
'favorite_id' => (string) $one['_id'],
......
......@@ -64,8 +64,8 @@ class Index
$product_ids = [];
$favorites = [];
foreach ($coll as $one) {
$p_id = $one['product_id'];
$product_ids[] = new \MongoDB\BSON\ObjectId($p_id);
$p_id = (string)$one['product_id']
$product_ids[] = $one['product_id'];
$favorites[$p_id] = [
'updated_at' => $one['updated_at'],
'favorite_id' => (string) $one['_id'],
......
......@@ -59,7 +59,7 @@
<?= Yii::$service->page->widget->render($priceView,$priceParam); ?>
</div>
<div class="product_info_section">
<div class="product_info_section" id="product_info_section">
<div class="product_options">
<?php # options部分
$optionsView = [
......
......@@ -41,8 +41,40 @@ class Order extends Service
// 支付类型常量
const CHECKOUT_TYPE_STANDARD = 'standard';
const CHECKOUT_TYPE_EXPRESS = 'express';
const CHECKOUT_TYPE_ADMIN_CREATE= 'admin_create';
// 作为保存incrementId到session的key,把当前的order incrementId保存到session的时候,对应的key就是该常量。
const CURRENT_ORDER_INCREAMENT_ID = 'current_order_increament_id';
/**
* @return array
* 将订单所有的支付类型,组合成一个数组,进行返回。
*/
protected function actionGetCheckoutTypeArr(){
return [
self::CHECKOUT_TYPE_ADMIN_CREATE => self::CHECKOUT_TYPE_ADMIN_CREATE,
self::CHECKOUT_TYPE_STANDARD => self::CHECKOUT_TYPE_STANDARD,
self::CHECKOUT_TYPE_EXPRESS => self::CHECKOUT_TYPE_EXPRESS,
];
}
/**
* @return array
* 将订单所有的状态,组合成一个数组,进行返回。
*/
protected function actionGetStatusArr(){
return [
$this->payment_status_pending => $this->payment_status_pending,
$this->payment_status_processing => $this->payment_status_processing,
$this->payment_status_canceled => $this->payment_status_canceled,
$this->payment_status_complete => $this->payment_status_complete,
$this->payment_status_holded => $this->payment_status_holded,
$this->payment_status_suspected_fraud => $this->payment_status_suspected_fraud,
];
}
/**
* @property $checkout_type | String ,支付类型
* 设置支付类型,其他计算以此设置作为基础,进而获取其他的配置。
......
......@@ -97,7 +97,7 @@ class Country extends Service
/**
* 国家option html
*/
public static function getCountryOptionsHtml($selectd = '')
public function getCountryOptionsHtml($selectd = '')
{
if (!$selectd) {
$selectd = $this->getDefaultCountry();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册