confirm_test.sh

本文详细介绍了如何通过脚本查询订单当前确认状态,并执行催确认、房间确认、取消等操作,包括支付类型检查、退款规则考虑及订单确认流程。
#!/bin/bash


orderNo=$1

cookie=''

header='Content-Type:application/json'
hostname="http://`hostname -i`:9012"

#####查询订单当前确认状态
function getConfirmStatus()
{
url_confirmOrderDetail="$hostname/confirm/api/allorder/queryOrderDetail?orderNum=${orderNo}"

confirm_status_res=`curl -s -XGET --Cookie "$cookie" --header "$header" $url_confirmOrderDetail`


eval $(echo $confirm_status_res| awk -F"," 'BEGIN{ss=0;tt=0} 
     {for(i=1;i<NF;i++) 
        if($i~"orderStatus" && ss==0){
	ss=ss+1;
        printf("confirmStatus=%s;",$i)	
       } 
        else if($i~"payType" && tt==0){
	tt++
        printf("payType=%s;",$i)
	} 
     }')


confirm_Status=`echo $confirmStatus |awk -F":" '{print $2}'`
pay_type=`echo $payType |awk -F":" '{print $2}'`
echo $confirm_Status":"$pay_type

}

confirmStatus1=`echo $(getConfirmStatus) |awk -F":" '{print $1}'`
payType1=`echo $(getConfirmStatus) |awk -F":" '{print $2}'`
echo "你传入的订单号是"$orderNo",订单没执行前状态是"$confirmStatus1",支付状态是"$payType1



echo "--------------执行订单催确认-------------"

sleep 2

####确认房间操作

data_urgeConfirm='{"orderNum":"100419263793","remark":"催确认"}'


url_urgeConfirm="$hostname/confirm/api/confirm/urgeConfirm"

if [[ "$confirmStauts1" = "PENDING_CONFIRM" ]] ||[[ "$confirmStatus1" = "SPECIAL" ]] || [[ "$confirmStatus1" = "FOLLOW_CONFIRMING" ]]; then
{
        urgeConfirm=`curl -s --Cookie "$cookie" -d "$data_urgeConfirm" --header "$header" "$url_urgeConfirm"`
        echo ${urgeConfirm}
        echo $orderNo",订单当前的确认状态是"$confirmStatus1
}
else
{
	echo $orderNo",订单当前的确认状态是"$confirmStatus1",不能执行新单催确认" 
}
fi


echo "--------------执行订单确认流程-------------"

sleep 2

####确认房间操作

data_roomConfirm='{"orderNum":'${orderNo}',"codeValue":1,"lackConfirmNoRemark":"","ackNumberFlag":0,"confirmNo":"confirmNo","remark":"yuling"}'


url_roomConfirm="$hostname/confirm/api/confirm/roomConfirm"

if [[ "$confirmStatus1" = "CONFIRMED" ]]; then
{
	echo "已经是已确认状态,不需要再确认了"
}
elif [[ "$confirmStatus1" = "CANCELLED" ]]; then
{
	echo "订单已经取消!!!"
} 
else 
{
	roomConfirm=`curl -s --Cookie "$cookie" -d "$data_roomConfirm" --header "$header" "$url_roomConfirm"`
	echo ${roomConfirm}
	echo $orderNo",订单当前的确认状态是"$confirmStatus1
}
fi


echo "------------------为客人取消----------------"
sleep 2
###预付要考虑退款规则(是否可退,以及可退款金额是多少)
function getRefundInfo()
{
	data_refundInfo='{"orderNum":'${orderNo}'}'
	url_refundInfo="$hostname/confirm/api/confirm/refundInfo"

	refundInfo=`curl -s --Cookie "$cookie" -d "$data_refundInfo" --header "$header" "$url_refundInfo"`
	
	eval $(echo $refundInfo| awk -F"," 'BEGIN{ss=0;tt=0}
     		{for(i=1;i<NF;i++)
        		if($i~"refundPrice" && ss==0){
        		ss=ss+1;
        		printf("refundPrice1=%s;",$i)
       			}
        		else if($i~"payType" && tt==0){
        		tt++
        		printf("payType=%s;",$i)
        	}
     	}')
	amount=`echo $refundPrice1 |awk -F":" '{print $3}' |awk -F"." '{print $1}'`
	echo $amount
}
echo $(getRefundInfo)



data_cancel='{"orderNum":'${orderNo}',"refundPrice":"","refundPromoBalance":"","remark":""}'

url_cancel="$hostname/confirm/api/confirm/cancelOrder"

if [[ "$confirmStatus1" = "CANCELLED" ]]; then
{
        echo "已经是已取消状态,不需要再为客人取消了哈"
}
elif [[ "$payType1" = "ONLINE" && "$(getRefundInfo)" -lt 0 ]]; then
{
	echo "订单不可退!或者几毛钱的就别退了哈"
}
elif [[ "$payType1" = "ONLINE" && "$(getRefundInfo)" -gt 0 ]]; then
{
	data_cancel_online='{"orderNum":'${orderNo}',"refundPrice":'$(getRefundInfo)',"refundPromoBalance":"","remark":""}'
	cancelOrder=`curl -s --Cookie "$cookie" -d "$data_cancel_online" --header "$header" "$url_cancel"`
	echo $orderNo",已全额退款,退了"$(getRefundInfo)"钱!"	

}
else
{
        cancelOrder=`curl -s --Cookie "$cookie" -d "$data_cancel" --header "$header" "$url_cancel"`
        echo ${cancelOrder}
        echo $orderNo",订单当前的确认状态是"$confirmStatus1
}
fi


转载于:https://www.cnblogs.com/sarahyu/p/4877571.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值