Commit 02e1e0fc authored by liuyuzhen's avatar liuyuzhen

Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into lyz

parents 5c569810 50eb147c
......@@ -29,6 +29,7 @@ class MessageController extends \Our\Controller_AbstractApi {
if(empty($this->req['data']['toId'])){
$this->req['data']['toId']=\Our\ApiConst::zero;
}
$returnMessage=$this->messageService->getMemberList($this->memberId,$this->req['data']['fromType'],$this->req['data']['toId'],$otherId,$this->req['data']['toType'],'*',$pageIndex,$pageSize);
// $returnMessage=\Our\RedisHelper::cachedFunction(\Redis\Db15\MessageRedisModel::getInstance(),array(&$this->messageService, 'getMemberList'),array($this->memberId,$this->req['data']['fromType'],$this->req['data']['toId'],$this->req['data']['toType'],'*',$pageIndex,$pageSize),\Our\ApiConst::oneHour,array($this->memberId));
}else{
......
......@@ -94,6 +94,8 @@ class ApiConst
const storeMessageType = 4;
//普通用户消息类型
const memberMessageType = 5;
const diliveryMessageOrder=9;
//配送员用户消息类型
//快递消息
const deliveryUserMessageType = 8;
......
......@@ -47,6 +47,8 @@ class PathConst {
const authInfoOtherLogin="/authInfo/otherLogin";
const orderCloseWaitRecieveOrder="/orderCloseWaitRecieveOrder.conf";
const goodsStatTime="/goodsStat.conf";
const goodsSellStatTime="/goodsSellStat.conf";
const orderCancelTime="/orderCancelTime.conf";
......
......@@ -188,7 +188,7 @@ class Push
// $buttons=$this->getRecieveButtons($orderId);
$message=$this->getMessageTemplate(ApiConst::deliveryOrderType,DescribeConst::deliveryRemindTitle,$messageContent,'','',$href,ApiConst::zero);
$id = time() . (string)$this->orderIdStr.$orderId;
$this->pushMessage($id,\Our\MemberIdConst::deliveryId,$toId,\Our\MemberIdConst::deliveryId,$toUserId,\Our\MemberIdConst::deliveryMessageName,$member['memberName'],ApiConst::orderMessageType,ApiConst::deliveryUserMessageType,$fromAvatar,$message);
$this->pushMessage($id,\Our\MemberIdConst::deliveryId,$toId,\Our\MemberIdConst::deliveryId,$toUserId,\Our\MemberIdConst::deliveryMessageName,$member['memberName'],ApiConst::diliveryMessageOrder,ApiConst::deliveryUserMessageType,$fromAvatar,$message);
}
public function sendDelivery($toId,$orderId,$orderGoodsId=false){
$this->deliveryRemind($toId,$orderId,$orderGoodsId);
......
......@@ -277,6 +277,135 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
}
return array($where,$order,$attrStr,$saleSort);
}
public $baseDir = '';
/**
* 更新商品报表列表
* @param $where 查询条件 已统计或未统计
* @return array
* @throws \Exception
* User: King <358887571@qq.com>
* Date: 2018/11/27 0027
* Time: 下午 3:37
*/
public function updateStatGoods(){
$beginTime = file_get_contents($this->baseDir . \Our\PathConst::goodsStatTime, TIMESTAMP);
$beginTime = $beginTime ? $beginTime : ApiConst::zero;
$endTime = TIMESTAMP;
$where = 'goods_edittime > '.$beginTime.' and goods_edittime<=' . $endTime . ' and goods_id in (select sg.goods_id from han_stat_goods sg)';
$field = 'goods_id,is_del,goods_name,goods_storage,goods_price,store_id';
$result = true;
$goodsDao = \DAO\GoodsModel::getInstance();
$storeDao = \DAO\StoreModel::getInstance();
$statGoodsDao = \DAO\StatGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$store_tmp = array();
if($datas = $goodsDao->getList($where, $field)) { //更新商品报表
echo 'in:'.count($datas);
foreach ($datas as $key=>$val) {
if(isset($store_tmp[$val['store_id']])) {
$store_info = $store_tmp[$val['store_id']];
} else {
$store_info = $storeDao->getFieldsInfo(array('store_id'=>$val['store_id']), 'province_id, city_id, area_id');
}
$update_stat_goods = $val;
$update_stat_goods['upd_time'] = $endTime;
$update_stat_goods['province_id'] = $store_info['province_id'];
$update_stat_goods['city_id'] = $store_info['city_id'];
$update_stat_goods['area_id'] = $store_info['area_id'];
unset($update_stat_goods['goods_id']);
$where = 'goods_id='.$val['goods_id']. ' and upd_time <'.$beginTime;
if(!$statGoodsDao->update($where, $update_stat_goods)){
$result = false;
}
}
}
$where = 'goods_id not in (select sg.goods_id from han_stat_goods sg)';
if($datas = $goodsDao->getList($where, $field)) { //插入高品报表
echo 'not in:'.count($datas);
foreach ($datas as $key=>$val) {
if(isset($store_tmp[$val['store_id']])) {
$store_info = $store_tmp[$val['store_id']];
} else {
$store_info = $storeDao->getFieldsInfo(array('store_id'=>$val['store_id']), 'province_id, city_id, area_id');
}
$insert_stat_goods = $val;
$insert_stat_goods['upd_time'] = $endTime;
$insert_stat_goods['province_id'] = intval($store_info['province_id']);
$insert_stat_goods['city_id'] = intval($store_info['city_id']);
$insert_stat_goods['area_id'] = intval($store_info['area_id']);
if(!$statGoodsDao->insert($insert_stat_goods)){
echo 'insert fail'.$val['goods_id']."\n";
$result = false;
}
}
}
if($result) { //商品报表更新成功
file_put_contents($this->baseDir . \Our\PathConst::goodsStatTime, $endTime);
}
return $result;
}
/**
* 更新商品报表销售记录
* User: King <358887571@qq.com>
* Date: 2018/11/27 0027
* Time: 下午 6:19
*/
public function updateStatGoodsSell(){
file_put_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, '');
$beginTime = file_get_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, TIMESTAMP);
$beginTime = $beginTime ? $beginTime : ApiConst::zero;
$endTime = TIMESTAMP;
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$statGoodsDao = \DAO\StatGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$where = 'order_id in (select o.order_id from han_order o where o.payment_time > '.$beginTime . ') and goods_id in (select sg.goods_id from han_stat_goods sg)';
$field = 'goods_id,goods_num,goods_pay_price';
$result = true;
if($list = $orderGoodsDao->getOrderGoodsList($where, $field)) {
$statGoodsDao->setDb(DbNameConst::masterDBConnectName);
$statGoodsDao->db->doTransaction();
foreach ($list as $key=>$val){
$where = array('goods_id'=>$val['goods_id']);
$data = array('sell_upd_time'=>$endTime);
$setData = array(
array('field'=>'goods_sell_num', 'value'=>'+'.$val['goods_num']),
array('field'=>'goods_sell_amount', 'value'=>'+'.$val['goods_pay_price']),
);
// var_dump($setData);
//$sql = 'update han_stat_goods set goods_sell_num=goods_sell_num +'.$val['goods_num']. ',
//goods_sell_amount =goods_sell_amount +'.$val['goods_pay_price'].',sell_upd_time=' . $endTime . ' where goods_id='.$val['goods_id'];
$statGoodsDao = \DAO\StatGoodsModel::getInstance(DbNameConst::masterDBConnectName);
if(!$statGoodsDao->update($where, $data, $setData)){
var_dump($setData);
var_dump($data);
echo 'execute fail.'.$val['goods_id']."\n";
$result = false;
$statGoodsDao->db->doRollback();
return $result;
} else {
echo 'execute succ.'.$val['goods_id']."\n";
}
}
if(!$result) {
$statGoodsDao->db->doRollback();
}
}
if($result) { //商品报表更新成功
$statGoodsDao->db->doCommit();
file_put_contents($this->baseDir . \Our\PathConst::goodsSellStatTime, $endTime);
}
}
/**
* 获取商品列表
* @param $param
......
......@@ -155,7 +155,7 @@ class MessageServiceModel extends \Business\AbstractModel
// $avatar = $storeData[ApiConst::one];
}
if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType) {
if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType ||$type==ApiConst::diliveryMessageOrder || $type==ApiConst::deliveryUserMessageType) {
$member = \DAO\MemberModel::getInstance();
$memerAvatar = $member->getInfo($userid, 'member_avatar');
$avatar = $member->getMemberAvatarUrl($userid, $memerAvatar);
......@@ -222,7 +222,7 @@ class MessageServiceModel extends \Business\AbstractModel
$member['uid'] = $store['store_id'];
$member['name'] = $store['store_name'];
}
if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType) {
if ($type == ApiConst::memberMessageType || $type == ApiConst::serviceMessageType ||$type==ApiConst::diliveryMessageOrder || $type==ApiConst::deliveryOrderType) {
$memberDao = \DAO\MemberModel::getInstance();
$member = $memberDao->getOneByMemberId($memberId, 'member_id,member_name');
$member['uid'] = $member['member_id'];
......
......@@ -750,23 +750,23 @@ class OrderServiceModel extends \Business\AbstractModel
'orderId'=>$order['orderId']));
$push->addOneToClient($pushData);
}
$orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId'],true);
$storeDao->deleteStoreCache($order['storeId'],$order['orderId']);
$push=\Our\Push::getInstance();
$pushData=array('storeId'=>$order['storeId'],
'type'=>ApiConst::messageWaitReceive,
'waitReceiveCount'=>ApiConst::reduceOne,
'waitDeliveryCount'=>0,
'waitGetCount'=>0,
'orderCount'=>ApiConst::reduceOne,
'waitRefundProccessCount'=>ApiConst::zero,
'waitRefundReceiveCount'=>ApiConst::zero,
'refundCount'=>ApiConst::zero,
'alertCount'=>ApiConst::zero,
'params'=>array('c'=>'shopkeeper',
'm'=>'orderDetail',
'orderId'=>$order['orderId']));
$push->addOneToClient($pushData);
// $orderDao->deleteOrderCache($order['buyerId'],(string)$order['orderId'],$order['storeId'],true);
// $storeDao->deleteStoreCache($order['storeId'],$order['orderId']);
// $push=\Our\Push::getInstance();
// $pushData=array('storeId'=>$order['storeId'],
// 'type'=>ApiConst::messageWaitReceive,
// 'waitReceiveCount'=>ApiConst::reduceOne,
// 'waitDeliveryCount'=>0,
// 'waitGetCount'=>0,
// 'orderCount'=>ApiConst::reduceOne,
// 'waitRefundProccessCount'=>ApiConst::zero,
// 'waitRefundReceiveCount'=>ApiConst::zero,
// 'refundCount'=>ApiConst::zero,
// 'alertCount'=>ApiConst::zero,
// 'params'=>array('c'=>'shopkeeper',
// 'm'=>'orderDetail',
// 'orderId'=>$order['orderId']));
// $push->addOneToClient($pushData);
}
......@@ -883,7 +883,7 @@ class OrderServiceModel extends \Business\AbstractModel
if (empty($diliverymanIds)) {
ErrorModel::throwException(CodeConfigModel::commonError);
}
$qmDeliveryLogList = $qmDeliveryLogDao->getListByDeliverymanIdAndTypeCache($diliverymanIds, $type, ApiConst::pageIndex, $pageSize,array('get_time' => 'desc'),$memberId);
$qmDeliveryLogList = $qmDeliveryLogDao->getListByDeliverymanIdAndTypeCache($diliverymanIds, $type,$pageIndex, $pageSize,array('get_time' => 'desc'),$memberId);
$orderIds=Array();
foreach($qmDeliveryLogList['list'] as $qmDeliveryLog){
if($qmDeliveryLog['orderType']==ApiConst::orderTypeRefund){
......
......@@ -83,11 +83,11 @@ class RefundServiceModel extends \Business\AbstractModel
* @param $receiveTime
*/
public function setReceiveTime($storeId, $refundId, $receiveTime) {
$receiveTime = strtotime($receiveTime);
if($receiveTime < TIMESTAMP){
ErrorModel::throwException(CodeConfigModel::commonError);
}
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$storeDao=\DAO\StoreModel::getInstance(DbNameConst::masterDBConnectName);
$whereRefund = array();
$whereRefund['store_id']= $storeId;
$whereRefund['refund_id']= $refundId;
......@@ -96,7 +96,9 @@ class RefundServiceModel extends \Business\AbstractModel
if(!$refund) { //未知的退款信息
ErrorModel::throwException(CodeConfigModel::notExistRefund);
}
$state = $refundReturnDao->update(array('refund_id'=> $refundId), array('receive_time'=> $receiveTime));
$storeDao->deleteStoreRefundCache($storeId);
if(!$state){
return false;
}
......@@ -414,6 +416,27 @@ class RefundServiceModel extends \Business\AbstractModel
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']);
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
$refundReturnDao->db->doCommit();
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']);
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']);
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
$storeDao->deleteStoreCache($storeId,$refund['order_id']);
$storeDao->deleteStoreRefundCache($storeId,$refund['order_id']);
$push=\Our\Push::getInstance();
$pushData=array('storeId'=>$storeId,
'type'=>ApiConst::messageRefund,
'waitReceiveCount'=>ApiConst::zero,
'waitDeliveryCount'=>ApiConst::zero,
'waitGetCount'=>ApiConst::zero,
'orderCount'=>ApiConst::zero,
'waitRefundProccessCount'=>ApiConst::reduceOne,
'waitRefundReceiveCount'=>ApiConst::zero,
'refundCount'=>ApiConst::reduceOne,
'alertCount'=>ApiConst::zero,
'params'=>array('c'=>'shopkeeper',
'm'=>'orderDetail',
'refundId'=>$refund['refund_id']));
$push->addOneToClient($pushData);
$push->sendTcpMessage();
return true;
}
......@@ -492,12 +515,13 @@ class RefundServiceModel extends \Business\AbstractModel
'orderCount'=>ApiConst::zero,
'waitRefundProccessCount'=>ApiConst::reduceOne,
'waitRefundReceiveCount'=>ApiConst::zero,
'refundCount'=>ApiConst::zero,
'refundCount'=>ApiConst::reduceOne,
'alertCount'=>ApiConst::zero,
'params'=>array('c'=>'shopkeeper',
'm'=>'orderDetail',
'refundId'=>$refund['refund_id']));
$push->addOneToClient($pushData);
$push->sendTcpMessage();
return true;
}
$refundReturnDao->db->doRollback();
......@@ -696,7 +720,7 @@ class RefundServiceModel extends \Business\AbstractModel
if (empty($refundReturn)) {
ErrorModel::throwException(CodeConfigModel::notExistRefund);
}
$res=$this->getStoreRefundList($storeId,$returnId);
$res=$this->getStoreRefundList($storeId,ApiConst::zero,ApiConst::zero,ApiConst::pageSize, $returnId);
if(!empty($res['refundReturns'][ApiConst::zero])) {
return $res['refundReturns'][ApiConst::zero];
}
......@@ -1122,6 +1146,7 @@ class RefundServiceModel extends \Business\AbstractModel
$refundReturn['goodsAttr'] = $goodsDao->getFormatGoodsAttr($orderGoods['goodsSpec']);
$refundReturn['sellerStateName'] = ArrayConst::sellerState[$refundReturn['sellerState']];
$refundReturn['refundTypeName'] = ArrayConst::refundType[$refundReturn['refundType']];
$refundReturn['goodsPayPrice']=$orderGoods['goodsPayPrice'];
$refundReturn['returnTypeName'] = ArrayConst::returnType[$refundReturn['returnType']];
$refundReturn['picInfo'] =!empty($refundReturn['picInfo'])?unserialize($refundReturn['picInfo']):array();
if(!empty($refundReturn['picInfo'])){
......@@ -1176,7 +1201,7 @@ class RefundServiceModel extends \Business\AbstractModel
if(!empty($diliveryMan)){
$diliveryMan=array(
'id'=>$diliveryMan['id'],
'trueName'=>$diliveryMan['true_name'],
'trueName'=>$diliveryMan['trueName'],
'mobile'=>$diliveryMan['mobile'],
);
$info['diliveryman']=$diliveryMan;
......
......@@ -143,8 +143,10 @@ class DeliveryServiceModel extends \Business\AbstractModel
if(!$resData){
ErrorModel::throwException(CodeConfigModel::addDeliveryManError);
}
$memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
$memberDb0Redis->tableHSet(trim($member['diliveryman_id']),$resData,ApiConst::tenDaySecond);
$memberData['diliveryman_id']=$resData;
$memberDao->saveInfo($memberData,$member['memberId']);
// $memberDb0Redis=\Redis\Db0\MemberRedisModel::getInstance();
// $memberDb0Redis->tableHSet(trim($member['diliveryman_id']),$resData,ApiConst::tenDaySecond);
return $resData;
}
......
......@@ -279,7 +279,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
//\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::add,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
$orderDao->deleteOrderCache($order['buyer_id'], $orderId, $order['store_id'], true);
$storeDao->deleteStoreCache($order['store_id'],$orderId);
// \Our\RedisHelper::memberTotalFromStateToState($order['buyer_id'], $order['order_state'], ApiConst::orderStateWaitSend);
//\Our\RedisHelper::memberTotalFromStateToState($order['buyer_id'], $order['order_state'], ApiConst::orderStateWaitSend);
return $result;
}
}
......@@ -334,7 +334,12 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
$value['orderGoods'] = array();
}
if ($this->clientType && $this->clientType == NameConst::pcClient) {
// $extent=$orderDao->getClienOrderCommon($value['orderId']);
// $value=array_merge($value,$extent);
$value['couponAmount'] = ($value['goodsAmount'] + $value['shippingFee']) - $value['orderAmount'];//优惠券金额
if( $value['couponAmount']<ApiConst::zero){
$value['couponAmount']=ApiConst::zero;
}
$value['receiveAmount'] = $value['goodsAmount']+$value['shippingFee'] - $value['couponAmount'];
// $value['orderAmount'] = $value['orderAmount'];
$value['reciverInfo'] = unserialize($value['reciverInfo']);
......
......@@ -36,10 +36,13 @@ class StoreServiceModel extends \Business\AbstractModel{
if($param['sid']) {
$sale = \DAO\SaleModel::getInstance()->getOne(array('sale_id'=>$param['sid']),'sale_act_id,member_id');
if($sale) {
$sale_act = \DAO\SaleActivityModel::getInstance()->getOne(array('sale_act_id'=>$sale['sale_act_id'],'sale_act_state'=>1));
if($sale_act && $sale_act['sale_start_date'] >= time() && $sale_act['sale_end_date'] <= time()){
\DAO\SaleMemberModel::getInstance()->insertOrUpdate(array('sale_id'=>$sale['member_id'],'sale_act_id'=>$sale['sale_act_id'],'member_id'=>$memberId,'store_id'=>$storeId));
\Redis\Db4\SaleActivityRedisModel::getInstance()->tableDel('storeId:'.$storeId);
}
}
}
$storeMembers = array();
$storeMember = array();
$storeMember['store_id'] = $storeId;
......
......@@ -88,7 +88,6 @@ class MemberCenterServiceModel extends \Business\AbstractModel
//待发货数量
$memberCenter[NameConst::waitShipments] = $orderDAO->getCount(array('order_state'=>ApiConst::orderStateWaitSend,'buyer_id'=>$memberId));
//待收货数量
$memberCenter[NameConst::waitReceiving] = $orderDAO->getCount(array('order_state'=>ApiConst::orderStateWaitRecieve,'buyer_id'=>$memberId,'shipping_type'=>1));
$memberCenter[NameConst::waitReceiving] = $orderDAO->getCount(array('order_state = '.ApiConst::orderStateWaitRecieve.' OR order_state = '.ApiConst::orderStateWaitSend,'buyer_id = '.$memberId,'shipping_type = 1'),false);
//待自提数量
$memberCenter[NameConst::waitSelfLifting] = $orderDAO->getCount(array('order_state'=>ApiConst::orderStateWaitRecieve,'buyer_id'=>$memberId,'shipping_type'=>0));
......
......@@ -642,6 +642,7 @@ class MemberModel extends \DAO\AbstractModel
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitPay);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitShipments);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitReceiving);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitSelfLifting);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitEvaluate);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::refund);
}
......
......@@ -1129,6 +1129,9 @@ class OrderModel extends \DAO\AbstractModel
public function getClienOrderCommon($order){
$returnData=array();
$returnData['couponAmount'] = ($order['goodsAmount'] + $order['shippingFee']) - $order['orderAmount'];//优惠券金额
if($returnData['couponAmount']<ApiConst::zero){
$returnData['couponAmount']=ApiConst::zero;
}
$returnData['orderAmount'] = $order['orderAmount'] ;
$returnData['goodsAmount']=$order['goodsAmount'];
$returnData['shippingFee']=$order['shippingFee'];
......
<?php
namespace DAO;
use Our\ApiConst;
use Our\Common;
use Our\CommonExtension;
class StatGoodsModel extends \DAO\AbstractModel {
public $errorCode;
/**
* 表名
*
* @var string
*/
protected $_tableName = 'han_stat_goods';
private $cartGoodsField = 'goods_id,goods_storage,store_id,goods_commonid,goods_name,goods_image,goods_spec,snapshot_id';
/**
* 主键
*
* @var string
*/
protected $_primaryKey = '';
public function init(){
}
/**
*
* 分页获取商品列表
* @param $where
* @param $field
* @param $pageIndex
* @param $pageSize
* @param array $order
* @return array|mixed
*/
public function getListPage($where, $field, $pageIndex, $pageSize, $order = array('goods_id' => 'asc'))
{
$this->setDb($this->dbName);
if($datas = $this->lists($where, $order, $field, $pageIndex, $pageSize)) {
foreach ($datas['list'] as $key=>$val) {
$datas['list'][$key]['goodsAttr'] = $this->getFormatGoodsAttr($val['goodsAttr']);
}
}
return $datas ? $datas : array();
}
/**
* 根据条件更新
* @param $sql
* @return mixed
* User: King <358887571@qq.com>
* Date: 2018/11/27 0027
* Time: 下午 7:27
*/
public function updatBySql($sql) {
$this->setDb(\Our\DbNameConst::masterDBConnectName);
return $this->db->update($this->_tableName)->execute($sql);
}
/**
* 更新数据
* @param $data
* @param $where
* @return mixed
*/
public function update($where, $data, $setData = array())
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$this->db->update($this->_tableName)->where($where)->rows($data);
foreach ($setData as $val) {
$this->db->set($val['field'], $val['value'], TRUE);
}
return $this->db->execute();
}
/**
* 插入数据
* @param $data
* @return mixed
* User: King <358887571@qq.com>
* Date: 2018/11/27 0027
* Time: 下午 5:51
*/
public function insert($data){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->insert($this->_tableName)->rows($data)->execute();
return $result ;
}
public function getList($where,$field){
$this->setDb();
return $this->db->select($field)->from($this->_tableName)->where($where)->fetchAll();
}
public function find($where,$field = \Our\NameConst::allField){
$this->setDb($this->dbName);
$result = $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne();
return $result;
}
/**
* 获取在线商品列表
* @param $where
* @param string $field
* @return mixed
*/
public function getOnlineList($where,$field = \Our\NameConst::allField){
$whereSql = ' goods_state ='.\Our\ApiConst::onlineGoodsState.' and goods_verify='.\Our\ApiConst::onlineGoodsVerify.' and is_del='.\Our\ApiConst::onlineGoodsDel;
if($where){
$whereSql .= ' and '.$where;
}
return $this->getList($whereSql,$field);
}
public function getOnlineOne($goodsId,$field= \Our\NameConst::allField){
$where['goods_state'] = \Our\ApiConst::onlineGoodsState;
$where['goods_verify'] = \Our\ApiConst::onlineGoodsVerify;
$where['is_del'] = \Our\ApiConst::onlineGoodsDel;
$where['goods_id'] = $goodsId;
$goods = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsRedisModel::getInstance(),array(&$this, 'find'),array($where,$field),\Our\ApiConst::oneHour,array($goodsId));
return $goods;
}
/**
* 类实例
*/
private static $_instance = null;
/**
* 获取类实例
*/
public static function getInstance($dbName=\Our\DbNameConst::salveDBConnectName) {
if (!(self::$_instance instanceof self)) {
self::$_instance = new self($dbName);
}
return self::$_instance;
}
}
......@@ -73,6 +73,25 @@ class StoreModel extends \DAO\AbstractModel
}
/**
*
* 获取指定字段店铺信息
*
* @param $where 查询条件
* @param $field 查询字段
* @return mixed 店铺信息
* User: King <358887571@qq.com>
* Date: 2018/11/27 0027
* Time: 下午 5:27
*/
public function getFieldsInfo($where, $field)
{
$this->setDb();
$store = $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne();
return $store;
}
public function getInfoById($id, $field = '*', $isField = false)
{
$this->setDb($this->dbName);
......
<?php
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
require APPLICATION_PATH . '/scripts/crontab/baseCli.php';
require APPLICATION_PATH . '/scripts/crontab/common.php';
error_reporting(E_ALL ^ E_NOTICE);
/**
* 商品分析
* 执行时间:每分钟执行一次
* Class cliGoodsStat
* User: linqin <358887571@qq.com>
* Date: 2018/11/27 0027
* Time: 下午 1:56
*
*/
class cliGoodsStat extends basecli
{
const CLI_ADMIN_ID = 255;
private $bDoUnLock = FALSE; // 是否允许释放 LOCK 文件
private $_debug = 0;
private $lockFileName;
private $fromState;
private function mkdirs($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir, $mode)){
return TRUE;
}
if (!$this->mkdirs(dirname($dir), $mode)){
return FALSE;
}
return @mkdir($dir, $mode);
}
/**
* 析构
*/
public function __destruct()
{
parent::__destruct();
if ($this->bDoUnLock)
{
@unlink($this->lockFileName);
}
}
/**
* 自动统计商品
* User: linqin <358887571@qq.com>
* Date: 2018/11/27 0027
* Time: 下午 3:23
*/
protected function autoStatGoods(){
$goodsService = \Business\Goods\GoodsCommonServiceModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$goodsService->baseDir = \Our\Common::getConfig('out.config');
echo "update goods \n";
if($goodsService->updateStatGoods()) { //更新商品基础信息
echo "update goods_sell \n";
$goodsService->updateStatGoodsSell();
}
}
protected function _runCli()
{
$this->_debug = isset($this->aArgv[1]) ? intval($this->aArgv[1]) : 0;
if ($this->_debug)
{
echo "*** Debug mode ***\n";
}
// Step: 02 检查是否已有相同CLI在运行中
$lockDir=$this->_getBaseFileName('goods');
if(!$this->mkdirs($lockDir)){
echo '****create dir fail ****';
exit;
}
$this->lockFileName = $lockDir .DS.'stat.locks';
if( file_exists( $this->lockFileName ) )
{
$stat = stat($this->lockFileName);
if( (TIMESTAMP - $stat['mtime']) > 1800 )
{
echo "文件被锁超过1800秒,被强制删除";
@unlink($this->lockFileName);
}
else
{
$this->halt( '[' . date('Y-m-d H:i:s') .'] The CLI is running'."\n");
}
}
$this->bDoUnLock = true;
if(APP_ENV =='pre' || APP_ENV=='product'){
file_put_contents($this->lockFileName ,"running" ); // CLI 独占锁
}
$this->autoStatGoods();
echo date('Y-m-d H:i:s',TIMESTAMP).'定单关闭消息成功'."\r\n";
}
}
$oCli = new cliGoodsStat(TRUE);
EXIT;
?>
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