test
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

429 lines
21 KiB

<?php
defined('IN_IA') or exit('Access Denied');
class News{
//商品发货提醒
static function sendremind($orderid, $plugin) {
global $_W;
if ($plugin == 'b') {
//抢购
$order = pdo_get(PDO_NAME . 'rush_order', array('id' => $orderid));
$type = 'rush';
$goodsname = pdo_getcolumn(PDO_NAME.'rush_activity',array('id'=>$order['activityid']),'name');
} else {
//团购 拼团 砍价 积分兑换
$order = pdo_get(PDO_NAME . 'order', array('id' => $orderid));
$type = $order['plugin'];
if($type == 'groupon'){
$goodsname = pdo_getcolumn(PDO_NAME.'groupon_activity',array('id'=>$order['fkid']),'name');
}else if($type == 'wlfightgroup'){
$goodsname = pdo_getcolumn(PDO_NAME.'fightgroup_goods',array('id'=>$order['fkid']),'name');
}else if($type == 'bargain'){
$goodsname = pdo_getcolumn(PDO_NAME.'bargain_activity',array('id'=>$order['fkid']),'name');
}else if($type == 'consumption'){
$goodsname = pdo_getcolumn(PDO_NAME.'consumption_goods',array('id'=>$order['fkid']),'title');
}
}
$express = pdo_get('wlmerchant_express', array('id' => $order['expressid']));
$url = h5_url('pages/subPages/orderList/orderDetails/orderDetails',['orderid'=>$orderid,'plugin'=>$type]);
$modelData = [
'first' => '您的订单商品已发货,请注意查收!' ,
'order_no' => $order['orderno'] ,//订单编号
'express_name' => $express['expressname'],//物流公司
'express_no' => $express['expresssn'],//物流单号
'goods_name' => $goodsname,//商品信息
'consignee' => $express['name'] ,//收货人
'receiving_address' => $express['address'] ,//收货地址
'remark' => '点击查看物流详细信息!'
];
TempModel::sendInit('send',$order['mid'],$modelData,$_W['source'],$url);
}
//组团成功提醒
static function groupresult($groupid){
global $_W;
$group = pdo_get('wlmerchant_fightgroup_group',array('id' => $groupid));
$goodname = pdo_getcolumn(PDO_NAME.'fightgroup_goods',array('id'=>$group['goodsid']),'name');
if($group['status'] == 2){
$first = '恭喜您,您参加的拼团已组团成功';
$result = '组团成功';
$time = '成团时间:'.date('Y-m-d H:i:s',time());
}else{
$first = '很遗憾,您参加的拼团已组团失败';
$result = '组团失败';
$time = '失败时间:'.date('Y-m-d H:i:s',time());
}
$data = array(
'first' => $first,
'result' => $result,//组团结果
'goods_name' => $goodname,//商品名称
'detail' => $time,//详细信息
'user_number' => sprintf("%.0f",$group['neednum'] - $group['lacknum']),//组团人数
'remark' => '点击查看组团详情'
);
$url = h5_url('pages/subPages/group/assemble/assemble',array('id'=>$group['goodsid'],'group_id'=>$group['id']));
$orders = pdo_getall('wlmerchant_order' , ['status' => [1 , 8] , 'fightgroupid' => $groupid] , ['mid','price']);
//获取拼团成员昵称
$mids = array_column($orders,'mid');
$names = pdo_getall(PDO_NAME."member",['id'=>$mids],['nickname']);
$data['nickname_string'] = implode(array_column($names,'nickname'),',');
foreach ($orders as $order){
$data['money'] = $order['price'];
TempModel::sendInit('fight',$order['mid'],$data,$_W['source'],$url);
}
}
//支付成功通知
static function paySuccess($orderid,$plugin,$noticeagent = 0){
global $_W;
if ($plugin == 'rush') {
//抢购
$order = pdo_get(PDO_NAME . 'rush_order', array('id' => $orderid));
$goodsname = pdo_getcolumn(PDO_NAME.'rush_activity',array('id'=>$order['activityid']),'name');
$pluginname = '抢购';
$order['price'] = $order['actualprice'];
$remark = $order['remark'] ? : '';//买家备注
}else if($plugin == 'mobilerecharge'){
//话费充值
$order = pdo_get(PDO_NAME . 'mrecharge_order', array('id' => $orderid));
$goodsname = $order['money'].'元';
$pluginname = '话费充值';
$order['price'] = $order['price'];
} else {
//团购 拼团 砍价 积分兑换
$order = pdo_get(PDO_NAME . 'order', array('id' => $orderid));
if($plugin == 'groupon'){
$goodsname = pdo_getcolumn(PDO_NAME.'groupon_activity',array('id'=>$order['fkid']),'name');
$pluginname = '团购';
}else if($plugin == 'wlfightgroup'){
$goodsname = pdo_getcolumn(PDO_NAME.'fightgroup_goods',array('id'=>$order['fkid']),'name');
$pluginname = '拼团';
if($order['fightstatus'] == 1){
$group = pdo_get(PDO_NAME . 'fightgroup_group', array('id' => $order['fightgroupid']),array('status'));
if($group['status'] == 1){
$url = h5_url('pages/subPages/group/assemble/assemble',['group_id'=>$order['fightgroupid'],'id'=>$order['fkid']]);
}
}
}else if($plugin == 'bargain'){
$goodsname = pdo_getcolumn(PDO_NAME.'bargain_activity',array('id'=>$order['fkid']),'name');
$pluginname = '砍价';
}else if($plugin == 'consumption'){
$goodsname = pdo_getcolumn(PDO_NAME.'consumption_goods',array('id'=>$order['fkid']),'title');
$pluginname = $_W['wlsetting']['trade']['credittext'].'兑换';
}else if($plugin == 'citydelivery'){
$pluginname = '同城配送';
$smallorders = pdo_fetchall("SELECT gid,money,num,specid FROM ".tablename('wlmerchant_delivery_order')."WHERE tid = {$order['orderno']} ORDER BY price DESC");
$cityremark = '';
foreach ($smallorders as $ke => &$orr){
$goods = pdo_get('wlmerchant_delivery_activity',array('id' => $orr['gid']),array('name','thumb'));
$orr['name'] = $goods['name'];
if($orr['specid']>0){
$specname = pdo_getcolumn(PDO_NAME.'delivery_spec',array('id'=>$orr['specid']),'name');
$orr['name'] .= '/'.$specname;
}
$cityremark .= '['.$orr['name'].'X'.$orr['num'].']';
if($ke == 0){
$goodsname = $orr['name'];
}
}
if(count($smallorders)>1){
$goodsname .= ' 等商品';
}
$url = h5_url('pages/subPages/orderList/orderTakeout/orderTakeout',['orderid'=>$orderid,'aid'=>$order['aid'],'plugin'=>$plugin]);
}else if($plugin == 'coupon'){
$goodsname = pdo_getcolumn('wlmerchant_couponlist' , ['id' => $order['fkid']],'title');
$pluginname = '卡券';
$url = h5_url('pages/subPages/coupon/couponDetails/couponDetails',['id'=>$order['recordid'],'order_id'=>$order['id']]);
}else if($plugin == 'yellowpage'){
if($order['fightstatus'] == 1){
$goodsname = '114页面认领';
}else if($order['fightstatus'] == 2){
$goodsname = '114页面查看';
}else if($order['fightstatus'] == 3){
$goodsname = '114页面入驻';
}
$pluginname = '黄页114';
//$url = h5_url('pages/subPages/coupon/couponDetails/couponDetails',['id'=>$order['recordid'],'order_id'=>$order['id']]);
}else if($plugin == 'activity'){
$goodsname = pdo_getcolumn(PDO_NAME.'activitylist',array('id'=>$order['fkid']),'title');
if($order['specid']>0){
$specname = pdo_getcolumn(PDO_NAME.'activity_spec',array('id'=>$order['specid']),'name');
$goodsname .= '/'.$specname;
}
$pluginname = '活动报名';
}
$remark = $order['buyremark'] ? : '';//买家备注
}
//给用户发送模板信息
$payinfo = array(
'first' => '您的'.$pluginname.'订单已经成功付款' ,
'order_no' => $order['orderno'],//订单编号
'time' => date('Y-m-d H:i:s', time()),//支付时间
'money' => $order['price'],//支付金额
'goods_name' => $goodsname,//商品名称
'remark' => '点击可查看订单详情,如有疑问请联系客服'
);
if($order['paylogid']){
$source = pdo_getcolumn(PDO_NAME.'paylogvfour',array('plid'=>$order['paylogid']),'source');
}else{
$source = pdo_getcolumn(PDO_NAME.'paylogvfour',array('tid'=>$order['orderno']),'source');
}
$source = $source ? : $_W['source'];
if(empty($url)){
$url = h5_url('pages/subPages/orderList/orderDetails/orderDetails',['orderid'=>$orderid,'aid'=>$order['aid'],'plugin'=>$plugin]);
}
$url = str_replace('payment/','',$url);
if($plugin == 'mobilerecharge'){
$url = '';
}
TempModel::sendInit('pay',$order['mid'],$payinfo,$source,$url);
//配置模板信息
$userInfo = pdo_get(PDO_NAME . "member" , array( 'id' => $order['mid'] ) , array( 'nickname' , 'mobile' ));
//给商户发送用户购买商品的模板消息
if($order['sid']){
//获取当前店铺的超级管理员和管理员
$list = pdo_fetchall("SELECT id,mid FROM ".tablename(PDO_NAME."merchantuser")." WHERE storeid = {$order['sid']} AND ismain IN (1,3) AND enabled = 1 ");
if(is_array($list) && count($list) > 0){
//详细内容 判断是否存在买家备注
if(!empty($remark)){
$content = '订单金额:' . $order['price'] . '元,购买数量:' . $order['num'] . ',请商家注意备货' . "。买家备注:" . $remark;
}else{
$content = '订单金额:' . $order['price'] . '元,购买数量:' . $order['num'] . ',请商家注意备货';
}
$modelData = [
'first' => '您好,用户[' . $userInfo['nickname'] . ']购买的[' . $goodsname . ']已支付',
'type' => $pluginname . '商品订单支付',//业务类型
'content' => $content,//业务内容
'status' => '已付款' ,//处理结果
'time' => date("Y-m-d H:i:s",$order['createtime']) ,//操作时间
'remark' => $cityremark?$cityremark:''
];
$url = h5_url('pages/subPages/merchant/merchantOrderList/merchantOrderList',array('aid'=>$order['aid'],'storeid'=>$order['sid']));
$url = str_replace('payment/','',$url);
foreach($list as $index => $item){
TempModel::sendInit('service',$item['mid'],$modelData,$source,$url);
}
}
}
if(empty($noticeagent)){
//给管理员发送消息
if($order['sid'] > 0){
$storename = pdo_getcolumn(PDO_NAME.'merchantdata',array('id'=>$order['sid']),'storename');
$content = '订单所属商户:['.$storename.']';
$remark = '请联系商户处理订单';
}else{
$content = '代理订单';
$remark = '请及时处理订单';
}
$first = '您好,用户['.$userInfo['nickname']. ']购买的['.$goodsname.']已支付';
$type = $pluginname . '商品订单支付';
$status = '已支付';
News::noticeAgent('pay',$order['aid'],$first,$type,$content,$status,$remark,time());
}
}
//核销成功通知
static function writeOffSuccess($mid,$goodname,$num = 1,$orderNo = ''){
global $_W;
$info = array(
'first' => '您好,您的商品已经成功核销' ,
'goods_name' => $goodname,//商品名称
'goods_num' => $num,//商品数量
'time' => date('Y-m-d H:i:s',time()),//核销时间
'order_no' => $orderNo,//订单编号
'remark' => '如有疑问请联系客服'
);
TempModel::sendInit('write_off',$mid,$info,$_W['source']);
}
//订单退款通知
static function refundNotice($orderid,$plugin,$money,$reason){
global $_W;
if ($plugin == 'rush') {
//抢购
$order = pdo_get(PDO_NAME . 'rush_order', array('id' => $orderid));
$goodsname = pdo_getcolumn(PDO_NAME.'rush_activity',array('id'=>$order['activityid']),'name');
$pluginname = '抢购';
$order['price'] = $order['actualprice'];
}else if($plugin == 'mobilerecharge'){
//话费充值
$order = pdo_get(PDO_NAME . 'mrecharge_order', array('id' => $orderid));
$goodsname = '充值'.$order['money'].'元';
$pluginname = '话费充值';
$order['price'] = $order['price'];
} else {
//团购 拼团 砍价 积分兑换
$order = pdo_get(PDO_NAME . 'order', array('id' => $orderid));
if($plugin == 'groupon'){
$goodsname = pdo_getcolumn(PDO_NAME.'groupon_activity',array('id'=>$order['fkid']),'name');
$pluginname = '团购';
}else if($plugin == 'wlfightgroup'){
$goodsname = pdo_getcolumn(PDO_NAME.'fightgroup_goods',array('id'=>$order['fkid']),'name');
$pluginname = '拼团';
}else if($plugin == 'bargain'){
$goodsname = pdo_getcolumn(PDO_NAME.'bargain_activity',array('id'=>$order['fkid']),'name');
$pluginname = '砍价';
}else if($plugin == 'wlcoupon'){
$goodsname = pdo_getcolumn(PDO_NAME.'couponlist',array('id'=>$order['fkid']),'title');
$pluginname = '卡券';
}else if($plugin == 'consumption'){
$goodsname = pdo_getcolumn(PDO_NAME.'consumption_goods',array('id'=>$order['fkid']),'title');
$pluginname = $_W['wlsetting']['trade']['credittext'].'兑换';
}else if($plugin == 'activity'){
$goodsname = pdo_getcolumn(PDO_NAME.'activitylist',array('id'=>$order['fkid']),'title');
$pluginname = '活动报名';
}else if($plugin == 'housekeep'){
$goodsname = pdo_getcolumn(PDO_NAME.'housekeep_service',array('id'=>$order['fkid']),'title');
$pluginname = '家政服务';
}
}
if($money < 0.01){$money = $order['price'];}
$refundinfo = array(
'first' => '您好,您的'.$pluginname.'订单已经退款' ,
'money' => '¥' .$money,//退款金额
'goods_name' => $goodsname ,//商品名称
'order_no' => $order['orderno'],//订单编号
'total_money' => '¥'.$money,//订单总金额
'remark' => $reason.'如有疑问请联系客服'
);
TempModel::sendInit('refund',$order['mid'],$refundinfo,$_W['source']);
}
//业务处理通知
static function jobNotice($mid,$first,$type,$content,$status,$remark,$time,$url='',$sourceDefault = 1){
global $_W;
$source = $_W['source'] ? $_W['source'] : $sourceDefault;
$modelData = [
'first' => $first,
'type' => $type,//业务类型
'content' => $content,//业务内容
'status' => $status,//处理结果
'time' => date("Y-m-d H:i:s",$time) ,//操作时间
'remark' => $remark
];
$res = TempModel::sendInit('service',$mid,$modelData,$source,$url);
file_put_contents(PATH_DATA . "new_error.log", var_export($res, true) . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND);
}
//添加系统通知
static function addSysNotice($uniacid,$type,$sid=0,$mid=0,$objid,$status=0){
$data = array(
'uniacid' => $uniacid,
'type' => $type,
'sid' => $sid,
'mid' => $mid,
'objid' => $objid,
'status' => $status,
'isread' => 0,
'createtime' => time()
);
pdo_insert(PDO_NAME .'systemnotice',$data);
}
/**
* Comment: 给代理商管理员发送模板消息
* Date: 2019/11/29 10:30
* @param string $authority storesettled=商户入驻审核;storegood=商品动态审核;storecomment=用户评论审核;refundorder=用户申请退款;pocketfabu=掌上信息审核;recruit_examine=招聘发布审核通知;
* @param int $aid 代理id
* @param string $first 消息头部
* @param string $type 业务类型
* @param string $content 业务内容
* @param string $status 处理结果
* @param string $remark 备注信息
* @param int $time 操作时间(时间戳)
* @param string $url 跳转地址
*/
static function noticeAgent($authority,$aid,$first,$type,$content,$status,$remark,$time,$url=''){
global $_W;
$aid = $aid ? : $_W['aid'];
if(empty($aid) || $aid == -1){
$aid = 0;
}
//查询管理员
$openids = pdo_getall('wlmerchant_agentadmin', array('uniacid' => $_W['uniacid'],'aid' => $aid, 'notice' => 1), array('mid','noticeauthority'));
if(!empty($openids)){
foreach ($openids as $user){
$noticeauthority = unserialize($user['noticeauthority']);
if(empty($noticeauthority)) $noticeauthority = [];
if(in_array($authority,$noticeauthority) || empty($noticeauthority)) self::jobNotice($user['mid'],$first,$type,$content,$status,$remark,$time,$url);
}
}
}
/**
* Comment: 商品审核结果模板消息发送
* Author: zzw
* Date: 2020/3/4 14:05
* @param int $id 商品id
* @param string $type 商品类型(rush=抢购;groupon=团购;fight=拼团;bargain=砍价)
* @param string $result
* @return array
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public static function goodsToExamine($id,$type,$result = '通过',$remark = ''){
global $_W;
#1、获取商品信息
switch ($type) {
case 'rush':
$goods = pdo_get(PDO_NAME . "rush_activity" , ['id' => $id] , ['sid' , 'name']);
break;//抢购商品
case 'groupon':
$goods = pdo_get(PDO_NAME . "groupon_activity" , ['id' => $id] , ['sid' , 'name']);
break;//团购商品
case 'fight':
$goods = pdo_fetch("select merchantid as sid,name from " . tablename(PDO_NAME . "fightgroup_goods") . " where id = {$id}");
break;//拼团商品
case 'bargain':
$goods = pdo_get(PDO_NAME . "bargain_activity" , ['id' => $id] , ['sid' , 'name']);
break;//砍价商品
case 'citydelivery':
$goods = pdo_get(PDO_NAME . "delivery_activity" , ['id' => $id] , ['sid' , 'name']);
break;//配送商品
}
if(!$goods) return error(0,'商品不存在!');
#2、获取店铺信息
$storename = pdo_getcolumn(PDO_NAME."merchantdata",['id'=>$goods['sid']],'storename');
#3、模板消息配置
$modelData = [
'first' => '商品审核通知',
'type' => '商品审核通知',//业务类型
'content' => "[{$storename}]的商品[{$goods['name']}]已审核",//业务内容
'status' => $result ,//处理结果
'time' => date("Y-m-d H:i:s",time()) ,//操作时间
'remark' => $remark
];
#3、获取店铺的管理员列表
$userList = pdo_getall(PDO_NAME."merchantuser",['storeid'=>$goods['sid']],['mid']);
foreach($userList as $item){
TempModel::sendInit('service',$item['mid'],$modelData,$_W['source']);
}
}
/**
* Comment: 给商户管理员发送模板消息
* Author: zzw
* Date: 2020/3/9 17:11
* @param int $sid 商户id
* @param string $first 头部信息
* @param string $type 类型
* @param string $content 内容
* @param string $status 结果
* @param string $remark 备注信息
* @param string $time 操作时间
* @param string $url 跳转链接
*/
public static function noticeShopAdmin($sid,$first,$type,$content,$status,$remark,$time,$url=''){
#1、获取当前店铺下面的管理员信息
$list = pdo_fetchall("SELECT mid FROM ".tablename(PDO_NAME."merchantuser")
." WHERE storeid = {$sid} AND ismain IN (1,3) AND enabled = 1");
if(is_array($list) && count($list) > 0){
foreach($list as $key => $val){
self::jobNotice($val['mid'],$first,$type,$content,$status,$remark,$time,$url);
}
}
}
}