Commit 55b42f84 authored by wwccw0591's avatar wwccw0591

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

parents 7f2f6488 7f1fc3e2
File mode changed from 100755 to 100644
...@@ -8,23 +8,57 @@ use Zend\Json\Server\Exception\ErrorException; ...@@ -8,23 +8,57 @@ use Zend\Json\Server\Exception\ErrorException;
class GoodsCommonServiceModel extends \Business\AbstractModel class GoodsCommonServiceModel extends \Business\AbstractModel
{ {
private $goodsStorageField = 'goods_id goodsId,goods_name goodsName,goods_verify goodsVerify,goods_state goodsState,goods_image goodsImage,goods_price goodsPrice,goods_storage goodsStorage,goods_spec goodsAttr'; private $goodsStorageField = 'goods_id goodsId,goods_name goodsName,goods_verify goodsVerify,goods_state goodsState,goods_image goodsImage,goods_price goodsPrice,goods_storage goodsStorage,goods_spec goodsAttr';
private $setStorageType = array('add'=> 1, 'set'=>2);
public function init() { public function init() {
} }
public function setGoodsStorage($storeId, $goodsId, $num = 0, $type='set') {
if($goodsId === 0){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::commonError);
}
$goodsDao=\DAO\GoodsModel::getInstance();
$commonDao = \DAO\GoodsCommonModel::getInstance();
$where = array();
$where['store_id'] = $storeId;
$where['goods_id'] = $goodsId;
$data = $goodsDao->find($where, 'goods_id, goods_commonid');
if(!$data) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::goodsNotExist);
}
$op = isset($this->setStorageType[$type]) ? $this->setStorageType[$type] : 2; //默认设置库存
$goodsDao->db->doTransaction();
$ret1 = $goodsDao->updateStorage($goodsId, $num, $op);
$ret2 = true;
if($op==1) { //如果就库存调整
$ret2 = $commonDao->updateStorage($data['goods_commonid']);
}
if(!$ret1 || !$ret2) {
$goodsDao->db->doRollback();
\Error\ErrorModel::throwException(\Error\CodeConfigModel::updateGoodsStorageForOrder);
}
$goodsDao->db->doCommit();
return array();
}
/** /**
* 获取商品库存方法 * 获取商品库存方法
* * @author king
*/ */
public function getGoodsStorageList($storeId, $pageIndex = ApiConst::zero, $pageSize = ApiConst::pageSize) public function getGoodsStorageList($storeId, $pageIndex = ApiConst::zero, $pageSize = ApiConst::pageSize)
{ {
$goodsDao=\DAO\GoodsModel::getInstance(DbNameConst::salveDBConnectName); $goodsDao=\DAO\GoodsModel::getInstance();
$where = array(); $where = array();
$where[] = 'store_id = '.$storeId; $where[] = 'store_id = '.$storeId;
$where[] = 'goods_storage_alarm > 0';
$where[] = 'goods_storage<=goods_storage_alarm'; $where[] = 'goods_storage<=goods_storage_alarm';
//获得列表 //获得列表
$datas = $goodsDao->getListPage(implode($where, ' and '), $this->goodsStorageField, $pageIndex, $pageSize); if($datas = $goodsDao->getList(implode($where, ' and '), $this->goodsStorageField)) {
foreach ($datas as $key=>$val) {
$datas[$key]['goodsAttr'] = $goodsDao->getFormatGoodsAttr($val['goodsAttr']);
}
}
//获得售后商品列表getOrderGoodsByRecIds //获得售后商品列表getOrderGoodsByRecIds
if (!empty($datas)) { if (!empty($datas)) {
...@@ -1230,6 +1264,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel ...@@ -1230,6 +1264,8 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
} }
private static $_instance = null; private static $_instance = null;
/** /**
......
...@@ -33,7 +33,9 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -33,7 +33,9 @@ class RefundServiceModel extends \Business\AbstractModel
private $refunReasonField = 'reason_id as reasonId,reason_info as reasonInfo,sort'; private $refunReasonField = 'reason_id as reasonId,reason_info as reasonInfo,sort';
//获得退款详情字段 //获得退款详情字段
private $refundReturnField = 'refund_id as refundId,order_id as orderId,order_sn as orderSn,refund_sn as refundSn,store_id as storeId,store_name as storeName,goods_id as goodsId,order_goods_id as orderGoodsId,goods_name as goodsName,goods_num as goodsNum,refund_amount as refundAmount,goods_image as goodsImage,refund_type as refundType,seller_state as sellerState,refund_state as refundState,return_type as returnType,add_time as addTime,seller_time as sellerTime,admin_time as adminTime,reason_info as reasonInfo,pic_info as picInfo,buyer_message as buyerMessage,seller_message as sellerMessage,admin_message adminMessage,express_id as expressId,invoice_no as invoiceNo,ship_time as shipTime,delay_time as delayTime,receive_time as receiveTime,shipping_over as shippingOver,shipping_sign as shippingSign,shipping_html as shippingHtml,is_suc_refund as isSucRefund,refund_shipping_type as refundShippingType,address_id as addressId,diliveryman_id as diliverymanId,is_platform_in as isPlatformIn,platform_in_reason as platformInReason,platform_state as platformState,seller_state as sellerState,return_type as returnType,refund_shipping_type as refundShippingType,buyer_refund_amount as buyerRefundAmount,reason_id as reasonId,receive_message as receiveMessage,goods_state as goodsState'; private $refundReturnField = 'refund_id as refundId,order_id as orderId,order_sn as orderSn,refund_sn as refundSn,store_id as storeId,store_name as storeName,seller_state as sellerState,goods_id as goodsId,order_goods_id as orderGoodsId,goods_name as goodsName,goods_num as goodsNum,refund_amount as refundAmount,goods_image as goodsImage,refund_type as refundType,refund_state as refundState,return_type as returnType,add_time as addTime,seller_time as sellerTime,admin_time as adminTime,reason_info as reasonInfo,pic_info as picInfo,buyer_message as buyerMessage,seller_message as sellerMessage,admin_message adminMessage,express_id as expressId,invoice_no as invoiceNo,ship_time as shipTime,delay_time as delayTime,receive_time as receiveTime,shipping_over as shippingOver,shipping_sign as shippingSign,shipping_html as shippingHtml,is_suc_refund as isSucRefund,refund_shipping_type as refundShippingType,address_id as addressId,diliveryman_id as diliverymanId,is_platform_in as isPlatformIn,platform_in_reason as platformInReason,platform_state as platformState,seller_state as sellerState,return_type as returnType,refund_shipping_type as refundShippingType,buyer_refund_amount as buyerRefundAmount,reason_id as reasonId,receive_message as receiveMessage,goods_state as goodsState';
private $storeRefundReturnField = 'refund_id as refundId,order_id as orderId,order_sn as orderSn,refund_sn as refundSn,store_id as storeId,store_name as storeName,seller_state as sellerState,goods_id as goodsId,order_goods_id as recId,goods_name as goodsName,goods_num as goodsNum,refund_amount as refundAmount,buyer_refund_amount as buyerRefundAmount,goods_image as goodsImage,refund_type as refundType,refund_state as refundState,return_type as returnType,add_time as addTime,seller_time as sellerTime,admin_time as adminTime,reason_id as reasonId,reason_info as reasonInfo,pic_info as picInfo,buyer_message as buyerMessage,seller_message as sellerMessage,admin_message adminMessage,express_id as expressId,invoice_no as invoiceNo,ship_time as shipTime,delay_time as delayTime,receive_time as receiveTime,receive_message as receiveMessage,shipping_over as shippingOver,shipping_sign as shippingSign,shipping_html as shippingHtml,is_suc_refund as isSucRefund,refund_shipping_type as refundShippingType,address_id as addressId,diliveryman_id as diliverymanId,is_platform_in as isPlatformIn,platform_in_reason as platformInReason,platform_state as platformState,return_type as returnType,refund_shipping_type as refundShippingType,goods_state as goodsState';
private $order; private $order;
...@@ -58,6 +60,60 @@ class RefundServiceModel extends \Business\AbstractModel ...@@ -58,6 +60,60 @@ class RefundServiceModel extends \Business\AbstractModel
return $this->orderGoodsField . ',goods_commonid as goodsCommonid,goods_commonid as goodsCommonId,goods_spec as goodsSpec '; return $this->orderGoodsField . ',goods_commonid as goodsCommonid,goods_commonid as goodsCommonId,goods_spec as goodsSpec ';
} }
/**
* 店铺退款列表
* @param $storeId
* @param int $type
* @param int $pageIndex
* @param int $pageSize
* @return \stdClass
*/
public function getStoreRefundList($storeId, $type=0,$pageIndex = ApiConst::zero, $pageSize = ApiConst::pageSize)
{
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::salveDBConnectName);
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance(DbNameConst::salveDBConnectName);
$goodsDao=\DAO\GoodsModel::getInstance(DbNameConst::salveDBConnectName);
$where['store_id'] = $storeId;
$order = array('add_time' => 'desc');
switch($type) {
case 1:
$where['refund_state'] = 1;
break;
case 2:
$where['refund_state'] = 2;
$where['refund_type'] = 2;
$order= array('receive_time'=> 'asc');
break;
}
//获得售后列表
$refundReturns = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$refundReturnDao, 'getList'), array($where, $this->storeRefundReturnField, $pageIndex, $pageSize, $order), \Our\ApiConst::oneDaySecond, array($storeId));
$orderGoodsId = array_column($refundReturns['list'], 'orderGoodsId');
//获得售后商品列表getOrderGoodsByRecIds
if (!empty($orderGoodsId)) {
$orderGoods = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderGoodsDao, 'getOrderGoodsByRecIds'), array($orderGoodsId, $this->orderGoodsField), \Our\ApiConst::oneDaySecond, array($memberId));
$refundMerge = Common::intergrateOneToOne($refundReturns['list'], $orderGoods, 'orderGoodsId', 'recId');
foreach ($refundMerge as &$value) {
$value['stateName'] = $refundReturnDao->getRefundTextStatus($value);
$value['blId'] = isset($value['blId']) ? (!is_null($value['blId']) ? $value['blId'] : ApiConst::zero) : ApiConst::zero;
$value['canPlatformIn'] = $refundReturnDao->isPlatformIn($value) ? ApiConst::one : ApiConst::zero;
$value['canSendShippingType'] = $refundReturnDao->checkIsAddReturnShipping($value) ? ApiConst::one : ApiConst::zero;
$value['goodsImage'] = ImageUtil::getGoodsImgUrl($value['goodsImage'], ApiConst::goodsSmallSize);
$value['goodsAttr']=$goodsDao->getFormatGoodsAttr($value['goodsSpec']);
$goodGroup=unserialize($value['goodsGroup']);
$value['goodsGroup']=!empty($goodGroup)?$goodGroup:[];
unset($value['goodsSpec']);
unset($value['picInfo']);
}
$returnData['refundReturns'] = $refundMerge;
$returnData['totalCount'] = $refundReturns['totalCount'];
return $returnData;
} else {
return new \stdClass();
}
}
/** /**
* 退款列表 * 退款列表
* *
......
...@@ -309,11 +309,14 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -309,11 +309,14 @@ class MemberServiceModel extends \Business\AbstractModel
return $result; return $result;
} }
private function saveWxInfoMemberInfo($where){ private function saveWxInfoMemberInfo($where,$openid=null){
$memberDao = \DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName); $memberDao = \DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
//构造需要保存的会员信息 //构造需要保存的会员信息
$member['member_name'] = \Our\CommonExtension::createNewMemberName(); $member['member_name'] = \Our\CommonExtension::createNewMemberName();
if($openid){
$member['member_mobile'] = $openid;
}
$result = $memberDao->addInfo($member); $result = $memberDao->addInfo($member);
return $result; return $result;
} }
...@@ -855,7 +858,8 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -855,7 +858,8 @@ class MemberServiceModel extends \Business\AbstractModel
return $returnMember; return $returnMember;
} }
$db->doTransaction(); $db->doTransaction();
$memberId = $this->saveWxInfoMemberInfo($where); $openid = $this->getUnionId($where['encryptedData'],$where['iv'],$where['session_key']);
$memberId = $this->saveWxInfoMemberInfo($where,$openid);
if(!$memberId){ if(!$memberId){
$db->doRollback(); $db->doRollback();
......
...@@ -29,6 +29,25 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -29,6 +29,25 @@ class GoodsModel extends \DAO\AbstractModel {
public function init(){ public function init(){
} }
/**
* 更新商品表商品库存
* @param $goodsId 商品ID
* @param $num 库存数量
* @param $op 1增加 2设置
* @return mixed
*/
public function updateStorage($goodsId, $num, $op) {
$this->setDb();
$whereSql = 'goods_id='.$goodsId;
if($op==1){ //调整库存
$updateSql = 'goods_storage = goods_storage'.($num<0 ? '-'.(-$num) : '+'.$num);
} else { //调整库存预警为不需要预警
$updateSql = 'goods_storage_alarm =0';
}
$updateAllSql = "UPDATE {$this->_tableName} set {$updateSql} where {$whereSql}";
return $this->db->update($this->_tableName)->query($updateAllSql);
}
/** /**
* *
* 分页获取商品列表 * 分页获取商品列表
...@@ -44,7 +63,7 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -44,7 +63,7 @@ class GoodsModel extends \DAO\AbstractModel {
$this->setDb($this->dbName); $this->setDb($this->dbName);
if($datas = $this->lists($where, $order, $field, $pageIndex, $pageSize)) { if($datas = $this->lists($where, $order, $field, $pageIndex, $pageSize)) {
foreach ($datas['list'] as $key=>$val) { foreach ($datas['list'] as $key=>$val) {
$datas['list'][$key]['goodsAttr'] = $this->getFormatGoodsAttr($val['goodsAttrs']); $datas['list'][$key]['goodsAttr'] = $this->getFormatGoodsAttr($val['goodsAttr']);
} }
} }
return $datas ? $datas : array(); return $datas ? $datas : array();
...@@ -330,7 +349,12 @@ class GoodsModel extends \DAO\AbstractModel { ...@@ -330,7 +349,12 @@ class GoodsModel extends \DAO\AbstractModel {
return $goodsList; return $goodsList;
} }
/**
* 更新库存
* @param $dataList
* @param int $op
* @return bool
*/
public function updateGoodsStorage($dataList,$op=\Our\ApiConst::zero){ public function updateGoodsStorage($dataList,$op=\Our\ApiConst::zero){
$datas = array_values($dataList); $datas = array_values($dataList);
$this->setDb(\Our\DbNameConst::masterDBConnectName); $this->setDb(\Our\DbNameConst::masterDBConnectName);
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
namespace DAO; namespace DAO;
use \Our\Common; use \Our\Common;
use Our\CommonExtension;
...@@ -14,6 +15,7 @@ class GoodsCommonModel extends \DAO\AbstractModel { ...@@ -14,6 +15,7 @@ class GoodsCommonModel extends \DAO\AbstractModel {
* @var string * @var string
*/ */
protected $_tableName = 'han_goods_common'; protected $_tableName = 'han_goods_common';
protected $_child_tableName = 'han_goods';
/** /**
* 主键 * 主键
...@@ -25,6 +27,22 @@ class GoodsCommonModel extends \DAO\AbstractModel { ...@@ -25,6 +27,22 @@ class GoodsCommonModel extends \DAO\AbstractModel {
public function init(){ public function init(){
} }
/**
* 更新商品主表商品库存
* @param $goodsId 商品ID
* @param $num 库存数量
* @param $op 1增加 2设置
* @return mixed
*/
public function updateStorage($goodsCommonid) {
$this->setDb();
$whereSql = 'goods_commonid='.$goodsCommonid;
$updateSql = 'goods_storage = (select sum(t.goods_storage) from '.$this->_child_tableName.' t where t.goods_commonid='.$goodsCommonid.')';
$updateAllSql = "UPDATE {$this->_tableName} set {$updateSql} where {$whereSql}";
return $this->db->update($this->_tableName)->query($updateAllSql);
}
public function getOneById($goodsCommonId,$field = \Our\NameConst::allField){ public function getOneById($goodsCommonId,$field = \Our\NameConst::allField){
$this->setDb($this->dbName); $this->setDb($this->dbName);
return $this->db->select($field)->from($this->_tableName)->where(array('goods_commonid'=>$goodsCommonId))->fetchOne(); return $this->db->select($field)->from($this->_tableName)->where(array('goods_commonid'=>$goodsCommonId))->fetchOne();
......
...@@ -182,10 +182,11 @@ class ShopkeeperController extends \Our\Controller_AbstractClient { ...@@ -182,10 +182,11 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
* 获得售后列表 * 获得售后列表
*/ */
public function getRefunds(){ public function getRefunds(){
$type = intval($this->req['data']['type']);
$refundService=\Business\Order\RefundServiceModel::getInstance(); $refundService=\Business\Order\RefundServiceModel::getInstance();
$pageIndex=$this->getPageIndex(); $pageIndex=$this->getPageIndex();
$pageSize=$this->getPageSize(); $pageSize=$this->getPageSize();
$res=$refundService->getList($this->memberId,$pageIndex,$pageSize); $res=$refundService->getStoreRefundList($this->storeId, $type, $pageIndex, $pageSize);
$this->success($res); $this->success($res);
} }
...@@ -221,15 +222,29 @@ class ShopkeeperController extends \Our\Controller_AbstractClient { ...@@ -221,15 +222,29 @@ class ShopkeeperController extends \Our\Controller_AbstractClient {
$res=$res?$res:new \stdClass(); $res=$res?$res:new \stdClass();
$this->success($res,\Our\DescribeConst::successMessage); $this->success($res,\Our\DescribeConst::successMessage);
} }
/** /**
* 单一属性商品库存预警 * 单一属性商品库存预警
*/ * @author king
*/
public function warningAction(){ public function warningAction(){
$goodsCommonService = \Business\Goods\GoodsCommonServiceModel::getInstance(); $goodsCommonService = \Business\Goods\GoodsCommonServiceModel::getInstance();
$pageIndex=$this->getPageIndex(); $pageIndex=$this->getPageIndex();
$pageSize=$this->getPageSize(); $pageSize=$this->getPageSize();
$res = $goodsCommonService->getGoodsStorageList($this->store_id, $pageIndex, $pageSize); $res = $goodsCommonService->getGoodsStorageList($this->storeId, $pageIndex, $pageSize);
$this->success($res);
}
/**
* 添加库存
* @author king
*/
public function addStockAction(){
$goodsCommonService = \Business\Goods\GoodsCommonServiceModel::getInstance();
$goodsId = (int)$this->req['data']['goodsId'];
$num = (int)$this->req['data']['num'];
$type = trim($this->req['data']['type']);
$res = $goodsCommonService->setGoodsStorage($this->storeId, $goodsId, $num, $type);
$this->success($res); $this->success($res);
} }
......
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