Commit a17774ec authored by zhz's avatar zhz

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

parents 5b1cbf72 3ed800a0
......@@ -17,6 +17,9 @@ abstract class Controller_AbstractClient extends \Our\Controller_Abstract {
public $key;
public $req;
public $memberId;
public $storeId;
public $sellerName;
public $sellerId;
/**
* api控制器直接输出json格式数据,不需要渲染视图
*/
......@@ -32,6 +35,8 @@ abstract class Controller_AbstractClient extends \Our\Controller_Abstract {
$sess->start();
$this->memberId=$sess->get('member_id');
$this->storeId=$sess->get('store_id');
$this->sellerName=$sess->get('seller_name');
$this->sellerId=$sess->get('seller_id');
if(empty($this->memberId)){
ErrorModel::throwException(CodeConfigModel::noLogin);
}
......
<?php
namespace Business;
use Our\NameConst;
/**
* 业务层的抽象类
*/
abstract class AbstractModel {
public $clientType=NameConst::pcClient;
/**
* 不允许克隆对象
......
......@@ -327,7 +327,7 @@ class OrderServiceModel extends \Business\AbstractModel
$orderGoodsDao->update($where,$orderGoodsUpdateData);
}
}
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('id'=>$order['orderId'])));
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
if ($memberId) {
$orderDao->deleteOrderCache($memberId, $orderId, $order['storeId'],true);
// $memberDao->fromOrderStateToOrderState($memberId,$order['order_state'],ApiConst::orderStateCancel);
......@@ -357,7 +357,7 @@ class OrderServiceModel extends \Business\AbstractModel
}else{
$type=ApiConst::messageWaitSend;
}
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('id'=>$order['orderId'])));
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
$orderDao->deleteOrderCache($memberId, $orderId, $order['store_id'],true,true);
return true;
} else {
......@@ -431,7 +431,7 @@ class OrderServiceModel extends \Business\AbstractModel
public function pushRecieveOrder($order){
$push = Push::getInstance();
$push->recieveWait($order['storeId'], $order['orderId'], $order['orderSn']);
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::add,'num'=>ApiConst::one,'params'=>array('id'=>$order['orderId'])));
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::add,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
$push->sendTcpMessage();
$messageService=\Business\Message\MessageServiceModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$messageService->addMessageCenterToDb();
......
......@@ -83,8 +83,8 @@ class RefundServiceModel extends \Business\AbstractModel
* @param $receiveTime
*/
public function setReceiveTime($storeId, $refundId, $receiveTime) {
$dtime = strtotime($receiveTime);
if($receiveTime<TIMESTAMP){
$receiveTime = strtotime($receiveTime);
if($receiveTime < TIMESTAMP){
ErrorModel::throwException(CodeConfigModel::commonError);
}
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
......@@ -109,7 +109,7 @@ class RefundServiceModel extends \Business\AbstractModel
* @param $returnId
* @param int $goodsState
*/
public function receive($storeId, $returnId, $goodsState= 4)
public function receive($storeId, $sellerId, $sellerName, $returnId, $goodsState= 4)
{
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
......@@ -134,13 +134,17 @@ class RefundServiceModel extends \Business\AbstractModel
}
$refundReturnDao->db->doTransaction();
$state = $refundReturnDao->editRefundReturn($whereRefund, $refund_array);
if($state){ //退款记录成功
// $this->recordSellerLog('退货确认收货,退货编号:'.$return['refund_sn']);
//记录操作日志
$sellerLogDAO = \DAO\SellerLogModel::getInstance();
$sellerLogDAO->record('退货确认收货,退货编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId));
if($refund_array['goods_state'] == 4) { //同意
// add by ky start
//检测该店铺是否开启直接退款功能
$storeDAO = \DAO\StoreModel::getInstance();
$is_direct_refund = $storeDAO->getInfoById($storeId, 'is_direct_refund', true);
$is_direct_refund = $storeDAO->getInfoById($storeId, 'is_direct_refund', 'is_direct_refund');
if($is_direct_refund==1) { //支持直接退款
//获取订单
$order_id = $refund['order_id'];
......@@ -174,8 +178,9 @@ class RefundServiceModel extends \Business\AbstractModel
}
}
}
\Our\RedisHelper::delCachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array(), array($refund['store_id']));
$refundReturnDao->deleteRefundCache($refund['buyer_id'], $refund['refund_id']);
$orderDao->deleteOrderCache($refund['buyer_id'],$refund['order_id'],$refund['store_id']);
$orderDao->deleteOrderCache($refund['buyer_id'], $refund['order_id'], $refund['store_id']);
$refundReturnDao->db->doCommit();
return true;
}
......@@ -191,7 +196,7 @@ class RefundServiceModel extends \Business\AbstractModel
* @param $refundAmount 退款金额
* @param string $text 退款消息
*/
public function refund($storeId, $refundId, $refundAmount = 0, $text = '', $seller_state = 2)
public function refund($storeId, $sellerId, $sellerName, $refundId, $refundAmount = 0, $text = '', $seller_state = 2)
{
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
......@@ -236,6 +241,10 @@ class RefundServiceModel extends \Business\AbstractModel
return false;
}
//$this->recordSellerLog('退款处理,退款编号:'.$refund['refund_sn']); //待确认
//记录操作日志
$sellerLogDAO = \DAO\SellerLogModel::getInstance();
$sellerLogDAO->record('拒绝退款处理,退款编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId));
$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']));
......@@ -259,7 +268,9 @@ class RefundServiceModel extends \Business\AbstractModel
$state = $refundReturnDao->editRefundReturn($whereRefund, $refund_array);
if($state){ //退款记录成功
//$this->recordSellerLog('退款处理,退款编号:'.$refund['refund_sn']); //待确认
//记录操作日志
$sellerLogDAO = \DAO\SellerLogModel::getInstance();
$sellerLogDAO->record('同意退款处理,退款编号:'.$refund['refund_sn'], array('seller_id'=>$sellerId, 'seller_name'=>$sellerName, 'store_id'=>$storeId));
// add by ky start
//检测该店铺是否开启直接退款功能
......@@ -795,7 +806,7 @@ class RefundServiceModel extends \Business\AbstractModel
$refundStateName=$refundReturnDao->getRefundTextStatus($refundArrayUnLine);
$orderGoodsDao->update(array('rec_id'=>$orderGoods['recId']),array('refund_state_name'=>$refundStateName,'refund_id'=>$state));
$orderLogDao->addRefundOrderLog($orderInfo['orderId'],$refundArray['refund_type'],DescribeConst::buyer,$orderInfo['buyerName'],$orderInfo['orderState']);
\Our\RedisHelper::rpush('client_push',array('storeId'=>$refund['storeId'],'type'=>ApiConst::messageRefundProccessing,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('id'=>$refund['refundId'])));
\Our\RedisHelper::rpush('client_push',array('storeId'=>$refund['storeId'],'type'=>ApiConst::messageRefundProccessing,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'getRefundDetail','refundId'=>$refund['refundId'])));
if ($orderInfo['orderState'] == ApiConst::orderStateWaitRecieve) {
$orderDao->editOrderLock($orderInfo['orderId']);
}
......@@ -881,6 +892,11 @@ class RefundServiceModel extends \Business\AbstractModel
}else{
$info['diliveryman']=new \stdClass();
}
if($this->clientType==NameConst::pcClient){
$orderDao=\DAO\Order\OrderModel::getInstance();
$orderCommon=$orderDao->getClienOrderCommon($info['orderId']);
$info=array_merge($info,$orderCommon);
}
if (!$refundReturn) {
ErrorModel::throwException(CodeConfigModel::orderError);
} else {
......
......@@ -34,7 +34,6 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
private $lastFavId;
private $taskIndex;
private $taskSize;
public $clientType = false;
public function init()
{
......@@ -254,8 +253,8 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
}else{
$type=ApiConst::messageWaitSend;
}
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('id'=>$order['orderId'])));
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>$type,'op'=>NameConst::add,'num'=>ApiConst::one,'params'=>array('id'=>$order['orderId'])));
\Our\RedisHelper::rpush('client_push',array('storeId'=>$order['storeId'],'type'=>ApiConst::messageWaitReceive,'op'=>NameConst::reduce,'num'=>ApiConst::one,'params'=>array('c'=>'shopkeeper','m'=>'orderDetail','orderId'=>$order['orderId'])));
\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);
// \Our\RedisHelper::memberTotalFromStateToState($order['buyer_id'], $order['order_state'], ApiConst::orderStateWaitSend);
return $result;
......
......@@ -11,6 +11,37 @@ class FeedBackServiceModel extends \Business\AbstractModel
}
/**
* 店铺意见反馈
* @param $param
* @param $storeId
* @param $memberId
* @return bool
* @throws \Exception
*/
public function saveStoreFeedback($param, $storeId, $memberId) {
$storeDAO = \DAO\StoreModel::getInstance();
$feedbackDescribe = trim($param['feedbackDescribe']);
if(!$feedbackDescribe){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyFeedbackDescribe);
}
$feedbackTelephone = $storeDAO->getInfoById($storeId, 'store_phone', 'store_phone');
$insert = array();
$insert['feedback_type'] = 1; //店铺意见反馈
$insert['feedback_describe'] = $feedbackDescribe;
$insert['feedback_time'] = TIMESTAMP;
$insert['feedback_telephone'] = $feedbackTelephone;
$insert['member_id'] = $memberId;
$return = \DAO\FeedBackModel::getInstance()->insert($insert);
if(!$return){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveFeedbackError);
}
return true;
}
public function saveFeedback($param,$memberId){
$feedbackDescribe = trim($param['feedbackDescribe']);
$feedbackTelepone = trim($param['feedbackTelepone']);
......
......@@ -63,6 +63,12 @@ class MemberServiceModel extends \Business\AbstractModel
}
if($client=='seller'){
$storeRedisDb0=\Redis\Db0\StoreRedisModel::getInstance();
$storeFd=$storeRedisDb0->tableHGet(trim($member['store_id']),'fd');
if(!empty($storeFd)){
$push=\Our\Push::getInstance();
$push->addOneToClient(array('storeId'=>$member['store_id'],'type'=>\Our\ApiConst::messageOtherLogin,'op'=>NameConst::logOut,'num'=>\Our\ApiConst::zero,'params'=>array('c'=>'member','m'=>'logOut')));
$push->sendTcpMessage();
}
$this->updataSellerToken($member);
$member['sendTime']=TIMESTAMP;
$storeRedisDb0->tableHMSet(trim($member['store_id']),$member,ApiConst::tenDaySecond);
......
......@@ -257,19 +257,23 @@ class GoodsCommonModel extends \DAO\AbstractModel {
if($updateSaleNumFlag&&$op!=\Our\ApiConst::set){
$updateSaleNumOp = $op==\Our\ApiConst::minus?'+':'-';
}
$goodsCommonSql = 'goods_storage = case goods_commonid ';
$goodsCommonSql = ' goods_storage = case goods_commonid ';
$goodsEdittimeSql = ' goods_edittime = case goods_commonid ';
if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid ';
}
for ($i = 0; $i < count($datas); $i++) {
$goodsCommonSql .= \Our\Common::format(" WHEN {0} THEN goods_storage{1}{2} ", $datas[$i]['goodsCommonId'],\Our\ArrayConst::ops[$op], $datas[$i]['goodsNum']);
$goodsEdittimeSql .= \Our\Common::format(" WHEN {0} THEN goods_edittime={1}", $datas[$i]['goodsCommonId'],TIMESTAMP);
if($updateSaleNumFlag){
$saleNumSql .= \Our\Common::format(" when {0} THEN sale_num {1}{2} ", $datas[$i]['goodsCommonId'],$updateSaleNumOp, $datas[$i]['goodsNum']);
}
$dataIds[] = $datas[$i]['goodsCommonId'];
if ($i % 1000 == 0 && $i != 0) {
$goodsCommonSql = trim($goodsCommonSql,',').' END';
$goodsEdittimeSql = trim($goodsEdittimeSql,',').' END';
$updateAllSql .= $goodsCommonSql;
$updateAllSql .= $goodsEdittimeSql;
if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql;
......@@ -281,6 +285,7 @@ class GoodsCommonModel extends \DAO\AbstractModel {
}
$updateAllSql = $baseSql;
$goodsCommonSql = 'goods_storage = case goods_commonid ';
$goodsEdittimeSql = ' goods_edittime = case goods_commonid ';
if($updateSaleNumFlag){
$saleNumSql = 'sale_num = case goods_commonid ';
}
......@@ -289,7 +294,9 @@ class GoodsCommonModel extends \DAO\AbstractModel {
}
if ($goodsCommonSql) {
$goodsCommonSql = trim($goodsCommonSql,',').' END ';
$goodsEdittimeSql = trim($goodsEdittimeSql,',').' END';
$updateAllSql .= $goodsCommonSql;
$updateAllSql .= $goodsEdittimeSql;
if($updateSaleNumFlag){
$saleNumSql = ','.trim($saleNumSql,',').' END ';
$updateAllSql .= $saleNumSql;
......
......@@ -1095,7 +1095,17 @@ class OrderModel extends \DAO\AbstractModel
* pcClient 获得订单数量
*/
public function getClienOrderCommon($orderId){
$returnData=array();
$order = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$this, 'findByOrderId'), array($orderId), \Our\ApiConst::oneDaySecond, array($orderId));
$returnData['couponAmount'] = ($order['goodsAmount'] + $order['shippingFee']) - $order['orderAmount'];//优惠券金额
$returnData['receiveAmount'] = $order['goodsAmount'] - $returnData['couponAmount'];
$returnData['orderAmount'] = $order['orderAmount'] + $returnData['couponAmount'];
$returnData['shippingFee']=$order['shippingFee'];
return $returnData;
}
public function getCountByOrderState($storeId,$orderState){
$where['store_id']=$storeId;
$where['order_state']=$orderState;
......
<?php
namespace DAO;
/**
* 卖家操作日志
* Class SellerLogModel
* @package DAO
*/
class SellerLogModel extends \DAO\AbstractModel {
private $logField = 'log_content as logContent , log_time as logTime';
/**
* 表名
*
* @var string
*/
protected $_tableName = 'han_seller_log';
/**
* 主键
*
* @var string
*/
protected $_primaryKey = 'log_id';
public function init(){
}
public function insert($param){
$param['log_time'] =TIMESTAMP;
$this->setDb(\Our\DbNameConst::masterDBConnectName);
return $this->db->insert($this->_tableName)->rows($param)->execute();
}
/**
* 记录操作日志
* @param $content
* @param int $state
* @param array $seller
* @return mixed
*/
public function record($content, $seller = array(), $state = 1){
$seller_info = array();
$seller_info['log_content'] = $content;
$seller_info['log_time'] = TIMESTAMP;
$seller_info['log_seller_id'] = $seller['seller_id'];
$seller_info['log_seller_name'] = $seller['seller_name'];
$seller_info['log_store_id'] = $seller['store_id'];
$seller_info['log_seller_ip'] = $_SERVER['REMOTE_ADDR'];
$seller_info['log_url'] = $_SERVER['REQUEST_URI'];
$seller_info['log_state'] = $state;
return $this->insert($seller_info);
}
public function getList($where){
$this->setDb($this->dbName);
if(is_array($where)){
$where=$this->db->getSqlWhereByArray($where);
}
$result = $this->db->select($this->logField)->from($this->_tableName)->where($where)->fetchAll();
return $result;
}
/**
* 类实例
*
* @var \DAO\UserModel
*/
private static $_instance = null;
/**
* 获取类实例
*
* @return \DAO\UserModel
*/
public static function getInstance($dbName=\Our\DbNameConst::salveDBConnectName) {
if (!(self::$_instance instanceof self)) {
self::$_instance = new self($dbName);
}
return self::$_instance;
}
}
......@@ -7,7 +7,7 @@ class FeedbackController extends \Our\Controller_AbstractClient {
}
public function saveFeedbackAction(){
$msg = \Business\User\FeedBackServiceModel::getInstance()->saveFeedback($this->req[\Our\NameConst::data], $this->storeId, $this->memberId);
$msg = \Business\User\FeedBackServiceModel::getInstance()->saveStoreFeedback($this->req[\Our\NameConst::data], $this->storeId, $this->memberId);
$this->success('');
}
}
\ No newline at end of file
......@@ -246,6 +246,8 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
$this->success($res);
}
/**
* 同意退款
*/
......@@ -257,7 +259,7 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
$refundService=\Business\Order\RefundServiceModel::getInstance();
$refundAmount = floatval($this->req['data']['refundAmount']);
$text = trim($this->req['data']['text']);
$res = $refundService->refund($this->storeId, $refundId,$refundAmount, $text);
$res = $refundService->refund($this->storeId, $this->sellerId, $this->sellerName, $refundId, $refundAmount, $text);
$this->success($res);
}
......@@ -271,7 +273,7 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
}
$refundService=\Business\Order\RefundServiceModel::getInstance();
$text = trim($this->req['data']['text']);
$res = $refundService->refund($this->storeId, $refundId,0, $text, 3);
$res = $refundService->refund($this->storeId, $this->sellerId, $this->sellerName, $refundId,0, $text, 3);
$this->success($res);
}
......@@ -286,7 +288,7 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
}
$refundService=\Business\Order\RefundServiceModel::getInstance();
$goodsState= intval($this->req['data']['goodsState']);
$res = $refundService->receive($this->storeId, $refundId, $goodsState);
$res = $refundService->receive($this->storeId, $this->sellerId, $this->sellerName, $refundId, $goodsState);
$this->success($res);
}
......@@ -314,6 +316,18 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
$this->success($res);
}
/**
* 获得退款详情接口
*
* @ccw
*/
public function getRefundDetailAction(){
$refundService =\Business\Order\RefundServiceModel::getInstance();
$res=$refundService->getInfo($this->req[\Our\NameConst::data]['refundId']);
$this->success($res);
}
}
......@@ -59,19 +59,20 @@ class UserController extends \Our\Controller_AbstractIndex {
// }
// $userToken=$this->memberService->findMbUserTokenByMemberId($shopKeeperServvice['token']);
if($member){
$this->memberService->clearKey($this->key);
//$this->memberService->clearKey($this->key);
$this->key=Common::bulidToken($mobile,$password);
session_id($this->key);
$this->sess['member_id']=(int)$member['member_id'];
$this->sess['store_id']=(int)$seller['storeId'];
$this->sess['seller_name']=$seller['sellerName'];
$this->sess['seller_id']=$seller['sellerId'];
$this->sess[NameConst::sessionKey]=$this->key;
$member[NameConst::sessionKey]=$this->key;
$member['store_id']=$seller['storeId'];
$member['seller_id']=$seller['sellerId'];
$member['seller_name']=$seller['sellerName'];
//通知退出
$push=\Our\Push::getInstance();
$push->addOneToClient(array('storeId'=>$member['store_id'],'type'=>\Our\ApiConst::messageOtherLogin,'op'=>NameConst::logOut,'params'=>array('c'=>'member','m'=>'logOut')));
$push->sendTcpMessage();
$this->memberService->saveMember($member,'seller');
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberMobile'=>$member['member_mobile'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'],'storeId'=>(int)$seller['storeId']));
}else{
......
......@@ -472,8 +472,8 @@ password.key='~!@#$`1234qwertasdfgzxcvb'
;redis.database.params.password = "test"
;推送配置
push.clientHost="ws://192.168.80.18:9502"
push.host="192.168.80.18"
push.clientHost="ws://127.0.0.1:9502"
push.host="127.0.0.1"
push.port="9503"
push.open=1
push.user.service.id=293
......
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