Commit a8b38774 authored by wwccw0591's avatar wwccw0591

pc

parent e4f99a5d
......@@ -959,7 +959,7 @@ class OrderConfirmUtil {
$memberId = $orderList[0]['buyer_id'];
$updateOrder = array();
$updateOrder['order_state'] = \Our\ApiConst::orderStateWaitConfirm;
$updateOrder['is_receive_payment'] = \Our\ApiConst::one;
$updateOrder['is_receive_payment'] = TIMESTAMP;
$updateOrder['payment_time'] = (isset($data['payment_time'])? strtotime($data['payment_time']) : TIMESTAMP);
$updateOrder['payment_type'] = $this->getOrderPaymentType($data['pay_type']);
$orderUpdateResult = $orderModel->update($orderCon,$updateOrder);
......
......@@ -268,14 +268,14 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
return $data;
}
public function getRetrunDatas($storeId, $where, $pageIndex, $pageSize)
public function getRetrunDatas($storeId, $where, $pageIndex, $pageSize,$order = array('gmt_update' => 'desc'))
{
$orderGoodsDao = \DAO\Order\OrderGoodsModel::getInstance();
$orderDao = \DAO\Order\OrderModel::getInstance();
$goodsDao = \DAO\GoodsModel::getInstance();
$orderCommonDao = \DAO\Order\OrderCommonModel::getInstance();
$returnData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderDao, 'getList'), array($where, $orderDao->getOrderDetailField(), $pageIndex, $pageSize, $order = array('gmt_update' => 'desc')), \Our\ApiConst::oneDaySecond, array($storeId));
$returnData = \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$orderDao, 'getList'), array($where, $orderDao->getOrderDetailField(), $pageIndex, $pageSize, $order, \Our\ApiConst::oneDaySecond, array($storeId)));
//$returnData = $orderDao->getOrders($where, $this->orderListField, $pageIndex, $pageSize);
$orders = $returnData['list'];
if (!empty($orders)) {
......@@ -363,6 +363,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
public function getOrders($memberId, $pageIndex, $pageSize, $orderState, $keyword)
{
$order = array('gmt_update' => 'desc');
$storeId = $this->_getStoreByMemberId($memberId);
if (empty($storeId)) {
ErrorModel::throwException(CodeConfigModel::paramsError);
......@@ -383,6 +384,10 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
if ($orderState == ApiConst::oneHandred) {
$where .= ' and han_order.shipping_type=' . ApiConst::bySelf;
} else {
$order=array(
'diliveryman_id'=>'asc',
'gmt_update'=>'asc'
);
$where .= ' and han_order.shipping_type=' . ApiConst::bySeller;
}
......@@ -394,7 +399,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
}
if (!empty($where)) {
$returnData = $this->getRetrunDatas($storeId, $where, $pageIndex, $pageSize);
$returnData = $this->getRetrunDatas($storeId, $where, $pageIndex, $pageSize,$order);
} else {
$returnData = new \stdClass();
}
......@@ -417,6 +422,23 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
return \Our\RedisHelper::cachedFunction(\Redis\Db5\OrderRedisModel::getInstance(), array(&$diliveryMan, 'getDeliveryManByStoreId'), array($storeId), \Our\ApiConst::oneHourCache, array($storeId));
}
public function confirmReceivePayment($memberId,$orderId){
$memberDao = \DAO\MemberModel::getInstance();
$storeId = $memberDao->getInfo($memberId, 'store_id');
$orderDao=\DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$where['order_id']=$orderId;
$where['store_id']=$storeId;
$count=$orderDao->getCountByWhere($where);
if($count){
$data['is_receive_payment']=TIMESTAMP;
$updateId=$orderDao->updateByOrderId($data,$orderId);
return $updateId;
}else{
ErrorModel::throwException(CodeConfigModel::notExsitOrder);
}
}
/**
* 订单详情
*/
......@@ -886,6 +908,13 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
return $res;
}
public function getDiliveryMan($mobile){
$memberDao = \DAO\MemberModel::getInstance();
$member= $memberDao->getByMemberMobile($mobile);
return $member;
}
/**
* 登录业务
*
......
<?php
namespace DAO;
use Error\CodeConfigModel;
use Error\ErrorModel;
use Our\Common;
use Our\ImageConst;
use Our\Log;
use Our\NameConst;
use Our\ApiConst;
use Our\Validate;
/**
* 用户数据层
*/
class MemberModel extends \DAO\AbstractModel
{
private $memberMysql;
protected $_tableName = 'han_member';
//有效用户返回数据
private $availMemberColumn = array('member_id', 'member_name', 'member_truename', 'member_avatar', 'member_sex', 'member_birthday', 'member_mobile', 'member_mobile_bind', 'member_qq', 'member_qqopenid', 'member_qqinfo', 'member_wxinfo', 'member_wxopenid', 'member_sinaopenid', 'member_sinainfo', 'member_points', 'member_state', 'member_quicklink', 'member_exppoints', 'store_id', 'iswx', 'agree_flag', 'seller_id', 'diliveryman_id', 'member_tag_ids', 'member_group_ids', 'is_teacher', 'member_email', 'member_email_bind','is_wxsend');
//有效用户返回数据
private $memberColumn = array('member_id', 'member_name','member_truename', 'member_avatar', 'member_sex', 'member_birthday', 'member_mobile', 'member_mobile_bind', 'member_qq', 'member_qqopenid', 'member_qqinfo', 'member_wxinfo', 'member_wxopenid', 'member_sinaopenid', 'member_sinainfo', 'member_points', 'member_state', 'member_quicklink', 'member_exppoints', 'store_id', 'iswx', 'agree_flag', 'seller_id', 'diliveryman_id', 'member_tag_ids', 'member_group_ids', 'is_teacher', 'member_email', 'member_email_bind','is_wxsend','member_state');
public function init()
{
$this->memberMysql = \Mysql\MemberModel::getInstance();
}
/**
* 获取会员头像
* @param $memberId 对应会员ID
* @param $memberAvatar 会员对应member_avatar字段
* @return string
*/
public function getMemberAvatarUrl($memberId, $memberAvatar)
{
$filename = \Our\ImageConst::defaultMemberAvatarName;
if ($memberAvatar) {
if (strpos($memberAvatar, \Our\NameConst::http) === 0) {
return $memberAvatar;
}else{
$filename = $memberAvatar;
}
//$filename = \Our\ImageConst::memberAvatarPrefix . $memberId;
}
return \Our\Common::getStaticFile($filename, \Our\ImageConst::memberAvatar);
}
public function getMemberAvatar($memberId){
$basePath=\Bootstrap::getUrlIniConfig('source');
$memberPath=ImageConst::memberAvatar;
$fileName=Common::format(ImageConst::memberAvatarPrefix."{0}".'.jpg',$memberId);
$file=$basePath.$memberPath.$fileName;
if(file_exists($file)){
if($fileName=='member_avatar_26.jpg'){
Log::getInstance()->write($file.'1',"/data/log/test");
}
$avatar=\Our\Common::getStaticFile($fileName, \Our\ImageConst::memberAvatar);
}else{
if($fileName=='member_avatar_26.jpg'){
Log::getInstance()->write($file.'2',"/data/log/test");
}
$memerAvatar = $this->getInfo($memberId, 'member_avatar');
$avatar = $this->getMemberAvatarUrl($memberId, $memerAvatar);
}
return $avatar;
}
//原生方法
public function query()
{
$mysql = \Mysql\Slave\MemberModel::getInstance();
$res = $mysql->query("select * from han_member");
echo json_encode($res);
exit;
}
//对主库进行操作
public function update($sql)
{
$mysql = \Mysql\UserModel::getInstance();
$res = $mysql->excute($sql);
return $res;
}
public function getOneByMobileAndPassword($mobile, $password)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$where[NameConst::memberMobile] = $mobile;
$addKey=Common::getConfig('password.key');
if(!empty($addKey)){
$where='';
$where=Common::format("(member_mobile = '{0}') AND (member_passwd = MD5(CONCAT(member_time,'{1}','{2}')))",$mobile,$password,$addKey);
// $where[NameConst::memberPasswd] = Common::format("MD5(CONCAT(member_time,member_passwd,'{0}'))",$addKey);
}else{
$where[NameConst::memberPasswd]=md5($password);
}
$result = $this->db->select($this->memberColumn)->from($this->_tableName)->where($where)->fetchOne();
if ($result) {
$memberAvatarUrl = $this->getMemberAvatarUrl($result['member_id'], $result['member_avatar']);
$result['memberAvatarUrl'] = $memberAvatarUrl;
}
return $result;
}
public function saveInfo($data, $memberId)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->update($this->_tableName)->rows($data)->where(array('member_id' => $memberId))->execute();
if ($result!==false) {
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$member = $data;
if (isset($member['member_avatar']) && $member['member_avatar']) {
$memberAvatarUrl = $this->getMemberAvatarUrl($memberId, $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
}
if(isset($member['member_passwd'])&&$member['member_passwd']){
unset($member['member_passwd']);
}
$memberDb0Redis->tableHMSet($memberId, $member);
}
return $result;
}
public function getWxUserToken($memberId){
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$member = $memberDb0Redis->tableHGAll($memberId);
$memberDb0Redis->tableExpire($memberId, ApiConst::tenDaySecond);
if(isset($member['wxUserToken'])&&$member['wxUserToken']){
return $member['wxUserToken'];
}
return \Our\NameConst::emptyString;
}
public function saveWxUserToken($key,$memberId){
$member = $this->getInfo($memberId);
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$memberDb0Redis->tableHMSet($memberId, array('wxUserToken'=>$key));
}
/**
* 保存用户信息
*/
public function addInfo($data)
{
// $this->setDb(\Our\DbNameConst::masterDBConnectName);
// $result = $this->db->insert($this->_tableName)->rows($data)->execute();
$result=$this->add($data);
if ($result) {
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$memberAvatar = '';
if (isset($data['member_avatar'])) {
$memberAvatar = $data['member_avatar'];
}
$memberAvatarUrl = $this->getMemberAvatarUrl($result, $memberAvatar);
$data['memberAvatarUrl'] = $memberAvatarUrl;
$data['member_id'] = $result;
$memberDb0Redis->tableHMSet($result, $data);
return $this->db->getInsertId();
}
return false;
}
/**
* 保存用户信息
*/
public function add($data)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->insert($this->_tableName)->rows($data)->execute();
return $result;
}
/**
* 类实例
*
* @var \DAO\UserModel
*/
private static $_instance = null;
public function getInfo($memberId, $field = false)
{
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
if ($field) {
$memberField = $memberDb0Redis->tableHGet($memberId, $field);
if (!empty($memberField)) {
return $memberField;
} else {
$one = $this->getOneByMemberId($memberId, $field);
return $one[$field];
}
} else {
$member = $memberDb0Redis->tableHGAll($memberId);
$memberDb0Redis->tableExpire($memberId, ApiConst::tenDaySecond);
if (!empty($member)) {
$return = array(
'memberId' => (int)$member['member_id'],
'memberName' => $member['member_name'],
'memberTrueName' => $member['member_truename'],
'memberAvatar' => $member['member_avatar'],
'memberSex' => (int)$member['member_sex'],
'memberBirthday' => $member['member_birthday'],
'memberEmail' => isset($member['member_email']) ? $member['member_email'] : '',
'memberEmailBind' => isset($member['member_email_bind']) ? (int)$member['member_email_bind'] : ApiConst::zero,
'memberMobile' => $member['member_mobile'],
'memberMobileBind' => (int)$member['member_mobile_bind'],
'memberWxinfo' => isset($member['member_wxinfo'])&&$member['member_wxinfo']? unserialize($member['member_wxinfo']) : new \stdClass(),
'memberWxopenid' => $member['member_wxopenid'],
'sellerId' => (int)$member['seller_id'],
'diliverymanId' => (int)$member['diliveryman_id'],
'storeId' => (int)$member['store_id'],
'memberAvatarUrl' => $member['memberAvatarUrl'],
'isWxsend'=>$member['is_wxsend'],
'pushSet'=>$member['push_set']
);
} else {
$member = $this->getOneByMemberId($memberId, '*');
$return = array(
'memberId' => $member['member_id'],
'memberName' => $member['member_name'],
'memberTrueName' => $member['member_truename'],
'memberAvatar' => $member['member_avatar'],
'memberSex' => $member['member_sex'],
'memberBirthday' => $member['member_birthday'],
'memberEmail' => isset($member['member_email']) ? $member['member_email'] : '',
'memberEmailBind' => isset($member['member_email_bind']) ? $member['member_email_bind'] : ApiConst::zero,
'memberMobile' => $member['member_mobile'],
'memberMobileBind' => $member['member_mobile_bind'],
'memberWxinfo' => isset($member['member_wxinfo']) ? unserialize($member['member_wxinfo']) : new \stdClass(),
'memberWxopenid' => $member['member_wxopenid'],
'sellerId' => $member['seller_id'],
'diliverymanId' => $member['diliveryman_id'],
'storeId' => $member['store_id'],
'memberAvatarUrl' => $member['memberAvatarUrl'],
'isWxsend'=>$member['is_wxsend'],
'pushSet'=>$member['push_set'],
);
foreach ($member as $key => $value) {
if (empty($value) || is_null($value)) {
$member[$key] = ApiConst::zero;
}
}
foreach ($return as $key => $value) {
if (empty($value) || is_null($value)) {
$return[$key] = ApiConst::zero;
}
}
$memberDb0Redis->tableHMSet($memberId, $member);
}
return $return;
}
}
public function updateInfo($data, $where)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->update($this->_tableName)->rows($data)->where($where)->execute();
return $result;
}
public function getOneByWhereWithField($where, $field)
{
$this->setDb($this->dbName);
$member = $this->db->from($this->_tableName)->select($field)->where($where)->fetchOne();
return $member;
}
public function getOneByMemberId($memberId, $field = '*')
{
$this->setDb($this->dbName);
$where['member_id'] = $memberId;
$member = $this->getOneByWhereWithField($where, $field);;
if(isset($member['member_avatar'])){
$memberAvatarUrl = $this->getMemberAvatarUrl($memberId, $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
}
return $member;
}
/**
* 获取类实例
*
* @return \DAO\UserModel
*/
public static function getInstance($dbName=\Our\DbNameConst::salveDBConnectName)
{
if (!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
/**
* 验证会员信息
* @param $where
* @return array
* @throws \Exception
*/
public function getValidMember($where)
{
if ($where['memberName']) {
if (!\Our\Validate::checkLengthRange($where['memberName'], 1, 25)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::memberNameLengthLimit);
}
}
/*if ($where['memberBirthday']) {
if (!\Our\Validate::checkDateStr($where['memberBirthday'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::memberBirthdayError);
}
if (strtotime($where['memberBirthday']) > strtotime(date('Y-m-d'))) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::illegalMemberBirthday);
}
}*/
if (!($where['memberSex'] && in_array($where['memberSex'], array(\Our\ApiConst::woman, \Our\ApiConst::man)))) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMemberSex);
}
$memberInfo['memberName'] = $where['memberName'];
$memberInfo['memberSex'] = $where['memberSex'];
$memberInfo = \Our\Common::convertHump($memberInfo);
return $memberInfo;
}
public function validMemberNameAndAvatar($where){
if(!$where['avatar']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyUserAvatar);
}
if(!$where['nickname']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyUserNickname);
}
return true;
}
public function validRegisterInfo($where)
{
if (!\Our\Common::checkMobilePhone($where['mobile'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
if (!$where['password']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyPassword);
}
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
if (!$where['deviceType']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyDeviceType);
}
if (!$where['deviceUniqueCode']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyDeviceUniqueCode);
}
return true;
}
public function checkChangedInfo($where)
{
$this->checkRegisterMobile($where);
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
/**
* 验证注册手机号码
*/
public function checkRegisterMobile($where)
{
$mobile = $where['mobile'];
if (!\Our\Common::checkMobilePhone($mobile)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
$member = $this->getOneByWhereWithField(array('member_mobile' => $mobile), 'member_id');
if ($member) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::registerMobileExist);
}
return true;
}
/**
* 验证手机是否存在有效用户
* @param $where
*/
public function checkLoginMobile($where)
{
$mobile = $where['mobile'];
if (!\Our\Common::checkMobilePhone($mobile)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
$member = $this->getOneByWhereWithField(array('member_mobile' => $mobile, 'member_state' => \Our\ApiConst::one), 'member_id');
if (!$member) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::memberMobileExist);
}
return true;
}
/**
* 微信用户绑定发送验证码时验证表单
* @param $where
* @param $memberId
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function checkWxBindMobileForSms($where,$memberId){
if(!$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wxMemberBindMobileSendCode);
}
$member = $this->getInfo($memberId);
if(($member['memberMobile']&&$member['memberMobileBind'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wxMemberHasBindMobile);
}
return true;
}
public function checkWxBindMobileCommon($where){
$mobile = $where['mobile'];
if (!\Our\Common::checkMobilePhone($mobile)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
$member = $this->getOneByWhereWithField(array('member_mobile' => $mobile, 'member_state' => \Our\ApiConst::one), 'member_id');
if ($member) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::mobileExistMember);
}
}
public function checkSaleMobile($where,$memberId) {
if(!$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saleNotLogin);
}
$member_mobile = $this->getInfo($memberId,'member_mobile');
if($member_mobile != $where['mobile']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::salePhoneError);
}
// $mobile = $where['mobile'];
// if (!\Our\Common::checkMobilePhone($mobile)) {
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
// }
// $member = $this->getOneByWhereWithField(array('member_mobile' => $mobile, 'member_state' => \Our\ApiConst::one), 'member_id');
// if ($member) {
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::mobileExistMember);
// }
}
/**
* 微信用户更改手机号码提交表单时验证
* @param $where
* @param $memberId
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function checkWxBindMobile($where){
$this->checkWxBindMobileCommon($where);
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
public function checkPassword($data)
{
if (!($data['password'] && $data['rePassword'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyPasswordAndRepassword);
}
if ($data['password'] != $data['rePassword']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::differentPasswordAndRepassword);
}
if (!\Our\Validate::checkPassword($data['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
/**
* 更换密码时验证密码和旧密码
* @param $data
* @param $memberId
* @throws \Exception
*/
public function checkOldPassword($data, $memberId)
{
if (!$data['oldPassword']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyOldPassword);
}
$memberCurrent = $this->getOneByWhereWithField(array('member_id' => $memberId), 'member_passwd,member_time');
$addKey=Common::getConfig('password.key');
if (!($memberCurrent && $memberCurrent['member_passwd'] == md5($memberCurrent['member_time'].$data['oldPassword'].$addKey))) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::worngOldPassword);
}
$this->checkPassword($data);
}
public function checkDelMember($data)
{
if (!(APP_ENV == 'test' || APP_ENV == 'develop'|| APP_ENV == 'pre')) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::noAvailForDelMember);
}
if (!$data['mobile']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyMobileForDelMember);
}
}
public function getMemberById($memberId)
{
$member = $this->getOneByWhereWithField(array('member_id' => $memberId), $this->availMemberColumn);
foreach ($member as $key => $value) {
if (empty($value) || is_null($value)) {
$member[$key] = \Our\ApiConst::zero;
}
}
$memberAvatarUrl = $this->getMemberAvatarUrl($member['member_id'], $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
return $member;
}
public function getMemberForLogin($memberIds){
$member = array();
$memberCon['member_id'] = array('in',$memberIds);
$memberCon['member_state'] = \Our\ApiConst::one;
$orders = array('member_mobile'=>'desc','member_id'=>'desc');
$memberList = $this->getList($memberCon,$this->availMemberColumn,$orders);
if($memberList){
$member = $memberList[0];
$memberAvatarUrl = $this->getMemberAvatarUrl($member['member_id'], $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
}
return $member;
}
public function del($where)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->delete($this->_tableName)->where($where)->execute();
return $result;
}
/**
* 个人中心统计数量更新
* @param $type
* /Our/NameConst
* const waitPay = 'waitPay';//待付款 order_state=10
* const waitShipments = 'waitShipments';//待发货 order_state=20,25
* const waitReceiving = 'waitReceiving';//待收货 order_state=30
* const waitEvaluate = 'waitEvaluate';//待评价 order_state=40 and evaluation_state=0,2
* const refund = 'refund';//退款中 seller_state=1 or (is_platform_in = 1 and platform_state = 0)
* const storeCollection = 'storeCollection';//店铺收藏数量
* const goodsCollection = 'goodsCollection';//商品收藏数量
* const footprint = 'footprint';//足迹数量
* @param $num
*/
public function _changeNum($type, $memberId, $num = 1)
{
$memebrCenterDb1Redis = \Redis\Db1\MemberCenterRedisModel::getInstance();
if ($memebrCenterDb1Redis->tableKeyExists($memberId) !== false) {
$memebrCenterDb1Redis->tableHIncrBy($memberId, $type, $num);
}
}
public function getList($where,$field = \Our\NameConst::allField,$orders = array()){
$this->setDb($this->dbName);
if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where);
}
if($orders){
foreach($orders as $key=>$order){
$this->db->order($key,$order);
}
}
return $this->db->from($this->_tableName)->select($field)->where($where)->fetchAll();
}
public function changeNum($memberId, $orderState, $evaluation_state = null, $num = 1)
{
switch ($orderState) {
case ApiConst::orderStateWaitPay:
$type = NameConst::waitPay;
break;
case ApiConst::orderStateWaitSend:
$type = NameConst::waitShipments;
break;
case ApiConst::orderStateWaitRecieve:
$type = NameConst::waitReceiving;
break;
case ApiConst::orderStateComplete:
$type = NameConst::waitEvaluate;
break;
default:
break;
}
if ($type) {
$this->_changeNum($type, $memberId, $num);
}
}
public function getListMemberUrl($list){
foreach($list as &$li){
$li['memberAvatar']=$this->getMemberAvatarUrl($li['memberId'],$li['memberAvatar']);
}
return $list;
}
//删除统计缓存
public function deleteTotalCache($memberId,$type=FALSE){
$memebrCenterDb1Redis = \Redis\Db1\MemberCenterRedisModel::getInstance();
if(!empty($type)){
$memebrCenterDb1Redis->tableHDel($memberId,$type);
}else{
//$memebrCenterDb1Redis->tableDel($memberId);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitPay);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitShipments);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitReceiving);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitEvaluate);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::refund);
}
}
public function fromOrderStateToOrderState($memberId, $fromState, $toState)
{
$this->changeNum($memberId, $fromState, null, -1);
$this->changeNum($memberId, $toState, null, 1);
}
public function setIsWxsend($memberId,$pushData){
foreach($pushData as $key=>$val){
if($key!='timeDiff'){
if(!in_array($val,array(ApiConst::closeMessage,ApiConst::openMessae))){
ErrorModel::throwException(CodeConfigModel::paramsError);
}
}
}
$data['push_set']=serialize($pushData);
if(isset( $data['push_set'])){
$res=$this->saveInfo($data,$memberId);
return $res;
}
}
public function validPassword($where){
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
public function getAll($where=array()){
$this->setDb($this->dbName);
if($where){
$where=$this->db->getSqlWhereByArray($where);
}
if($where){
$res=$this->db->from($this->_tableName)->where($where)->fetchAll();
}else{
$res=$this->db->from($this->_tableName)->fetchAll();
}
$resArray=array();
foreach($res as $val){
$resArray[$val['member_id']]=$val;
}
return $resArray;
}
}
<?php
namespace DAO;
use Error\CodeConfigModel;
use Error\ErrorModel;
use Our\Common;
use Our\ImageConst;
use Our\Log;
use Our\NameConst;
use Our\ApiConst;
use Our\Validate;
/**
* 用户数据层
*/
class MemberModel extends \DAO\AbstractModel
{
private $memberMysql;
protected $_tableName = 'han_member';
//有效用户返回数据
private $availMemberColumn = array('member_id', 'member_name', 'member_truename', 'member_avatar', 'member_sex', 'member_birthday', 'member_mobile', 'member_mobile_bind', 'member_qq', 'member_qqopenid', 'member_qqinfo', 'member_wxinfo', 'member_wxopenid', 'member_sinaopenid', 'member_sinainfo', 'member_points', 'member_state', 'member_quicklink', 'member_exppoints', 'store_id', 'iswx', 'agree_flag', 'seller_id', 'diliveryman_id', 'member_tag_ids', 'member_group_ids', 'is_teacher', 'member_email', 'member_email_bind','is_wxsend');
//有效用户返回数据
private $memberColumn = array('member_id', 'member_name','member_truename', 'member_avatar', 'member_sex', 'member_birthday', 'member_mobile', 'member_mobile_bind', 'member_qq', 'member_qqopenid', 'member_qqinfo', 'member_wxinfo', 'member_wxopenid', 'member_sinaopenid', 'member_sinainfo', 'member_points', 'member_state', 'member_quicklink', 'member_exppoints', 'store_id', 'iswx', 'agree_flag', 'seller_id', 'diliveryman_id', 'member_tag_ids', 'member_group_ids', 'is_teacher', 'member_email', 'member_email_bind','is_wxsend','member_state');
public function init()
{
$this->memberMysql = \Mysql\MemberModel::getInstance();
}
/**
* 获取会员头像
* @param $memberId 对应会员ID
* @param $memberAvatar 会员对应member_avatar字段
* @return string
*/
public function getMemberAvatarUrl($memberId, $memberAvatar)
{
$filename = \Our\ImageConst::defaultMemberAvatarName;
if ($memberAvatar) {
if (strpos($memberAvatar, \Our\NameConst::http) === 0) {
return $memberAvatar;
}else{
$filename = $memberAvatar;
}
//$filename = \Our\ImageConst::memberAvatarPrefix . $memberId;
}
return \Our\Common::getStaticFile($filename, \Our\ImageConst::memberAvatar);
}
public function getMemberAvatar($memberId){
$basePath=\Bootstrap::getUrlIniConfig('source');
$memberPath=ImageConst::memberAvatar;
$fileName=Common::format(ImageConst::memberAvatarPrefix."{0}".'.jpg',$memberId);
$file=$basePath.$memberPath.$fileName;
if(file_exists($file)){
if($fileName=='member_avatar_26.jpg'){
Log::getInstance()->write($file.'1',"/data/log/test");
}
$avatar=\Our\Common::getStaticFile($fileName, \Our\ImageConst::memberAvatar);
}else{
if($fileName=='member_avatar_26.jpg'){
Log::getInstance()->write($file.'2',"/data/log/test");
}
$memerAvatar = $this->getInfo($memberId, 'member_avatar');
$avatar = $this->getMemberAvatarUrl($memberId, $memerAvatar);
}
return $avatar;
}
//原生方法
public function query()
{
$mysql = \Mysql\Slave\MemberModel::getInstance();
$res = $mysql->query("select * from han_member");
echo json_encode($res);
exit;
}
//对主库进行操作
public function update($sql)
{
$mysql = \Mysql\UserModel::getInstance();
$res = $mysql->excute($sql);
return $res;
}
public function getOneByMobileAndPassword($mobile, $password)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$where[NameConst::memberMobile] = $mobile;
$addKey=Common::getConfig('password.key');
if(!empty($addKey)){
$where='';
$where=Common::format("(member_mobile = '{0}') AND (member_passwd = MD5(CONCAT(member_time,'{1}','{2}')))",$mobile,$password,$addKey);
// $where[NameConst::memberPasswd] = Common::format("MD5(CONCAT(member_time,member_passwd,'{0}'))",$addKey);
}else{
$where[NameConst::memberPasswd]=md5($password);
}
$result = $this->db->select($this->memberColumn)->from($this->_tableName)->where($where)->fetchOne();
if ($result) {
$memberAvatarUrl = $this->getMemberAvatarUrl($result['member_id'], $result['member_avatar']);
$result['memberAvatarUrl'] = $memberAvatarUrl;
}
return $result;
}
public function saveInfo($data, $memberId)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->update($this->_tableName)->rows($data)->where(array('member_id' => $memberId))->execute();
if ($result!==false) {
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$member = $data;
if (isset($member['member_avatar']) && $member['member_avatar']) {
$memberAvatarUrl = $this->getMemberAvatarUrl($memberId, $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
}
if(isset($member['member_passwd'])&&$member['member_passwd']){
unset($member['member_passwd']);
}
$memberDb0Redis->tableHMSet($memberId, $member);
}
return $result;
}
public function getWxUserToken($memberId){
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$member = $memberDb0Redis->tableHGAll($memberId);
$memberDb0Redis->tableExpire($memberId, ApiConst::tenDaySecond);
if(isset($member['wxUserToken'])&&$member['wxUserToken']){
return $member['wxUserToken'];
}
return \Our\NameConst::emptyString;
}
public function saveWxUserToken($key,$memberId){
$member = $this->getInfo($memberId);
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$memberDb0Redis->tableHMSet($memberId, array('wxUserToken'=>$key));
}
/**
* 保存用户信息
*/
public function addInfo($data)
{
// $this->setDb(\Our\DbNameConst::masterDBConnectName);
// $result = $this->db->insert($this->_tableName)->rows($data)->execute();
$result=$this->add($data);
if ($result) {
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$memberAvatar = '';
if (isset($data['member_avatar'])) {
$memberAvatar = $data['member_avatar'];
}
$memberAvatarUrl = $this->getMemberAvatarUrl($result, $memberAvatar);
$data['memberAvatarUrl'] = $memberAvatarUrl;
$data['member_id'] = $result;
$memberDb0Redis->tableHMSet($result, $data);
return $this->db->getInsertId();
}
return false;
}
/**
* 保存用户信息
*/
public function add($data)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->insert($this->_tableName)->rows($data)->execute();
return $result;
}
/**
* 类实例
*
* @var \DAO\UserModel
*/
private static $_instance = null;
public function getInfo($memberId, $field = false)
{
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
if ($field) {
$memberField = $memberDb0Redis->tableHGet($memberId, $field);
if (!empty($memberField)) {
return $memberField;
} else {
$one = $this->getOneByMemberId($memberId, $field);
return $one[$field];
}
} else {
$member = $memberDb0Redis->tableHGAll($memberId);
$memberDb0Redis->tableExpire($memberId, ApiConst::tenDaySecond);
if (!empty($member)) {
$return = array(
'memberId' => (int)$member['member_id'],
'memberName' => $member['member_name'],
'memberTrueName' => $member['member_truename'],
'memberAvatar' => $member['member_avatar'],
'memberSex' => (int)$member['member_sex'],
'memberBirthday' => $member['member_birthday'],
'memberEmail' => isset($member['member_email']) ? $member['member_email'] : '',
'memberEmailBind' => isset($member['member_email_bind']) ? (int)$member['member_email_bind'] : ApiConst::zero,
'memberMobile' => $member['member_mobile'],
'memberMobileBind' => (int)$member['member_mobile_bind'],
'memberWxinfo' => isset($member['member_wxinfo'])&&$member['member_wxinfo']? unserialize($member['member_wxinfo']) : new \stdClass(),
'memberWxopenid' => $member['member_wxopenid'],
'sellerId' => (int)$member['seller_id'],
'diliverymanId' => (int)$member['diliveryman_id'],
'storeId' => (int)$member['store_id'],
'memberAvatarUrl' => $member['memberAvatarUrl'],
'isWxsend'=>$member['is_wxsend'],
'pushSet'=>$member['push_set']
);
} else {
$member = $this->getOneByMemberId($memberId, '*');
$return = array(
'memberId' => $member['member_id'],
'memberName' => $member['member_name'],
'memberTrueName' => $member['member_truename'],
'memberAvatar' => $member['member_avatar'],
'memberSex' => $member['member_sex'],
'memberBirthday' => $member['member_birthday'],
'memberEmail' => isset($member['member_email']) ? $member['member_email'] : '',
'memberEmailBind' => isset($member['member_email_bind']) ? $member['member_email_bind'] : ApiConst::zero,
'memberMobile' => $member['member_mobile'],
'memberMobileBind' => $member['member_mobile_bind'],
'memberWxinfo' => isset($member['member_wxinfo']) ? unserialize($member['member_wxinfo']) : new \stdClass(),
'memberWxopenid' => $member['member_wxopenid'],
'sellerId' => $member['seller_id'],
'diliverymanId' => $member['diliveryman_id'],
'storeId' => $member['store_id'],
'memberAvatarUrl' => $member['memberAvatarUrl'],
'isWxsend'=>$member['is_wxsend'],
'pushSet'=>$member['push_set'],
);
foreach ($member as $key => $value) {
if (empty($value) || is_null($value)) {
$member[$key] = ApiConst::zero;
}
}
foreach ($return as $key => $value) {
if (empty($value) || is_null($value)) {
$return[$key] = ApiConst::zero;
}
}
$memberDb0Redis->tableHMSet($memberId, $member);
}
return $return;
}
}
public function updateInfo($data, $where)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->update($this->_tableName)->rows($data)->where($where)->execute();
return $result;
}
public function getOneByWhereWithField($where, $field)
{
$this->setDb($this->dbName);
$member = $this->db->from($this->_tableName)->select($field)->where($where)->fetchOne();
return $member;
}
public function getOneByMemberId($memberId, $field = '*')
{
$this->setDb($this->dbName);
$where['member_id'] = $memberId;
$member = $this->getOneByWhereWithField($where, $field);;
if(isset($member['member_avatar'])){
$memberAvatarUrl = $this->getMemberAvatarUrl($memberId, $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
}
return $member;
}
/**
* 获取类实例
*
* @return \DAO\UserModel
*/
public static function getInstance($dbName=\Our\DbNameConst::salveDBConnectName)
{
if (!(self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
/**
* 验证会员信息
* @param $where
* @return array
* @throws \Exception
*/
public function getValidMember($where)
{
if ($where['memberName']) {
if (!\Our\Validate::checkLengthRange($where['memberName'], 1, 25)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::memberNameLengthLimit);
}
}
/*if ($where['memberBirthday']) {
if (!\Our\Validate::checkDateStr($where['memberBirthday'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::memberBirthdayError);
}
if (strtotime($where['memberBirthday']) > strtotime(date('Y-m-d'))) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::illegalMemberBirthday);
}
}*/
if (!($where['memberSex'] && in_array($where['memberSex'], array(\Our\ApiConst::woman, \Our\ApiConst::man)))) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMemberSex);
}
$memberInfo['memberName'] = $where['memberName'];
$memberInfo['memberSex'] = $where['memberSex'];
$memberInfo = \Our\Common::convertHump($memberInfo);
return $memberInfo;
}
public function validMemberNameAndAvatar($where){
if(!$where['avatar']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyUserAvatar);
}
if(!$where['nickname']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyUserNickname);
}
return true;
}
public function getByMemberMobile($mobile){
$this->setDb($this->dbName);
$where['member_mobile'] = $mobile;
$result=$this->getOneByWhereWithField($where,"member_id as memberId,member_name as memberName,member_mobile as memberMobile");
return $result;
}
public function validRegisterInfo($where)
{
if (!\Our\Common::checkMobilePhone($where['mobile'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
if (!$where['password']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyPassword);
}
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
if (!$where['deviceType']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyDeviceType);
}
if (!$where['deviceUniqueCode']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyDeviceUniqueCode);
}
return true;
}
public function checkChangedInfo($where)
{
$this->checkRegisterMobile($where);
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
/**
* 验证注册手机号码
*/
public function checkRegisterMobile($where)
{
$mobile = $where['mobile'];
if (!\Our\Common::checkMobilePhone($mobile)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
$member = $this->getOneByWhereWithField(array('member_mobile' => $mobile), 'member_id');
if ($member) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::registerMobileExist);
}
return true;
}
/**
* 验证手机是否存在有效用户
* @param $where
*/
public function checkLoginMobile($where)
{
$mobile = $where['mobile'];
if (!\Our\Common::checkMobilePhone($mobile)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
$member = $this->getOneByWhereWithField(array('member_mobile' => $mobile, 'member_state' => \Our\ApiConst::one), 'member_id');
if (!$member) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::memberMobileExist);
}
return true;
}
/**
* 微信用户绑定发送验证码时验证表单
* @param $where
* @param $memberId
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function checkWxBindMobileForSms($where,$memberId){
if(!$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wxMemberBindMobileSendCode);
}
$member = $this->getInfo($memberId);
if(($member['memberMobile']&&$member['memberMobileBind'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wxMemberHasBindMobile);
}
return true;
}
public function checkWxBindMobileCommon($where){
$mobile = $where['mobile'];
if (!\Our\Common::checkMobilePhone($mobile)) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
}
$member = $this->getOneByWhereWithField(array('member_mobile' => $mobile, 'member_state' => \Our\ApiConst::one), 'member_id');
if ($member) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::mobileExistMember);
}
}
public function checkSaleMobile($where,$memberId) {
if(!$memberId){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saleNotLogin);
}
$member_mobile = $this->getInfo($memberId,'member_mobile');
if($member_mobile != $where['mobile']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::salePhoneError);
}
// $mobile = $where['mobile'];
// if (!\Our\Common::checkMobilePhone($mobile)) {
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::wrongMobileFormat);
// }
// $member = $this->getOneByWhereWithField(array('member_mobile' => $mobile, 'member_state' => \Our\ApiConst::one), 'member_id');
// if ($member) {
// \Error\ErrorModel::throwException(\Error\CodeConfigModel::mobileExistMember);
// }
}
/**
* 微信用户更改手机号码提交表单时验证
* @param $where
* @param $memberId
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function checkWxBindMobile($where){
$this->checkWxBindMobileCommon($where);
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
public function checkPassword($data)
{
if (!($data['password'] && $data['rePassword'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyPasswordAndRepassword);
}
if ($data['password'] != $data['rePassword']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::differentPasswordAndRepassword);
}
if (!\Our\Validate::checkPassword($data['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
/**
* 更换密码时验证密码和旧密码
* @param $data
* @param $memberId
* @throws \Exception
*/
public function checkOldPassword($data, $memberId)
{
if (!$data['oldPassword']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyOldPassword);
}
$memberCurrent = $this->getOneByWhereWithField(array('member_id' => $memberId), 'member_passwd,member_time');
$addKey=Common::getConfig('password.key');
if (!($memberCurrent && $memberCurrent['member_passwd'] == md5($memberCurrent['member_time'].$data['oldPassword'].$addKey))) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::worngOldPassword);
}
$this->checkPassword($data);
}
public function checkDelMember($data)
{
if (!(APP_ENV == 'test' || APP_ENV == 'develop'|| APP_ENV == 'pre')) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::noAvailForDelMember);
}
if (!$data['mobile']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyMobileForDelMember);
}
}
public function getMemberById($memberId)
{
$member = $this->getOneByWhereWithField(array('member_id' => $memberId), $this->availMemberColumn);
foreach ($member as $key => $value) {
if (empty($value) || is_null($value)) {
$member[$key] = \Our\ApiConst::zero;
}
}
$memberAvatarUrl = $this->getMemberAvatarUrl($member['member_id'], $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
return $member;
}
public function getMemberForLogin($memberIds){
$member = array();
$memberCon['member_id'] = array('in',$memberIds);
$memberCon['member_state'] = \Our\ApiConst::one;
$orders = array('member_mobile'=>'desc','member_id'=>'desc');
$memberList = $this->getList($memberCon,$this->availMemberColumn,$orders);
if($memberList){
$member = $memberList[0];
$memberAvatarUrl = $this->getMemberAvatarUrl($member['member_id'], $member['member_avatar']);
$member['memberAvatarUrl'] = $memberAvatarUrl;
}
return $member;
}
public function del($where)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$result = $this->db->delete($this->_tableName)->where($where)->execute();
return $result;
}
/**
* 个人中心统计数量更新
* @param $type
* /Our/NameConst
* const waitPay = 'waitPay';//待付款 order_state=10
* const waitShipments = 'waitShipments';//待发货 order_state=20,25
* const waitReceiving = 'waitReceiving';//待收货 order_state=30
* const waitEvaluate = 'waitEvaluate';//待评价 order_state=40 and evaluation_state=0,2
* const refund = 'refund';//退款中 seller_state=1 or (is_platform_in = 1 and platform_state = 0)
* const storeCollection = 'storeCollection';//店铺收藏数量
* const goodsCollection = 'goodsCollection';//商品收藏数量
* const footprint = 'footprint';//足迹数量
* @param $num
*/
public function _changeNum($type, $memberId, $num = 1)
{
$memebrCenterDb1Redis = \Redis\Db1\MemberCenterRedisModel::getInstance();
if ($memebrCenterDb1Redis->tableKeyExists($memberId) !== false) {
$memebrCenterDb1Redis->tableHIncrBy($memberId, $type, $num);
}
}
public function getList($where,$field = \Our\NameConst::allField,$orders = array()){
$this->setDb($this->dbName);
if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where);
}
if($orders){
foreach($orders as $key=>$order){
$this->db->order($key,$order);
}
}
return $this->db->from($this->_tableName)->select($field)->where($where)->fetchAll();
}
public function changeNum($memberId, $orderState, $evaluation_state = null, $num = 1)
{
switch ($orderState) {
case ApiConst::orderStateWaitPay:
$type = NameConst::waitPay;
break;
case ApiConst::orderStateWaitSend:
$type = NameConst::waitShipments;
break;
case ApiConst::orderStateWaitRecieve:
$type = NameConst::waitReceiving;
break;
case ApiConst::orderStateComplete:
$type = NameConst::waitEvaluate;
break;
default:
break;
}
if ($type) {
$this->_changeNum($type, $memberId, $num);
}
}
public function getListMemberUrl($list){
foreach($list as &$li){
$li['memberAvatar']=$this->getMemberAvatarUrl($li['memberId'],$li['memberAvatar']);
}
return $list;
}
//删除统计缓存
public function deleteTotalCache($memberId,$type=FALSE){
$memebrCenterDb1Redis = \Redis\Db1\MemberCenterRedisModel::getInstance();
if(!empty($type)){
$memebrCenterDb1Redis->tableHDel($memberId,$type);
}else{
//$memebrCenterDb1Redis->tableDel($memberId);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitPay);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitShipments);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitReceiving);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::waitEvaluate);
$memebrCenterDb1Redis->tableHDel($memberId,NameConst::refund);
}
}
public function fromOrderStateToOrderState($memberId, $fromState, $toState)
{
$this->changeNum($memberId, $fromState, null, -1);
$this->changeNum($memberId, $toState, null, 1);
}
public function setIsWxsend($memberId,$pushData){
foreach($pushData as $key=>$val){
if($key!='timeDiff'){
if(!in_array($val,array(ApiConst::closeMessage,ApiConst::openMessae))){
ErrorModel::throwException(CodeConfigModel::paramsError);
}
}
}
$data['push_set']=serialize($pushData);
if(isset( $data['push_set'])){
$res=$this->saveInfo($data,$memberId);
return $res;
}
}
public function validPassword($where){
if (!\Our\Validate::checkPassword($where['password'])) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::passwordLimit);
}
}
public function getAll($where=array()){
$this->setDb($this->dbName);
if($where){
$where=$this->db->getSqlWhereByArray($where);
}
if($where){
$res=$this->db->from($this->_tableName)->where($where)->fetchAll();
}else{
$res=$this->db->from($this->_tableName)->fetchAll();
}
$resArray=array();
foreach($res as $val){
$resArray[$val['member_id']]=$val;
}
return $resArray;
}
}
......@@ -39,21 +39,6 @@ class DiliverymanModel extends \DAO\AbstractModel
}
public function getCount($where, $isArray = true)
{
$this->setDb();
if (!$isArray) {
$str = '$count = $this->db->from($this->_tableName)';
foreach ($where as $v) {
$str .= "->where('$v')";
}
$str .= "->fetchNum();";
eval($str);
return $count;
}
return $this->db->from($this->_tableName)->where($where)->fetchNum();
}
/**
* 获取单条数据
* @param $where
......@@ -80,6 +65,12 @@ class DiliverymanModel extends \DAO\AbstractModel
$where[$this->_primaryKey] = $id;
return $this->find($where);
}
public function getByMobile($mobile){
$this->setDb($this->dbName);
$where['mobile'] = $mobile;
$result=$this->find($where);
return $result;
}
public function getDeliveryManFields()
{
return array(
......
......@@ -233,6 +233,11 @@ class OrderModel extends \DAO\AbstractModel
return $this->db->update($this->_tableName)->where($where)->rows($data)->execute();
}
public function updateByOrderId($data,$orderId){
$where['order_id']=$orderId;
$res=$this->update($where,$data);
return $res;
}
public function insert($data)
{
$this->setDb(\Our\DbNameConst::masterDBConnectName);
......
......@@ -5,14 +5,15 @@ namespace Error;
/**
* 错误码设置类
*/
class CodeConfigModel {
class CodeConfigModel
{
//通用错误
const commonError=-1;
const paramsError=-2;
const commonError = -1;
const paramsError = -2;
//用户登录错误
const emptyUsername=10001;
const emptyPassword=10002;
const errorUsernameOrPassword=10003;
const emptyUsername = 10001;
const emptyPassword = 10002;
const errorUsernameOrPassword = 10003;
const noLogin = 10005;
const memberNameLengthLimit = 10004;
......@@ -59,7 +60,7 @@ class CodeConfigModel {
const emptyMobile = 10046;
const sameWithOldMobile = 10047;
const changeMobileFailed = 10048;
const wrongTelnumber=10049;
const wrongTelnumber = 10049;
const memberBirthdayError = 10050;
const wxUserInfoAuthError = 10051;
const emptyWxUserInfoAuth = 10052;
......@@ -72,7 +73,7 @@ class CodeConfigModel {
const memberExistBindingInfo = 10059;
const wrongMemberSex = 10060;
const noAvailForDelMember = 10061;
const emptyMobileForDelMember = 10062;
const emptyMobileForDelMember = 10062;
const emptyMemberForDelMember = 10063;
const deleteMemberFailed = 10064;
const wxMemberHasBindMobile = 10065;
......@@ -82,14 +83,14 @@ class CodeConfigModel {
const emptyEncryptedDataAndVi = 10069;
const getUnionidFailed = 10070;
const saveMemberMapppingFailed = 10071;
const emptyWxSetting=10072;
const getWxAccessTokenFail=10073;
const emptyWxSetting = 10072;
const getWxAccessTokenFail = 10073;
const wrongMappingDataForBindMembmer = 10074;
const otherMemberOpenIdBindForMember = 10075;
const updateMobileMembmerFailed = 10076;
const updateMobileMembmerMappingFailed = 10077;
const currentMobileHasBeenBind = 10078;
const otherDriverLogin=10105;
const otherDriverLogin = 10105;
const emptyLog = 10106;
const writeLogFailed = 10107;
const wrongTimeForReadLog = 10108;
......@@ -101,17 +102,17 @@ class CodeConfigModel {
const unavailMemberState = 10114;
//访问错误
const illegalAccess=200001;
const illegalAccess = 200001;
const maxGetAccess=200002;
const isLogin=200003;
const signWrong=200004;
const authError=200005;
const authExpire=200006;
const maxGetAccess = 200002;
const isLogin = 200003;
const signWrong = 200004;
const authError = 200005;
const authExpire = 200006;
//商品
const emptyCommonId=20001;
const goodsNotExist=20002;
const groupNotExist=20003;
const emptyCommonId = 20001;
const goodsNotExist = 20002;
const groupNotExist = 20003;
//店铺相关错误代码
......@@ -123,7 +124,7 @@ class CodeConfigModel {
const storeNotExistOrClose = 40006;
const emptyStoreId = 40007;
const saveReportError = 40008;
const stroeReceiveError=40009;
const stroeReceiveError = 40009;
//购物车
const wrongCartType = 50001;
......@@ -162,7 +163,7 @@ class CodeConfigModel {
const wrongBundlingForBuyNow = 50034;
const wrongGoodsForBuyNow = 50035;
const offlineGoodsListOrNotExist = 50036;
const goodsListNoStorage =50037;
const goodsListNoStorage = 50037;
const emptyPBundlingdForOrder = 50038;
const pBundlingOfflineForOrder = 50039;
const pBundlingNoStorageForOrder = 50040;
......@@ -176,42 +177,42 @@ class CodeConfigModel {
const orderNotExist = 30001;
const orderError = 30002;
const refundRefuseByStore = 30003;
const emptyDescCredit=30012;
const emptyDeliveryCredit=30013;
const emptyServiceCredit=30014;
const emptyScores=30016;
const emptyGoodsId=30017;
const notAllowCancel=30019;
const notAllowComplete=30020;
const refundSuccess=30021;
const returnErrorAfterPay=30022;
const returnBeyondTimeError=30023;
const applyError=30024;
const notReturnAgree=30025;
const isNotReturn=30026;
const isNotExpressType=30027;
const notExistRefund=30028;
const sendRefundShippingFail=30029;
const alreadySendRefundShipping=30030;
const buyerCancelError=30031;
const refundCancelError=30032;
const storeCancelError=30033;
const systemCancelError=30034;
const systemReceivePayError=30035;
const complainError=30036;
const paymentError=30037;
const modifyPriceError=30038;
const spayPriceError=30039;
const sendError=30040;
const receiveError=30041;
const evaluationError=30042;
const lockError=30043;
const deliverError=30044;
const deleteError=30045;
const restoreError=30046;
const shareError=30047;
const orderDeleteError=30048;
const emptyDescCredit = 30012;
const emptyDeliveryCredit = 30013;
const emptyServiceCredit = 30014;
const emptyScores = 30016;
const emptyGoodsId = 30017;
const notAllowCancel = 30019;
const notAllowComplete = 30020;
const refundSuccess = 30021;
const returnErrorAfterPay = 30022;
const returnBeyondTimeError = 30023;
const applyError = 30024;
const notReturnAgree = 30025;
const isNotReturn = 30026;
const isNotExpressType = 30027;
const notExistRefund = 30028;
const sendRefundShippingFail = 30029;
const alreadySendRefundShipping = 30030;
const buyerCancelError = 30031;
const refundCancelError = 30032;
const storeCancelError = 30033;
const systemCancelError = 30034;
const systemReceivePayError = 30035;
const complainError = 30036;
const paymentError = 30037;
const modifyPriceError = 30038;
const spayPriceError = 30039;
const sendError = 30040;
const receiveError = 30041;
const evaluationError = 30042;
const lockError = 30043;
const deliverError = 30044;
const deleteError = 30045;
const restoreError = 30046;
const shareError = 30047;
const orderDeleteError = 30048;
const noAddressForOrder = 30049;
const emptyCartIdsForOrder = 30050;
const emptyParamForOrder = 30051;
......@@ -255,7 +256,7 @@ class CodeConfigModel {
const emptyPaySnForOrder = 30089;
const wrongPaySnForOrder = 30090;
const updateOrderPayedStatusFailed = 30091;
const wrongOrderPayForOrder = 30092;
const wrongOrderPayForOrder = 30092;
const emptyOrderForPay = 30093;
const emptyOrderIdForPay = 30094;
const noRightForOrder = 30095;
......@@ -273,16 +274,17 @@ class CodeConfigModel {
const goodsStorageToDBFailedForOrder = 30107;
const blGoodsStorageToCacheFailedForOrder = 30108;
const goodsStorageToCacheFailedForOrder = 30109;
const notExistOrderGoods=300110;
const notExsitDeliver=300111;
const notExsitOrder=300112;
const alreadyExsitRefundGoods=300113;
const notAllowDelete=300114;
const notExistOrderGoods = 300110;
const notExsitDeliver = 300111;
const notExsitOrder = 300112;
const alreadyExsitRefundGoods = 300113;
const notAllowDelete = 300114;
const noExpressDeliveryForOrder1 = 30115;
const goodsNoStoreForCartOrOrder1 = 30116;
const platFormAreadyIn=300117;
const platFormAreadyIn = 300117;
const confirmReceiveError = 300118;
const alreadyExsitDeliveryMan = 300119;
const noEnoughStorageForBundlingGoods = 30118;
const noOrderWaitToPay = 30119;
const wrongEvaluation = 30120;
......@@ -320,7 +322,7 @@ class CodeConfigModel {
const codeIsSixNumberString = 90015;
const codeIsSixNumberString1 = 90016;
const setMessageFail=90017;
const setMessageFail = 90017;
//销售员
const emptySaleGoodsId = 100001;
const emptySaleGoods = 100002;
......@@ -376,16 +378,16 @@ class CodeConfigModel {
const wrongCityCode = 140023;
//消息,推送等
const removeMessage=150001;
const pushConnectError=152001;
const pushIsNotOpen=152002;
const sendMessageFail=152003;
const sendLimitError=152004;
const removeMessage = 150001;
const pushConnectError = 152001;
const pushIsNotOpen = 152002;
const sendMessageFail = 152003;
const sendLimitError = 152004;
const updateReadedError=152005;
const noExistMessage=152006;
const noExistButton=152007;
const isClicked=152008;
const updateReadedError = 152005;
const noExistMessage = 152006;
const noExistButton = 152007;
const isClicked = 152008;
//广告位
......@@ -397,46 +399,33 @@ class CodeConfigModel {
const storeEvaNotExist = 170001;
const ViewTimeNotExist = 170002;
const cancleCollectionGoods = 170003;
const cancleCollectionStore= 170004;
const cancleCollectionStore = 170004;
//底层异常
const elasticsError=900001;
const elasticsError = 900001;
//分享错误码
const shareGrowImageError=180001;
const shareGrowImageError = 180001;
/**
* 获取错误码配置
*/
public static function getCodeConfig() {
public static function getCodeConfig()
{
return array(
self::commonError => "请求失败",
self::paramsError=>"参数有误",
self::paramsError => "参数有误",
self::emptyUsername => "用户名不能为空",
self::emptyPassword=>"密码不能为空",
self::errorUsernameOrPassword=>'用户名或密码错误',
self::illegalAccess=>"非法访问,还未授权,或者授权过期",
self::wrongTelnumber=>"请输入正确的手机号码",
self::maxGetAccess=>'今天授权次数已经用完',
self::isLogin=>'你已经登录',
self::emptyPassword => "密码不能为空",
self::errorUsernameOrPassword => '用户名或密码错误',
self::illegalAccess => "非法访问,还未授权,或者授权过期",
self::wrongTelnumber => "请输入正确的手机号码",
self::maxGetAccess => '今天授权次数已经用完',
self::isLogin => '你已经登录',
self::signWrong => '签名错误',
self::noLogin=>'您还没有登录',
self::noLogin => '您还没有登录',
self::emptyMemberName => '昵称不能为空',
self::memberNameLengthLimit => '昵称长度必须在1到24个字符之间',
self::memberBirthdayError => '生日格式错误',
......@@ -488,7 +477,7 @@ class CodeConfigModel {
self::wxAuthInfoLoginFailed => '微信授权登录失败',
self::emptyOrWrongAuthUserType => '授权用户类型不能为空或者类型错误',
self::registerMemberFailed => '注册账号失败',
self::bindingUserNotExist=>'绑定的用户不存在',
self::bindingUserNotExist => '绑定的用户不存在',
self::emptyMobileForLogin => '登录时手机号码不能为空',
self::memberExistBindingInfo => '您已经绑定过用户信息,如需绑定,请先解绑',
self::wrongMemberSex => '会员性别错误',
......@@ -507,24 +496,24 @@ class CodeConfigModel {
self::uploadWxMemberAvatarFailed => '微信上传用户头像失败',
self::unavailMemberState => '您的账号已被禁用',
//商品相关
self::emptyCommonId=> '商品主键不能为空',
self::goodsNotExist=> '商品不存在',
self::groupNotExist=> '组合活动不存在或已下架',
self::emptyCommonId => '商品主键不能为空',
self::goodsNotExist => '商品不存在',
self::groupNotExist => '组合活动不存在或已下架',
//订单相关错误
self::orderNotExist => '订单不存在',
self::orderError => '订单信息错误',
self::refundRefuseByStore => '商家不同意退款,如有疑问请联系客服',
self::returnErrorAfterPay=>'货到付款订单在没确认收货前不能退款退货',
self::returnBeyondTimeError=>'收货超时订单不能退款',
self::returnErrorAfterPay => '货到付款订单在没确认收货前不能退款退货',
self::returnBeyondTimeError => '收货超时订单不能退款',
//店铺相关错误
self::illegalFavStore=>'不能关注自己的店铺',
self::emptyStore=>'店铺不存在或者已关闭',
self::emptyReportStoreDesc=>'描述内容不能为空',
self::emptyReportStoreType=>'举报类型不能为空',
self::illegalFavStore => '不能关注自己的店铺',
self::emptyStore => '店铺不存在或者已关闭',
self::emptyReportStoreDesc => '描述内容不能为空',
self::emptyReportStoreType => '举报类型不能为空',
self::emptyStores => '没找到相关店铺',
self::stroeReceiveError=>'店铺接单错误',
self::stroeReceiveError => '店铺接单错误',
//购物车相关
self::wrongCartType => '加入购物车类型不能为空',
......@@ -556,7 +545,7 @@ class CodeConfigModel {
self::moveToFavoritesFailed => '移入收藏夹添加数据失败',
self::moveToFavoritesDelCartFailed => '移入收藏夹删除购物车失败',
self::emptyCartIdsForCheckout => '购物车下单时购物车ID不能为空',
self::storeNoDeliveryTypeForBuy =>'店铺没有设置配送方式,不能下单',
self::storeNoDeliveryTypeForBuy => '店铺没有设置配送方式,不能下单',
self::storeNoPaywayForBuy => '店铺没有设置支付方式,不能下单',
self::emptyGoodsIdOrBlIdForBuyNow => '立即购买时商品ID或者组合销售ID不能都为空',
self::emptyGoodsNumForBuyNow => '立即购买时商品ID或者组合销售ID不能都为空',
......@@ -572,12 +561,12 @@ class CodeConfigModel {
self::wrongAddCartForSelfStore => '店主不能添加自己店铺的商品到购物车',
self::pbundingGoodsCannotMoveToFavouites => '组合商品暂不支持移入收藏夹',
self::addressNotExist=>'地址不存在',
self::emptyAddressId=>'地址主键参数不能为空',
self::saveAddressFailed =>'地址保存失败',
self::addressNotExist => '地址不存在',
self::emptyAddressId => '地址主键参数不能为空',
self::saveAddressFailed => '地址保存失败',
self::currLatLngNoAddress => '当前经纬度不存在收货地址',
self::emptyParamForMyAddress => '获取地址时参数不能为空',
self::delAddressFailed => '地址删除失败',
self::delAddressFailed => '地址删除失败',
self::emptyAddressMobile => '收货地址联系方式不能为空',
self::chooseAddressFormMap => '请在地图上选择您的收货地址',
self::wrongAddressMobile => '您输入的联系方式格式不正确',
......@@ -595,8 +584,8 @@ class CodeConfigModel {
self::wrongSmsCode => '您的验证码输入有误',
self::codeIsSixNumberString => '短信验证码是6位数值',
self::codeIsSixNumberString1 => '短信验证码是61位数值',
self::setMessageFail=>'消息设置失败',
self::removeMessage=>'消息删除失败',
self::setMessageFail => '消息设置失败',
self::removeMessage => '消息删除失败',
self::storeNotExistOrClose => '店铺不存在或者已关闭',
self::emptyStoreId => '店铺ID不能为空',
self::saveReportError => '保存举报信息失败',
......@@ -615,8 +604,8 @@ class CodeConfigModel {
self::emptyCityCode => '高德地图城市编码不能为空',
self::emptyGcId => '分类ID不能为空',
self::emptyStoreIdForOnlineTopClass => '获取店铺一级在售分类时店铺ID不能为空',
self::emptyStoreIdForOnlineChildrenClass =>'获取店铺下级分类及广告时店铺ID不能为空',
self::emtpyGcIdForOnlineChildrenClass =>'获取店铺下级分类及广告时分类ID不能为空',
self::emptyStoreIdForOnlineChildrenClass => '获取店铺下级分类及广告时店铺ID不能为空',
self::emtpyGcIdForOnlineChildrenClass => '获取店铺下级分类及广告时分类ID不能为空',
self::wrongGcIdForStoreIdChildrenClass => '店铺一级分类不能找到对应可售下级分类',
self::folderUnwritable => '文件夹不可写',
......@@ -627,31 +616,31 @@ class CodeConfigModel {
self::imageExtensionsWrong => '图片格式错误',
self::emptyImageStr => '图片字符串不能为空',
//推送
self::pushConnectError=>'推送连接有误',
self::pushIsNotOpen=>'推送模块没打开,对方未能及时接收到消息!!!',
self::noExistMessage=>'消息不存在',
self::noExistButton=>'不存在此操作按钮',
self::isClicked=>'此按钮已经点击过了',
self::pushConnectError => '推送连接有误',
self::pushIsNotOpen => '推送模块没打开,对方未能及时接收到消息!!!',
self::noExistMessage => '消息不存在',
self::noExistButton => '不存在此操作按钮',
self::isClicked => '此按钮已经点击过了',
//订单
self::orderError=>'订单信息错误',
self::emptyDescCredit=>'店铺描述相符评分不能为空',
self::emptyDeliveryCredit=>'店铺物流服务评分不能为空',
self::emptyServiceCredit=>'店铺物流服务评分不能为空',
self::emptyScores=>'商品评分不能为空',
self::emptyGoodsId=>'商品id不能为空',
self::sendMessageFail=>'消息推送失败',
self::sendLimitError=>'每秒钟只发送一次消息谢谢!',
self::updateReadedError=>'更新消息为已读失败!',
self::authError=>'授权参数有误',
self::authExpire=>'授权过期',
self::notAllowCancel=>'对不起,当前订单状态不允许取消',
self::notAllowComplete=>'对不起,当前订单状态不允许确认收货',
self::orderError => '订单信息错误',
self::emptyDescCredit => '店铺描述相符评分不能为空',
self::emptyDeliveryCredit => '店铺物流服务评分不能为空',
self::emptyServiceCredit => '店铺物流服务评分不能为空',
self::emptyScores => '商品评分不能为空',
self::emptyGoodsId => '商品id不能为空',
self::sendMessageFail => '消息推送失败',
self::sendLimitError => '每秒钟只发送一次消息谢谢!',
self::updateReadedError => '更新消息为已读失败!',
self::authError => '授权参数有误',
self::authExpire => '授权过期',
self::notAllowCancel => '对不起,当前订单状态不允许取消',
self::notAllowComplete => '对不起,当前订单状态不允许确认收货',
//优惠券
self::emptyCouponId=>'优惠券ID不能为空',
self::emptyCouponId => '优惠券ID不能为空',
self::emptyCouponStoreId => '获取优惠券时店铺ID不能为空',
self::emptyMemberCouponState => '优惠券状态不能为空',
self::emptyMemberCouponMemberId => '获取我的优惠券时会员ID不能为空',
......@@ -665,42 +654,42 @@ class CodeConfigModel {
self::emptyAdvs => '广告位内容为空',
self::emptyAdvStore => '获取店铺广告位时店铺ID不能为空',
self::storeEvaNotExist=>'卖家评价不存在',
self::refundSuccess=>'退款成功',
self::ViewTimeNotExist=>'日期时间戳不能为空',
self::cancleCollectionGoods=>'取消关注商品参数错误',
self::cancleCollectionStore=>'取消关注店铺参数错误',
self::applyError=>'申请平台介入失败',
self::notReturnAgree=>'卖家未同意退货',
self::isNotReturn=>'不是退货类型的订单',
self::isNotExpressType=>'退货方式不是快递',
self::notExistRefund=>'退款订单不存在',
self::sendRefundShippingFail=>'添加物流信息失败',
self::alreadySendRefundShipping=>'退货信息已经提交',
self::buyerCancelError=>'买家取消订单失败,订单状态有误',
self::refundCancelError=>'申请退款失败,订单状态有误',
self::storeCancelError=>'商家取消订单失败,订单状态有误',
self::systemCancelError=>'平台取消订单失败,订单状态有误',
self::systemReceivePayError=>'平台收款失败,订单状态有误',
self::complainError=>'买家投诉失败,订单状态有误',
self::paymentError=>'支付失败,订单状态有误',
self::modifyPriceError=>'调整运费失败,订单状态有误',
self::spayPriceError=>'调整商品价格失败,订单状态有误',
self::sendError=>'发货失败,订单状态有误',
self::receiveError=>'收货失败,订单状态有误',
self::evaluationError=>'评价失败,订单状态有误',
self::lockError=>'锁定失败,订单状态有误',
self::deliverError=>'快递跟踪失败,订单状态有误',
self::notExsitDeliver=>'配送单不存在',
self::notExsitOrder=>'订单不存在',
self::alreadyExsitRefundGoods=>'退款订单已经存在',
self::notAllowDelete=>'当前订单状态不允许删除',
self::platFormAreadyIn=>'您已经申请过平台介入',
self::deleteError=>'放入回收站失败,订单状态有误',
self::restoreError=>'永久删除、从回收站还原失败,订单状态有误',
self::shareError=>'分享失败,订单状态有误',
self::orderDeleteError=>'订单删除失败',
self::storeEvaNotExist => '卖家评价不存在',
self::refundSuccess => '退款成功',
self::ViewTimeNotExist => '日期时间戳不能为空',
self::cancleCollectionGoods => '取消关注商品参数错误',
self::cancleCollectionStore => '取消关注店铺参数错误',
self::applyError => '申请平台介入失败',
self::notReturnAgree => '卖家未同意退货',
self::isNotReturn => '不是退货类型的订单',
self::isNotExpressType => '退货方式不是快递',
self::notExistRefund => '退款订单不存在',
self::sendRefundShippingFail => '添加物流信息失败',
self::alreadySendRefundShipping => '退货信息已经提交',
self::buyerCancelError => '买家取消订单失败,订单状态有误',
self::refundCancelError => '申请退款失败,订单状态有误',
self::storeCancelError => '商家取消订单失败,订单状态有误',
self::systemCancelError => '平台取消订单失败,订单状态有误',
self::systemReceivePayError => '平台收款失败,订单状态有误',
self::complainError => '买家投诉失败,订单状态有误',
self::paymentError => '支付失败,订单状态有误',
self::modifyPriceError => '调整运费失败,订单状态有误',
self::spayPriceError => '调整商品价格失败,订单状态有误',
self::sendError => '发货失败,订单状态有误',
self::receiveError => '收货失败,订单状态有误',
self::evaluationError => '评价失败,订单状态有误',
self::lockError => '锁定失败,订单状态有误',
self::deliverError => '快递跟踪失败,订单状态有误',
self::notExsitDeliver => '配送单不存在',
self::notExsitOrder => '订单不存在',
self::alreadyExsitRefundGoods => '退款订单已经存在',
self::notAllowDelete => '当前订单状态不允许删除',
self::platFormAreadyIn => '您已经申请过平台介入',
self::deleteError => '放入回收站失败,订单状态有误',
self::restoreError => '永久删除、从回收站还原失败,订单状态有误',
self::shareError => '分享失败,订单状态有误',
self::orderDeleteError => '订单删除失败',
self::noAddressForOrder => '下单前请选择收货地址',
self::emptyCartIdsForOrder => '下单时购物车ID不能为空',
self::emptyParamForOrder => '下单时参数不能为空',
......@@ -711,6 +700,8 @@ class CodeConfigModel {
self::wrongStoreIdsForOrder => '下单时店铺参数错误',
self::wrongCartStoreForOrder => '下单时店铺购物车ID参数错误',
self::bundlingGoodsNotExist => '组合销售商品不存在',
self::confirmReceiveError => '确认收款失败',
self::alreadyExsitDeliveryMan=>'您的店铺已经存在此配送员',
self::noStorageForBundlingGoods => '组合销售商品库存不存在',
self::bundlingGoodsOfflineForCartOrOrder => '组合销售活动已下架',
self::goodsNoStoreForCartOrOrder => '商品库存不足',
......@@ -765,35 +756,35 @@ class CodeConfigModel {
self::notExistOrderGoods => '退款商品不存在',
self::noExpressDeliveryForOrder1 => '该店铺未配置快递配送',
self::goodsNoStoreForCartOrOrder1 => '商品库存紧张,您的购买数量太多啦',
self::noEnoughStorageForBundlingGoods =>'组合销售库存紧张,您购买的数量太多啦',
self::noEnoughStorageForBundlingGoods => '组合销售库存紧张,您购买的数量太多啦',
self::noOrderWaitToPay => '您的订单已支付,请勿重复支付',
self::wrongEvaluation => '商品评论应在6-500字之间',
self::selfGoodsForStoreOrder => '店主不能购买自己的商品',
//销售员
self::emptySaleGoodsId=>'商品id不能为空',
self::emptySaleGoods=>'销售商品不存在',
self::saleNotLogin=>'请先登录',
self::salePhoneError=>'获取验证码的手机号与用户手机号不一致',
self::saleNotExist=>'你不是销售员',
self::saleValidate=>'请先进行身份验证',
self::saleNotJoin=>'你没有参加这个销售活动',
self::saleActOrGoodsNotExist=>'活动或商品不存在',
self::emptySaleGoodsId => '商品id不能为空',
self::emptySaleGoods => '销售商品不存在',
self::saleNotLogin => '请先登录',
self::salePhoneError => '获取验证码的手机号与用户手机号不一致',
self::saleNotExist => '你不是销售员',
self::saleValidate => '请先进行身份验证',
self::saleNotJoin => '你没有参加这个销售活动',
self::saleActOrGoodsNotExist => '活动或商品不存在',
//意见信箱
self::emptyFeedbackDescribe => '反馈内容不能为空',
self::emptyFeedbackTelepone => '联系方式不能为空',
self::saveFeedbackError=>'保存意见反馈信息失败',
self::feedbackTelError=>'手机号码格式错误',
self::saveFeedbackError => '保存意见反馈信息失败',
self::feedbackTelError => '手机号码格式错误',
//分享
self::shareGrowImageError=>'分享图片生成有误',
self::emptyWxSetting=>'微信小程序未配置',
self::getWxAccessTokenFail=>'获得微信小程序token失败',
self::shareGrowImageError => '分享图片生成有误',
self::emptyWxSetting => '微信小程序未配置',
self::getWxAccessTokenFail => '获得微信小程序token失败',
self::wrongMappingDataForBindMembmer => 'mapping数据错误',
self::otherMemberOpenIdBindForMember => '当前第三方账号已经绑定其他手机号码的账号',
self::updateMobileMembmerFailed => '更新手机号对应会员信息失败',
self::updateMobileMembmerMappingFailed => '更新手机号码对应会员mapping信息失败',
self::currentMobileHasBeenBind => '当前手机号码已经绑定其他微信,如需绑定,请先手机号码登录app进行微信解绑',
self::otherDriverLogin=>'当前帐户在其他设备登录,假如不是您本人操作,请尽快修改密码',
self::elasticsError=>'全文索引连接出错',
self::otherDriverLogin => '当前帐户在其他设备登录,假如不是您本人操作,请尽快修改密码',
self::elasticsError => '全文索引连接出错',
self::emptyLog => '日志内容不能为空',
self::writeLogFailed => '日志写入失败',
self::wrongTimeForReadLog => '读日志时写入时间段查询开始时间不能大于结束时间',
......
......@@ -147,9 +147,9 @@ class ShopkeeperController extends \Our\Controller_AbstractApi {
$keyword = isset($this->req['data']['keyword'])?$this->req['data']['keyword']:'';
$result = $this->shopkeeperService->getOrders($this->memberId,$pageIndex,$pageSize,$orderState,$keyword);
$this->success($result);
if($result){
$this->success(array(),\Our\DescribeConst::successMessage,\Our\DescribeConst::successMessage);
}
// if($result){
// $this->success(array(),\Our\DescribeConst::successMessage,\Our\DescribeConst::successMessage);
// }
}
/**
......@@ -201,5 +201,26 @@ class ShopkeeperController extends \Our\Controller_AbstractApi {
}
public function receivePaymentAction(){
$shopkeeperService=\Business\Store\ShopkeeperServiceModel::getInstance();
$res=$shopkeeperService->confirmReceivePayment($this->memberId,$this->req['data']['orderId']);
if($res){
$this->success(array(),\Our\DescribeConst::successMessage);
}else{
ErrorModel::throwException(CodeConfigModel::confirmReceiveError);
}
}
/**
* 查询配送员
*
*/
public function searchDeliveryAction(){
$shopkeeperService=\Business\Store\ShopkeeperServiceModel::getInstance();
$res=$shopkeeperService->getDiliveryMan($this->req['data']['mobile']);
$res=$res?$res:new \stdClass();
$this->success($res,\Our\DescribeConst::successMessage);
}
}
......@@ -68,7 +68,7 @@ class UserController extends \Our\Controller_AbstractIndex {
$member['store_id']=$seller['storeId'];
$member['seller_id']=$seller['sellerId'];
$this->memberService->saveMember($member,'seller');
$this->success(array('key'=>$this->key,'memberName'=>$member['member_name'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id']));
$this->success(array('key'=>$this->key,'trueName'=>$seller['trueName'],'memberAvatar'=>$member['memberAvatarUrl'],'memberId'=>(int)$member['member_id'],'storeId'=>(int)$seller['storeId']));
}else{
ErrorModel::throwException(CodeConfigModel::errorUsernameOrPassword);
}
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>简单的html5 File测试 for pic2base64</title>
<style>
</style>
</head>
<body>
<form action="/client/shopkeeper/receivePayment" method="post">
用户登录状态key:<input name="data[key]" value="ceb72deab920ac0edb7272b2ed9dfa1e"/><br />
订单id:<input name="data[orderId]" value=""/><br />
<input type="submit" value="提交">
</form>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>简单的html5 File测试 for pic2base64</title>
<style>
</style>
</head>
<body>
<form action="/client/shopkeeper/searchDelivery" method="post">
用户登录状态key:<input name="data[key]" value="73526b0db474f2a0e5f80c67301be73d"/><br />
配送员电话:<input name="data[mobile]" value="18305954587"/><br />
<input type="submit" value="提交">
</form>
</body>
</html>
\ No newline at end of file
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