mirror of
https://github.com/crmeb/CRMEB.git
synced 2025-12-16 05:52:51 +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;
|
namespace app\admin\model\order;
|
||||||
|
|
||||||
|
|
||||||
|
use app\admin\model\ump\StoreCouponUser;
|
||||||
use app\admin\model\wechat\WechatUser;
|
use app\admin\model\wechat\WechatUser;
|
||||||
use app\admin\model\ump\StorePink;
|
use app\admin\model\ump\StorePink;
|
||||||
use app\admin\model\order\StoreOrderCartInfo;
|
use app\admin\model\order\StoreOrderCartInfo;
|
||||||
use app\admin\model\store\StoreProduct;
|
use app\admin\model\store\StoreProduct;
|
||||||
use app\admin\model\routine\RoutineFormId;
|
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 service\PHPExcelService;
|
||||||
use traits\ModelTrait;
|
use traits\ModelTrait;
|
||||||
use basic\ModelBasic;
|
use basic\ModelBasic;
|
||||||
@ -21,6 +23,8 @@ use service\WechatTemplateService;
|
|||||||
use service\RoutineTemplateService;
|
use service\RoutineTemplateService;
|
||||||
use think\Url;
|
use think\Url;
|
||||||
use think\Db;
|
use think\Db;
|
||||||
|
use app\admin\model\user\User;
|
||||||
|
use app\admin\model\user\UserBill;
|
||||||
/**
|
/**
|
||||||
* 订单管理Model
|
* 订单管理Model
|
||||||
* Class StoreOrder
|
* Class StoreOrder
|
||||||
@ -38,9 +42,10 @@ class StoreOrder extends ModelBasic
|
|||||||
$data['jy']=self::statusByWhere(4,new self())->count();
|
$data['jy']=self::statusByWhere(4,new self())->count();
|
||||||
$data['tk']=self::statusByWhere(-1,new self())->count();
|
$data['tk']=self::statusByWhere(-1,new self())->count();
|
||||||
$data['yt']=self::statusByWhere(-2,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['general']=self::where(['pink_id'=>0,'combination_id'=>0,'seckill_id'=>0,'bargain_id'=>0])->count();
|
||||||
$data['pink']=self::where('pink_id|combination_id','neq',0)->count();
|
$data['pink']=self::where('pink_id|combination_id','>',0)->count();
|
||||||
$data['seckill']=self::where('seckill_id','neq',0)->count();
|
$data['seckill']=self::where('seckill_id','>',0)->count();
|
||||||
|
$data['bargain']=self::where('bargain_id','>',0)->count();
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,14 +89,15 @@ class StoreOrder extends ModelBasic
|
|||||||
$item['color'] = '#457856';
|
$item['color'] = '#457856';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}elseif ($item['seckill_id']){
|
||||||
|
$item['pink_name'] = '[秒杀订单]';
|
||||||
|
$item['color'] = '#32c5e9';
|
||||||
|
}elseif ($item['bargain_id']){
|
||||||
|
$item['pink_name'] = '[砍价订单]';
|
||||||
|
$item['color'] = '#12c5e9';
|
||||||
}else{
|
}else{
|
||||||
if($item['seckill_id']){
|
$item['pink_name'] = '[普通订单]';
|
||||||
$item['pink_name'] = '[秒杀订单]';
|
$item['color'] = '#895612';
|
||||||
$item['color'] = '#32c5e9';
|
|
||||||
}else{
|
|
||||||
$item['pink_name'] = '[普通订单]';
|
|
||||||
$item['color'] = '#895612';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if($item['paid']==1){
|
if($item['paid']==1){
|
||||||
switch ($item['pay_type']){
|
switch ($item['pay_type']){
|
||||||
@ -276,6 +282,9 @@ HTML;
|
|||||||
if($item['seckill_id']){
|
if($item['seckill_id']){
|
||||||
$item['pink_name'] = '[秒杀订单]';
|
$item['pink_name'] = '[秒杀订单]';
|
||||||
$item['color'] = '#32c5e9';
|
$item['color'] = '#32c5e9';
|
||||||
|
}elseif ($item['bargain_id']){
|
||||||
|
$item['pink_name'] = '[砍价订单]';
|
||||||
|
$item['color'] = '#12c5e9';
|
||||||
}else{
|
}else{
|
||||||
$item['pink_name'] = '[普通订单]';
|
$item['pink_name'] = '[普通订单]';
|
||||||
$item['color'] = '#895612';
|
$item['color'] = '#895612';
|
||||||
@ -336,7 +345,7 @@ HTML;
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退款发送模板消息
|
* TODO 公众号退款发送模板消息
|
||||||
* @param $oid
|
* @param $oid
|
||||||
* $oid 订单id key
|
* $oid 订单id key
|
||||||
*/
|
*/
|
||||||
@ -352,6 +361,28 @@ HTML;
|
|||||||
],Url::build('wap/My/order',['uni'=>$order['order_id']],true,true));
|
],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条件
|
* 处理where条件
|
||||||
* @param $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($where['is_del'] != '' && $where['is_del'] != -1) $model = $model->where($aler.'is_del',$where['is_del']);
|
||||||
if(isset($where['combination_id'])){
|
if(isset($where['combination_id'])){
|
||||||
if($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'] =='拼团订单'){
|
if($where['combination_id'] =='拼团订单'){
|
||||||
$model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
|
$model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
|
||||||
@ -372,18 +403,25 @@ HTML;
|
|||||||
if($where['combination_id'] =='秒杀订单'){
|
if($where['combination_id'] =='秒杀订单'){
|
||||||
$model = $model->where($aler.'seckill_id',">",0);
|
$model = $model->where($aler.'seckill_id',">",0);
|
||||||
}
|
}
|
||||||
|
if($where['combination_id'] =='砍价订单'){
|
||||||
|
$model = $model->where($aler.'bargain_id',">",0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(isset($where['type'])){
|
if(isset($where['type'])){
|
||||||
switch ($where['type']){
|
switch ($where['type']){
|
||||||
case 1:
|
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;
|
break;
|
||||||
case 2:
|
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;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
$model = $model->where($aler.'seckill_id',">",0);
|
$model = $model->where($aler.'seckill_id',">",0);
|
||||||
break;
|
break;
|
||||||
|
case 4:
|
||||||
|
$model = $model->where($aler.'bargain_id',">",0);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -670,7 +708,7 @@ HTML;
|
|||||||
switch ($where['type']){
|
switch ($where['type']){
|
||||||
case 1:
|
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;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
//拼团商品
|
//拼团商品
|
||||||
@ -897,22 +935,31 @@ HTML;
|
|||||||
];
|
];
|
||||||
if($postageData['delivery_type'] == 'send'){//送货
|
if($postageData['delivery_type'] == 'send'){//送货
|
||||||
$goodsName = StoreOrderCartInfo::getProductNameList($order['id']);
|
$goodsName = StoreOrderCartInfo::getProductNameList($order['id']);
|
||||||
$group = array_merge($group,[
|
if($order['is_channel']){
|
||||||
'keyword1'=>$goodsName,
|
//小程序送货模版消息
|
||||||
'keyword2'=>$order['pay_type'] == 'offline' ? '线下支付' : date('Y/m/d H:i',$order['pay_time']),
|
RoutineTemplate::sendOrderPostage($order);
|
||||||
'keyword3'=>$order['user_address'],
|
}else{//公众号
|
||||||
'keyword4'=>$postageData['delivery_name'],
|
$group = array_merge($group,[
|
||||||
'keyword5'=>$postageData['delivery_id']
|
'keyword1'=>$goodsName,
|
||||||
]);
|
'keyword2'=>$order['pay_type'] == 'offline' ? '线下支付' : date('Y/m/d H:i',$order['pay_time']),
|
||||||
WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_DELIVER_SUCCESS,$group,$url);
|
'keyword3'=>$order['user_address'],
|
||||||
|
'keyword4'=>$postageData['delivery_name'],
|
||||||
}else if($postageData['delivery_type'] == 'express'){//发货
|
'keyword5'=>$postageData['delivery_id']
|
||||||
$group = array_merge($group,[
|
]);
|
||||||
'keyword1'=>$order['order_id'],
|
WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_DELIVER_SUCCESS,$group,$url);
|
||||||
'keyword2'=>$postageData['delivery_name'],
|
}
|
||||||
'keyword3'=>$postageData['delivery_id']
|
}else if($postageData['delivery_type'] == 'express') {//发货
|
||||||
]);
|
if ($order['is_channel']) {
|
||||||
WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_POSTAGE_SUCCESS,$group,$url);
|
//小程序发货模版消息
|
||||||
|
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){
|
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();
|
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 traits\ModelTrait;
|
||||||
use basic\ModelBasic;
|
use basic\ModelBasic;
|
||||||
|
use think\Cache;
|
||||||
/**
|
/**
|
||||||
* 小程序模板消息Model
|
* 小程序模板消息Model
|
||||||
* Class RoutineTemplate
|
* Class RoutineTemplate
|
||||||
@ -29,4 +29,12 @@ class RoutineTemplate extends ModelBasic
|
|||||||
if($where['status'] !== '') $model = $model->where('status',$where['status']);
|
if($where['status'] !== '') $model = $model->where('status',$where['status']);
|
||||||
return self::page($model);
|
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);
|
self::checkTrans($res);
|
||||||
return $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){
|
public static function getOneIntegralList($where){
|
||||||
return self::setWhereList(
|
return self::setWhereList(
|
||||||
$where,
|
$where,'',
|
||||||
['deduction','system_add'],
|
// ['deduction','system_add','sign'],
|
||||||
['title','number','balance','mark','FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time']
|
['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){
|
public static function getOneBalanceChangList($where){
|
||||||
$list=self::setWhereList(
|
$list=self::setWhereList(
|
||||||
$where,
|
$where,'',
|
||||||
['system_add','pay_product','extract','pay_product_refund','system_sub'],
|
// ['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'],
|
['FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time','title','type','mark','number','balance','pm','status'],
|
||||||
'now_money'
|
'now_money'
|
||||||
);
|
);
|
||||||
@ -208,6 +209,15 @@ class UserBill extends ModelBasic
|
|||||||
case 'system_sub':
|
case 'system_sub':
|
||||||
$item['_type']='系统减少';
|
$item['_type']='系统减少';
|
||||||
break;
|
break;
|
||||||
|
case 'brokerage':
|
||||||
|
$item['_type']='系统返佣';
|
||||||
|
break;
|
||||||
|
case 'recharge':
|
||||||
|
$item['_type']='余额充值';
|
||||||
|
break;
|
||||||
|
case 'user_recharge_refund':
|
||||||
|
$item['_type']='系统退款';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
$item['_pm']=$item['pm']==1 ? '获得': '支出';
|
$item['_pm']=$item['pm']==1 ? '获得': '支出';
|
||||||
}
|
}
|
||||||
@ -218,11 +228,12 @@ class UserBill extends ModelBasic
|
|||||||
$models=self::where('uid',$where['uid'])
|
$models=self::where('uid',$where['uid'])
|
||||||
->where('category',$category)
|
->where('category',$category)
|
||||||
->page((int)$where['page'],(int)$where['limit'])
|
->page((int)$where['page'],(int)$where['limit'])
|
||||||
|
->order('id','desc')
|
||||||
->field($field);
|
->field($field);
|
||||||
if(is_array($type)){
|
if(is_array($type)){
|
||||||
$models=$models->where('type','in',$type);
|
$models=$models->where('type','in',$type);
|
||||||
}else{
|
}else{
|
||||||
$models=$models->where('type',$type);
|
if(!empty($type))$models=$models->where('type',$type);
|
||||||
}
|
}
|
||||||
return ($list=$models->select()) && count($list) ? $list->toArray():[];
|
return ($list=$models->select()) && count($list) ? $list->toArray():[];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,7 +49,7 @@ class UserExtract extends ModelBasic
|
|||||||
$uid=$data['uid'];
|
$uid=$data['uid'];
|
||||||
$status = -1;
|
$status = -1;
|
||||||
$User= User::find(['uid'=>$uid])->toArray();
|
$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');
|
User::bcInc($uid,'now_money',$extract_number,'uid');
|
||||||
if($User['user_type'] == 'wechat'){
|
if($User['user_type'] == 'wechat'){
|
||||||
WechatTemplateService::sendTemplate(WechatUser::uidToOpenid($uid),WechatTemplateService::USER_BALANCE_CHANGE,[
|
WechatTemplateService::sendTemplate(WechatUser::uidToOpenid($uid),WechatTemplateService::USER_BALANCE_CHANGE,[
|
||||||
|
|||||||
@ -82,29 +82,30 @@
|
|||||||
<table class="layui-hide" id="List" lay-filter="List"></table>
|
<table class="layui-hide" id="List" lay-filter="List"></table>
|
||||||
<!--订单-->
|
<!--订单-->
|
||||||
<script type="text/html" id="order_id">
|
<script type="text/html" id="order_id">
|
||||||
{{d.order_id}}
|
{{d.order_id}}<br/>
|
||||||
<span style="color: {{d.color}};">{{d.pink_name}}</span>
|
<span style="color: {{d.color}};">{{d.pink_name}}</span><br/>
|
||||||
|
{{# if(d.is_del == 1){ }}<span style="color: {{d.color}};">用户已删除</span>{{# } }}
|
||||||
</script>
|
</script>
|
||||||
<!--用户信息-->
|
<!--用户信息-->
|
||||||
<script type="text/html" id="userinfo">
|
<script type="text/html" id="userinfo">
|
||||||
{{d.nickname==null ? '暂无信息':d.nickname}}/{{d.uid}}
|
{{d.nickname==null ? '暂无信息':d.nickname}}/{{d.uid}}
|
||||||
</script>
|
</script>
|
||||||
<!--支付状态-->
|
<!--支付状态-->
|
||||||
<script type="text/html" id="paid">
|
<script type="text/html" id="paid">
|
||||||
{{# if(d.pay_type==1){ }}
|
{{# if(d.pay_type==1){ }}
|
||||||
<p>{{d.pay_type_name}}</p>
|
<p>{{d.pay_type_name}}</p>
|
||||||
{{# }else{ }}
|
{{# }else{ }}
|
||||||
{{# if(d.pay_type_info!=undefined){ }}
|
{{# if(d.pay_type_info!=undefined){ }}
|
||||||
<p><span>线下支付</span></p>
|
<p><span>线下支付</span></p>
|
||||||
<p><button type="button" class="btn btn-w-m btn-white">立即支付</button></p>
|
<p><button type="button" class="btn btn-w-m btn-white">立即支付</button></p>
|
||||||
{{# }else{ }}
|
{{# }else{ }}
|
||||||
<p>{{d.pay_type_name}}</p>
|
<p>{{d.pay_type_name}}</p>
|
||||||
{{# } }}
|
{{# } }}
|
||||||
{{# }; }}
|
{{# }; }}
|
||||||
</script>
|
</script>
|
||||||
<!--订单状态-->
|
<!--订单状态-->
|
||||||
<script type="text/html" id="status">
|
<script type="text/html" id="status">
|
||||||
{{d.status_name}}
|
{{d.status_name}}
|
||||||
</script>
|
</script>
|
||||||
<!--商品信息-->
|
<!--商品信息-->
|
||||||
<script type="text/html" id="info">
|
<script type="text/html" id="info">
|
||||||
@ -171,7 +172,7 @@
|
|||||||
<i class="fa fa-paste"></i> 订单备注
|
<i class="fa fa-paste"></i> 订单备注
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{# if(d.pay_price!=d.refund_price){ }}
|
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||||
<li>
|
<li>
|
||||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
|
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
|
||||||
<i class="fa fa-history"></i> 立即退款
|
<i class="fa fa-history"></i> 立即退款
|
||||||
@ -214,7 +215,8 @@
|
|||||||
<i class="fa fa-history"></i> 退积分
|
<i class="fa fa-history"></i> 退积分
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{# }else if(d.pay_price != d.refund_price){ }}
|
{{# };}}
|
||||||
|
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||||
<li>
|
<li>
|
||||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
|
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
|
||||||
<i class="fa fa-history"></i>立即退款
|
<i class="fa fa-history"></i>立即退款
|
||||||
@ -252,7 +254,7 @@
|
|||||||
<i class="fa fa-cart-arrow-down"></i> 已收货
|
<i class="fa fa-cart-arrow-down"></i> 已收货
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{# if(d.pay_price != d.refund_price){ }}
|
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||||
<li>
|
<li>
|
||||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
|
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
|
||||||
<i class="fa fa-history"></i> 立即退款
|
<i class="fa fa-history"></i> 立即退款
|
||||||
@ -284,13 +286,14 @@
|
|||||||
<i class="fa fa-paste"></i> 订单备注
|
<i class="fa fa-paste"></i> 订单备注
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{# if(d.pay_price != d.refund_price){ }}
|
{{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
|
||||||
<li>
|
<li>
|
||||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
|
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
|
||||||
<i class="fa fa-history"></i> 立即退款
|
<i class="fa fa-history"></i> 立即退款
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</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>
|
<li>
|
||||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
|
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
|
||||||
<i class="fa fa-history"></i> 退积分
|
<i class="fa fa-history"></i> 退积分
|
||||||
@ -316,6 +319,13 @@
|
|||||||
<i class="fa fa-paste"></i> 订单备注
|
<i class="fa fa-paste"></i> 订单备注
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</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){ }}
|
{{# if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
|
||||||
<li>
|
<li>
|
||||||
<a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
|
<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: 1,count:orderCount.general},
|
||||||
{name: '拼团订单', value: 2,count:orderCount.pink},
|
{name: '拼团订单', value: 2,count:orderCount.pink},
|
||||||
{name: '秒杀订单', value: 3,count:orderCount.seckill},
|
{name: '秒杀订单', value: 3,count:orderCount.seckill},
|
||||||
|
{name: '砍价订单', value: 4,count:orderCount.bargain},
|
||||||
],
|
],
|
||||||
orderStatus: [
|
orderStatus: [
|
||||||
{name: '全部', value: ''},
|
{name: '全部', value: ''},
|
||||||
@ -515,4 +526,4 @@
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{/block}
|
{/block}
|
||||||
@ -58,6 +58,28 @@
|
|||||||
<div class="layui-col-md12 layui-col-sm12 layui-col-lg12">
|
<div class="layui-col-md12 layui-col-sm12 layui-col-lg12">
|
||||||
<div class="layui-card">
|
<div class="layui-card">
|
||||||
<div class="layui-card-header">其他详情</div>
|
<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-card-body">
|
||||||
<div class="layui-tab layui-tab-card">
|
<div class="layui-tab layui-tab-card">
|
||||||
<ul class="layui-tab-title">
|
<ul class="layui-tab-title">
|
||||||
@ -69,19 +91,6 @@
|
|||||||
<li>推广下线明细</li>
|
<li>推广下线明细</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="layui-tab-content" id="content">
|
<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">
|
<div class="layui-tab-item layui-show">
|
||||||
<table class="layui-table" lay-skin="line" v-cloak="">
|
<table class="layui-table" lay-skin="line" v-cloak="">
|
||||||
<thead>
|
<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