Commit a8812ef4 authored by wwccw0591's avatar wwccw0591

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

parents abf517d3 8ac08d25
...@@ -88,8 +88,13 @@ class UserController extends \Our\Controller_AbstractIndex { ...@@ -88,8 +88,13 @@ class UserController extends \Our\Controller_AbstractIndex {
if($member){ if($member){
/*$userToken=$this->memberService->findMbUserTokenByMemberId($member['member_id']); /*$userToken=$this->memberService->findMbUserTokenByMemberId($member['member_id']);
$this->memberService->clearKey($userToken['token']);*/ $this->memberService->clearKey($userToken['token']);*/
$userToken=$this->memberService->getWxUserToken($member['member_id']);
if(!empty($userToken)){
$this->updateOldLoginKey($userToken);
}
$this->memberService->clearKey($this->key); $this->memberService->clearKey($this->key);
$this->key=Common::bulidToken('', '', '', \Our\ApiConst::wechatDeviceType); $this->key=Common::bulidToken('', '', '', \Our\ApiConst::wechatDeviceType);
$this->memberService->saveWxUserToken($this->key,$member['member_id']);
session_id($this->key); session_id($this->key);
$this->sess['member_id'] = $member['member_id']; $this->sess['member_id'] = $member['member_id'];
$this->sess['user_type'] = \Our\ApiConst::wechatUserType; $this->sess['user_type'] = \Our\ApiConst::wechatUserType;
......
...@@ -20,6 +20,8 @@ class ApiConst ...@@ -20,6 +20,8 @@ class ApiConst
//一个小时 //一个小时
const oneHour = 3600; const oneHour = 3600;
const twoMinSecond = 120;
const fiveMinutes=180; const fiveMinutes=180;
//10分钟秒数 //10分钟秒数
const tenMinSecond = 600; const tenMinSecond = 600;
...@@ -394,4 +396,6 @@ class ApiConst ...@@ -394,4 +396,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;
...@@ -110,4 +111,8 @@ class ImageConst{ ...@@ -110,4 +111,8 @@ class ImageConst{
const groupGoodsImg = 160; //组合详情页的搭配商品 const groupGoodsImg = 160; //组合详情页的搭配商品
const storeGroupImg = 186; //店铺促销 const storeGroupImg = 186; //店铺促销
const storeGroupGoodsImg = 130; const storeGroupGoodsImg = 130;
const cartBlImage = 184;
const cartBlDetailImage = 148;
} }
...@@ -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){
......
...@@ -186,6 +186,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -186,6 +186,7 @@ class CartServiceModel extends \Business\AbstractModel{
}else if($cart['type'] == \Our\ApiConst::addBundingToCart){ }else if($cart['type'] == \Our\ApiConst::addBundingToCart){
$newCart = $this->getPBundlingGoodsCartData($data['goodsNum'],$memberId,$pBundling); $newCart = $this->getPBundlingGoodsCartData($data['goodsNum'],$memberId,$pBundling);
} }
unset($newCart['newCarts'][0]['gmt_update']);
return $newCart; return $newCart;
} }
...@@ -391,7 +392,7 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -391,7 +392,7 @@ class CartServiceModel extends \Business\AbstractModel{
return array('existCartFlag'=>\Our\ApiConst::one); return array('existCartFlag'=>\Our\ApiConst::one);
} }
$goodsDao = \DAO\GoodsModel::getInstance(\Our\DbNameConst::masterDBConnectName); $goodsDao = \DAO\GoodsModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$goodsValidStatus = $goodsDao->validEditCartGoods($data,$cart); $goodsValidStatus = $goodsDao->validEditCartGoods($data,$cart,false);
if(!$goodsValidStatus){ if(!$goodsValidStatus){
\Error\ErrorModel::throwException($goodsDao->errorCode); \Error\ErrorModel::throwException($goodsDao->errorCode);
} }
...@@ -448,7 +449,6 @@ class CartServiceModel extends \Business\AbstractModel{ ...@@ -448,7 +449,6 @@ class CartServiceModel extends \Business\AbstractModel{
$field = 'MAX(gmt_update) AS gmtupdate,store_id'; $field = 'MAX(gmt_update) AS gmtupdate,store_id';
$group = 'store_id'; $group = 'store_id';
$storeIds = $cartDao->getCartStoreIdsByMemberId($where,$memberId,$field,$group,$order); $storeIds = $cartDao->getCartStoreIdsByMemberId($where,$memberId,$field,$group,$order);
\Our\Log::getInstance()->write(json_encode($storeIds));
//$cartStores = $cartDao->lists($where,$order,$field,$data['pageIndex'],$data['pageSize'],$group); //$cartStores = $cartDao->lists($where,$order,$field,$data['pageIndex'],$data['pageSize'],$group);
$storeIdList = array_column($storeIds,'store_id'); $storeIdList = array_column($storeIds,'store_id');
$totalCount = count($storeIdList); $totalCount = count($storeIdList);
......
...@@ -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){
...@@ -113,6 +114,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -113,6 +114,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
//$pBundlingList = $this->getGroupListForCart($blIds); //$pBundlingList = $this->getGroupListForCart($blIds);
//var_dump($pBundlingList); //var_dump($pBundlingList);
$pBundlingList = $this->getPBundlingListByBlIds($blIds,\Our\DbNameConst::salveDBConnectName,true); $pBundlingList = $this->getPBundlingListByBlIds($blIds,\Our\DbNameConst::salveDBConnectName,true);
$pBundlingList = $this->getResizeGroupSaleGoodsList($pBundlingList);
} }
$goodsCommonIds = $cartListData['goodsCommonIds']; $goodsCommonIds = $cartListData['goodsCommonIds'];
$goodsIds = $cartListData['goodsIds']; $goodsIds = $cartListData['goodsIds'];
...@@ -137,7 +139,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -137,7 +139,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
$tempObj['goodsName'] = $tempCart['goods_name']; $tempObj['goodsName'] = $tempCart['goods_name'];
$tempObj['goodsPrice'] = $tempCart['goods_price']; $tempObj['goodsPrice'] = $tempCart['goods_price'];
$tempObj['goodsNum'] = $tempCart['goods_num']; $tempObj['goodsNum'] = $tempCart['goods_num'];
$tempObj['goodsImage'] = \Our\ImageUtil::getGoodsImgUrl($tempCart['goods_image']); $tempObj['goodsImage'] = \Our\ImageUtil::getGoodsImgUrl($tempCart['goods_image'],\Our\ImageConst::cartBlImage);
$tempObj['type'] = $tempCart['type']; $tempObj['type'] = $tempCart['type'];
if ($tempCart['type'] == \Our\ApiConst::addBundingToCart) { if ($tempCart['type'] == \Our\ApiConst::addBundingToCart) {
$pBundling = isset($pBundlingList[$tempCart['goods_id']])?$pBundlingList[$tempCart['goods_id']]:array(); $pBundling = isset($pBundlingList[$tempCart['goods_id']])?$pBundlingList[$tempCart['goods_id']]:array();
...@@ -163,13 +165,15 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -163,13 +165,15 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
if($tempPrice){ if($tempPrice){
$tempObj['goodsPrice'] = $tempPrice; $tempObj['goodsPrice'] = $tempPrice;
} }
$tempObj['goodsImage'] = $pBundling['image'];
$tempObj['goodsList'] = \Our\Common::convertUnderline($pBundling['goodsList']); $tempObj['goodsList'] = \Our\Common::convertUnderline($pBundling['goodsList']);
$tempObj['goodsOriginalPrice'] = $pBundling['sumPrice']; $tempObj['goodsOriginalPrice'] = $pBundling['sumPrice'];
} else if ($tempCart['type'] == \Our\ApiConst::addGoodsToCart) { } else if ($tempCart['type'] == \Our\ApiConst::addGoodsToCart) {
$goodsStorage = isset($goodsCommonStorages[$tempCart['goods_commonid']][$tempCart['goods_id']])?$goodsCommonStorages[$tempCart['goods_commonid']][$tempCart['goods_id']]:array();//$goodsDao->getOnlineStorageGoods($tempCart['goods_id']); $goodsStorage = isset($goodsCommonStorages[$tempCart['goods_commonid']][$tempCart['goods_id']])?$goodsCommonStorages[$tempCart['goods_commonid']][$tempCart['goods_id']]:array();//$goodsDao->getOnlineStorageGoods($tempCart['goods_id']);
if($goodsStorage){ if($goodsStorage){
if(isset($goodsStorage['goods_image'])&&$goodsStorage['goods_image']){ if(isset($goodsStorage['goods_image'])&&$goodsStorage['goods_image']){
$tempObj['goodsImage'] = \Our\ImageUtil::getGoodsImgUrl($goodsStorage['goods_image']); $tempObj['goodsImage'] = \Our\ImageUtil::getGoodsImgUrl($goodsStorage['goods_image'],\Our\ImageConst::cartBlImage);
} }
if ($goodsStorage['onlineFlag'] == \Our\ApiConst::one) { if ($goodsStorage['onlineFlag'] == \Our\ApiConst::one) {
if($goodsStorage['goodsStorage']>\Our\ApiConst::zero){ if($goodsStorage['goodsStorage']>\Our\ApiConst::zero){
...@@ -352,6 +356,24 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -352,6 +356,24 @@ class GroupSaleServiceModel extends \Business\AbstractModel {
return $return; return $return;
} }
public function getResizeGroupSaleGoodsList($pbundingList, $blImageWidth = \Our\ImageConst::cartBlImage,$blDetailImageWidth = \Our\ImageConst::cartBlDetailImage){
$groupList = array();
foreach ($pbundingList as $k=>$v){
$v['image'] = ImageUtil::getGoodsImgUrl($v['image'],$blImageWidth);
if($v['goodsList']){
$goods = array();
foreach ($v['goodsList'] as $v2){
$v2['goodsImage'] = ImageUtil::getGoodsImgWithUrl($v2['goodsImage'],$blDetailImageWidth);
$goods[] = $v2;
}
$v['goodsList'] = $goods;
}
$groupList[$k] = $v;
}
return $groupList;
}
/** /**
* 获取组合销售与商品列表 * 获取组合销售与商品列表
* @param $param * @param $param
...@@ -378,7 +400,7 @@ class GroupSaleServiceModel extends \Business\AbstractModel { ...@@ -378,7 +400,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']);
......
...@@ -61,6 +61,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -61,6 +61,7 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
//获取店铺数据统计 //获取店铺数据统计
//$storeStats = $storeStatisticsDao->find($condition); //$storeStats = $storeStatisticsDao->find($condition);
//获取店铺今日销售额和订单量 //获取店铺今日销售额和订单量
// $storeStats=$orderDao->getShopKeeperCountByStoreId($storeId);
$storeStats = $orderDao->getShopKeeperCountByStoreIdCache($storeId); $storeStats = $orderDao->getShopKeeperCountByStoreIdCache($storeId);
$storeFavariteCount=$favoritesStoreDao->getFavoritesCountByStoreIdCache($storeId); $storeFavariteCount=$favoritesStoreDao->getFavoritesCountByStoreIdCache($storeId);
$data['storeId'] = $store['store_id']; $data['storeId'] = $store['store_id'];
...@@ -673,35 +674,28 @@ class ShopkeeperServiceModel extends \Business\AbstractModel ...@@ -673,35 +674,28 @@ class ShopkeeperServiceModel extends \Business\AbstractModel
{ {
$refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::salveDBConnectName); $refundReturnDao = \DAO\Order\RefundReturnModel::getInstance(DbNameConst::salveDBConnectName);
$storeMemberStatisticDao = \DAO\StoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName); $storeMemberStatisticDao = \DAO\StoreMemberStatisticsModel::getInstance(DbNameConst::masterDBConnectName);
$orderGoodsDao=\DAO\Order\OrderGoodsModel::getInstance(DbNameConst::masterDBConnectName);
$orderDao=\DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$gmtUpdate = file_get_contents($this->baseDir . PathConst::refundRetrunGmtUpdate); $gmtUpdate = file_get_contents($this->baseDir . PathConst::refundRetrunGmtUpdate);
$gmtUpdate = $gmtUpdate ? $gmtUpdate : ApiConst::zero; $gmtUpdate = $gmtUpdate ? $gmtUpdate : ApiConst::zero;
$this->taskIndex = PageConst::taskPageBegin; $this->taskIndex = PageConst::taskPageBegin;
$this->taskSize = PageConst::taskPageSize; $this->taskSize = PageConst::taskPageSize;
do { do {
$addDatas = array();
$storeMemberStatisticData = $refundReturnDao->getMemberStoreStaticsByGmtUpdate($gmtUpdate, $this->taskIndex, $this->taskSize); $storeMemberStatisticData = $refundReturnDao->getMemberStoreStaticsByGmtUpdate($gmtUpdate, $this->taskIndex, $this->taskSize);
$storeMemberStatisticData = isset($storeMemberStatisticData['list']) ? $storeMemberStatisticData['list'] : false; $storeMemberStatisticData = isset($storeMemberStatisticData['list']) ? $storeMemberStatisticData['list'] : false;
if ($storeMemberStatisticData) { if(!empty($storeMemberStatisticData)){
$this->taskIndex++; foreach($storeMemberStatisticData as $item){
foreach ($storeMemberStatisticData as $value) { $orderDao->deleteOrderCache($item['buyerId'],$item['orderId'],$item['storeId'],true,true);
$addDatas[$value['buyerId'] . '-' . $value['storeId']]['storeId'] = $value['storeId']; }
$addDatas[$value['buyerId'] . '-' . $value['storeId']]['memberId'] = $value['buyerId']; $orderIds=array_column($storeMemberStatisticData,'orderId');
if (isset($addDatas[$value['buyerId'] . '-' . $value['storeId']]['orderGoodsCount'])) { foreach($orderIds as $orderId){
$addDatas[$value['buyerId'] . '-' . $value['storeId']]['orderGoodsCount'] += $value['goodsNum']; $res=$orderGoodsDao->find(array('order_id'=>$orderId,'refund_id'=>ApiConst::zero));
} else { if(empty($res)){
$addDatas[$value['buyerId'] . '-' . $value['storeId']]['orderGoodsCount'] = $value['goodsNum']; $orderDao->update(array('order_id'=>$orderId),array('order_state'=>ApiConst::orderStateClose));
}
if (isset($addDatas[$value['buyerId'] . '-' . $value['storeId']]['orderTotal'])) {
$addDatas[$value['buyerId'] . '-' . $value['storeId']]['orderTotal'] += $value['refundAmount'];
} else {
$addDatas[$value['buyerId'] . '-' . $value['storeId']]['orderTotal'] = $value['refundAmount'];
} }
} }
} }
$addDatas = array_values($addDatas); $this->taskIndex++;
$storeMemberStatisticDao->addAllReduce($addDatas);
$this->reduceRefundModel($storeMemberStatisticData);
} while ($storeMemberStatisticData); } while ($storeMemberStatisticData);
file_put_contents($this->baseDir . PathConst::refundRetrunGmtUpdate, TIMESTAMP); file_put_contents($this->baseDir . PathConst::refundRetrunGmtUpdate, TIMESTAMP);
......
...@@ -71,14 +71,17 @@ class AddressServiceModel extends \Business\AbstractModel { ...@@ -71,14 +71,17 @@ class AddressServiceModel extends \Business\AbstractModel {
}else { }else {
if($currentAddress){ if($currentAddress){
if($currentAddress['addressId']&&$currentAddress['chooseFlag']){ if($currentAddress['addressId']&&$currentAddress['chooseFlag']){
$address['addressId'] = $currentAddress['addressId']; $addresses = array();
$address['address'] = $currentAddress['address']; if($currentAddress['addressId'] >\Our\ApiConst::zero){
$address['name'] = $currentAddress['name']; $address['addressId'] = $currentAddress['addressId'];
$address['tagType'] = $currentAddress['tagType']; $address['address'] = $currentAddress['address'];
$address['lat'] = $currentAddress['lat']; $address['name'] = $currentAddress['name'];
$address['lng'] = $currentAddress['lng']; $address['tagType'] = $currentAddress['tagType'];
$address['cityCode'] = $currentAddress['cityCode']; $address['lat'] = $currentAddress['lat'];
$addresses[] = $address; $address['lng'] = $currentAddress['lng'];
$address['cityCode'] = $currentAddress['cityCode'];
$addresses[] = $address;
}
$returnAddress = array('returnAddressId'=>$currentAddress['addressId'],'choosedAddressFlag'=>$currentAddress['chooseFlag'],'addresses'=>$addresses); $returnAddress = array('returnAddressId'=>$currentAddress['addressId'],'choosedAddressFlag'=>$currentAddress['chooseFlag'],'addresses'=>$addresses);
}else{ }else{
......
...@@ -26,7 +26,7 @@ class FootprintServiceModel extends \Business\AbstractModel ...@@ -26,7 +26,7 @@ class FootprintServiceModel extends \Business\AbstractModel
$startTime = mktime(0,0,0,$month-2,1,$year); $startTime = mktime(0,0,0,$month-2,1,$year);
$endTime = mktime(0,0,-1,$month+1,1,$year); $endTime = mktime(0,0,-1,$month+1,1,$year);
$browseDAO = \DAO\GoodsBrowseModel::getInstance(); $browseDAO = \DAO\GoodsBrowseModel::getInstance();
$list = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsBrowserRedisModel::getInstance(),array(&$browseDAO, 'getDistinctDate'),array($memberId,$startTime,$endTime,$order),\Our\ApiConst::tenMinSecond,array($memberId)); $list = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsBrowserRedisModel::getInstance(),array(&$browseDAO, 'getDistinctDate'),array($memberId,$startTime,$endTime,$order),\Our\ApiConst::twoMinSecond,array($memberId));
$date = []; $date = [];
if($list){ if($list){
$date = array_column($list,'browsedate'); $date = array_column($list,'browsedate');
......
...@@ -128,6 +128,8 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -128,6 +128,8 @@ class MemberServiceModel extends \Business\AbstractModel
return $mbUserTokenModel->findByMemberId($memberId); return $mbUserTokenModel->findByMemberId($memberId);
} }
public function getMemberInfo($memberId) public function getMemberInfo($memberId)
{ {
$memberDao=\DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName); $memberDao=\DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
...@@ -182,6 +184,16 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -182,6 +184,16 @@ class MemberServiceModel extends \Business\AbstractModel
return $result; return $result;
} }
public function getWxUserToken($memberId){
$memberDao = \DAO\MemberModel::getInstance();
$userToken = $memberDao->getWxUserToken($memberId);
return $userToken;
}
public function saveWxUserToken($key,$memberId){
$memberDao = \DAO\MemberModel::getInstance();
$memberDao->saveWxUserToken($key,$memberId);
}
/** /**
* 保存会员头像 * 保存会员头像
...@@ -193,26 +205,28 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -193,26 +205,28 @@ 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'] = $memberImage;
$memberDao=\DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $memberDao->saveInfo($data,$memberId);
return $result;
} }
$data['member_avatar'] = $memberAvatarName;
$memberDao=\DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$result = $memberDao->saveInfo($data,$memberId);
return $result;
} }
...@@ -567,12 +581,12 @@ class MemberServiceModel extends \Business\AbstractModel ...@@ -567,12 +581,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'];
......
...@@ -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;
}
/** /**
* 获取会员头像 * 获取会员头像
...@@ -121,6 +97,21 @@ class MemberModel extends \DAO\AbstractModel ...@@ -121,6 +97,21 @@ class MemberModel extends \DAO\AbstractModel
} }
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){
$memberDb0Redis = \Redis\Db0\MemberRedisModel::getInstance();
$memberDb0Redis->tableHMSet($memberId, array('wxUserToken'=>$key));
}
/** /**
* 保存用户信息 * 保存用户信息
*/ */
......
...@@ -383,10 +383,18 @@ class OrderModel extends \DAO\AbstractModel ...@@ -383,10 +383,18 @@ class OrderModel extends \DAO\AbstractModel
public function getSumAmountCountByMemberAndStoreId($storeIds,$memberIds) public function getSumAmountCountByMemberAndStoreId($storeIds,$memberIds)
{ {
$this->setDb($this->dbName); $this->setDb($this->dbName);
$where['store_id']=array('in',$storeIds); if(is_array($storeIds)){
$where['member_ids']=array('in',$memberIds); $storeIds=implode(',',$storeIds);
$where['order_state']=array('notin','-1,0'); }
$res=$this->db->from($this->_tableName)->select(" buyer_id as buyerId,store_id as storeId,sum(order_amount) as orderTotal")->group('buyer_id')->group('store_id')->fetchAll(); if(is_array($memberIds)){
$memberIds=implode(',',$memberIds);
}
$where=Common::format(" store_id in({0}) and buyer_id in({1}) and order_state not in({2})",$storeIds,$memberIds,'-1,0');
// $where['store_id']=array('in',$storeIds);
// $where['buyer_id']=array('in',$memberIds);
// $where['order_state']=array('notin','-1,0');
// $where=$this->db->getSqlWhereByArray($where);
$res=$this->db->from($this->_tableName)->where($where)->select(" buyer_id as buyerId,store_id as storeId,(SUM(order_amount)-SUM(refund_amount)) AS orderTotal")->group('buyer_id')->group('store_id')->fetchAll();
return $res; return $res;
} }
......
...@@ -25,7 +25,7 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -25,7 +25,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
protected $_tableName = 'han_refund_return'; protected $_tableName = 'han_refund_return';
public $refundDetailField='is_platform_in as isPlatformIn,seller_state as sellerState,platform_state as platformState,refund_id as refundId,order_id as orderId,store_id as storeId,order_goods_id as orderGoodsId'; public $refundDetailField='is_platform_in as isPlatformIn,seller_state as sellerState,platform_state as platformState,refund_id as refundId,order_id as orderId,store_id as storeId,order_goods_id as orderGoodsId';
public $refundReturnField="seller_state,refund_state,is_platform_in,platform_state"; public $refundReturnField="seller_state,refund_state,is_platform_in,platform_state";
private $sumField="buyer_id as buyerId,store_id as storeId,goods_num as goodsNum,refund_amount as refundAmount,is_suc_refund as isSucRefund,gmt_update as gmtUpdate"; private $sumField="order_id as orderId,buyer_id as buyerId,store_id as storeId,goods_num as goodsNum,refund_amount as refundAmount,is_suc_refund as isSucRefund,gmt_update as gmtUpdate";
/** /**
* 主键 * 主键
* *
...@@ -409,7 +409,7 @@ class RefundReturnModel extends \DAO\AbstractModel { ...@@ -409,7 +409,7 @@ class RefundReturnModel extends \DAO\AbstractModel {
public function getMemberStoreStaticsByGmtUpdate($gmtUpdate,$pageIndex,$pageSize){ public function getMemberStoreStaticsByGmtUpdate($gmtUpdate,$pageIndex,$pageSize){
$this->setDb($this->dbName); $this->setDb($this->dbName);
$where =\Our\Common::format(' gmt_update>={0} and gmt_update<{1} and is_suc_refund={2}',$gmtUpdate,TIMESTAMP,ApiConst::refundSuccess); $where =\Our\Common::format(' gmt_update>={0} and gmt_update<{1} and refund_state={2}',$gmtUpdate,TIMESTAMP,ApiConst::refundStateComplete);
$res=$this->lists($where,array('gmt_update'=>'asc'),$this->sumField,$pageIndex,$pageSize); $res=$this->lists($where,array('gmt_update'=>'asc'),$this->sumField,$pageIndex,$pageSize);
return $res['list']?$res:false; return $res['list']?$res:false;
} }
......
...@@ -192,7 +192,7 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel { ...@@ -192,7 +192,7 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel {
$insertAllSql = rtrim($insertAllSql, ','); $insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql; $insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql); $one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) { if ($one===false) {
$error++; $error++;
} }
$insertAllSql = $baseSql; $insertAllSql = $baseSql;
...@@ -202,13 +202,13 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel { ...@@ -202,13 +202,13 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel {
$insertAllSql = rtrim($insertAllSql, ','); $insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql; $insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql); $one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) { if ($one===false) {
$error++; $error++;
} }
} }
if ($error > 0) { if ($error > 0) {
$dataJson=json_encode($datas); $dataJson=json_encode($datas);
throw new Exception('插入han_store_member_statistics失败,'.$dataJson, 4); echo '插入han_store_member_statistics失败,'.$dataJson;
} }
} }
...@@ -227,7 +227,7 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel { ...@@ -227,7 +227,7 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel {
$insertAllSql = rtrim($insertAllSql, ','); $insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql; $insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql); $one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) { if ($one===false) {
$error++; $error++;
} }
$insertAllSql = $baseSql; $insertAllSql = $baseSql;
...@@ -237,13 +237,13 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel { ...@@ -237,13 +237,13 @@ class StoreMemberStatisticsModel extends \DAO\AbstractModel {
$insertAllSql = rtrim($insertAllSql, ','); $insertAllSql = rtrim($insertAllSql, ',');
$insertSql=$insertAllSql.$extentSql; $insertSql=$insertAllSql.$extentSql;
$one = $this->db->insert($this->_tableName)->query($insertSql); $one = $this->db->insert($this->_tableName)->query($insertSql);
if (!$one) { if ($one===false) {
$error++; $error++;
} }
} }
if ($error > 0) { if ($error > 0) {
$dataJson=json_encode($datas); $dataJson=json_encode($datas);
throw new Exception('插入han_store_member_statistics失败,'.$dataJson, 4); echo '插入han_store_member_statistics失败,'.$dataJson;
} }
} }
......
...@@ -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=> '商品不存在',
...@@ -751,7 +755,7 @@ class CodeConfigModel { ...@@ -751,7 +755,7 @@ class CodeConfigModel {
self::noExpressDeliveryForOrder1 => '该店铺未配置快递配送', self::noExpressDeliveryForOrder1 => '该店铺未配置快递配送',
self::goodsNoStoreForCartOrOrder1 => '商品库存紧张,您的购买数量太多啦', self::goodsNoStoreForCartOrOrder1 => '商品库存紧张,您的购买数量太多啦',
self::noEnoughStorageForBundlingGoods =>'组合销售库存紧张,您购买的数量太多啦', self::noEnoughStorageForBundlingGoods =>'组合销售库存紧张,您购买的数量太多啦',
self::noOrderWaitToPay => '您的订单已支付,请勿重复重复', self::noOrderWaitToPay => '您的订单已支付,请勿重复支付',
//销售员 //销售员
self::emptySaleGoodsId=>'商品id不能为空', self::emptySaleGoodsId=>'商品id不能为空',
self::emptySaleGoods=>'销售商品不存在', self::emptySaleGoods=>'销售商品不存在',
......
...@@ -8,6 +8,16 @@ ...@@ -8,6 +8,16 @@
</head> </head>
<body> <body>
<div> <div>
<?php
$str = \Our\Common::is_https() ? str_replace('http://','https://',$commonInfo['goods_youku_url']) : $commonInfo['goods_youku_url'];
if($str) {
// preg_match('/iframe((?!src).)*src[\s]*=[\s]*[\'"](?<src>[^\'"]*)[\'"]/i',$str,$match);
// if($match) {
// echo "<iframe height=auto width=100% src='{$match['src']}' frameborder=0 'allowfullscreen'></iframe>";
// }
echo htmlspecialchars_decode($str);
}
?>
<?php echo $commonInfo['goods_body']; ?> <?php echo $commonInfo['goods_body']; ?>
</div> </div>
</body> </body>
...@@ -22,4 +32,9 @@ ...@@ -22,4 +32,9 @@
height:auto; height:auto;
} }
</style> </style>
<script>
window.onload=function (){
document.getElementsByTagName("iframe")[0].style.width=document.body.clientWidth+'px';
document.getElementsByTagName("iframe")[0].style.height=(document.body.clientWidth*480/510)+'px';
}
</script>
...@@ -12,7 +12,7 @@ application.dispatcher.catchException = true ...@@ -12,7 +12,7 @@ application.dispatcher.catchException = true
; Admin模块用于后台管理 ; Admin模块用于后台管理
application.modules = Index,Api,Admin application.modules = Index,Api,Admin
[productSlaveOne : common] [productone : common]
; 数据库配置 ; 数据库配置
resources.database.params.driver = "pdo_mysql" resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "172.16.142.15" resources.database.params.hostname = "172.16.142.15"
......
[common] [common]
; 通用配置 ; 通用配置
[productSlaveOne : common] [productone : common]
; 测试环境配置 ; 测试环境配置
; ;
; ; url相关配置 ; ; url相关配置
......
<!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
...@@ -71,7 +71,7 @@ class cliShopkeeperIndex extends basecli ...@@ -71,7 +71,7 @@ class cliShopkeeperIndex extends basecli
$shopkeeperService->baseDir= \Our\Common::getConfig('out.config'); $shopkeeperService->baseDir= \Our\Common::getConfig('out.config');
try { try {
$shopkeeperService->insertStoreMemberStatics(); $shopkeeperService->insertStoreMemberStatics();
// $shopkeeperService->reduceStoreMemberStatics(); $shopkeeperService->reduceStoreMemberStatics();
$shopkeeperService->storeStatictisTask(); $shopkeeperService->storeStatictisTask();
$shopkeeperService->updateLastId(); $shopkeeperService->updateLastId();
} catch (Exception $ex) { } catch (Exception $ex) {
......
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