Commit 7e9bf06e authored by testshenbd's avatar testshenbd

maste

parents eb4777b4 b2ac28f5
......@@ -33,6 +33,11 @@ class UserController extends \Our\Controller_AbstractIndex {
$password=$data[NameConst::password];
if($this->memberService->checkUserNamePassWord($mobile,$password)){
$member= $this->memberService->getOneByMobileAndPassword($mobile,$password);
//第二步保存扫码会员信息
$result = $this->memberService->saveStoreMembers($member['member_id']);
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveStoreMemberFailed);
}
/**
* 合并第三方授权信息
*/
......@@ -132,6 +137,11 @@ class UserController extends \Our\Controller_AbstractIndex {
if(!empty($userToken['token'])){
$this->updateOldLoginKey($userToken['token']);
}
//第二步保存扫码会员信息
$result = $this->memberService->saveStoreMembers($member['member_id']);
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveStoreMemberFailed);
}
$this->memberService->clearKey($this->key);
$this->key=Common::bulidToken('', '', '', \Our\ApiConst::wechatDeviceType);
session_id($this->key);
......
......@@ -48,7 +48,7 @@ class ClientPush
return $baseTitle;
}
private function getMessageContent($message){
$messageContent='推送消息:';
$messageContent='消息:';
switch($message['type']){
case ApiConst::reacheCallMessage:
case ApiConst::refundReturnMessage:
......@@ -64,7 +64,7 @@ class ClientPush
}
public function push($pushData)
{
$pushFlag=(APP_ENV=='product')?true:false;
$pushFlag=(APP_ENV=='product' || APP_ENV=='productone')?true:false;
// echo json_encode($pushData);
$title=$this->getMessageType($pushData['fromType']);
$messageContent=$this->getMessageContent($pushData['message']);
......
......@@ -85,8 +85,9 @@ class ApiConst
const storeMessageType = 4;
//普通用户消息类型
const memberMessageType = 5;
//配送员用户消息类型
//快递消息
const deliveryUserMessageType = 8;
const ordinaryMessage=0;
const onePictureMessage=21;
const reacheCallMessage=1;
......@@ -397,7 +398,7 @@ class ApiConst
//消息模板类型
const reachRemindMessageType = 1;
const waitRecieveOrderType = 15;
const deliveryOrderType = 16;
//消息按钮类型
const messageButtonTypeConfirmButton = 1;//确认收货
const messageButtonTypeReciverButton = 2;//确认接单
......
......@@ -154,6 +154,8 @@ class DescribeConst
const reacheRemindTitle='你的订单卖家已经送达';
const reacheRemindContent='你有新的订单号为{0}的订单已经已经送达';
const deliveryRemindTitle='你有新的配送订单';
//店铺有新订单
const recieveWaitTitle='您有新的订单';
const recieveWaitContent='您有新的订单号为{0}的订单,是否需要接单';
......
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/10/23
* Time: 19:01
*/
namespace Our;
class MemberIdConst
{
const deliveryId = 395;//店铺首页顶部广告位
const deliveryMessageName = '配送消息';//店铺首页中部广告位
}
\ No newline at end of file
......@@ -164,6 +164,27 @@ class Push
$id = time() . (string)$this->orderIdStr.$orderId;
$this->pushMessage($id,$this->orderId,$toId,$this->orderId,$toUserId,$this->orderName,$member['memberName'],ApiConst::orderMessageType,ApiConst::memberMessageType,$fromAvatar,$message);
}
//配送提醒
public function deliveryRemind($toId,$orderId)
{
$memberDao = \DAO\MemberModel::getInstance();
$member = $memberDao->getInfo($toId);
$toId=$toId;
$toUserId=$toId;
$orderService=\Business\Order\OrderServiceModel::getInstance();
$orderDetail=$orderService->getOrderDetail($orderId);
$messageContent=$this->getOrderMessageContent($orderDetail);
$href=Common::format(PathConst::orderId,$orderId);
$fromAvatar=Common::getStaticFile(ImageConst::orderAvatarName, ImageConst::systemAvatar);
// $buttons=$this->getRecieveButtons($orderId);
$message=$this->getMessageTemplate(ApiConst::deliveryOrderType,DescribeConst::deliveryRemindTitle,$messageContent,'','',$href,ApiConst::zero);
$id = time() . (string)$this->orderIdStr.$orderId;
$this->pushMessage($id,\Our\MemberIdConst::deliveryId,$toId,\Our\MemberIdConst::deliveryId,$toUserId,\Our\MemberIdConst::deliveryMessageName,$member['memberName'],ApiConst::orderMessageType,ApiConst::deliveryUserMessageType,$fromAvatar,$message);
}
public function sendDelivery($toId,$orderId){
$this->deliveryRemind($toId,$orderId);
$this->sendTcpMessage();
}
private function getButton($buttonType,$name,$buttonId,$params){
return array(
'type'=>$buttonType,
......@@ -197,7 +218,7 @@ class Push
$messageContent.=$orderGood['goodsName'].'×'.$orderGood['goodsNum']."\n";
}
$messageContent.='支付方式:'.ArrayConst::paymentTypes[$orderDetail['paymentType']]."\n";
$messageContent.='付款状态:'.(ArrayConst::paymentTypes[$orderDetail['paymentTime']]>ApiConst::zero?DescribeConst::payed:DescribeConst::notPayed)."\n";
$messageContent.='付款状态:'.($orderDetail['paymentTime']>ApiConst::zero?DescribeConst::payed:DescribeConst::notPayed)."\n";
$messageContent.='收货地址:'.$orderDetail['reciverInfo']['address']."\n";
$messageContent.='收货人:'.$orderDetail['reciverInfo']['trueName']."\n";
$messageContent.='收货人电话:'.$orderDetail['reciverInfo']['mobPhone']."\n";
......
......@@ -374,9 +374,9 @@ class GoodsClassServiceModel extends \Business\AbstractModel{
}
$adv['advImages'] = $classImage;
}else{
$advImage['href'] = \Our\NameConst::emptyString;
$advImage['image'] = \Our\ImageUtil::getTopClassAdvImageUrl($gcId);
$adv['advImages'][] =$advImage;
/*$advImage['href'] = \Our\NameConst::emptyString;
$advImage['image'] = \Our\ImageUtil::getTopClassAdvImageUrl($gcId);*/
$adv['advImages'] =array();
}
return $adv;
......
......@@ -442,7 +442,7 @@ class OrderServiceModel extends \Business\AbstractModel
file_put_contents($savePath, TIMESTAMP);
}
//推送确认收货消息到用户
//推送确认收货消息到用户 和配送
public function pushConfirmOrder()
{
$baseConfDir = \Our\Common::getConfig('out.config');
......@@ -450,6 +450,7 @@ class OrderServiceModel extends \Business\AbstractModel
$addTime = file_get_contents($savePath);
$addTime = $addTime ? $addTime : ApiConst::zero;
$orderDao = \DAO\Order\OrderModel::getInstance(DbNameConst::masterDBConnectName);
$qmDeliverymanLogDao = \DAO\Order\QmDeliverymanLogModel::getInstance(DbNameConst::salveDBConnectName);
$pageBegin = PageConst::taskPageBegin;
$push = Push::getInstance();
do {
......@@ -462,6 +463,7 @@ class OrderServiceModel extends \Business\AbstractModel
$push->reacheRemind($order['buyerId'], $order['orderId'], $order['orderSn']);
}
}
$pageBegin++;
} while (!empty($orders['list']));
$push->sendTcpMessage();
......
......@@ -54,15 +54,24 @@ class StoreServiceModel extends \Business\AbstractModel{
$storeMember['store_id'] = $storeId;
$storeMember['member_id'] = $memberId;
$storeMember['fav_from'] = \Our\ApiConst::scanFavor;
$storeMember['fav_type'] = \Our\ApiConst::one;
$storeMembers[] = $storeMember;
$favoritesStoreDao = \DAO\FavoritesStoreModel::getInstance();
$result = $favoritesStoreDao->insertAll($storeMembers);
}else{
$sess=\Yaf\Session::getInstance();
$scan_store_ids = $sess->get('scan_store_ids');
is_array($scan_store_ids) ? $scan_store_ids = $scan_store_ids : $scan_store_ids = [];
array_push($scan_store_ids,$storeId);
$sess['scan_store_ids'] = array_unique($scan_store_ids);
if($scan_store_ids){
if(is_array($scan_store_ids)){//兼容历史数据,如果有历史数据
$scan_store_ids = implode(',',$scan_store_ids);
}
if(strpos(','.$scan_store_ids.',',','.$storeId.',')===false){
$scan_store_ids .= ','.$storeId;
}
}else{
$scan_store_ids = ''.$storeId;
}
$sess['scan_store_ids'] = $scan_store_ids;
if($param['sid']) {
$scan_sale_ids = $sess->get('scan_sale_ids');
is_array($scan_sale_ids) ? $scan_sale_ids = $scan_sale_ids : $scan_sale_ids = [];
......@@ -308,7 +317,8 @@ class StoreServiceModel extends \Business\AbstractModel{
$file_name = $time.\Our\Validate::getNumberString();
$result = \Our\ImageUtil::uploadBase64Image($image,\Our\ImageConst::reportShops,$file_name);
if($result){
$imgArr[] = $file_name;
$result = \Our\Common::getStaticFile($file_name,\Our\ImageConst::feedback);
$imgArr[] = pathinfo($result)['basename'];
}
}else{
$imgArr[] = pathinfo($image)['basename'];
......
......@@ -36,7 +36,8 @@ class FeedBackServiceModel extends \Business\AbstractModel
$file_name = $time.\Our\Validate::getNumberString();
$result = \Our\ImageUtil::uploadBase64Image($image,\Our\ImageConst::feedback,$file_name);
if($result){
$imgArr[] = $file_name;
$result = \Our\Common::getStaticFile($file_name,\Our\ImageConst::feedback);
$imgArr[] = pathinfo($result)['basename'];
}
}else{
$imgArr[] = pathinfo($image)['basename'];
......
......@@ -80,13 +80,14 @@ class MemberServiceModel extends \Business\AbstractModel
}
private function getRealPassword($password,$timeSpan){
$addKey=Common::getConfig('password.key');
$md5Str=$timeSpan.$addKey.$password;
$md5Str = $timeSpan.$password.$addKey;
return $md5Str;
}
public function getOneByMobileAndPassword($mobile, $password)
{
// $password=$this->getPassAddKey($password);
// $password = Common::format('md5({0})');
// $password=$this->getPassAddKey($password);
// $password = Common::format('md5({0})');
$member= $this->memberDao->getOneByMobileAndPassword($mobile, $password);
return $member ? $member : false;
}
......@@ -306,16 +307,20 @@ class MemberServiceModel extends \Business\AbstractModel
* @param $memberId
* @return bool
*/
private function saveStoreMembers($memberId){
public function saveStoreMembers($memberId){
$sess=\Yaf\Session::getInstance();
$scan_store_ids = $sess->get('scan_store_ids');//扫码带入的店铺ID
if($scan_store_ids){
if(!is_array($scan_store_ids)){
$scan_store_ids = explode(',',$scan_store_ids);
}
$storeMembers = array();
foreach($scan_store_ids as $storeId){
$storeMember = array();
$storeMember['store_id'] = $storeId;
$storeMember['member_id'] = $memberId;
$storeMember['fav_from'] = \Our\ApiConst::scanFavor;
$storeMember['fav_type'] = \Our\ApiConst::one;
$storeMembers[] = $storeMember;
}
/*$storeMemberDao = \DAO\StoreMemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
......
......@@ -113,18 +113,24 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
return $result;
}
/**
* 该函数目前仅适用于扫码关注业务 ,使用请谨慎
* @param $datas
* @return bool
* @throws \Our\Exception
*/
public function insertAll($datas){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$error = 0;
$baseSql = "insert IGNORE into {$this->_tableName}(member_id,store_id,fav_from,fav_time) values";
$baseSql = "insert IGNORE into {$this->_tableName}(member_id,store_id,fav_from,fav_time,fav_type) values";
$insertAllSql = $baseSql;
for ($i = 0; $i < count($datas); $i++) {
$addSql = \Our\Common::format("('{0}','{1}','{2}','{3}'),", $datas[$i]['member_id'], $datas[$i]['store_id'], $datas[$i]['fav_from'],TIMESTAMP);
$addSql = \Our\Common::format("('{0}','{1}','{2}','{3}','{4}'),", $datas[$i]['member_id'], $datas[$i]['store_id'], $datas[$i]['fav_from'],TIMESTAMP,$datas[$i]['fav_type']);
\Our\RedisHelper::delCachedFunction(\Redis\Db6\FavoritesStoreRedisModel::getInstance(), array(&$this, 'selectList'), array() ,array($datas[$i]['member_id']));
$insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertAllSql .= 'ON DUPLICATE KEY UPDATE fav_time=VALUES (fav_time),fav_from = VALUES (fav_from)';
$insertAllSql .= 'ON DUPLICATE KEY UPDATE fav_time=VALUES (fav_time),fav_from = VALUES (fav_from) ,fav_type = VALUES (fav_type)';
$one = $this->db->insert($this->_tableName)->query($insertAllSql);
if (!$one) {
$error++;
......@@ -134,7 +140,7 @@ class FavoritesStoreModel extends \DAO\AbstractModel {
}
if ($insertAllSql != $baseSql) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertAllSql .= 'ON DUPLICATE KEY UPDATE fav_time=VALUES (fav_time),fav_from = VALUES (fav_from)';
$insertAllSql .= 'ON DUPLICATE KEY UPDATE fav_time=VALUES (fav_time),fav_from = VALUES (fav_from),fav_type = VALUES (fav_type)';
$one = $this->db->insert($this->_tableName)->query($insertAllSql);
if (!$one) {
......
......@@ -6,6 +6,7 @@ use Error\CodeConfigModel;
use Error\ErrorModel;
use Our\Common;
use Our\ImageConst;
use Our\Log;
use Our\NameConst;
use Our\ApiConst;
use Our\Validate;
......@@ -48,6 +49,25 @@ class MemberModel extends \DAO\AbstractModel
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()
{
......@@ -467,8 +487,9 @@ class MemberModel extends \DAO\AbstractModel
if (!$data['oldPassword']) {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyOldPassword);
}
$memberCurrent = $this->getOneByWhereWithField(array('member_id' => $memberId), 'member_passwd');
if (!($memberCurrent && $memberCurrent['member_passwd'] == md5($data['oldPassword']))) {
$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);
......
......@@ -84,7 +84,15 @@ class QmDeliverymanLogModel extends \DAO\AbstractModel
* @param $pageSize
* @return array
*/
//任务脚本方法
public function getSendOrders($orderState, $addTime, $pageIndex, $pageSize, $timeField = 'add_time')
{
$this->setDb($this->dbName);
$where['order_state'] = ApiConst::orderStateWaitConfirm;
$where = Common::format(' get_time BETWEEN{1}>={2} and {1}<{3}', $orderState, $timeField, $addTime, TIMESTAMP);
$list = $this->lists($where, array('add_time' => 'asc'), $this->getOrderDetailField(), $pageIndex, $pageSize);
return $list;
}
public function getListByDeliverymanIdAndType($diliveryId, $type, $pageIndex, $pageSize, $order = array('get_time' => 'desc'))
{
$this->setDb($this->dbName);
......
......@@ -568,7 +568,7 @@ class CodeConfigModel {
self::editDelCartFailed => '编辑购物车时删除数据失败',
self::editCartUploadCartFailed => '编辑购物车更新购物车时间失败',
self::wrongAddCartForSelfStore => '店主不能添加自己店铺的商品到购物车',
self::pbundingGoodsCannotMoveToFavouites => '组合销售商品暂时不支持移入收藏夹',
self::pbundingGoodsCannotMoveToFavouites => '组合商品暂不支持移入收藏夹',
self::addressNotExist=>'地址不存在',
self::emptyAddressId=>'地址主键参数不能为空',
......
......@@ -243,7 +243,7 @@ push.open=1
[ccwdevelop : common]
; 数据库配置
resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "192.168.1.201"
resources.database.params.hostname = "192.168.80.18"
resources.database.params.port = 3306
resources.database.params.database = "qmcs"
resources.database.params.username = "root"
......@@ -253,7 +253,7 @@ resources.database.params.driver_options.1002 = "SET NAMES utf8"
; 从库配置
resources.database.slave.params.driver = "pdo_mysql"
resources.database.slave.params.hostname = "192.168.1.201"
resources.database.slave.params.hostname = "192.168.80.18"
resources.database.slave.params.port = 3306
resources.database.slave.params.database = "qmcs"
resources.database.slave.params.username = "root"
......@@ -263,7 +263,7 @@ resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
; 从库配置
resources.database.drawSource.params.driver = "pdo_mysql"
resources.database.drawSource.params.hostname = "192.168.1.201"
resources.database.drawSource.params.hostname = "192.168.80.18"
resources.database.drawSource.params.port = 3306
resources.database.drawSource.params.database = "drawSource"
resources.database.drawSource.params.username = "root"
......@@ -432,4 +432,4 @@ push.user.service.type=7
elastic.master.host="192.168.1.201"
elastic.master.port="9200"
elastic.master.scheme="http";
\ No newline at end of file
elastic.master.scheme="http";
......@@ -95,7 +95,7 @@ config.url.ossHost = "http://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="127.0.0.1:9503";
config.url.source="E:/WAMP/www/www.qm.com/data/upload/"
;config.url.source="E:/WAMP/www/www.qm.com/data/upload/"
; 文件目录
;店铺图片报错目录
;config.url.storePath = '/data/upload/mall/store';
......
<?php
$res=file_exists('/www/web/testadmin_shenbd_com/public_html/data/upload/mall/avatar/member_avatar_26.jpg');
var_dump($res);
exit;
$www_file = '/home/wwwroot/mysite/';
//打开网站目录下的hooks.log文件 需要在服务器上创建 并给写权限
......
<?php
/**
* 推送确认收货消息到用户
* 推送确认收货消息到用户 和配送订单给配送员
* 执行时间:每分钟执行一次
*
* @author chenjiebin <sjlinyu@qq.com>
......
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