Commit de8e176a authored by wwccw0591's avatar wwccw0591

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

parents 52185337 142f17a0
......@@ -27,9 +27,8 @@ class AddressController extends \Our\Controller_AbstractApi {
*/
public function saveAddressAction(){
$result = $this->addressService->saveAddress($this->req[\Our\NameConst::data],$this->memberId);
$this->success($result,\Our\DescribeConst::saveAddressSuccess,\Our\DescribeConst::saveAddressSuccess);
if($result){
$this->success(new stdClass(),\Our\DescribeConst::saveAddressSuccess,\Our\DescribeConst::saveAddressSuccess);
$this->success(array('addressId'=>$result),\Our\DescribeConst::saveAddressSuccess,\Our\DescribeConst::saveAddressSuccess);
}
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveAddressFailed);
}
......
......@@ -802,6 +802,7 @@ class OrderConfirmUtil {
$reciverInfo['mob_phone'] = $addressInfo['mob_phone'];
$reciverInfo['tel_phone'] = $addressInfo['tel_phone'];
$reciverInfo['address'] = $addressInfo['area_info'].' '.$addressInfo['address'];
$reciverInfo['name'] = $addressInfo['name'];
$reciverInfo['area'] = $addressInfo['area_info'];
$reciverInfo['street'] = $addressInfo['address'];
$reciverInfo['lng'] = $addressInfo['lng'];
......
......@@ -364,4 +364,6 @@ class ApiConst
//订单列表索引 因子
const orderIndexRank=1000;
const defaultGoodsScore= 5;
}
\ No newline at end of file
......@@ -115,7 +115,7 @@ class Common
public static function getBaseUrl(){
$prefix = 'http';
if(self::is_https()){
if(self::is_https() || $_SERVER['SERVER_NAME'] == 'apiceshi.shenbd.com'){
$prefix = 'https';
}
$url = $prefix.'://'.$_SERVER['SERVER_NAME'];
......
......@@ -67,6 +67,11 @@ class Pay {
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyOrderAmountForPay);
}
$orderInfo['orderAmount'] = $this->orderAmount;
if($this->channel == \Our\NameConst::wxLiteChannel){
$orderConfirmUtil = \Order\OrderConfirmUtil::getInstance();
$newPaySn = $orderConfirmUtil->makeNewPaySnForOrderWithOldPaySn($this->paySn,$this->memberId);
$this->paySn = $newPaySn;
}
$orderInfo['paySn'] = $this->paySn;
$orderInfo['orderSns'] = array_column($orderList,'order_sn');
return $orderInfo;
......
......@@ -38,7 +38,7 @@ class WxLitePay extends \Payment\TencentPay{
$wxApiObj["nonceStr"] = \Our\CommonExtension::createNoncestr();
$wxApiObj['package'] = 'prepay_id='.$this->prepay_id;
$wxApiObj['signType'] = 'MD5';
$wxApiObj["paySign "] = $this->getSign($wxApiObj);
$wxApiObj["paySign"] = $this->getSign($wxApiObj);
return $wxApiObj;
}
......
......@@ -38,9 +38,9 @@ class CartServiceModel extends \Business\AbstractModel{
$memberCartKey = \Our\NameConst::memberCartStorePrefix.$memberId;
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
$cartRedis->tableDel($memberCartKey);
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
foreach($cartArray['storeIds'] as $storeId){
$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$storeId;
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
$cartRedis->tableDel($memberStoreCartsKey);
}
return $result;
......@@ -55,16 +55,21 @@ class CartServiceModel extends \Business\AbstractModel{
* @param $pBundlind
*/
public function editCart($data,$cart,$memberId,$pBundlind=null){
$this->validEditCart($data,$cart,$memberId,$pBundlind);
$validReturnData = $this->validEditCart($data,$cart,$memberId,$pBundlind);
$cartDao = \DAO\Cart\CartModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$cartArray = $this->getFormattedCartDataForEdit($data,$cart,$memberId,$pBundlind);
$result = $cartDao->update($cartArray['cart'],array('cart_id'=>$cart['cart_id']));
$cartArray = $this->getFormattedCartDataForEdit($data,$cart,$memberId,$pBundlind,$validReturnData);
$result = $cartDao->update($cartArray['newCarts'][0],array('cart_id'=>$data['cartId']));
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::editCartFailed);
}
$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$cartArray['cart']['store_id'];
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
$cartRedis->tableDel($memberStoreCartsKey);
foreach($cartArray['storeIds'] as $storeId){
$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$storeId;
$cartRedis->tableDel($memberStoreCartsKey);
}
/*$memberStoreCartsKey = \Our\NameConst::memberStoreCartsPrefix.$memberId.\Our\NameConst::underline.$cartArray['cart']['store_id'];
$cartRedis = \Redis\Db7\CartRedisModel::getInstance();
$cartRedis->tableDel($memberStoreCartsKey);*/
return $result;
}
......@@ -148,13 +153,13 @@ class CartServiceModel extends \Business\AbstractModel{
* @return array
* @throws \Our\Exception
*/
public function getFormattedCartDataForEdit($data,$cart,$memberId,$pBundling = null){
public function getFormattedCartDataForEdit($data,$cart,$memberId,$pBundling = null,$validReturnData){
if($cart['type'] == \Our\ApiConst::addGoodsToCart){
$newCart = $this->getCommonGoodsCartData($data['goodsId'],$data['goodsNum'],$memberId);
$newCart = $this->getCommonGoodsCartData($data['goodsId'],$data['goodsNum'],$memberId,$validReturnData);
}else if($cart['type'] == \Our\ApiConst::addBundingToCart){
$newCart = $this->getPBundlingGoodsCartData($data['goodsNum'],$memberId,$pBundling);
}
return array('cart'=>$newCart);
return $newCart;
}
......@@ -358,6 +363,7 @@ class CartServiceModel extends \Business\AbstractModel{
if(!$goodsValidStatus){
\Error\ErrorModel::throwException($goodsDao->errorCode);
}
return $goodsValidStatus;
}else if($cart['type'] == \Our\ApiConst::addBundingToCart){
if(!$pBundling){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyCartBundling);
......@@ -367,6 +373,7 @@ class CartServiceModel extends \Business\AbstractModel{
}
$this->checkBundlingGoods($pBundling,$data['goodsNum'],true);
}
return true;
}
/**
......
......@@ -170,8 +170,6 @@ class AdvServiceModel extends \Business\AbstractModel{
}else{
$advs = array();
}
//$storeAdvPosition = $storeAdvPositionDao->find(array('ap_id'=>\Our\ApiConst::storeAdvPositionTop));
}
return $advs;
}
......
......@@ -309,9 +309,9 @@ class CouponServiceModel extends \Business\AbstractModel{
$couponTitles[] = $coupon['subTitle'];
}
}
return array('couponTitle'=>$couponTitles,'coupons'=>$couponList);
return array('couponsTitle'=>$couponTitles,'coupons'=>$couponList);
}else{
return array('couponTitle'=>array(),'coupons'=>array());
return array('couponsTitle'=>array(),'coupons'=>array());
}
}
......
......@@ -1002,6 +1002,19 @@ class GoodsCommonServiceModel extends \Business\AbstractModel
}
return $goodsCommon['goods_price'];
}
/**
* 更新店铺销量
*/
public function updateStoreTopSaleGoods(){
$storeTopSaleGoodsDao = \DAO\Goods\StoreTopSaleGoodsModel::getInstance();
$storeGoodsList = $storeTopSaleGoodsDao->getSourceGoodsList();
$result = $storeTopSaleGoodsDao->insertAllOrUpdate($storeGoodsList);
return $result;
}
private static $_instance = null;
/**
......
......@@ -809,12 +809,15 @@ class OrderServiceModel extends \Business\AbstractModel
$orderIds[] = $order['order_id'];
}
$return['orderState'] = $orderState;
/*$return['paySn'] = $data['paySn'];
if(!$orderState){
$orderConfirmUtil = \Order\OrderConfirmUtil::getInstance();
$paySn = $orderConfirmUtil->makeNewPaySnForOrderWithOldPaySn($data['paySn'],$memberId);
$return['paySn'] = $paySn;
}*/
if(isset($data['wxLitePayFlag'])&&$data['wxLitePayFlag']==\Our\ApiConst::one){
$return['paySn'] = $data['paySn'];
if(!$orderState){
$orderConfirmUtil = \Order\OrderConfirmUtil::getInstance();
$paySn = $orderConfirmUtil->makeNewPaySnForOrderWithOldPaySn($data['paySn'],$memberId);
$return['paySn'] = $paySn;
}
}
$return['orderNos'] = $orderNos;
$return['totalOrderAmount'] = $totalOrderAmount;
$return['orderTips'] = $orderTips;
......
......@@ -37,11 +37,12 @@ class AddressServiceModel extends \Business\AbstractModel {
\Our\RedisHelper::delCachedFunction(\Redis\Db8\AddressRedisModel::getInstance(),array(&$addressDao, 'findByWhereWithColumns'),array(),array($addressId));
}else{
$result = $addressDao->insert($address);
$addressId = $result;
}
if($result){
\Our\RedisHelper::delCachedFunction(\Redis\Db8\AddressRedisModel::getInstance(),array(&$addressDao, 'selectByWhere'),array(),array($memberId));
}
return $result;
return $addressId;
}
/**
......@@ -392,6 +393,7 @@ class AddressServiceModel extends \Business\AbstractModel {
$address['subaddress'] = $data['subAddress'];
$address['citycode'] = $data['cityCode'];
$address['address'] = $data['address'];
$address['name'] = $data['name'];
$address['member_id'] = $memberId;
$address['lng'] = $data['lng'];
$address['lat'] = $data['lat'];
......@@ -399,6 +401,9 @@ class AddressServiceModel extends \Business\AbstractModel {
$city_id =0;
$area_id = 0;
$areaList= \Our\AreaConst::areaList;
if(!($address['address']&&$address['name'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptyAddressAndName);
}
if($province){
$province = mb_substr($province,0,2);
$provinceList = $areaList[\Our\ApiConst::zero];
......@@ -463,9 +468,9 @@ class AddressServiceModel extends \Business\AbstractModel {
if(!($address['lng']&&$address['lat'])){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::chooseAddressFormMap);
}
if(!$address['subaddress']){
/*if(!$address['subaddress']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::emptySubAddress);
}
}*/
return $address;
}
......
......@@ -75,7 +75,7 @@ class MemberCenterServiceModel extends \Business\AbstractModel
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitPay,$memberCenter[NameConst::waitPay]);
}
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitShipments) === false){
$memberCenter[NameConst::waitShipments] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state in('.ApiConst::orderStateWaitConfirm.','.ApiConst::orderStateWaitSend.')',"buyer_id = {$memberId}"),false);
$memberCenter[NameConst::waitShipments] = \DAO\Order\OrderModel::getInstance()->getCount(array('order_state'=>ApiConst::orderStateWaitSend,'buyer_id'=>$memberId));
$memebrCenterDb1Redis->tableHSet($memberId,NameConst::waitShipments,$memberCenter[NameConst::waitShipments]);
}
if($memebrCenterDb1Redis->tableHExists($memberId,NameConst::waitReceiving) === false){
......
......@@ -441,7 +441,7 @@ class MemberServiceModel extends \Business\AbstractModel
}
public function saveOtherMemberInfo($where,$memberId){
public function saveOtherMemberInfo($where,$memberId,$saveDeviceFlag=false){
//第二步保存扫码会员信息
$result = $this->saveStoreMembers($memberId);
if(!$result){
......@@ -449,9 +449,11 @@ class MemberServiceModel extends \Business\AbstractModel
}
//第三步保存用户设备识别信息
$memberDeviceResult = $this->saveRegisterDeviceInfo($where,$memberId);
if(!$memberDeviceResult){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveMemberDeviceInfoFailed);
if(!$saveDeviceFlag){
$memberDeviceResult = $this->saveRegisterDeviceInfo($where,$memberId);
if(!$memberDeviceResult){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveMemberDeviceInfoFailed);
}
}
......@@ -497,15 +499,20 @@ class MemberServiceModel extends \Business\AbstractModel
//开始事务
$db->doTransaction();
$saveDeviceFlag=true;
$memberId = $this->checkMemberMappingExist($where);//检查登录的用户是否授权从其他第三方登录
if(!$memberId){
$saveDeviceFlag = false;
$memberId = $this->saveRegisterMemberInfo($where);
}
//保存用户信息
$memberId = $this->saveRegisterMemberInfo($where);
if(!$memberId){
$db->doRollback();
\Error\ErrorModel::throwException(\Error\CodeConfigModel::addMemberInfoFailed);
}
//保存用户其他相关信息
$this->saveOtherMemberInfo($where,$memberId);
$this->saveOtherMemberInfo($where,$memberId,$saveDeviceFlag);
$db->doCommit();
......@@ -520,6 +527,38 @@ class MemberServiceModel extends \Business\AbstractModel
}
/**
* 注册时检查当前用户是否第三方授权,以及三方授权是否已经存在对应用户
*/
public function checkMemberMappingExist($where){
$authInfo = $this->memberDb0Redis->find(\Our\NameConst::authInfoPrefix.$where['key']);
if(!$authInfo){
return false;
}
$memberMappingDao = \DAO\MemberMappingModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$memberMapping = $memberMappingDao->find(array('openid'=>$authInfo['openid']));
if(!$memberMapping){
return false;
}
$memberDao = \DAO\MemberModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$existMember = $memberDao->find($memberMapping['member_id']);
if(!$existMember){
$memberMappingDao->del(array('id'=>$memberMapping['id']));
return false;
}
if($existMember['member_mobile']&&$existMember['member_mobile_bind']){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::registerMemberInfoFailed);
}
$member['member_mobile'] = $where['mobile'];
$member['member_mobile_bind'] = \Our\ApiConst::one;
$member['member_passwd'] = md5($where['password']);
$updateMemberResult = $memberDao->saveInfo($member,$memberMapping['member_id']);
if(!$updateMemberResult){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::authMemberExistMobile);
}
return $memberMapping['member_id'];
}
public function cancelBinding($data,$memberId){
$memberMappingDao = \DAO\MemberMappingModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$memberMappingDao->validCancelMapping($data,$memberId);
......@@ -656,17 +695,57 @@ class MemberServiceModel extends \Business\AbstractModel
}else{
$condition['openid'] = $where['openid'];
}
$condition['user_type'] = $where['userType'];
if($where['userType'] == \Our\ApiConst::wechatUserType||$where['userType'] == \Our\ApiConst::userFromWx){
$condition['user_type'] = array('in',array(\Our\ApiConst::wechatUserType,\Our\ApiConst::userFromWx));
}else{
$condition['user_type'] = $where['userType'];
}
$memberMappings = $memberMappingDao->getList($condition,'member_id');
//$memberMapping = \Our\RedisHelper::cachedFunction(\Redis\Db0\MemberMappingRedisModel::getInstance(),array(&$memberMappingDao, 'find'),array($condition,'member_id'),\Our\ApiConst::tenDaySecond);
if($memberMappings){
$memberIds = array_column($memberMappings,'member_id');
$member = $memberDao->getMemberForLogin($memberIds);
if($where['userType'] == \Our\ApiConst::wechatUserType){
$this->checkMemberMappingExistLogin($member['member_id'],$condition['openid'] ,$where['userType']);
}
if($where['userType'] == \Our\ApiConst::userFromWx){//如果当前openid存在对应的小程序码但是对应用户并没有绑定手机号码时 ,也需要绑定手机号码
if($member['member_mobile']&&$member['member_mobile_bind']){
$this->checkMemberMappingExistLogin($member['member_id'],$condition['openid'] ,$where['userType']);
}else{
return false;
}
}
return $member;
}
return false;
}
/**
* 小程序登录时检测当前openid(实际上存储的是unionid)是否存在对应的对应的手机账号,存在则直接登录,并且检查是否有对应记录,有直接写入,没有则不写入
* @param $memberId
* @param $openid
* @param $userType
* @return bool
* @throws \Error\OurExceptionModel
* @throws \Exception
*/
public function checkMemberMappingExistLogin($memberId,$openid,$userType){
$memberMappingDao = \DAO\MemberMappingModel::getInstance(\Our\DbNameConst::masterDBConnectName);
$condition['member_id'] = $memberId;
$condition['openid'] = $openid;
$condition['user_type'] = $userType;
$userMapping = $memberMappingDao->find($condition);
if($userMapping){
return true;
}
$condition['gmt_create'] = TIMESTAMP;
$result = $memberMappingDao->insert($condition);
if(!$result){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::saveUserMappingFailed);
}
return true;
}
public function getUnionId($encryptedData,$vi,$sessionKey){
$wxInfo = \Our\ArrayConst::wechatInfo;
$pc =\WxAes\WXBizDataCrypt::getInstance($wxInfo['appid'], $sessionKey);
......
......@@ -244,6 +244,7 @@ class AddressModel extends \DAO\AbstractModel {
'member_id',
'area_info',
'address',
'name',
'mob_phone',
'tel_phone',
'is_default',
......
......@@ -111,7 +111,7 @@ class GoodsModel extends \DAO\AbstractModel {
$this->errorCode = \Error\CodeConfigModel::noStorageForCart;
return false;
}
return true;
return $goods;
}
/**
......
......@@ -63,6 +63,57 @@ class StoreTopSaleGoodsModel extends \DAO\AbstractModel{
}
return false;
}
/**
* @return mixed
*/
public function getSourceGoodsList(){
$sql = 'SELECT a.store_id,a.goods_commonid,IFNULL(a.evaluation_score/a.evaluation_number,'.\Our\ApiConst::defaultGoodsScore.') as goods_score,a.group_id as rank,a.goods_name,a.goods_image
FROM
(
SELECT t1.*,t2.evaluation_score,t2.evaluation_number,(SELECT COUNT(*)+1 FROM han_goods_common WHERE store_id=t1.store_id AND sale_num>t1.sale_num) AS group_id
FROM han_goods_common t1
LEFT JOIN han_goods_score_statistics t2
on t1.goods_commonid = t2.goods_commonid
) a
WHERE a.group_id<=3 AND a.sale_num>0 and a.goods_state=1 and a.goods_verify=1 ORDER BY a.store_id ,a.group_id';
$list = $this->db->query($sql)->fetchAll();
return $list;
}
public function insertAllOrUpdate($datas){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$error = 0;
$baseSql = "insert into {$this->_tableName}(store_id,goods_commonid,goods_score,rank,goods_name,goods_image) values";
$insertAllSql = $baseSql;
for ($i = 0; $i < count($datas); $i++) {
$addSql = \Our\Common::format("({0},{1},{2},{3},{4},{5}),", $datas[$i]['store_id'],$datas[$i]['goods_commonid'], $datas[$i]['goods_score'], $datas[$i]['rank'],$datas[$i]['goods_name'],$datas[$i]['goods_image']);
$insertAllSql .= $addSql;
if ($i % 1000 == 0 && $i != 0) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertAllSql .= 'ON DUPLICATE KEY UPDATE goods_commonid = VALUES(goods_commonid),goods_score=VALUES(goods_score),goods_name=VALUES(goods_name),goods_image=VALUES(goods_image)';
$one = $this->db->insert()->query($insertAllSql);
if ($one === false) {
$error++;
}
$insertAllSql = $baseSql;
}
}
if ($insertAllSql != $baseSql) {
$insertAllSql = rtrim($insertAllSql, ',');
$insertAllSql .= 'ON DUPLICATE KEY UPDATE goods_commonid = VALUES(goods_commonid),goods_score=VALUES(goods_score),goods_name=VALUES(goods_name),goods_image=VALUES(goods_image)';
$one = $this->db->insert($this->_tableName)->query($insertAllSql);
if ($one === false) {
$error++;
}
}
if ($error > 0) {
return false;
}
return true;
}
/**
* 类实例
*
......
......@@ -108,6 +108,9 @@ class MemberModel extends \DAO\AbstractModel
$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;
......
......@@ -93,6 +93,9 @@ class CodeConfigModel {
const emptyLog = 10106;
const writeLogFailed = 10107;
const wrongTimeForReadLog = 10108;
const saveUserMappingFailed = 10109;
const registerMemberInfoFailed = 10110;
const authMemberExistMobile = 10111;
//访问错误
const illegalAccess=200001;
......@@ -349,6 +352,7 @@ class CodeConfigModel {
const emptyProvinceId = 140018;
const emptyCityId = 140019;
const emptyDistrictId = 140020;
const emptyAddressAndName = 140021;
//消息,推送等
const removeMessage=150001;
......@@ -574,6 +578,7 @@ class CodeConfigModel {
self::emptyProvinceId => '找不到对应省份',
self::emptyCityId => '找不到对应城市',
self::emptyDistrictId => '找不到对应区',
self::emptyAddressAndName => '地址和具体街道不能为空',
self::emptyLatLng => '经纬度不能为空',
self::emptyCityCode => '高德地图城市编码不能为空',
......@@ -752,7 +757,10 @@ class CodeConfigModel {
self::elasticsError=>'全文索引连接出错',
self::emptyLog => '日志内容不能为空',
self::writeLogFailed => '日志写入失败',
self::wrongTimeForReadLog => '读日志时写入时间段查询开始时间不能大于结束时间'
self::wrongTimeForReadLog => '读日志时写入时间段查询开始时间不能大于结束时间',
self::saveUserMappingFailed => '保存用户关联关系失败',
self::registerMemberInfoFailed => '注册更新用户信息失败',
self::authMemberExistMobile => '该授权用户已经绑定手机号码'
);
}
......
<?php
function is_https() {
if ( !empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') {
return true;
} elseif ( isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
return true;
} elseif ( !empty($_SERVER['HTTP_FRONT_END_HTTPS']) && strtolower($_SERVER['HTTP_FRONT_END_HTTPS']) !== 'off') {
return true;
}elseif($_SERVER['SERVER_PORT'] == 89){
return true;
}
return false;
}
$res=is_https();
if($res){
echo 1;
}else{
echo 2;
}
exit;
function getSortArr($sortArray){
ksort($sortArray);
$str='';
......
......@@ -16,7 +16,8 @@
城市: <input name="data[city]" value="福州市" /> <br />
区: <input name="data[district]" value="仓山区" /> <br />
标签: <input name="data[tagType]" value="1" type="radio" checked/><input name="data[tagType]" value="2" type="radio"/>公司 <input name="data[tagType]" value="3" type="radio"/>学校 <br/>
地址: <input name="data[address]" value="仓山区" /> <br/>
具体街道地址: <input name="data[address]" value="仓山区" /> <br/>
具体地址: <input name="data[name]" value="仓山区" /> <br/>
详细地址: <input name="data[subAddress]" value="仓山区" /> <br/>
经度: <input name="data[lng]" value="119.285956" /> <br/>
纬度: <input name="data[lat]" value="26.064981" /> <br/>
......
......@@ -11,7 +11,7 @@
<form action="/thirdplatform/wechatAppAuth" method="post">
key:<input name="data[key]" value="6a620108735f413ab3e86511ff11ca99"/><br />
用户头像:<input name="data[code]" value=""/><br />
小程序code:<input name="data[code]" value=""/><br />
<input type="submit" value="提交">
</form>
</body>
......
......@@ -11,7 +11,7 @@
<form action="/user/login" method="post">
用户名:<input name="data[mobile]" value="18305954587"/><br />
订单id:<input name="data[password]" value="123456"/><br />
密码:<input name="data[password]" value="123456"/><br />
key:<input name="data[key]" value="c2e5e7bfce8a727c7fb6f696bcaa23ac"/><br />
<input type="submit" value="提交">
</form>
......
......@@ -11,11 +11,11 @@
<form action="/user/loginWithWechatInfo" method="post">
用户头像:<input name="data[avatar]" value="https://tva3.sinaimg.cn/crop.0.1.1242.1242.180/4711809ejw8f387zus4vpj20yi0ykjwd.jpg"/><br />
key:<input name="data[key]" value="6a620108735f413ab3e86511ff11ca99"/><br />
key:<input name="data[key]" value="a47c3f7e20cd11d9473e39b36ce512ad"/><br />
gender:<input name="data[gender]" value="1"/><br />
encryptedData:<input name="data[encryptedData]" value="bqZaZzCkTH2f/muMGecr4K9TLuv9AEF9GFSRjltsH1gUVLnClGy8jH1nZH5qX42Vrz/ZpTZrSTOgTmjinfCv644M32TLFGKK03/W8/h62amSRctMPrGD6jii5Fu+/As6/Ht7uJpvidXqEuE2lOzvx58X0bdFDIwSgWEPoYo8lzo5DQNK23KWuP64prPjlaaLkfJQ2rZyJycDIZ/OmMbjJorpbQXaQFnI3abdqcTU5L65iJIWcw8zqnRMma4cOPHOYQ475eZqRQq+e4zXVu+y4LHzC13L8XnT5AAR81vj1LLzn9/nx8cEy5HQC8v/G22k1p1GdM7Slr5RM7y2PlXH7RHPFSD0qZTQVDzFeQtB1QJaPSsB+VXeTAKGiEvQKuf15E072iJjlnbDCHA4UPzkenB6DdcFfZWSpxU0u8bdpxjopTbl5ZegzgiSIrgSvlCVjNbpkIvhwNnU1piBc1QbnWflg9tJv9UWj0kJuHqwAFXwFLSMQOsZUdR4CZPXZCegePdmVpALvTIhaIXowOfNxQ=="/><br />
iv:<input name="data[iv]" value="eyEWI+8+Jhr70bfhWo7Zgg=="/><br />
nickname:<input name="data[nickname]" value="lindongming"/><br />
encryptedData:<input name="data[encryptedData]" value="kXGXJHHrTjZtBCvDtKLWv/utlY5AUbbvA2wleUx94n6nUiF6mcz9AUgNziDVDXokRq855pwjGtzHwxdwg3Se7Z4bJWzkCJnC1Vk/CBd1kXHz77ct9rRyruCz27VYHMjKPzfqEmVl7MfVg+xyoXYZQoUgz98yTBlREmmIfW5gEfSTKKW73mrVoXJJvszBj3VdwaqSWiSa4whds6OZWNpgUWlFxdntY0q5nBEaKTcxPfpF3QxKlFmD4bw30Q2c41M+wTeD/txDVtqEUJf9U5rSuA0cZSzgHllTEoS4KxXunasT0WhXJ0+Uow6xDkvMvSe2az1qAmVHweKTr5mp7wAGYn5GlrcG6cXRgfctEGQg6k/rJUQMLmiurE5Z0ERLeyWUUKU1ZSlPfYgfJ5L1zLzygIudHTozCjUDHhXh0/DTaCq5ZdTEw9FYL34uZ2TsiPUEGz/VgsD/CTgvw32O9PYBjfESt8aBFk+cKxt7eJZueWyly4H7YhT5k9+TTqiQ4GY/v81BcErat/Gx8Cn/UoQh7g=="/><br />
iv:<input name="data[iv]" value="yopI5yZHu+2vlaOatNyjIA=="/><br />
nickname:<input name="data[nickname]" value="lindongming123"/><br />
<input type="submit" value="提交">
</form>
</body>
......
<?php
/**
* Created by PhpStorm.
* User: liuyu
* Date: 2018/9/1
* Time: 20:06
*/
define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../../../')); //指向public的上一级
require APPLICATION_PATH . '/scripts/crontab/baseCli.php';
require APPLICATION_PATH . '/scripts/crontab/common.php';
error_reporting(E_ALL ^ E_NOTICE);
class cliStoreTopSaleGoods extends basecli
{
const CLI_ADMIN_ID = 255;
private $bDoUnLock = FALSE; // 是否允许释放 LOCK 文件
private $_debug = 0;
private $lockFileName;
private $fromState;
private function mkdirs($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir, $mode)){
return TRUE;
}
if (!$this->mkdirs(dirname($dir), $mode)){
return FALSE;
}
return @mkdir($dir, $mode);
}
/**
* 析构
*/
public function __destruct()
{
parent::__destruct();
if ($this->bDoUnLock)
{
@unlink($this->lockFileName);
}
}
protected function updateStoreTopSaleGoods(){
\Business\Goods\GoodsCommonServiceModel::getInstance()->updateStoreTopSaleGoods();
}
protected function _runCli()
{
$this->_debug = isset($this->aArgv[1]) ? intval($this->aArgv[1]) : 0;
if ($this->_debug)
{
echo "*** Debug mode ***\n";
}
// Step: 02 检查是否已有相同CLI在运行中
$lockDir=$this->_getBaseFileName('StoreTopSaleGoods');
if(!$this->mkdirs($lockDir)){
echo '****create dir fail ****';
exit;
}
$this->lockFileName = $lockDir .'.locks';
if( file_exists( $this->lockFileName ) )
{
$stat = stat($this->lockFileName);
if( (TIMESTAMP - $stat['mtime']) > 24*60*60*2 )
{
echo "文件被锁超过2天,被强制删除";
@unlink($this->lockFileName);
}
else
{
$this->halt( '[' . date('Y-m-d H:i:s') .'] The CLI is running'."\n");
}
}
$this->bDoUnLock = true;
file_put_contents($this->lockFileName ,"running" ); // CLI 独占锁
$this->updateStoreTopSaleGoods();
echo '首页热销商品更新成功'."\r\n";
}
}
$oCli = new cliStoreTopSaleGoods(TRUE);
EXIT;
?>
\ 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