mirror of
https://github.com/crmeb/CRMEB.git
synced 2025-12-15 04:52:50 +00:00
修复后台订单管理,和订单退款处理积分和优惠券
This commit is contained in:
parent
bead034278
commit
3257a98d63
File diff suppressed because one or more lines are too long
@ -8,12 +8,14 @@
|
||||
namespace app\admin\model\order;
|
||||
|
||||
|
||||
use app\admin\model\ump\StoreCouponUser;
|
||||
use app\admin\model\wechat\WechatUser;
|
||||
use app\admin\model\ump\StorePink;
|
||||
use app\admin\model\order\StoreOrderCartInfo;
|
||||
use app\admin\model\store\StoreProduct;
|
||||
use app\admin\model\routine\RoutineFormId;
|
||||
use app\admin\model\routine\RoutineTemplate;
|
||||
use app\routine\model\routine\RoutineTemplate;
|
||||
use service\ProgramTemplateService;
|
||||
use service\PHPExcelService;
|
||||
use traits\ModelTrait;
|
||||
use basic\ModelBasic;
|
||||
@ -21,6 +23,8 @@ use service\WechatTemplateService;
|
||||
use service\RoutineTemplateService;
|
||||
use think\Url;
|
||||
use think\Db;
|
||||
use app\admin\model\user\User;
|
||||
use app\admin\model\user\UserBill;
|
||||
/**
|
||||
* 订单管理Model
|
||||
* Class StoreOrder
|
||||
@ -38,9 +42,10 @@ class StoreOrder extends ModelBasic
|
||||
$data['jy']=self::statusByWhere(4,new self())->count();
|
||||
$data['tk']=self::statusByWhere(-1,new self())->count();
|
||||
$data['yt']=self::statusByWhere(-2,new self())->count();
|
||||
$data['general']=self::where(['pink_id'=>0,'combination_id'=>0,'seckill_id'=>0])->count();
|
||||
$data['pink']=self::where('pink_id|combination_id','neq',0)->count();
|
||||
$data['seckill']=self::where('seckill_id','neq',0)->count();
|
||||
$data['general']=self::where(['pink_id'=>0,'combination_id'=>0,'seckill_id'=>0,'bargain_id'=>0])->count();
|
||||
$data['pink']=self::where('pink_id|combination_id','>',0)->count();
|
||||
$data['seckill']=self::where('seckill_id','>',0)->count();
|
||||
$data['bargain']=self::where('bargain_id','>',0)->count();
|
||||
return $data;
|
||||
}
|
||||
|
||||
@ -84,14 +89,15 @@ class StoreOrder extends ModelBasic
|
||||
$item['color'] = '#457856';
|
||||
break;
|
||||
}
|
||||
}elseif ($item['seckill_id']){
|
||||
$item['pink_name'] = '[秒杀订单]';
|
||||
$item['color'] = '#32c5e9';
|
||||
}elseif ($item['bargain_id']){
|
||||
$item['pink_name'] = '[砍价订单]';
|
||||
$item['color'] = '#12c5e9';
|
||||
}else{
|
||||
if($item['seckill_id']){
|
||||
$item['pink_name'] = '[秒杀订单]';
|
||||
$item['color'] = '#32c5e9';
|
||||
}else{
|
||||
$item['pink_name'] = '[普通订单]';
|
||||
$item['color'] = '#895612';
|
||||
}
|
||||
$item['pink_name'] = '[普通订单]';
|
||||
$item['color'] = '#895612';
|
||||
}
|
||||
if($item['paid']==1){
|
||||
switch ($item['pay_type']){
|
||||
@ -276,6 +282,9 @@ HTML;
|
||||
if($item['seckill_id']){
|
||||
$item['pink_name'] = '[秒杀订单]';
|
||||
$item['color'] = '#32c5e9';
|
||||
}elseif ($item['bargain_id']){
|
||||
$item['pink_name'] = '[砍价订单]';
|
||||
$item['color'] = '#12c5e9';
|
||||
}else{
|
||||
$item['pink_name'] = '[普通订单]';
|
||||
$item['color'] = '#895612';
|
||||
@ -336,7 +345,7 @@ HTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* 退款发送模板消息
|
||||
* TODO 公众号退款发送模板消息
|
||||
* @param $oid
|
||||
* $oid 订单id key
|
||||
*/
|
||||
@ -352,6 +361,28 @@ HTML;
|
||||
],Url::build('wap/My/order',['uni'=>$order['order_id']],true,true));
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 小程序余额退款模板消息
|
||||
* @param $oid
|
||||
* @return bool|mixed
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public static function refundRoutineTemplate($oid){
|
||||
$order = self::where('id',$oid)->find();
|
||||
$formId = RoutineFormId::getFormIdOne($order['uid']);
|
||||
$data['keyword1']['value'] = $order['order_id'];
|
||||
$data['keyword2']['value'] = date('Y-m-d H:i:s',time());
|
||||
$data['keyword3']['value'] = $order['pay_price'];
|
||||
if($order['pay_type'] == 'yue') $data['keyword4']['value'] = '余额支付';
|
||||
else if($order['pay_type'] == 'weixin') $data['keyword4']['value'] = '微信支付';
|
||||
else if($order['pay_type'] == 'offline') $data['keyword4']['value'] = '线下支付';
|
||||
$data['keyword5']['value'] = '已成功退款';
|
||||
RoutineFormId::delFormIdOne($formId);
|
||||
return RoutineTemplateService::sendTemplate(WechatUser::uidToRoutineOpenid($order['uid']),RoutineTemplateService::setTemplateId(RoutineTemplateService::ORDER_REFUND_SUCCESS),'',$data,$formId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理where条件
|
||||
* @param $where
|
||||
@ -364,7 +395,7 @@ HTML;
|
||||
if($where['is_del'] != '' && $where['is_del'] != -1) $model = $model->where($aler.'is_del',$where['is_del']);
|
||||
if(isset($where['combination_id'])){
|
||||
if($where['combination_id'] =='普通订单'){
|
||||
$model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0);
|
||||
$model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0)->where($aler.'bargain_id',0);
|
||||
}
|
||||
if($where['combination_id'] =='拼团订单'){
|
||||
$model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
|
||||
@ -372,18 +403,25 @@ HTML;
|
||||
if($where['combination_id'] =='秒杀订单'){
|
||||
$model = $model->where($aler.'seckill_id',">",0);
|
||||
}
|
||||
if($where['combination_id'] =='砍价订单'){
|
||||
$model = $model->where($aler.'bargain_id',">",0);
|
||||
}
|
||||
}
|
||||
if(isset($where['type'])){
|
||||
switch ($where['type']){
|
||||
case 1:
|
||||
$model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0);
|
||||
$model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0)->where($aler.'bargain_id',0);
|
||||
break;
|
||||
case 2:
|
||||
$model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
|
||||
// $model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
|
||||
$model = $model->where($aler.'combination_id',">",0);
|
||||
break;
|
||||
case 3:
|
||||
$model = $model->where($aler.'seckill_id',">",0);
|
||||
break;
|
||||
case 4:
|
||||
$model = $model->where($aler.'bargain_id',">",0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -670,7 +708,7 @@ HTML;
|
||||
switch ($where['type']){
|
||||
case 1:
|
||||
//普通商品
|
||||
$model=$model->where('combination_id',0)->where('seckill_id',0);
|
||||
$model=$model->where('combination_id',0)->where('seckill_id',0)->where('bargain_id',0);
|
||||
break;
|
||||
case 2:
|
||||
//拼团商品
|
||||
@ -897,22 +935,31 @@ HTML;
|
||||
];
|
||||
if($postageData['delivery_type'] == 'send'){//送货
|
||||
$goodsName = StoreOrderCartInfo::getProductNameList($order['id']);
|
||||
$group = array_merge($group,[
|
||||
'keyword1'=>$goodsName,
|
||||
'keyword2'=>$order['pay_type'] == 'offline' ? '线下支付' : date('Y/m/d H:i',$order['pay_time']),
|
||||
'keyword3'=>$order['user_address'],
|
||||
'keyword4'=>$postageData['delivery_name'],
|
||||
'keyword5'=>$postageData['delivery_id']
|
||||
]);
|
||||
WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_DELIVER_SUCCESS,$group,$url);
|
||||
|
||||
}else if($postageData['delivery_type'] == 'express'){//发货
|
||||
$group = array_merge($group,[
|
||||
'keyword1'=>$order['order_id'],
|
||||
'keyword2'=>$postageData['delivery_name'],
|
||||
'keyword3'=>$postageData['delivery_id']
|
||||
]);
|
||||
WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_POSTAGE_SUCCESS,$group,$url);
|
||||
if($order['is_channel']){
|
||||
//小程序送货模版消息
|
||||
RoutineTemplate::sendOrderPostage($order);
|
||||
}else{//公众号
|
||||
$group = array_merge($group,[
|
||||
'keyword1'=>$goodsName,
|
||||
'keyword2'=>$order['pay_type'] == 'offline' ? '线下支付' : date('Y/m/d H:i',$order['pay_time']),
|
||||
'keyword3'=>$order['user_address'],
|
||||
'keyword4'=>$postageData['delivery_name'],
|
||||
'keyword5'=>$postageData['delivery_id']
|
||||
]);
|
||||
WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_DELIVER_SUCCESS,$group,$url);
|
||||
}
|
||||
}else if($postageData['delivery_type'] == 'express') {//发货
|
||||
if ($order['is_channel']) {
|
||||
//小程序发货模版消息
|
||||
RoutineTemplate::sendOrderPostage($order);
|
||||
} else {//公众号
|
||||
$group = array_merge($group, [
|
||||
'keyword1' => $order['order_id'],
|
||||
'keyword2' => $postageData['delivery_name'],
|
||||
'keyword3' => $postageData['delivery_id']
|
||||
]);
|
||||
WechatTemplateService::sendTemplate($openid, WechatTemplateService::ORDER_POSTAGE_SUCCESS, $group, $url);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
@ -986,4 +1033,67 @@ HTML;
|
||||
public static function getOrderPayMonthCount($is_promoter = 0){
|
||||
return self::where('o.paid',1)->alias('o')->whereTime('o.pay_time','last month')->join('User u','u.uid=o.uid')->where('u.is_promoter',$is_promoter)->count();
|
||||
}
|
||||
|
||||
/** 订单收货处理积分
|
||||
* @param $order
|
||||
* @return bool
|
||||
*/
|
||||
public static function gainUserIntegral($order)
|
||||
{
|
||||
if($order['gain_integral'] > 0){
|
||||
$userInfo = User::get($order['uid']);
|
||||
ModelBasic::beginTrans();
|
||||
$res1 = false != User::where('uid',$userInfo['uid'])->update(['integral'=>bcadd($userInfo['integral'],$order['gain_integral'],2)]);
|
||||
$res2 = false != UserBill::income('购买商品赠送积分',$order['uid'],'integral','gain',$order['gain_integral'],$order['id'],bcadd($userInfo['integral'],$order['gain_integral'],2),'购买商品赠送'.floatval($order['gain_integral']).'积分');
|
||||
$res = $res1 && $res2;
|
||||
ModelBasic::checkTrans($res);
|
||||
return $res;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** 收货后发送模版消息
|
||||
* @param $order
|
||||
*/
|
||||
public static function orderTakeAfter($order)
|
||||
{
|
||||
if($order['is_channel']){//小程序
|
||||
|
||||
}else{
|
||||
|
||||
}
|
||||
// $openid = WechatUser::getOpenId($order['uid']);
|
||||
// RoutineTemplateService::sendTemplate($openid,RoutineTemplateService::ORDER_TAKE_SUCCESS,[
|
||||
// 'first'=>'亲,您的订单已成功签收,快去评价一下吧',
|
||||
// 'keyword1'=>$order['order_id'],
|
||||
// 'keyword2'=>'已收货',
|
||||
// 'keyword3'=>date('Y/m/d H:i',time()),
|
||||
// 'keyword4'=>implode(',',StoreOrderCartInfo::getProductNameList($order['id'])),
|
||||
// 'remark'=>'点击查看订单详情'
|
||||
// ],Url::build('My/order',['uni'=>$order['order_id']],true,true));
|
||||
}
|
||||
|
||||
public static function integralBack($id){
|
||||
$order = self::get($id)->toArray();
|
||||
if(!(float)bcsub($order['use_integral'],0,2) && !$order['back_integral']) return true;
|
||||
if($order['back_integral'] && !(int)$order['use_integral']) return true;
|
||||
ModelBasic::beginTrans();
|
||||
$data['back_integral'] = bcsub($order['use_integral'],$order['use_integral'],0);
|
||||
if(!$data['back_integral']) return true;
|
||||
$data['use_integral'] = 0;
|
||||
$data['deduction_price'] = 0.00;
|
||||
$data['pay_price'] = 0.00;
|
||||
$data['coupon_id'] = 0.00;
|
||||
$data['coupon_price'] = 0.00;
|
||||
$res4 = true;
|
||||
$integral = User::where('uid',$order['uid'])->value('integral');
|
||||
$res1 = User::bcInc($order['uid'],'integral',$data['back_integral'],'uid');
|
||||
$res2 = UserBill::income('商品退积分',$order['uid'],'integral','pay_product_integral_back',$data['back_integral'],$order['id'],bcadd($integral,$data['back_integral'],2),'订单退积分'.floatval($data['back_integral']).'积分到用户积分');
|
||||
$res3 = self::edit($data,$id);
|
||||
if($order['coupon_id']) $res4 = StoreCouponUser::recoverCoupon($order['coupon_id']);
|
||||
StoreOrderStatus::setStatus($id,'integral_back','商品退积分:'.$data['back_integral']);
|
||||
$res = $res1 && $res2 && $res3 && $res4;
|
||||
ModelBasic::checkTrans($res);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,7 @@ namespace app\admin\model\routine;
|
||||
|
||||
use traits\ModelTrait;
|
||||
use basic\ModelBasic;
|
||||
|
||||
use think\Cache;
|
||||
/**
|
||||
* 小程序模板消息Model
|
||||
* Class RoutineTemplate
|
||||
@ -29,4 +29,12 @@ class RoutineTemplate extends ModelBasic
|
||||
if($where['status'] !== '') $model = $model->where('status',$where['status']);
|
||||
return self::page($model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据模版编号获取模版ID
|
||||
* @param $tempkey
|
||||
*/
|
||||
public static function getTempid($tempkey){
|
||||
return self::where('tempkey',$tempkey)->where('status',1)->cache(true,3600)->value('tempid');
|
||||
}
|
||||
}
|
||||
@ -66,4 +66,16 @@ class StoreCouponUser extends ModelBasic
|
||||
self::checkTrans($res);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 恢复优惠券
|
||||
* @param $id
|
||||
* @return StoreCouponUser|bool
|
||||
*/
|
||||
public static function recoverCoupon($id)
|
||||
{
|
||||
$status = self::where('id',$id)->value('status');
|
||||
if($status) return self::where('id',$id)->update(['status'=>0,'use_time'=>'']);
|
||||
else return true;
|
||||
}
|
||||
}
|
||||
@ -171,9 +171,10 @@ class UserBill extends ModelBasic
|
||||
//查询积分个人明细
|
||||
public static function getOneIntegralList($where){
|
||||
return self::setWhereList(
|
||||
$where,
|
||||
['deduction','system_add'],
|
||||
['title','number','balance','mark','FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time']
|
||||
$where,'',
|
||||
// ['deduction','system_add','sign'],
|
||||
['title','number','balance','mark','FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time'],
|
||||
'integral'
|
||||
);
|
||||
}
|
||||
//查询个人签到明细
|
||||
@ -186,8 +187,8 @@ class UserBill extends ModelBasic
|
||||
//查询个人余额变动记录
|
||||
public static function getOneBalanceChangList($where){
|
||||
$list=self::setWhereList(
|
||||
$where,
|
||||
['system_add','pay_product','extract','pay_product_refund','system_sub'],
|
||||
$where,'',
|
||||
// ['system_add','pay_product','extract','pay_product_refund','system_sub','brokerage','recharge','user_recharge_refund'],
|
||||
['FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time','title','type','mark','number','balance','pm','status'],
|
||||
'now_money'
|
||||
);
|
||||
@ -208,6 +209,15 @@ class UserBill extends ModelBasic
|
||||
case 'system_sub':
|
||||
$item['_type']='系统减少';
|
||||
break;
|
||||
case 'brokerage':
|
||||
$item['_type']='系统返佣';
|
||||
break;
|
||||
case 'recharge':
|
||||
$item['_type']='余额充值';
|
||||
break;
|
||||
case 'user_recharge_refund':
|
||||
$item['_type']='系统退款';
|
||||
break;
|
||||
}
|
||||
$item['_pm']=$item['pm']==1 ? '获得': '支出';
|
||||
}
|
||||
@ -218,11 +228,12 @@ class UserBill extends ModelBasic
|
||||
$models=self::where('uid',$where['uid'])
|
||||
->where('category',$category)
|
||||
->page((int)$where['page'],(int)$where['limit'])
|
||||
->order('id','desc')
|
||||
->field($field);
|
||||
if(is_array($type)){
|
||||
$models=$models->where('type','in',$type);
|
||||
}else{
|
||||
$models=$models->where('type',$type);
|
||||
if(!empty($type))$models=$models->where('type',$type);
|
||||
}
|
||||
return ($list=$models->select()) && count($list) ? $list->toArray():[];
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ class UserExtract extends ModelBasic
|
||||
$uid=$data['uid'];
|
||||
$status = -1;
|
||||
$User= User::find(['uid'=>$uid])->toArray();
|
||||
UserBill::income('提现失败',$uid,'now_money','extract',$extract_number,$id,$User['now_money'],$mark);
|
||||
UserBill::income('提现失败',$uid,'now_money','extract',$extract_number,$id,bcadd($User['now_money'],$extract_number,2),$mark);
|
||||
User::bcInc($uid,'now_money',$extract_number,'uid');
|
||||
if($User['user_type'] == 'wechat'){
|
||||
WechatTemplateService::sendTemplate(WechatUser::uidToOpenid($uid),WechatTemplateService::USER_BALANCE_CHANGE,[
|
||||
|
||||
@ -82,29 +82,30 @@
|
||||
<table class="layui-hide" id="List" lay-filter="List"></table>
|
||||
<!--订单-->
|
||||
<script type="text/html" id="order_id">
|
||||
{{d.order_id}}
|
||||
<span style="color: {{d.color}};">{{d.pink_name}}</span>
|
||||
{{d.order_id}}<br/>
|
||||
<span style="color: {{d.color}};">{{d.pink_name}}</span><br/>
|
||||
{{# if(d.is_del == 1){ }}<span style="color: {{d.color}};">用户已删除</span>{{# } }}
|
||||
</script>
|
||||
<!--用户信息-->
|
||||
<script type="text/html" id="userinfo">
|
||||
{{d.nickname==null ? '暂无信息':d.nickname}}/{{d.uid}}
|
||||
{{d.nickname==null ? '暂无信息':d.nickname}}/{{d.uid}}
|
||||
</script>
|
||||
<!--支付状态-->
|
||||
<script type="text/html" id="paid">
|
||||
{{# if(d.pay_type==1){ }}
|
||||
<p>{{d.pay_type_name}}</p>
|
||||
<p>{{d.pay_type_name}}</p>
|
||||
{{# }else{ }}
|
||||
{{# if(d.pay_type_info!=undefined){ }}
|
||||
<p><span>线下支付</span></p>
|
||||
<p><button type="button" class="btn btn-w-m btn-white">立即支付</button></p>
|
||||
{{# }else{ }}
|
||||
<p>{{d.pay_type_name}}</p>
|
||||
{{# } }}
|
||||
{{# if(d.pay_type_info!=undefined){ }}
|
||||
<p><span>线下支付</span></p>
|
||||
<p><button type="button" class="btn btn-w-m btn-white">立即支付</button></p>
|
||||
{{# }else{ }}
|
||||
<p>{{d.pay_type_name}}</p>
|
||||
{{# } }}
|
||||
{{# }; }}
|
||||
</script>
|
||||
<!--订单状态-->
|
||||
<script type="text/html" id="status">
|
||||
{{d.status_name}}
|
||||
{{d.status_name}}
|
||||
</script>
|
||||
<!--商品信息-->
|
||||
<script type="text/html" id="info">
|
||||
@ -171,7 +172,7 @@
|
||||
<i class="fa fa-paste"></i> 订单备注
|
||||
</a>
|
||||
</li>
|
||||
{{# if(d.pay_price!=d.refund_price){ }}
|
||||
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||
<li>
|
||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
|
||||
<i class="fa fa-history"></i> 立即退款
|
||||
@ -214,7 +215,8 @@
|
||||
<i class="fa fa-history"></i> 退积分
|
||||
</a>
|
||||
</li>
|
||||
{{# }else if(d.pay_price != d.refund_price){ }}
|
||||
{{# };}}
|
||||
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||
<li>
|
||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
|
||||
<i class="fa fa-history"></i>立即退款
|
||||
@ -252,7 +254,7 @@
|
||||
<i class="fa fa-cart-arrow-down"></i> 已收货
|
||||
</a>
|
||||
</li>
|
||||
{{# if(d.pay_price != d.refund_price){ }}
|
||||
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||
<li>
|
||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
|
||||
<i class="fa fa-history"></i> 立即退款
|
||||
@ -284,13 +286,14 @@
|
||||
<i class="fa fa-paste"></i> 订单备注
|
||||
</a>
|
||||
</li>
|
||||
{{# if(d.pay_price != d.refund_price){ }}
|
||||
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||
<li>
|
||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
|
||||
<i class="fa fa-history"></i> 立即退款
|
||||
</a>
|
||||
</li>
|
||||
{{# }else if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
|
||||
{{# };}}
|
||||
{{# if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
|
||||
<li>
|
||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
|
||||
<i class="fa fa-history"></i> 退积分
|
||||
@ -316,6 +319,13 @@
|
||||
<i class="fa fa-paste"></i> 订单备注
|
||||
</a>
|
||||
</li>
|
||||
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||
<li>
|
||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
|
||||
<i class="fa fa-history"></i> 立即退款
|
||||
</a>
|
||||
</li>
|
||||
{{# } }}
|
||||
{{# if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
|
||||
<li>
|
||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
|
||||
@ -436,6 +446,7 @@
|
||||
{name: '普通订单', value: 1,count:orderCount.general},
|
||||
{name: '拼团订单', value: 2,count:orderCount.pink},
|
||||
{name: '秒杀订单', value: 3,count:orderCount.seckill},
|
||||
{name: '砍价订单', value: 4,count:orderCount.bargain},
|
||||
],
|
||||
orderStatus: [
|
||||
{name: '全部', value: ''},
|
||||
@ -515,4 +526,4 @@
|
||||
})
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
{/block}
|
||||
@ -58,6 +58,28 @@
|
||||
<div class="layui-col-md12 layui-col-sm12 layui-col-lg12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">其他详情</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space15">
|
||||
{volist name='headerList' id='vo'}
|
||||
<div class="layui-col-xs3" style="margin-bottom: 10px ">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
{$vo.title}
|
||||
<span class="layui-badge layuiadmin-badge {if isset($vo.class) && $vo.class}{$vo.class}{else}layui-bg-blue{/if}">{$vo.key}</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="layuiadmin-big-font">{$vo.value}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md12 layui-col-sm12 layui-col-lg12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">其他记录</div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-tab layui-tab-card">
|
||||
<ul class="layui-tab-title">
|
||||
@ -69,19 +91,6 @@
|
||||
<li>推广下线明细</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content" id="content">
|
||||
{volist name='headerList' id='vo'}
|
||||
<div class="layui-col-xs3" style="margin-bottom: 10px ">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
{$vo.title}
|
||||
<span class="layui-badge layuiadmin-badge {if isset($vo.class) && $vo.class}{$vo.class}{else}layui-bg-blue{/if}">{$vo.key}</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<p class="layuiadmin-big-font">{$vo.value}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/volist}
|
||||
<div class="layui-tab-item layui-show">
|
||||
<table class="layui-table" lay-skin="line" v-cloak="">
|
||||
<thead>
|
||||
|
||||
160
extend/service/ProgramTemplateService.php
Normal file
160
extend/service/ProgramTemplateService.php
Normal file
@ -0,0 +1,160 @@
|
||||
<?php
|
||||
namespace service;
|
||||
|
||||
|
||||
use app\admin\model\wechat\WechatUser;
|
||||
use app\admin\model\routine\RoutineTemplate as RoutineTemplateModel;
|
||||
use app\admin\model\routine\RoutineFormId as RoutineFormIdModel;
|
||||
use app\admin\model\wechat\StoreService as ServiceModel;
|
||||
|
||||
/**
|
||||
* 小程序模板消息
|
||||
* Class RoutineTemplate
|
||||
* @package app\routine\model\routine
|
||||
*/
|
||||
class ProgramTemplateService{
|
||||
|
||||
|
||||
//订单支付成功
|
||||
const ORDER_PAY_SUCCESS = 'AT0009';
|
||||
//砍价成功
|
||||
const BARGAIN_SUCCESS = 'AT1173';
|
||||
//申请退款通知
|
||||
const ORDER_REFUND_STATUS = 'AT0036';
|
||||
//退款成功
|
||||
const ORDER_REFUND_SUCCESS = 'AT0787';
|
||||
//订单发货提醒(快递)
|
||||
const ORDER_POSTAGE_SUCCESS = 'AT0007';
|
||||
//订单发货提醒(送货)
|
||||
const ORDER_DELIVER_SUCCESS = 'AT0177';
|
||||
|
||||
|
||||
public static function sendTemplate($openid,$tempkey,array $data,$form_id = '',$link = null,$defaultColor = '')
|
||||
{
|
||||
$tempid = RoutineTemplateModel::getTempid($tempkey);
|
||||
if(!$tempid) return false;
|
||||
try{
|
||||
return MiniProgramService::sendTemplate($openid,$tempid,$data,$form_id,$link,$defaultColor);
|
||||
}catch (\Exception $e){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**服务进度通知
|
||||
* @param array $data
|
||||
* @param null $url
|
||||
* @param string $defaultColor
|
||||
* @return bool
|
||||
*/
|
||||
public static function sendAdminNoticeTemplate(array $data,$url = null,$defaultColor = '')
|
||||
{
|
||||
$adminIds = explode(',',trim(SystemConfigService::get('site_store_admin_uids')));
|
||||
$kefuIds = ServiceModel::where('notify',1)->column('uid');
|
||||
if(empty($adminIds[0])){
|
||||
$adminList = array_unique($kefuIds);
|
||||
}else{
|
||||
$adminList = array_unique(array_merge($adminIds,$kefuIds));
|
||||
}
|
||||
if(!is_array($adminList) || empty($adminList)) return false;
|
||||
foreach ($adminList as $uid){
|
||||
try{
|
||||
$openid = WechatUser::uidToRoutineOpenid($uid);
|
||||
}catch (\Exception $e){
|
||||
continue;
|
||||
}
|
||||
// self::sendTemplate($openid,self::ADMIN_NOTICE,$data,$url,$defaultColor);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回所有支持的行业列表
|
||||
* @return \EasyWeChat\Support\Collection
|
||||
*/
|
||||
public static function getIndustry()
|
||||
{
|
||||
return MiniProgramService::noticeService()->getIndustry();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改账号所属行业
|
||||
* 主行业 副行业 代码
|
||||
* IT科技 互联网/电子商务 1
|
||||
* IT科技 IT软件与服务 2
|
||||
* IT科技 IT硬件与设备 3
|
||||
* IT科技 电子技术 4
|
||||
* IT科技 通信与运营商 5
|
||||
* IT科技 网络游戏 6
|
||||
* 金融业 银行 7
|
||||
* 金融业 基金|理财|信托 8
|
||||
* 金融业 保险 9
|
||||
* 餐饮 餐饮 10
|
||||
* 酒店旅游 酒店 11
|
||||
* 酒店旅游 旅游 12
|
||||
* 运输与仓储 快递 13
|
||||
* 运输与仓储 物流 14
|
||||
* 运输与仓储 仓储 15
|
||||
* 教育 培训 16
|
||||
* 教育 院校 17
|
||||
* 政府与公共事业 学术科研 18
|
||||
* 政府与公共事业 交警 19
|
||||
* 政府与公共事业 博物馆 20
|
||||
* 政府与公共事业 公共事业|非盈利机构 21
|
||||
* 医药护理 医药医疗 22
|
||||
* 医药护理 护理美容 23
|
||||
* 医药护理 保健与卫生 24
|
||||
* 交通工具 汽车相关 25
|
||||
* 交通工具 摩托车相关 26
|
||||
* 交通工具 火车相关 27
|
||||
* 交通工具 飞机相关 28
|
||||
* 房地产 建筑 29
|
||||
* 房地产 物业 30
|
||||
* 消费品 消费品 31
|
||||
* 商业服务 法律 32
|
||||
* 商业服务 会展 33
|
||||
* 商业服务 中介服务 34
|
||||
* 商业服务 认证 35
|
||||
* 商业服务 审计 36
|
||||
* 文体娱乐 传媒 37
|
||||
* 文体娱乐 体育 38
|
||||
* 文体娱乐 娱乐休闲 39
|
||||
* 印刷 印刷 40
|
||||
* 其它 其它 41
|
||||
* @param $industryId1
|
||||
* @param $industryId2
|
||||
* @return \EasyWeChat\Support\Collection
|
||||
*/
|
||||
public static function setIndustry($industryId1, $industryId2)
|
||||
{
|
||||
return MiniProgramService::noticeService()->setIndustry($industryId1, $industryId2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有模板列表
|
||||
* @return \EasyWeChat\Support\Collection
|
||||
*/
|
||||
public static function getPrivateTemplates()
|
||||
{
|
||||
return MiniProgramService::noticeService()->getPrivateTemplates();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除指定ID的模板
|
||||
* @param $templateId
|
||||
* @return \EasyWeChat\Support\Collection
|
||||
*/
|
||||
public static function deletePrivateTemplate($templateId)
|
||||
{
|
||||
return MiniProgramService::noticeService()->deletePrivateTemplate($templateId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 添加模板并获取模板ID
|
||||
* @param $shortId
|
||||
* @return \EasyWeChat\Support\Collection
|
||||
*/
|
||||
public static function addTemplate($shortId)
|
||||
{
|
||||
return MiniProgramService::noticeService()->addTemplate($shortId);
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user