Commit 4ce59038 authored by zhz's avatar zhz

sale

parent 4f2c0fd1
...@@ -40,7 +40,7 @@ class GoodsController extends \Our\Controller_AbstractIndex { ...@@ -40,7 +40,7 @@ class GoodsController extends \Our\Controller_AbstractIndex {
} }
public function testAction(){ public function testAction(){
//$info = $this->goodsService->recommend(); //$info = $this->goodsService->recommend();
\DAO\GoodsCommonModel::getInstance()->getGrade(100030); \Business\Goods\GoodsCommonServiceModel::getInstance()->saleGoods();
} }
public function getAttrsAction(){ public function getAttrsAction(){
......
...@@ -38,6 +38,7 @@ class PathConst { ...@@ -38,6 +38,7 @@ class PathConst {
const orderAddTime="/orderAddTime.conf"; const orderAddTime="/orderAddTime.conf";
const orderWaitRecieveTaskAddTime="/orderWaitRecieveTaskAddTime.conf"; const orderWaitRecieveTaskAddTime="/orderWaitRecieveTaskAddTime.conf";
const orderConfirmTaskAddTime="/orderConfirmTaskAddTime.conf"; const orderConfirmTaskAddTime="/orderConfirmTaskAddTime.conf";
const saleOrderGoodsAddTime="/saleOrderGoodsAddTime.conf";
const orderId="orderId={0}"; const orderId="orderId={0}";
const authInfoOtherLogin="/authInfo/otherLogin"; const authInfoOtherLogin="/authInfo/otherLogin";
......
...@@ -858,26 +858,26 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -858,26 +858,26 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
*/ */
public function saleGoods(){ public function saleGoods(){
$baseConfDir = \Our\Common::getConfig('out.config'); $baseConfDir = \Our\Common::getConfig('out.config');
$savePath = $baseConfDir . \Our\PathConst::orderConfirmTaskAddTime; $savePath = $baseConfDir . \Our\PathConst::saleOrderGoodsAddTime;
$addTime = file_get_contents($savePath); $addTime = file_get_contents($savePath);
$addTime = $addTime ? $addTime : ApiConst::zero; $addTime = $addTime ? $addTime : \Our\ApiConst::zero;
$orderDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName); $orderDao = \DAO\Order\OrderGoodsModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$pageBegin = \Our\PageConst::taskPageBegin; $pageBegin = \Our\PageConst::taskPageBegin;
$time = TIMESTAMP; $time = TIMESTAMP;
do { do {
$orders = $orderDao->getSaleOrderGoods('rec_id,sale_act_id,sale_id,goods_id,goods_num,goods_name,goods_image,order_id,is_refund', $addTime, $pageBegin, \Our\PageConst::taskPageSize, 'send_time'); $orders = $orderDao->getSaleOrderGoods('rec_id,sale_act_id,sale_id,goods_id,goods_num,goods_name,goods_image,order_id,is_refund,goods_pay_price,refund_id', $addTime, $pageBegin, \Our\PageConst::taskPageSize);
foreach ($orders['list'] as $orderGoods) { foreach ($orders['list'] as $orderGoods) {
$saleOrder = \DAO\SaleOrderModel::getInstance()->find(array('order_goods_id'=>$orderGoods['rec_id']),'id'); $saleOrder = \DAO\SaleOrderModel::getInstance()->find(array('order_goods_id'=>$orderGoods['rec_id']),'id');
$insert = []; $insert = [];
$update = []; $update = [];
$order = \DAO\Order\OrderModel::getInstance()->findByOrderId($orderGoods['order_id'],'order_state'); $order = \DAO\Order\OrderModel::getInstance()->findByOrderId($orderGoods['order_id'],'order_state,order_sn,buyer_id');
if($saleOrder){ if($saleOrder){
$update['is_refund'] = $orderGoods['is_refund']; $update['is_refund'] = $orderGoods['is_refund'];
$update['order_state'] = $order['order_state']; $update['order_state'] = $order['order_state'];
}else{ }else{
$member = \DAO\MemberModel::getInstance()->find($order['buyer_id']); $member = \DAO\MemberModel::getInstance()->getInfo($order['buyer_id']);
$insert['member_name'] = $member['member_name']; $insert['member_name'] = $member['memberName'];
$insert['member_avatar'] = $member['member_avatar']; $insert['member_avatar'] = $member['memberAvatarUrl'];
$insert['order_goods_id'] = $orderGoods['rec_id']; $insert['order_goods_id'] = $orderGoods['rec_id'];
$insert['sale_act_id'] = $orderGoods['sale_act_id']; $insert['sale_act_id'] = $orderGoods['sale_act_id'];
$insert['sale_id'] = $orderGoods['sale_id']; $insert['sale_id'] = $orderGoods['sale_id'];
...@@ -889,13 +889,25 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -889,13 +889,25 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
$insert['member_id'] = $order['buyer_id']; $insert['member_id'] = $order['buyer_id'];
$insert['order_state'] = $order['order_state']; $insert['order_state'] = $order['order_state'];
$insert['is_refund'] = $orderGoods['is_refund']; $insert['is_refund'] = $orderGoods['is_refund'];
$insert['order_sn'] = $order['order_sn'];
$insert['goods_pay_price'] = $orderGoods['goods_pay_price'];
} }
if($orderGoods['refund_id'] > 0 ){
$refund = \DAO\Order\RefundReturnModel::getInstance()->find(array('refund_id'=>$orderGoods['refund_id']),'seller_state,is_platform_in,platform_state');
if($saleOrder){ if($saleOrder){
\DAO\SaleOrderModel::getInstance()->update(array('order_goods_id'=>$orderGoods['rec_id']),$update); $update['seller_state'] = $refund['seller_state'];
}else{ }else{
\DAO\SaleOrderModel::getInstance()->insert($insert); $insert['seller_state'] = $refund['seller_state'];
} }
} }
if($saleOrder){
\DAO\SaleOrderModel::getInstance(\Our\DbNameConst::masterDBConnectName)->update(array('order_goods_id'=>$orderGoods['rec_id']),$update);
}else{
\DAO\SaleOrderModel::getInstance(\Our\DbNameConst::masterDBConnectName)->insert($insert);
}
$saleOrderDAO = \DAO\SaleOrderModel::getInstance();
\Our\RedisHelper::delCachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$saleOrderDAO, 'getOrderGoodsList'),array(),array($order['buyer_id']));
}
$pageBegin++; $pageBegin++;
} while (!empty($orders['list'])); } while (!empty($orders['list']));
file_put_contents($savePath, $time); file_put_contents($savePath, $time);
...@@ -1002,57 +1014,6 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -1002,57 +1014,6 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
} }
} }
} }
//$commonIds = array_merge($arr,$commonIds);
// $weekSales = $goodsCommonRedis->tableSmembers('weekSales:'.$storeId);
// if($weekSales) {
// $arr = array_merge(array_diff($weekSales, $existIds));
// if($arr) {
// shuffle($arr);
// $ret = array_pop($arr);
// if($ret) {
// $commonIds[] = $ret;
// $existIds[] = $ret;
// }
// }
// }
//
//
// $weekSaleGoods = $goodsCommonRedis->tableSmembers('weekSaleGoods:'.$storeId);
// if($weekSaleGoods) {
// $arr = array_merge(array_diff($weekSaleGoods, $existIds));
// if($arr) {
// shuffle($arr);
// $ret = array_pop($arr);
// if($ret) {
// $commonIds[] = $ret;
// $existIds[] = $ret;
// }
// $ret = array_pop($arr);
// if($ret) {
// $commonIds[] = $ret;
// $existIds[] = $ret;
// }
// }
// }
// $recommendGoods = $goodsCommonRedis->tableSmembers('recommendGoods:'.$storeId);
// if($recommendGoods) {
// $arr = array_merge(array_diff($recommendGoods, $existIds));
// if($arr) {
// shuffle($arr);
// while(true) {
// $ret = array_pop($arr);
// if($ret) {
// $commonIds[] = $ret;
// $existIds[] = $ret;
// }else{
// break;
// }
// if(count($commonIds) == 4){
// break;
// }
// }
// }
// }
$goods = []; $goods = [];
if($commonIds){ if($commonIds){
//该用户是否有参加销售活动 //该用户是否有参加销售活动
......
...@@ -78,7 +78,7 @@ class SalespersonServiceModel extends \Business\AbstractModel ...@@ -78,7 +78,7 @@ class SalespersonServiceModel extends \Business\AbstractModel
$memberName = $member['memberName']; $memberName = $member['memberName'];
$memberAvatarUrl = $member['memberAvatarUrl']; $memberAvatarUrl = $member['memberAvatarUrl'];
$orderGoodsList = \Our\RedisHelper::cachedFunction(\Redis\Db1\SaleOrderRedisModel::getInstance(),array(&$saleOrderDAO, 'getOrderGoodsList'),array("sale_act_id in(".implode(',',$saleActArr).") AND sale_id = {$memberId} AND goods_id in(".implode(',',$goodsIds).")",'sum(goods_num) AS goodsCount,goods_name AS goodsName,goods_image AS goodsImage,goods_id AS goodsId,sale_act_id','goods_id',[],'sale_act_id'),\Our\ApiConst::tenMinSecond,array($memberId)); $orderGoodsList = \Our\RedisHelper::cachedFunction(\Redis\Db1\SaleOrderRedisModel::getInstance(),array(&$saleOrderDAO, 'getOrderGoodsList'),array("sale_act_id in(".implode(',',$saleActArr).") AND sale_id = {$memberId} AND goods_id in(".implode(',',$goodsIds).")",'sum(goods_num) AS goodsCount,goods_name AS goodsName,goods_image AS goodsImage,goods_id AS goodsId,sale_act_id','goods_id',[],'sale_act_id'),\Our\ApiConst::halfDaySecond,array($memberId));
$existIds = []; $existIds = [];
if($orderGoodsList && is_array($orderGoodsList)) { if($orderGoodsList && is_array($orderGoodsList)) {
foreach ($orderGoodsList as $v){ foreach ($orderGoodsList as $v){
...@@ -180,11 +180,13 @@ class SalespersonServiceModel extends \Business\AbstractModel ...@@ -180,11 +180,13 @@ class SalespersonServiceModel extends \Business\AbstractModel
$saleOrderDAO = \DAO\SaleOrderModel::getInstance(); $saleOrderDAO = \DAO\SaleOrderModel::getInstance();
$where = "sale_act_id = {$actId} AND sale_id = {$memberId} AND goods_id = {$goodsId}"; $where = "sale_act_id = {$actId} AND sale_id = {$memberId} AND goods_id = {$goodsId}";
if($type === 0) { if($type === 0) {
$where .= " AND (order_state=%s AND (refund_id = %s OR (refund_id > %s AND ((seller_state = %s AND is_platform_in = %s) OR (is_platform_in = %s AND platform_state = %s)))))"; // $where .= " AND (order_state=%s AND (refund_id = %s OR (refund_id > %s AND ((seller_state = %s AND is_platform_in = %s) OR (is_platform_in = %s AND platform_state = %s)))))";
$where = sprintf($where,ApiConst::orderStateComplete,ApiConst::zero,ApiConst::zero,ApiConst::refundSellerRefuse,ApiConst::platNotIn,ApiConst::platIn,ApiConst::refundPlatformRefuse); $where .= " AND order_state=40 AND is_refund=0";
// $where = sprintf($where,ApiConst::orderStateComplete,ApiConst::zero,ApiConst::zero,ApiConst::refundSellerRefuse,ApiConst::platNotIn,ApiConst::platIn,ApiConst::refundPlatformRefuse);
}else{ }else{
$where .=" AND (order_state < %s OR (order_state = %s AND refund_id > %s AND (seller_state != %s OR (is_platform_in = %s AND platform_state != %s ))))"; // $where .=" AND (order_state < %s OR (order_state = %s AND refund_id > %s AND (seller_state != %s OR (is_platform_in = %s AND platform_state != %s ))))";
$where = sprintf($where,ApiConst::orderStateComplete,ApiConst::orderStateComplete,ApiConst::zero,ApiConst::refundSellerRefuse,ApiConst::platIn,ApiConst::refundPlatformRefuse); $where .= " AND order_state < 40 OR (order_state = 40 AND is_refund = 1)";
// $where = sprintf($where,ApiConst::orderStateComplete,ApiConst::orderStateComplete,ApiConst::zero,ApiConst::refundSellerRefuse,ApiConst::platIn,ApiConst::refundPlatformRefuse);
} }
$goodsList = $saleOrderDAO->getOrderGoodsList($where,'member_id,member_name AS memberName,member_avatar AS memberAvatar,sum(goods_num) AS goodsNum','member_id',$limit); $goodsList = $saleOrderDAO->getOrderGoodsList($where,'member_id,member_name AS memberName,member_avatar AS memberAvatar,sum(goods_num) AS goodsNum','member_id',$limit);
$orders = []; $orders = [];
...@@ -198,7 +200,7 @@ class SalespersonServiceModel extends \Business\AbstractModel ...@@ -198,7 +200,7 @@ class SalespersonServiceModel extends \Business\AbstractModel
// } // }
$orders[] = [ $orders[] = [
'memberName'=>$v['memberName'], 'memberName'=>$v['memberName'],
'memberAvatar'=>\DAO\MemberModel::getInstance()->getMemberAvatarUrl($v['member_id'],$v['memberAvatar']), 'memberAvatar'=>$v['memberAvatar'],
'goodsNum'=>$v['goodsNum'] 'goodsNum'=>$v['goodsNum']
]; ];
} }
......
...@@ -189,7 +189,7 @@ class OrderGoodsModel extends \DAO\AbstractModel { ...@@ -189,7 +189,7 @@ class OrderGoodsModel extends \DAO\AbstractModel {
//销售订单 //销售订单
public function getSaleOrderGoods($field,$updateTime,$pageIndex,$pageSize) { public function getSaleOrderGoods($field,$updateTime,$pageIndex,$pageSize) {
$this->setDb($this->dbName); $this->setDb($this->dbName);
$where = Common::format('sale_act_id >0 AND gmt_update >= {1}', $updateTime); $where = Common::format('sale_act_id >0 AND gmt_update >= {0}', $updateTime);
$list = $this->lists($where, '', $field, $pageIndex, $pageSize); $list = $this->lists($where, '', $field, $pageIndex, $pageSize);
return $list; return $list;
} }
......
...@@ -36,26 +36,26 @@ class SaleOrderModel extends \DAO\AbstractModel { ...@@ -36,26 +36,26 @@ class SaleOrderModel extends \DAO\AbstractModel {
return $this->db->insert($this->_tableName)->query($sql); return $this->db->insert($this->_tableName)->query($sql);
} }
public function insert($data){ public function insert($data){
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb($this->dbName);
return $this->db->insert($this->_tableName)->rows($data)->execute(); return $this->db->insert($this->_tableName)->rows($data)->execute();
} }
public function update($where,$data){ public function update($where,$data){
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb($this->dbName);
return $this->db->update($this->_tableName)->rows($data)->where($where)->execute(); return $this->db->update($this->_tableName)->where($where)->rows($data)->execute();
} }
public function getOrderGoodsList($where,$field,$group = null,$limit = [],$group2 = null){ public function getOrderGoodsList($where,$field,$group = null,$limit = [],$group2 = null){
$this->setDb(); $this->setDb($this->dbName);
if($limit){ if($limit){
return $this->db->from($this->_tableName)->select($field)->where($where)->group($group)->group($group2)->limit($limit[0],$limit[1])->fetchAll(); return $this->db->from($this->_tableName)->select($field)->where($where)->group($group)->group($group2)->limit($limit[0],$limit[1])->fetchAll();
} }
return $this->db->from($this->_tableName)->select($field)->where($where)->group($group)->group($group2)->fetchAll(); return $this->db->from($this->_tableName)->select($field)->where($where)->group($group)->group($group2)->fetchAll();
} }
public function getCount($where){ public function getCount($where){
$this->setDb(); $this->setDb($this->dbName);
return $this->db->from($this->_tableName)->where($where)->fetchNum(); return $this->db->from($this->_tableName)->where($where)->fetchNum();
} }
public function getCountGroup($where, $group) { public function getCountGroup($where, $group) {
$this->setDb(); $this->setDb($this->dbName);
$sql = "SELECT COUNT(*) AS count from (SELECT id FROM {$this->_tableName} where {$where} GROUP BY {$group}) a"; $sql = "SELECT COUNT(*) AS count from (SELECT id FROM {$this->_tableName} where {$where} GROUP BY {$group}) a";
$row = $this->db->query($sql); $row = $this->db->query($sql);
if($row) { if($row) {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
/** /**
* 销售订单商品表写入 * 销售订单商品表写入
* 执行时间:每隔5分钟执行一次 * 执行时间:每隔2分钟执行一次
*/ */
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级 define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
...@@ -59,9 +59,9 @@ class cliSaleOrder extends basecli ...@@ -59,9 +59,9 @@ class cliSaleOrder extends basecli
if( file_exists( $this->lockFileName ) ) if( file_exists( $this->lockFileName ) )
{ {
$stat = stat($this->lockFileName); $stat = stat($this->lockFileName);
if( (TIMESTAMP - $stat['mtime']) > 1800 ) if( (TIMESTAMP - $stat['mtime']) > 1200 )
{ {
echo "文件被锁超过1800秒,被强制删除"; echo "文件被锁超过1200秒,被强制删除";
@unlink($this->lockFileName); @unlink($this->lockFileName);
} }
else else
......
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