Commit 62eb144e authored by wwccw0591's avatar wwccw0591

订单统计

parent acf61a63
<?php
namespace Our;
class ApiConst
{
//传输加密方式
const aesEncode = 1;//1:AES
const md5Encode = 2;//2.MD5
const plainEncode = 3;//3.明文
//生成随机数的长度
const randLengh = 8;
//10天数秒
const tenDaySecond = 864000;
//const tenDaySecond = 300;
//一天
const oneDaySecond = 86400;
//半天
const halfDaySecond = 43200;
//一个小时
const oneHour = 3600;
//10分钟秒数
const tenMinSecond = 600;
//7天秒数
const sevenDaySecond = 604800;
const oneMinute = 60;
//八小时秒数
const EightHoursSecond = 28800;
const hundred = 100; //1分钟秒数
const oneMinSecond = 60;
//成功状态码
const returnSuccess = 1;
//设备类型
const pcType = 1;
const iphoneType = 2;
const adroidType = 3;
const ipadType = 4;
const wxType = 5;
//每天每个设备可获得的最多token次数
const maxAccess = 10000;
//分享类型
const shareWxFriend = 1;//微信好友
const shareWxFriends = 2;//微信朋友圈
const shareQqFriend = 3;//分享到qq好友
const shareQqSpace = 4;//分享到qq空间
const shareSinaWeibo = 5;//分享到新浪微博
//数字
const zero = 0;
const one = 1;
const two = 2;
const favTimeAsc = 1;
const favTimeDesc = 2;
const orderTotalAsc = 3;
const orderTotalDesc = 4;
//消息类型
//系统消息
const systemMessageType = 1;
//定单消息
const orderMessageType = 2;
//快递消息
const deliveryMessageType = 3;
//店铺消息类型
const storeMessageType = 4;
//普通用户消息类型
const memberMessageType = 5;
//消息状态
//未读消息
const unread = 0;
const read = 1;
const sendRemove = 2;
const recieveRemove = 3;
const remove = -1;
//订单未被删除
const undeleteOrder = 0;
//未发生退款的订单
const unRefund = 0;
const markOtherNameFlag = 4;
// 当前位置经纬度距离小于200默认为该地址
const minDistanceForCurrentPosition = 200;
const unChoosedAddressId = -1;
//默认验证码有效分钟数
const defaultVeryifyCodeValidMinutes = 10;
const ten = 10;
const five = 5;
const sixty = 60;
//分页默认参数
const pageIndex = 0;
const pageSize = 20;
const salePageSize = 10;
const pageSizeTen = 10;
//订单状态
const orderStateCancel = 0;//已取消
const orderStateWaitPay = 10;//待付款
const orderStateWaitConfirm = 20;//待接单
const orderStateWaitSend = 25;//待发货
const orderStateWaitRecieve = 30;//待收货
const orderStateComplete = 40;//已完成
const orderStateClose = -1;//关闭定单
const receivePayment = 1;//商家收到货款了
const noreceivePayment = 0;//商家未收到货款
const deleteStateOne = 1;
const deleteStateZero = 0;
const deleteStateTwo = 2;
const orderStateWaitConfirmBeyond = 300;
const orderWaitRecieveTwentyFourHours = 86400;
const orderWaitRecieveThreeDays = 259200;
const deliveryFinishTwentyFourHours = 86400;
//1为不用锁定,2为锁定
const orderLockTwo = 2;
const orderLockOne = 1;
//售后状态
const complainTimeLimit = 2592000;
const refundSellerVerify = 1;
const refundSellerAgree = 2;
const refundSellerRefuse = 3;
const refundTypeGoods = 2;
const returnTypeNotReturn=1;
const returnTypeMustReturn=2;
const refundTypeMoney = 1;
const refundApplyOnlyMoney = 1;
const refundApply = 2;
const refundApplyPlatform = 3;
const goodsStateWaitSend = 1;
const goodsStateWaitRecieve = 2;
const goodsStateUnRecieve = 3;
const goodsStateRecieved = 4;
//是否退款成功
const refundSuccess = 1;
const refundFail = 0;
//是否收到货
const shippingOver = 1;
const noShippingOver = 0;
const shippingStatusArrive = 3;
const shippingStatusTransporting = 1;
const shippingStatusSending = 2;
const shippingStatusSendingFail = 4;
//平台介入
const platIn = 1;
const platNotIn = 0;
//平台审核状态
const refundPlatformVerify = 0;
const refundPlatformAgree = 1;
const refundPlatformRefuse = 2;
//评价状态
const waitEvaluation = 0;
const haveEvaluation = 1;
const pastWaitEvaluation = 2;
const canRefundDay = 3;
const goodsTypeFour = 4;
//支付方式
const wxpay = 1;
const offlinePay = 0;
const afterSendPay = 2;
const alipay = 3;
const tenpay = 4;
const wxProgram=5;
//配送方式
const bySelf = 0;
const bySeller = 1;
const express = 2;
//文案类型
const buyerText = 1;
const storeText = 2;
const deliveryText = 3;
//配送表han_qm_deliveryman_log
const orderTypeBuy = 1;
const orderTypeRefund = 2;
//配送表deliveryState
//当购买的时候是待送货,当退货的时候是待收货
const deliveryStateWait = 20;
const deliveryStateComplete = 30;
//缓存周期
//一个小时
const oneHourCache = 1;
const storeQrcodeMember = 1;//扫描店铺二维码
const sellerQrcodeMember = 2;//扫描销售员二维码
const buyMember = 3;//购买
const messageTypeRegister = 1;//注册类短信
const messageTypeLogin = 2; //登录类短信
const messageTypeSeller = 3; //销售员登录短信
const messageTypeValidOldMobile = 4; //验证旧手机短信
const messageTypeValidNewMobile = 5; //验证新手机短信
const messageTypeFindPassword = 6; //找回密码发送验证码
const messageTypeWxLietBindMobile = 7; //微信小程序绑定手机号码验证手机号码
const userFromWeibo = 1;
const userFromQQ = 2;
const wechatUserType = 3;
const userFromWx = 4;
//订单相关
const advPositionHomeTopIndex = 1; //平台首页头部广告位
const advPositionHomeBottomIndex = 2; //平台底部广告位
const advPositionHomeClassIndex = 3; //平台分类页广告位
const advPositionCartEmptyIndex = 4; //购物车为空时广告位
const advPositionStoreTopIndex = 5; //店铺头部广告位
const advPositionStoreMiddleIndex = 6; //店铺中间广告位
const advPositionHomeMiddleIndex = 7; //平台中部广告位
const commonClassStyle = 1;
const signClassStyle = 2;
const defaultAddressCount = 3;
const maxIndexGoodsCount = 10;
const nine = 9;
const orderListDescribe = 1;
const orderDetailLabel = 3;
const orderDetailDescribe = 2;
const defaultIndexStoreCount = 3; //首页默认显示店铺数
const defaultIndexMinMaxCount = 6; //附近店铺家数临界点
const defaultIndexGoodsCount = 9;
const defaultIndexGoodsMinMaxCount = 18;
//商品图片大小类型
const goodsSmallSize = 60;
const goodsMiddle = 240;
const goodsBiger = 360;
const goodsBigest = 1280;
const wechatDeviceType = 5;//微信设备类型
const man = 1;
const woman = 2;
const noLimitCoupon = 1; //无门槛优惠券
const goodsClassCoupon = 2; //指定品类优惠券
const goodsCoupon = 3; //指定商品优惠券
const commonCoupon = 4; //普通优惠券
const fullMinusCouponType = 1; //满减优惠券
const discountCouponType = 0; //折扣优惠券
const fullForCouponCouponType = 2; //满额赠券优惠券
const fullForGiftCouponType = 3; //满额赠礼品优惠券
const noLimitCouponType = 4;//无门槛
const availCouponState = 1;
const usedCouponState = 2;
const unavailCouponState = 3;
const maxHomeIndexClassesCount = 10;
const lessHomeIndexClassesCount = 9;
const couponUnused = 1;
const couponUsed = 2;
const couponOverdue = 3;
//等于0表示没有选中地址时是选中当前传入经纬度,等于1表示没有命中地址是选中地址列表中按照is_default desc,address_id desc倒序的第一条地址
const defaultAddressRoute = 0;
const addGoodsToCart = 1; //将商品加入购物车
const addBundingToCart = 2; //将组合销售商品加入购物车
const onlineGoodsState = 1;//正常商品状态
const onlineGoodsVerify = 1; //商品已通过审核
const cartGoodsOnline = 1;//购物车商品正常
const cartGoodsOffline = 2; //购物车商品下架
const cartGoodsNoStorage = 3; //购物车商品库存不足
const defaultCouponTitleLength = 3;//最多获取标题数量
const storeAdvPositionTop = 1;//店铺首页顶部广告位
const storeAdvPositionMiddle = 2;//店铺首页中部广告位
const noData = -1;
const defaultDeliveryInterval = 30; //配送时间间隔,如果没有设置默认三十分钟
const deliveryStartTime = 28800; //早上8点的开始时间戳(配送默认从早上八点到晚上10点)
const deliveryEndTime = 79200;//晚上10点结束的时间戳(配送默认从早上八点到晚上10点)
const deliveryStore = 1;//商家配送
const deliveryExpress = 2; //快递订单
const deliveryBuyer = 0;//到店自提
const payOnline = 1; //线上支付
const payOffline = 0; //线下支付
const payAog = 2; //货到付款
//分享
const sharePlat = 1;//平台
const shareStore = 2;//店铺
const shareGoods = 3;//商品
const wxAppPayType = 1; //APP微信支付
const aliPayType = 2; //APP支付宝支付
const qqPayType = 3; //APPQQ钱包支付
const wxLitePayType = 4; //小程序微信支付
const favFromUser = 1; //用户主动关注
const favFromBuy = 2; //购买关注
const favFromScan = 3; //扫码关注
const payExpireTime = 900;//支付过期时间
const takeAccessTokenLimit = 7000;
const minus = 0;
const plus = 1;
const set = 2;
//微信小程序是否发布
const isWxPublish = 0;
//消息模板类型
const reachRemindMessageType = 1;
const waitRecieveOrderType = 15;
//消息按钮类型
const messageButtonTypeConfirmButton = 1;//确认收货
const messageButtonTypeReciverButton = 2;//确认接单
//消息按钮是否操作过
const messageButtonIsClick = 0;
const messageButoonNotClick = 1;
//消息按钮展现方式
const messageButtonShowTypeNomoral = 1;
const messageButtonShowTypeGray = 2;
const messageButtonShowTypeOnLight = 3;
const messageButtonIdOne = 1;
const messageButtonIdTwo = 2;
const commonProblemArticleClassId = 18;//常见问题对应文章分类ID
}
\ No newline at end of file
...@@ -417,7 +417,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -417,7 +417,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance(); $favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$res = file_get_contents($this->baseDir . PathConst::favoritesStoreFavTimeConf); $res = file_get_contents($this->baseDir . PathConst::favoritesStoreFavTimeConf);
$this->lastFavId = !empty($res) ? $res : ApiConst::zero; $this->lastFavId = !empty($res) ? $res : ApiConst::zero;
$where['fav_time'] =Common::format("fav_time >={0} and fav_time <{1}",$this->lastFavId,TIMESTAMP); $where =Common::format("fav_time >={0} and fav_time <{1}",$this->lastFavId,TIMESTAMP);
$res = $favoritesStoreDao->getAllByWhere($where, $favoritesStoreDao->favoriteMemberCountField); $res = $favoritesStoreDao->getAllByWhere($where, $favoritesStoreDao->favoriteMemberCountField);
$results = array(); $results = array();
if (!empty($res)) { if (!empty($res)) {
...@@ -468,12 +468,33 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -468,12 +468,33 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
}while($storeMemberStatisticData); }while($storeMemberStatisticData);
file_put_contents($this->baseDir . PathConst::orderGoodsCreateTime, TIMESTAMP); file_put_contents($this->baseDir . PathConst::orderGoodsCreateTime, TIMESTAMP);
}
public function reduceRefundModel($storeMemberDatas){
$convertStoreMember=array();
if($storeMemberDatas){
foreach($storeMemberDatas as $order){
if(isset($convertStoreMember[$order['storeId']])){
$convertStoreMember[$order['storeId']]['orderCount']= $convertStoreMember[$order['storeId']]['orderCount']-ApiConst::one;
$convertStoreMember[$order['storeId']]['orderTotal']= $convertStoreMember[$order['storeId']]['orderTotal']+$order['refundAmount'];
}else{
$convertStoreMember[$order['storeId']]['orderCount']=ApiConst::one;
$convertStoreMember[$order['storeId']]['orderTotal']=$order['refundAmount'];
$convertStoreMember[$order['storeId']]['gmtCreate']=isset($order['gmtUpdate'])?date($order['gmtUpdate']):date('Y-m-d',TIMESTAMP);
}
}
$convertStoreMember=array_values($convertStoreMember);
$storeStatisticDayDao=\DAO\Store\StoreStatisticsDayModel::getInstance(DbNameConst::masterDBConnectName);
$storeStatisticDayDao->addAllReduce($convertStoreMember);
}
} }
//任务脚本 //任务脚本
public function reduceStoreMemberStatics() public function reduceStoreMemberStatics()
{ {
$refundReturnDao=\DAO\Order\RefundReturnModel::getInstance(DbNameConst::salveDBConnectName); $refundReturnDao=\DAO\Order\RefundReturnModel::getInstance(DbNameConst::salveDBConnectName);
$storeMemberStatisticDao=\DAO\StoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName); $storeMemberStatisticDao=\DAO\StoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName);
$gmtUpdate = file_get_contents($this->baseDir . PathConst::refundRetrunGmtUpdate); $gmtUpdate = file_get_contents($this->baseDir . PathConst::refundRetrunGmtUpdate);
$gmtUpdate = $gmtUpdate?$gmtUpdate:ApiConst::zero; $gmtUpdate = $gmtUpdate?$gmtUpdate:ApiConst::zero;
$this->taskIndex=PageConst::taskPageBegin; $this->taskIndex=PageConst::taskPageBegin;
...@@ -501,6 +522,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -501,6 +522,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
} }
$addDatas=array_values($addDatas); $addDatas=array_values($addDatas);
$storeMemberStatisticDao->addAllReduce($addDatas); $storeMemberStatisticDao->addAllReduce($addDatas);
$this->reduceRefundModel($storeMemberStatisticData);
}while($storeMemberStatisticData); }while($storeMemberStatisticData);
file_put_contents($this->baseDir . PathConst::refundRetrunGmtUpdate, TIMESTAMP); file_put_contents($this->baseDir . PathConst::refundRetrunGmtUpdate, TIMESTAMP);
......
...@@ -113,6 +113,40 @@ class StoreStatisticsDayModel extends \DAO\AbstractModel { ...@@ -113,6 +113,40 @@ class StoreStatisticsDayModel extends \DAO\AbstractModel {
} }
} }
//插入数据大量 //插入数据大量
public function addAllReduce($datas)
{
$this->setDb(DbNameConst::masterDBConnectName);
$error = 0;
$baseSql = "insert into {$this->_tableName}(store_id,order_count,order_total,gmt_create) values";
$extentSql=" ON DUPLICATE KEY UPDATE order_count=order_goods_count-values(order_goods_count),order_total=order_total-values(order_total)";
$insertAllSql = $baseSql;
for ($i = 0; $i < count($datas); $i++) {
$addSql = \Our\Common::format("({0},{1},{2},{3}),", $datas[$i]['storeId'], $datas[$i]['orderCount'], $datas[$i]['orderTotal'],datas[$i]['gmtCreate']);
$insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) {
$error++;
}
$insertAllSql = $baseSql;
}
}
if ($insertAllSql != $baseSql) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) {
$error++;
}
}
if ($error > 0) {
$dataJson=json_encode($datas);
throw new Exception('插入han_store_member_statistics失败,'.$dataJson, 4);
}
}
//插入数据大量
public function addAll($datas) public function addAll($datas)
{ {
$this->setDb(DbNameConst::masterDBConnectName); $this->setDb(DbNameConst::masterDBConnectName);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment