Commit 14f0c137 authored by wwccw0591's avatar wwccw0591

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

parents ca736fb3 5077f5a1
...@@ -394,4 +394,6 @@ class ApiConst ...@@ -394,4 +394,6 @@ class ApiConst
const defaultGoodsScore= 5; const defaultGoodsScore= 5;
const memberAvatarType = 5;
} }
\ No newline at end of file
...@@ -88,7 +88,8 @@ class ImageConst{ ...@@ -88,7 +88,8 @@ class ImageConst{
1=>self::goodsEvaluation, 1=>self::goodsEvaluation,
2=>self::refund, 2=>self::refund,
3=>self::imImagePath, 3=>self::imImagePath,
4=>self::reportPath 4=>self::reportPath,
5=>self::memberAvatar
); );
const sizeScale = 1.5; const sizeScale = 1.5;
......
...@@ -171,4 +171,23 @@ class ImageUtil { ...@@ -171,4 +171,23 @@ class ImageUtil {
} }
public static function saveWxImage($data)
{
$fileName = isset($data['image'])&&$data['image']?$data['image']:$data['memberAvatar'];
//$fileName ='data';
if (!empty($_FILES[$fileName]['tmp_name'])) {
$savePath = ImageConst::uploadTypes[$data['type']];
$res = self::uploadImage($_FILES[$fileName]['tmp_name'], $savePath, ImageUtil::getFileName($data['type']));
$fileName = basename($res);
return array(
'fileName' => $fileName,
'url' => $res
);
}
return false;
}
} }
...@@ -24,7 +24,7 @@ class Pay { ...@@ -24,7 +24,7 @@ class Pay {
$this->channel = $data['channel']; $this->channel = $data['channel'];
$this->paySn = $data['paySn']; $this->paySn = $data['paySn'];
$this->requestData = $data; $this->requestData = $data;
$this->member = \DAO\MemberModel::getInstance()->find($this->memberId); $this->member = \DAO\MemberModel::getInstance()->getInfo($this->memberId);
$return = array(); $return = array();
$orderInfo = $this->getOrder(); $orderInfo = $this->getOrder();
if($data['channel'] == \Our\NameConst::wxAppChannel){ if($data['channel'] == \Our\NameConst::wxAppChannel){
......
...@@ -93,7 +93,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -93,7 +93,7 @@ class CartServiceModel extends \Business\AbstractModel{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editDelCartFailed); \Error\ErrorModel::throwException(\Error\CodeConfigModel::editDelCartFailed);
} }
$updateResult = $cartDao->update(array('gmt_update'=>TIMESTAMP),array('goods_id'=>$cart['goods_id'],'buyer_id'=>$memberId)); $updateResult = $cartDao->update(array('gmt_update'=>TIMESTAMP),array('goods_id'=>$cart['goods_id'],'buyer_id'=>$memberId));
if(!$updateResult){ if($updateResult===false){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartUploadCartFailed); \Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartUploadCartFailed);
} }
$memberCartKey = \Our\NameConst::memberCartStorePrefix.$memberId; $memberCartKey = \Our\NameConst::memberCartStorePrefix.$memberId;
...@@ -386,7 +386,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -386,7 +386,7 @@ class CartServiceModel extends \Business\AbstractModel{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCartGoodsNum); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCartGoodsNum);
} }
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName); $cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$existCart = $cartDao->find(array('goods_id'=>$data['goodsId'],'buyer_id'=>$memberId,array('cart_id'=>array('neq ',$data['cartId'])))); $existCart = $cartDao->find(array('goods_id'=>$data['goodsId'],'buyer_id'=>$memberId,'cart_id'=>array('neq',$cart['cart_id'])));
if($existCart){ if($existCart){
return array('existCartFlag'=>\Our\ApiConst::one); return array('existCartFlag'=>\Our\ApiConst::one);
} }
......
...@@ -46,23 +46,6 @@ class CommonServiceModel extends \Business\AbstractModel ...@@ -46,23 +46,6 @@ class CommonServiceModel extends \Business\AbstractModel
return $result; return $result;
} }
private function saveWxImage($data)
{
$fileName = $data['image'];
if (!empty($_FILES[$fileName]['tmp_name'])) {
$savePath = ImageConst::uploadTypes[$data['type']];
$res = ImageUtil::uploadImage($_FILES[$fileName]['tmp_name'], $savePath, ImageUtil::getFileName($data['type']));
$fileName = basename($res);
return array(
'fileName' => $fileName,
'url' => $res
);
}
return new \stdClass();
}
public function saveImage($data) public function saveImage($data)
{ {
...@@ -77,7 +60,11 @@ class CommonServiceModel extends \Business\AbstractModel ...@@ -77,7 +60,11 @@ class CommonServiceModel extends \Business\AbstractModel
//如过是微信 //如过是微信
$requstDriver = Common::getDriverType(); $requstDriver = Common::getDriverType();
if ($requstDriver == ApiConst::wxType||(isset($data['name'])&&!empty($data['name']))) { if ($requstDriver == ApiConst::wxType||(isset($data['name'])&&!empty($data['name']))) {
return $this->saveWxImage($data); $returnData = \Our\ImageUtil::saveWxImage($data);
if(!$returnData){
$returnData = new \stdClass();
}
return $returnData;
} }
$time = date('YmdHis_'); $time = date('YmdHis_');
$fileName = $time . \Our\Validate::getNumberString(); $fileName = $time . \Our\Validate::getNumberString();
......
...@@ -49,6 +49,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -49,6 +49,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
} }
} }
} }
$data['goods'] = []; $data['goods'] = [];
if($data['goodsList'] && is_array($data['goodsList'])){ if($data['goodsList'] && is_array($data['goodsList'])){
foreach ($data['goodsList'] as $v){ foreach ($data['goodsList'] as $v){
...@@ -188,16 +189,36 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -188,16 +189,36 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
} }
$tempObj['goodsAttr'] = $goodsDao->getFormatGoodsAttr($tempCart['goods_spec']); $tempObj['goodsAttr'] = $goodsDao->getFormatGoodsAttr($tempCart['goods_spec']);
$tempObj['goodsMid'] = $tempCart['goods_mid']; $tempObj['goodsMid'] = $tempCart['goods_mid'];
$storeCarts[] = $tempObj; array_push($storeCarts,$tempObj);
} }
} }
if(isset($storeCarts)&&count($storeCarts)>\Our\ApiConst::zero){ if(isset($storeCarts)&&count($storeCarts)>\Our\ApiConst::zero){
$offlineCarts = array();
$newstoreCarts= array();
foreach ($storeCarts as $row){
if($row['goodsState']==\Our\ApiConst::cartGoodsOnline){
array_push($newstoreCarts,$row);
}else{
$offlineCarts[] = $row;
}
}
if($offlineCarts){
foreach($offlineCarts as $key=>$cartObj){
$goodsState[$key] = $cartObj['goodsState'];
}
array_multisort($goodsState, SORT_DESC, $offlineCarts);
foreach($offlineCarts as $tempCartObj){
array_push($newstoreCarts,$tempCartObj);
}
}
$storeCarts = $newstoreCarts;
$store = $storeDao->get($storeId,false); $store = $storeDao->get($storeId,false);
$temp = array();
$temp['storeName'] = $store['store_name']; $temp['storeName'] = $store['store_name'];
$temp['storeId'] = $storeId; $temp['storeId'] = $storeId;
$temp['storeCarts'] = $storeCarts; $temp['storeCarts'] = $storeCarts;
$temp['inAreaFlag'] = $storeDao->checkAddressInServiceArea($address,$store); $temp['inAreaFlag'] = $storeDao->checkAddressInServiceArea($address,$store);
$result[]=$temp; $result[$storeId]=$temp;
$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$storeId; $memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$storeId;
$cartRedis->update($memberStoreCartsKey,$temp,\Our\ApiConst::oneHour); $cartRedis->update($memberStoreCartsKey,$temp,\Our\ApiConst::oneHour);
} }
...@@ -208,11 +229,17 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -208,11 +229,17 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
unset($tempReturnStoreCartsObj['goodsCommonPrices']); unset($tempReturnStoreCartsObj['goodsCommonPrices']);
unset($tempReturnStoreCartsObj['is_transport']); unset($tempReturnStoreCartsObj['is_transport']);
unset($tempReturnStoreCartsObj['transport_id']); unset($tempReturnStoreCartsObj['transport_id']);
$result[]=$tempReturnStoreCartsObj; $result[$storeId]=$tempReturnStoreCartsObj;
} }
} }
if($result){ if($result){
return array('totalCount'=>count($storeCartList),'list'=>$result); $storeIds = $cartListData['storeIds'];
$newResult = array();
foreach($storeIds as $key){
$newResult[] = $result[$key];
}
return array('totalCount'=>count($storeCartList),'list'=>$newResult);
} }
return array('totalCount'=>\Our\ApiConst::zero,'list'=>array()); return array('totalCount'=>\Our\ApiConst::zero,'list'=>array());
} }
...@@ -352,7 +379,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -352,7 +379,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
$totalCount = \Our\RedisHelper::cachedFunction(\Redis\Db4\PBundlingRedisModel::getInstance(),array(&$pbundlingInstance, 'getCount'),array(array('store_id'=>$storeId)),\Our\ApiConst::oneDaySecond,array($storeId)); $totalCount = \Our\RedisHelper::cachedFunction(\Redis\Db4\PBundlingRedisModel::getInstance(),array(&$pbundlingInstance, 'getCount'),array(array('store_id'=>$storeId)),\Our\ApiConst::oneDaySecond,array($storeId));
//$groupList = $this->getPBundlingList($list); //$groupList = $this->getPBundlingList($list);
foreach ($groupList as $k=>$v){ foreach ($groupList as $k=>$v){
if($v['bl_quota_starttime']<TIMESTAMP&&$v['endTime']>=TIMESTAMP){ if($v['bl_quota_starttime']<TIMESTAMP&&$v['endTime']>=TIMESTAMP && $v['bl_storage'] > \Our\ApiConst::zero){
$v['groupId'] = $v['blId']; $v['groupId'] = $v['blId'];
$v['image'] = ImageUtil::getGoodsImgUrl($v['image'],\Our\ImageConst::storeGroupImg); $v['image'] = ImageUtil::getGoodsImgUrl($v['image'],\Our\ImageConst::storeGroupImg);
unset($v['bl_title']); unset($v['bl_title']);
......
...@@ -193,27 +193,29 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -193,27 +193,29 @@ class MemberServiceModel extends \Business\AbstractModel
*/ */
public function saveMemberAvatar($where,$memberId){ public function saveMemberAvatar($where,$memberId){
$memberAvatar = $where['memberAvatar']; $memberAvatar = $where['memberAvatar'];
$memberImage = $where['memberImage']; if(!($memberAvatar)){
if(!($memberAvatar||$memberImage)){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emtpyMemberAvatar); \Error\ErrorModel::throwException(\Error\CodeConfigModel::emtpyMemberAvatar);
} }
if($memberAvatar){ $requestDriver = \Our\Common::getDriverType();
if ($requestDriver == \Our\ApiConst::wxType) {
$where['type'] = \Our\ApiConst::memberAvatarType;
$returnAvatar = \Our\ImageUtil::saveWxImage($where);
if(!$returnAvatar){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::uploadWxMemberAvatarFailed);
}
$memberAvatarName = $returnAvatar['fileName'];
}else{
$memberAvatarName = \Our\ImageConst::memberAvatarPrefix.$memberId; $memberAvatarName = \Our\ImageConst::memberAvatarPrefix.$memberId;
$result = \Our\ImageUtil::uploadBase64Image($memberAvatar,\Our\ImageConst::memberAvatar,$memberAvatarName); $result = \Our\ImageUtil::uploadBase64Image($memberAvatar,\Our\ImageConst::memberAvatar,$memberAvatarName);
if($result){ if(!$result){
$data['member_avatar'] = $memberAvatarName; \Error\ErrorModel::throwException(\Error\CodeConfigModel::uploadMemberAvatarFailed);
$memberDao=\DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $memberDao->saveInfo($data,$memberId);
} }
return $result;
} }
if($memberImage){ $data['member_avatar'] = $memberAvatarName;
$data['member_avatar'] = $memberImage;
$memberDao=\DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName); $memberDao=\DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $memberDao->saveInfo($data,$memberId); $result = $memberDao->saveInfo($data,$memberId);
return $result; return $result;
} }
}
/** /**
...@@ -567,12 +569,12 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -567,12 +569,12 @@ class MemberServiceModel extends \Business\AbstractModel
return false; return false;
} }
$memberDao = \DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName); $memberDao = \DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$existMember = $memberDao->find($memberMapping['member_id']); $existMember = $memberDao->getInfo($memberMapping['member_id']);
if(!$existMember){ if(!$existMember){
$memberMappingDao->del(array('id'=>$memberMapping['id'])); $memberMappingDao->del(array('id'=>$memberMapping['id']));
return false; return false;
} }
if($existMember['member_mobile']&&$existMember['member_mobile_bind']){ if($existMember['memberMobile']&&$existMember['memberMobileBind']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::registerMemberInfoFailed); \Error\ErrorModel::throwException(\Error\CodeConfigModel::registerMemberInfoFailed);
} }
$member['member_mobile'] = $where['mobile']; $member['member_mobile'] = $where['mobile'];
......
...@@ -213,7 +213,8 @@ class CartModel extends \DAO\AbstractModel{ ...@@ -213,7 +213,8 @@ class CartModel extends \DAO\AbstractModel{
'goodsIds'=>$goodsIds, 'goodsIds'=>$goodsIds,
'goodsCommonIds'=>$goodsCommonIds, 'goodsCommonIds'=>$goodsCommonIds,
'blIds'=>$blIds, 'blIds'=>$blIds,
'cartList'=>$storeCartList 'cartList'=>$storeCartList,
'storeIds'=>$storeIds
); );
} }
......
...@@ -26,30 +26,6 @@ class MemberModel extends \DAO\AbstractModel ...@@ -26,30 +26,6 @@ class MemberModel extends \DAO\AbstractModel
$this->memberMysql = \Mysql\MemberModel::getInstance(); $this->memberMysql = \Mysql\MemberModel::getInstance();
} }
/**
* 根据用户编号查找数据
*
* @param int $userId
* @return array
*/
public function find($userId)
{
$redis = \Redis\Db0\MemberRedisModel::getInstance();
$user = $redis->find($userId);
if (!$user) {
$this->setDb($this->dbName);
$user = $this->db->select(\Our\NameConst::allField)->from($this->_tableName)->where(array('member_id' => $userId))->fetchOne();
//$mysql = \Mysql\MemberModel::getInstance();
//$user = $mysql->find($userId);
if ($user) {
$memberAvatarUrl = $this->getMemberAvatarUrl($user['member_id'], $user['member_avatar']);
$user['memberAvatarUrl'] = $memberAvatarUrl;
$redis->update($userId, $user);
}
}
return $user;
}
/** /**
* 获取会员头像 * 获取会员头像
......
...@@ -96,6 +96,8 @@ class CodeConfigModel { ...@@ -96,6 +96,8 @@ class CodeConfigModel {
const saveUserMappingFailed = 10109; const saveUserMappingFailed = 10109;
const registerMemberInfoFailed = 10110; const registerMemberInfoFailed = 10110;
const authMemberExistMobile = 10111; const authMemberExistMobile = 10111;
const uploadMemberAvatarFailed = 10112;
const uploadWxMemberAvatarFailed = 10113;
//访问错误 //访问错误
const illegalAccess=200001; const illegalAccess=200001;
...@@ -494,6 +496,8 @@ class CodeConfigModel { ...@@ -494,6 +496,8 @@ class CodeConfigModel {
self::emptyEncryptedDataAndVi => '小程序登录时,加密相关参数不能为空(EncryptedDataAndVi)', self::emptyEncryptedDataAndVi => '小程序登录时,加密相关参数不能为空(EncryptedDataAndVi)',
self::getUnionidFailed => '获取unionid失败', self::getUnionidFailed => '获取unionid失败',
self::saveMemberMapppingFailed => '保存用户第三方绑定信息失败', self::saveMemberMapppingFailed => '保存用户第三方绑定信息失败',
self::uploadMemberAvatarFailed => '上传用户头像失败',
self::uploadWxMemberAvatarFailed => '微信上传用户头像失败',
//商品相关 //商品相关
self::emptyCommonId=> '商品主键不能为空', self::emptyCommonId=> '商品主键不能为空',
self::goodsNotExist=> '商品不存在', self::goodsNotExist=> '商品不存在',
......
...@@ -12,7 +12,47 @@ application.dispatcher.catchException = true ...@@ -12,7 +12,47 @@ application.dispatcher.catchException = true
; Admin模块用于后台管理 ; Admin模块用于后台管理
application.modules = Index,Api,Admin application.modules = Index,Api,Admin
[productone : common]
; 数据库配置
resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "172.16.142.15"
resources.database.params.port = 3306
resources.database.params.database = "qmcs"
resources.database.params.username = "root"
resources.database.params.password = "!@#$%12345werty"
resources.database.params.charset = "UTF8"
resources.database.params.driver_options.1002 = "SET NAMES utf8"
;
; ; 从库配置
resources.database.slave.params.driver = "pdo_mysql"
resources.database.slave.params.hostname = "172.16.142.15"
resources.database.slave.params.port = 3306
resources.database.slave.params.database = "qmcs"
resources.database.slave.params.username = "root"
resources.database.slave.params.password = "!@#$%12345werty"
resources.database.slave.params.charset = "UTF8"
resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
;
redis.database.params.host = "172.16.142.15"
redis.database.params.port = "6379"
redis.database.params.prefix = "qm_"
; ;redis.database.params.password = "23456ertyu"
out.config="/data/config"
;
; ; 锁文件
out.locks="/data/locks";
; ; redis配置
;
;redis.database.params.password = "test"
; ;推送配置
push.clientHost="wss://api.shenbd.com/wss"
push.host="172.16.142.15"
push.port="9503"
push.open=1
;
elastic.master.host="172.16.142.15"
elastic.master.port="9200"
elastic.master.scheme="http";
//生产环境 //生产环境
......
[common] [common]
; 通用配置 ; 通用配置
[productone : common]
; 测试环境配置
;
; ; url相关配置
; ; 开发环境配置
config.url.convert=/usr/local/bin/wkhtmltoimage
; ; url相关配置
config.url.resourcesHost = "http://api.shenbd.com"
; ; 用户中心host
config.url.userHost = ""
;
; ; oss 域名
config.url.ossHost = "https://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;
; ;推送域名
config.url.pushHost="172.16.142.15:9503";
config.url.indexUrl="/alidata/www/api.shenbd.com/application/library/React"
config.url.libary="/alidata/www/api.shenbd.com/application/library"
[product : common] [product : common]
; 测试环境配置 ; 测试环境配置
......
<!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>保存微信用户头像</title>
</head>
<body>
<form action="/member/saveMemberAvatar" method="post" enctype="multipart/form-data">
头像:<input type="file" name="data[memberAvatar]" ><br />
用户登录状态key:<input name="data[key]" value="4a4fbb98c5ba20a3902ab28e2c6a0f84"/><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