From 312a7bb15993c746a50606aa20dcdae16fe71d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=80=E5=B3=B0?= <1feng.0595@gmail.com> Date: Tue, 10 Apr 2018 22:53:20 +0800 Subject: [PATCH] pc goodslist bug --- app/Common/Redis.php | 973 ++++++++++++++++++ app/Common/RedisCluster.php | 398 +++++++ app/Common/Token.php | 2 +- app/Http/Controllers/Home/IndexController.php | 26 + config/custom.php | 25 +- lqycms.sql | 53 +- public/css/style.css | 1 + public/images/logo.png | Bin 3160 -> 13674 bytes resources/views/home/common/footer.blade.php | 2 +- resources/views/home/common/header.blade.php | 18 +- .../weixin/collect_goods/index.blade.php | 2 +- .../weixin/goods/categoryGoodsList.blade.php | 12 +- resources/views/weixin/user/index.blade.php | 14 +- 13 files changed, 1481 insertions(+), 45 deletions(-) create mode 100644 app/Common/Redis.php create mode 100644 app/Common/RedisCluster.php diff --git a/app/Common/Redis.php b/app/Common/Redis.php new file mode 100644 index 0000000..812884c --- /dev/null +++ b/app/Common/Redis.php @@ -0,0 +1,973 @@ +30, + //选择的数据库。 + 'db_id'=>0, + ); + + //什么时候重新建立连接 + protected $expireTime; + + protected $host; + protected $port; + + private function __construct($config,$attr=array()) + { + $this->attr = array_merge($this->attr,$attr); + $this->redis = new \Redis(); + $this->port = $config['port'] ? $config['port'] : 6379; + $this->host = $config['host']; + $this->redis->connect($this->host, $this->port, $this->attr['timeout']); + + if($config['auth']) + { + $this->auth($config['auth']); + $this->auth = $config['auth']; + } + + $this->expireTime = time() + $this->attr['timeout']; + } + + /** + * 得到实例化的对象. + * 为每个数据库建立一个连接 + * 如果连接超时,将会重新建立一个连接 + * @param array $config + * @param int $dbId + * @return \iphp\db\Redis + */ + public static function getInstance($config, $attr = array()) + { + //如果是一个字符串,将其认为是数据库的ID号。以简化写法。 + if(!is_array($attr)) + { + $dbId = $attr; + $attr = array(); + $attr['db_id'] = $dbId; + } + + $attr['db_id'] = $attr['db_id'] ? $attr['db_id'] : 0; + + + $k = md5(implode('', $config).$attr['db_id']); + if(! (static::$_instance[$k] instanceof self)) + { + static::$_instance[$k] = new self($config,$attr); + static::$_instance[$k]->k = $k; + static::$_instance[$k]->dbId = $attr['db_id']; + + //如果不是0号库,选择一下数据库。 + if($attr['db_id'] != 0){ + static::$_instance[$k]->select($attr['db_id']); + } + } + elseif( time() > static::$_instance[$k]->expireTime) + { + static::$_instance[$k]->close(); + static::$_instance[$k] = new self($config,$attr); + static::$_instance[$k]->k = $k; + static::$_instance[$k]->dbId = $attr['db_id']; + + //如果不是0号库,选择一下数据库。 + if($attr['db_id']!=0) + { + static::$_instance[$k]->select($attr['db_id']); + } + } + + return static::$_instance[$k]; + } + + private function __clone(){} + + /** + * 执行原生的redis操作 + * @return \Redis + */ + public function getRedis() + { + return $this->redis; + } + + /*****************hash表操作函数*******************/ + + /** + * 得到hash表中一个字段的值 + * @param string $key 缓存key + * @param string $field 字段 + * @return string|false + */ + public function hGet($key,$field) + { + return $this->redis->hGet($key,$field); + } + + /** + * 为hash表设定一个字段的值 + * @param string $key 缓存key + * @param string $field 字段 + * @param string $value 值。 + * @return bool + */ + public function hSet($key,$field,$value) + { + return $this->redis->hSet($key,$field,$value); + } + + /** + * 判断hash表中,指定field是不是存在 + * @param string $key 缓存key + * @param string $field 字段 + * @return bool + */ + public function hExists($key,$field) + { + return $this->redis->hExists($key,$field); + } + + /** + * 删除hash表中指定字段 ,支持批量删除 + * @param string $key 缓存key + * @param string $field 字段 + * @return int + */ + public function hdel($key,$field) + { + $fieldArr=explode(',',$field); + $delNum=0; + + foreach($fieldArr as $row) + { + $row=trim($row); + $delNum+=$this->redis->hDel($key,$row); + } + + return $delNum; + } + + /** + * 返回hash表元素个数 + * @param string $key 缓存key + * @return int|bool + */ + public function hLen($key) + { + return $this->redis->hLen($key); + } + + /** + * 为hash表设定一个字段的值,如果字段存在,返回false + * @param string $key 缓存key + * @param string $field 字段 + * @param string $value 值。 + * @return bool + */ + public function hSetNx($key,$field,$value) + { + return $this->redis->hSetNx($key,$field,$value); + } + + /** + * 为hash表多个字段设定值。 + * @param string $key + * @param array $value + * @return array|bool + */ + public function hMset($key,$value) + { + if(!is_array($value)) + return false; + return $this->redis->hMset($key,$value); + } + + /** + * 为hash表多个字段设定值。 + * @param string $key + * @param array|string $value string以','号分隔字段 + * @return array|bool + */ + public function hMget($key,$field) + { + if(!is_array($field)) + $field=explode(',', $field); + return $this->redis->hMget($key,$field); + } + + /** + * 为hash表设这累加,可以负数 + * @param string $key + * @param int $field + * @param string $value + * @return bool + */ + public function hIncrBy($key,$field,$value) + { + $value=intval($value); + return $this->redis->hIncrBy($key,$field,$value); + } + + /** + * 返回所有hash表的所有字段 + * @param string $key + * @return array|bool + */ + public function hKeys($key) + { + return $this->redis->hKeys($key); + } + + /** + * 返回所有hash表的字段值,为一个索引数组 + * @param string $key + * @return array|bool + */ + public function hVals($key) + { + return $this->redis->hVals($key); + } + + /** + * 返回所有hash表的字段值,为一个关联数组 + * @param string $key + * @return array|bool + */ + public function hGetAll($key) + { + return $this->redis->hGetAll($key); + } + + /*********************有序集合操作*********************/ + + /** + * 给当前集合添加一个元素 + * 如果value已经存在,会更新order的值。 + * @param string $key + * @param string $order 序号 + * @param string $value 值 + * @return bool + */ + public function zAdd($key,$order,$value) + { + return $this->redis->zAdd($key,$order,$value); + } + + /** + * 给$value成员的order值,增加$num,可以为负数 + * @param string $key + * @param string $num 序号 + * @param string $value 值 + * @return 返回新的order + */ + public function zinCry($key,$num,$value) + { + return $this->redis->zinCry($key,$num,$value); + } + + /** + * 删除值为value的元素 + * @param string $key + * @param stirng $value + * @return bool + */ + public function zRem($key,$value) + { + return $this->redis->zRem($key,$value); + } + + /** + * 集合以order递增排列后,0表示第一个元素,-1表示最后一个元素 + * @param string $key + * @param int $start + * @param int $end + * @return array|bool + */ + public function zRange($key,$start,$end) + { + return $this->redis->zRange($key,$start,$end); + } + + /** + * 集合以order递减排列后,0表示第一个元素,-1表示最后一个元素 + * @param string $key + * @param int $start + * @param int $end + * @return array|bool + */ + public function zRevRange($key,$start,$end) + { + return $this->redis->zRevRange($key,$start,$end); + } + + /** + * 集合以order递增排列后,返回指定order之间的元素。 + * min和max可以是-inf和+inf 表示最大值,最小值 + * @param string $key + * @param int $start + * @param int $end + * @package array $option 参数 + * withscores=>true,表示数组下标为Order值,默认返回索引数组 + * limit=>array(0,1) 表示从0开始,取一条记录。 + * @return array|bool + */ + public function zRangeByScore($key,$start='-inf',$end="+inf",$option=array()) + { + return $this->redis->zRangeByScore($key,$start,$end,$option); + } + + /** + * 集合以order递减排列后,返回指定order之间的元素。 + * min和max可以是-inf和+inf 表示最大值,最小值 + * @param string $key + * @param int $start + * @param int $end + * @package array $option 参数 + * withscores=>true,表示数组下标为Order值,默认返回索引数组 + * limit=>array(0,1) 表示从0开始,取一条记录。 + * @return array|bool + */ + public function zRevRangeByScore($key,$start='-inf',$end="+inf",$option=array()) + { + return $this->redis->zRevRangeByScore($key,$start,$end,$option); + } + + /** + * 返回order值在start end之间的数量 + * @param unknown $key + * @param unknown $start + * @param unknown $end + */ + public function zCount($key,$start,$end) + { + return $this->redis->zCount($key,$start,$end); + } + + /** + * 返回值为value的order值 + * @param unknown $key + * @param unknown $value + */ + public function zScore($key,$value) + { + return $this->redis->zScore($key,$value); + } + + /** + * 返回集合以score递增加排序后,指定成员的排序号,从0开始。 + * @param unknown $key + * @param unknown $value + */ + public function zRank($key,$value) + { + return $this->redis->zRank($key,$value); + } + + /** + * 返回集合以score递增加排序后,指定成员的排序号,从0开始。 + * @param unknown $key + * @param unknown $value + */ + public function zRevRank($key,$value) + { + return $this->redis->zRevRank($key,$value); + } + + /** + * 删除集合中,score值在start end之间的元素 包括start end + * min和max可以是-inf和+inf 表示最大值,最小值 + * @param unknown $key + * @param unknown $start + * @param unknown $end + * @return 删除成员的数量。 + */ + public function zRemRangeByScore($key,$start,$end) + { + return $this->redis->zRemRangeByScore($key,$start,$end); + } + + /** + * 返回集合元素个数。 + * @param unknown $key + */ + public function zCard($key) + { + return $this->redis->zCard($key); + } + /*********************队列操作命令************************/ + + /** + * 在队列尾部插入一个元素 + * @param unknown $key + * @param unknown $value + * 返回队列长度 + */ + public function rPush($key,$value) + { + return $this->redis->rPush($key,$value); + } + + /** + * 在队列尾部插入一个元素 如果key不存在,什么也不做 + * @param unknown $key + * @param unknown $value + * 返回队列长度 + */ + public function rPushx($key,$value) + { + return $this->redis->rPushx($key,$value); + } + + /** + * 在队列头部插入一个元素 + * @param unknown $key + * @param unknown $value + * 返回队列长度 + */ + public function lPush($key,$value) + { + return $this->redis->lPush($key,$value); + } + + /** + * 在队列头插入一个元素 如果key不存在,什么也不做 + * @param unknown $key + * @param unknown $value + * 返回队列长度 + */ + public function lPushx($key,$value) + { + return $this->redis->lPushx($key,$value); + } + + /** + * 返回队列长度 + * @param unknown $key + */ + public function lLen($key) + { + return $this->redis->lLen($key); + } + + /** + * 返回队列指定区间的元素 + * @param unknown $key + * @param unknown $start + * @param unknown $end + */ + public function lRange($key,$start,$end) + { + return $this->redis->lrange($key,$start,$end); + } + + /** + * 返回队列中指定索引的元素 + * @param unknown $key + * @param unknown $index + */ + public function lIndex($key,$index) + { + return $this->redis->lIndex($key,$index); + } + + /** + * 设定队列中指定index的值。 + * @param unknown $key + * @param unknown $index + * @param unknown $value + */ + public function lSet($key,$index,$value) + { + return $this->redis->lSet($key,$index,$value); + } + + /** + * 删除值为vaule的count个元素 + * PHP-REDIS扩展的数据顺序与命令的顺序不太一样,不知道是不是bug + * count>0 从尾部开始 + * >0 从头部开始 + * =0 删除全部 + * @param unknown $key + * @param unknown $count + * @param unknown $value + */ + public function lRem($key,$count,$value) + { + return $this->redis->lRem($key,$value,$count); + } + + /** + * 删除并返回队列中的头元素。 + * @param unknown $key + */ + public function lPop($key) + { + return $this->redis->lPop($key); + } + + /** + * 删除并返回队列中的尾元素 + * @param unknown $key + */ + public function rPop($key) + { + return $this->redis->rPop($key); + } + + /*************redis字符串操作命令*****************/ + + /** + * 设置一个key + * @param unknown $key + * @param unknown $value + */ + public function set($key,$value) + { + return $this->redis->set($key,$value); + } + + /** + * 得到一个key + * @param unknown $key + */ + public function get($key) + { + return $this->redis->get($key); + } + + /** + * 设置一个有过期时间的key + * @param unknown $key + * @param unknown $expire + * @param unknown $value + */ + public function setex($key,$expire,$value) + { + return $this->redis->setex($key,$expire,$value); + } + + + /** + * 设置一个key,如果key存在,不做任何操作. + * @param unknown $key + * @param unknown $value + */ + public function setnx($key,$value) + { + return $this->redis->setnx($key,$value); + } + + /** + * 批量设置key + * @param unknown $arr + */ + public function mset($arr) + { + return $this->redis->mset($arr); + } + + /*************redis 无序集合操作命令*****************/ + + /** + * 返回集合中所有元素 + * @param unknown $key + */ + public function sMembers($key) + { + return $this->redis->sMembers($key); + } + + /** + * 求2个集合的差集 + * @param unknown $key1 + * @param unknown $key2 + */ + public function sDiff($key1,$key2) + { + return $this->redis->sDiff($key1,$key2); + } + + /** + * 添加集合。由于版本问题,扩展不支持批量添加。这里做了封装 + * @param unknown $key + * @param string|array $value + */ + public function sAdd($key,$value) + { + if(!is_array($value)) + $arr=array($value); + else + $arr=$value; + foreach($arr as $row) + $this->redis->sAdd($key,$row); + } + + /** + * 返回无序集合的元素个数 + * @param unknown $key + */ + public function scard($key) + { + return $this->redis->scard($key); + } + + /** + * 从集合中删除一个元素 + * @param unknown $key + * @param unknown $value + */ + public function srem($key,$value) + { + return $this->redis->srem($key,$value); + } + + /*************redis管理操作命令*****************/ + + /** + * 选择数据库 + * @param int $dbId 数据库ID号 + * @return bool + */ + public function select($dbId) + { + $this->dbId=$dbId; + return $this->redis->select($dbId); + } + + /** + * 清空当前数据库 + * @return bool + */ + public function flushDB() + { + return $this->redis->flushDB(); + } + + /** + * 返回当前库状态 + * @return array + */ + public function info() + { + return $this->redis->info(); + } + + /** + * 同步保存数据到磁盘 + */ + public function save() + { + return $this->redis->save(); + } + + /** + * 异步保存数据到磁盘 + */ + public function bgSave() + { + return $this->redis->bgSave(); + } + + /** + * 返回最后保存到磁盘的时间 + */ + public function lastSave() + { + return $this->redis->lastSave(); + } + + /** + * 返回key,支持*多个字符,?一个字符 + * 只有* 表示全部 + * @param string $key + * @return array + */ + public function keys($key) + { + return $this->redis->keys($key); + } + + /** + * 删除指定key + * @param unknown $key + */ + public function del($key) + { + return $this->redis->del($key); + } + + /** + * 判断一个key值是不是存在 + * @param unknown $key + */ + public function exists($key) + { + return $this->redis->exists($key); + } + + /** + * 为一个key设定过期时间 单位为秒 + * @param unknown $key + * @param unknown $expire + */ + public function expire($key,$expire) + { + return $this->redis->expire($key,$expire); + } + + /** + * 返回一个key还有多久过期,单位秒 + * @param unknown $key + */ + public function ttl($key) + { + return $this->redis->ttl($key); + } + + /** + * 设定一个key什么时候过期,time为一个时间戳 + * @param unknown $key + * @param unknown $time + */ + public function exprieAt($key,$time) + { + return $this->redis->expireAt($key,$time); + } + + /** + * 关闭服务器链接 + */ + public function close() + { + return $this->redis->close(); + } + + /** + * 关闭所有连接 + */ + public static function closeAll() + { + foreach(static::$_instance as $o) + { + if($o instanceof self) + $o->close(); + } + } + + /** 这里不关闭连接,因为session写入会在所有对象销毁之后。 + public function __destruct() + { + return $this->redis->close(); + } + **/ + /** + * 返回当前数据库key数量 + */ + public function dbSize() + { + return $this->redis->dbSize(); + } + + /** + * 返回一个随机key + */ + public function randomKey() + { + return $this->redis->randomKey(); + } + + /** + * 得到当前数据库ID + * @return int + */ + public function getDbId() + { + return $this->dbId; + } + + /** + * 返回当前密码 + */ + public function getAuth() + { + return $this->auth; + } + + public function getHost() + { + return $this->host; + } + + public function getPort() + { + return $this->port; + } + + public function getConnInfo() + { + return array( + 'host'=>$this->host, + 'port'=>$this->port, + 'auth'=>$this->auth + ); + } + /*********************事务的相关方法************************/ + + /** + * 监控key,就是一个或多个key添加一个乐观锁 + * 在此期间如果key的值如果发生的改变,刚不能为key设定值 + * 可以重新取得Key的值。 + * @param unknown $key + */ + public function watch($key) + { + return $this->redis->watch($key); + } + + /** + * 取消当前链接对所有key的watch + * EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行 UNWATCH 了 + */ + public function unwatch() + { + return $this->redis->unwatch(); + } + + /** + * 开启一个事务 + * 事务的调用有两种模式Redis::MULTI和Redis::PIPELINE, + * 默认是Redis::MULTI模式, + * Redis::PIPELINE管道模式速度更快,但没有任何保证原子性有可能造成数据的丢失 + */ + public function multi($type=\Redis::MULTI) + { + return $this->redis->multi($type); + } + + /** + * 执行一个事务 + * 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行 + */ + public function exec() + { + return $this->redis->exec(); + } + + /** + * 回滚一个事务 + */ + public function discard() + { + return $this->redis->discard(); + } + + /** + * 测试当前链接是不是已经失效 + * 没有失效返回+PONG + * 失效返回false + */ + public function ping() + { + return $this->redis->ping(); + } + + public function auth($auth) + { + return $this->redis->auth($auth); + } + /*********************自定义的方法,用于简化操作************************/ + + /** + * 得到一组的ID号 + * @param unknown $prefix + * @param unknown $ids + */ + public function hashAll($prefix,$ids) + { + if($ids==false) + return false; + if(is_string($ids)) + $ids=explode(',', $ids); + $arr=array(); + foreach($ids as $id) + { + $key=$prefix.'.'.$id; + $res=$this->hGetAll($key); + if($res!=false) + $arr[]=$res; + } + + return $arr; + } + + /** + * 生成一条消息,放在redis数据库中。使用0号库。 + * @param string|array $msg + */ + public function pushMessage($lkey,$msg) + { + if(is_array($msg)){ + $msg = json_encode($msg); + } + $key = md5($msg); + + //如果消息已经存在,删除旧消息,已当前消息为准 + //echo $n=$this->lRem($lkey, 0, $key)."\n"; + //重新设置新消息 + $this->lPush($lkey, $key); + $this->setex($key, 3600, $msg); + return $key; + } + + + /** + * 得到条批量删除key的命令 + * @param unknown $keys + * @param unknown $dbId + */ + public function delKeys($keys,$dbId) + { + $redisInfo=$this->getConnInfo(); + $cmdArr=array( + 'redis-cli', + '-a', + $redisInfo['auth'], + '-h', + $redisInfo['host'], + '-p', + $redisInfo['port'], + '-n', + $dbId, + ); + $redisStr=implode(' ', $cmdArr); + $cmd="{$redisStr} KEYS \"{$keys}\" | xargs {$redisStr} del"; + return $cmd; + } +} \ No newline at end of file diff --git a/app/Common/RedisCluster.php b/app/Common/RedisCluster.php new file mode 100644 index 0000000..fec7d3e --- /dev/null +++ b/app/Common/RedisCluster.php @@ -0,0 +1,398 @@ +null,// 只支持一台 Master + 'slave'=>array(),// 可以有多台 Slave + ); + + /** + * 构造函数 + * + * @param boolean $isUseCluster 是否采用 M/S 方案 + */ + public function __construct($isUseCluster=false) + { + $this->_isUseCluster = $isUseCluster; + } + + /** + * 连接服务器,注意:这里使用长连接,提高效率,但不会自动关闭 + * + * @param array $config Redis服务器配置 + * @param boolean $isMaster 当前添加的服务器是否为 Master 服务器 + * @return boolean + */ + public function connect($config=array('host'=>'127.0.0.1','port'=>6379), $isMaster=true) + { + // default port + if(!isset($config['port'])) + { + $config['port'] = 6379; + } + + // 设置 Master 连接 + if($isMaster) + { + $this->_linkHandle['master'] = new Redis(); + $ret = $this->_linkHandle['master']->pconnect($config['host'],$config['port']); + } + else + { + // 多个 Slave 连接 + $this->_linkHandle['slave'][$this->_sn] = new Redis(); + $ret = $this->_linkHandle['slave'][$this->_sn]->pconnect($config['host'],$config['port']); + ++$this->_sn; + } + + return $ret; + } + + /** + * 关闭连接 + * + * @param int $flag 关闭选择 0:关闭 Master 1:关闭 Slave 2:关闭所有 + * @return boolean + */ + public function close($flag=2){ + switch($flag){ + // 关闭 Master + case 0: + $this->getRedis()->close(); + break; + // 关闭 Slave + case 1: + for($i=0; $i<$this->_sn; ++$i){ + $this->_linkHandle['slave'][$i]->close(); + } + break; + // 关闭所有 + case 1: + $this->getRedis()->close(); + for($i=0; $i<$this->_sn; ++$i){ + $this->_linkHandle['slave'][$i]->close(); + } + break; + } + return true; + } + + /** + * 得到 Redis 原始对象可以有更多的操作 + * + * @param boolean $isMaster 返回服务器的类型 true:返回Master false:返回Slave + * @param boolean $slaveOne 返回的Slave选择 true:负载均衡随机返回一个Slave选择 false:返回所有的Slave选择 + * @return redis object + */ + public function getRedis($isMaster=true,$slaveOne=true){ + // 只返回 Master + if($isMaster){ + return $this->_linkHandle['master']; + }else{ + return $slaveOne ? $this->_getSlaveRedis() : $this->_linkHandle['slave']; + } + } + + /** + * 写缓存 + * + * @param string $key 组存KEY + * @param string $value 缓存值 + * @param int $expire 过期时间, 0:表示无过期时间 + */ + public function set($key, $value, $expire=0){ + // 永不超时 + if($expire == 0){ + $ret = $this->getRedis()->set($key, $value); + }else{ + $ret = $this->getRedis()->setex($key, $expire, $value); + } + return $ret; + } + + /** + * 读缓存 + * + * @param string $key 缓存KEY,支持一次取多个 $key = array('key1','key2') + * @return string || boolean 失败返回 false, 成功返回字符串 + */ + public function get($key){ + // 是否一次取多个值 + $func = is_array($key) ? 'mGet' : 'get'; + // 没有使用M/S + if(! $this->_isUseCluster){ + return $this->getRedis()->{$func}($key); + } + // 使用了 M/S + return $this->_getSlaveRedis()->{$func}($key); + } + + +/* + // magic function + public function __call($name,$arguments){ + return call_user_func($name,$arguments); + } +*/ + /** + * 条件形式设置缓存,如果 key 不存时就设置,存在时设置失败 + * + * @param string $key 缓存KEY + * @param string $value 缓存值 + * @return boolean + */ + public function setnx($key, $value){ + return $this->getRedis()->setnx($key, $value); + } + + /** + * 删除缓存 + * + * @param string || array $key 缓存KEY,支持单个健:"key1" 或多个健:array('key1','key2') + * @return int 删除的健的数量 + */ + public function remove($key){ + // $key => "key1" || array('key1','key2') + return $this->getRedis()->delete($key); + } + + /** + * 值加加操作,类似 ++$i ,如果 key 不存在时自动设置为 0 后进行加加操作 + * + * @param string $key 缓存KEY + * @param int $default 操作时的默认值 + * @return int 操作后的值 + */ + public function incr($key,$default=1){ + if($default == 1){ + return $this->getRedis()->incr($key); + }else{ + return $this->getRedis()->incrBy($key, $default); + } + } + + /** + * 值减减操作,类似 --$i ,如果 key 不存在时自动设置为 0 后进行减减操作 + * + * @param string $key 缓存KEY + * @param int $default 操作时的默认值 + * @return int 操作后的值 + */ + public function decr($key,$default=1){ + if($default == 1){ + return $this->getRedis()->decr($key); + }else{ + return $this->getRedis()->decrBy($key, $default); + } + } + + /** + * 添空当前数据库 + * + * @return boolean + */ + public function clear(){ + return $this->getRedis()->flushDB(); + } + + /* =================== 以下私有方法 =================== */ + + /** + * 随机 HASH 得到 Redis Slave 服务器句柄 + * + * @return redis object + */ + private function _getSlaveRedis(){ + // 就一台 Slave 机直接返回 + if($this->_sn <= 1){ + return $this->_linkHandle['slave'][0]; + } + // 随机 Hash 得到 Slave 的句柄 + $hash = $this->_hashId(mt_rand(), $this->_sn); + return $this->_linkHandle['slave'][$hash]; + } + + /** + * 根据ID得到 hash 后 0~m-1 之间的值 + * + * @param string $id + * @param int $m + * @return int + */ + private function _hashId($id,$m=10) + { + //把字符串K转换为 0~m-1 之间的一个值作为对应记录的散列地址 + $k = md5($id); + $l = strlen($k); + $b = bin2hex($k); + $h = 0; + for($i=0;$i<$l;$i++) + { + //相加模式HASH + $h += substr($b,$i*2,2); + } + + $hash = ($h*1)%$m; + return $hash; + } + + /** + * lpush + */ + public function lpush($key,$value) + { + return $this->getRedis()->lpush($key,$value); + } + + /** + * add lpop + */ + public function lpop($key) + { + return $this->getRedis()->lpop($key); + } + + /** + * lrange + */ + public function lrange($key,$start,$end) + { + return $this->getRedis()->lrange($key,$start,$end); + } + + /** + * set hash opeation + */ + public function hset($name,$key,$value) + { + if(is_array($value)) + { + return $this->getRedis()->hset($name,$key,serialize($value)); + } + + return $this->getRedis()->hset($name,$key,$value); + } + + /** + * get hash opeation + */ + public function hget($name,$key = null,$serialize=true) + { + if($key) + { + $row = $this->getRedis()->hget($name,$key); + if($row && $serialize) + { + unserialize($row); + } + + return $row; + } + + return $this->getRedis()->hgetAll($name); + } + + /** + * delete hash opeation + */ + public function hdel($name,$key = null) + { + if($key) + { + return $this->getRedis()->hdel($name,$key); + } + + return $this->getRedis()->hdel($name); + } + + /** + * Transaction start + */ + public function multi() + { + return $this->getRedis()->multi(); + } + + /** + * Transaction send + */ + public function exec() + { + return $this->getRedis()->exec(); + } +}// End Class + +// ================= TEST DEMO ================= + +// 只有一台 Redis 的应用 +/* $redis = new RedisCluster(); +$redis->connect(array('host'=>'127.0.0.1','port'=>6379)); + + +//* +$cron_id = 10001; +$CRON_KEY = 'CRON_LIST'; // +$PHONE_KEY = 'PHONE_LIST:'.$cron_id;// + +//cron info +$cron = $redis->hget($CRON_KEY,$cron_id); +if(empty($cron)){ + + $cron = array('id'=>10,'name'=>'jackluo');//mysql data + $redis->hset($CRON_KEY,$cron_id,$cron); // set redis +} +//phone list +$phone_list = $redis->lrange($PHONE_KEY,0,-1); +print_r($phone_list); +if(empty($phone_list)){ + $phone_list =explode(',','13228191831,18608041585'); //mysql data + //join list + if($phone_list){ + $redis->multi(); + foreach ($phone_list as $phone) { + $redis->lpush($PHONE_KEY,$phone); + } + $redis->exec(); + } +} + +print_r($phone_list); */ + + +/*$list = $redis->hget($cron_list,); + +var_dump($list);*/ +//*/ + + +//$redis->set('id',35); + +/* + $redis->lpush('test','1111'); + $redis->lpush('test','2222'); + $redis->lpush('test','3333'); + + $list = $redis->lrange('test',0,-1); + print_r($list); + $lpop = $redis->lpop('test'); + print_r($lpop); + $lpop = $redis->lpop('test'); + print_r($lpop); + $lpop = $redis->lpop('test'); + print_r($lpop); +*/ +// var_dump($redis->get('id')); \ No newline at end of file diff --git a/app/Common/Token.php b/app/Common/Token.php index 1dee56f..eb3e9c1 100644 --- a/app/Common/Token.php +++ b/app/Common/Token.php @@ -29,7 +29,7 @@ class Token */ public static function checkToken($token) { - $token = DB::table('token')->where('token', $token)->first(); + $token = DB::table('token')->where(array('token'=>$token))->first(); if ($token) { diff --git a/app/Http/Controllers/Home/IndexController.php b/app/Http/Controllers/Home/IndexController.php index a4980d8..687c776 100644 --- a/app/Http/Controllers/Home/IndexController.php +++ b/app/Http/Controllers/Home/IndexController.php @@ -63,6 +63,32 @@ class IndexController extends CommonController $data['counts'] = $counts; $start = $page*$pagesize; + //排序 + if($request->input('orderby', null) != null) + { + switch ($request->input('orderby')) + { + case 1: + $goods = $goods->orderBy('sale','desc'); //销量从高到低 + break; + case 2: + $goods = $goods->orderBy('comments','desc'); //评论从高到低 + break; + case 3: + $goods = $goods->orderBy('price','desc'); //价格从高到低 + break; + case 4: + $goods = $goods->orderBy('price','asc'); //价格从低到高 + break; + case 5: + $timestamp = time(); + $goods = $goods->where('promote_start_date','<=',$timestamp)->where('promote_end_date','>=',$timestamp); //促销商品 + break; + default: + $goods = $goods->orderBy('pubdate','desc'); //最新 + } + } + $posts = object_to_array($goods->skip($start)->take($pagesize)->get()); $data['posts'] = $posts; //获取列表 diff --git a/config/custom.php b/config/custom.php index 47657aa..9a61758 100644 --- a/config/custom.php +++ b/config/custom.php @@ -9,6 +9,27 @@ return [ "3"=>"三级推荐", "4"=>"四级推荐" ], - - + //微信支付 + 'weixin_payment' => [ + 'app_id' => 'wxc9296a5edc62bfdf', + // payment + 'payment' => [ + 'merchant_id' => '1484410482', + 'key' => '1a4128be0f3855c9ebc65de69736cad4', + //'cert_path' => storage_path() . '/wechat/apiclient_cert.pem', // XXX: 绝对路径!!!! + //'key_path' => storage_path() . '/wechat/apiclient_key.pem', // XXX: 绝对路径!!!! + 'notify_url' => 'http://testapi.52danchuang.com/payment/notify/app_weixin_pay/', // 你也可以在下单时单独设置来想覆盖它 + // 'device_info' => '013467007045764', + // 'sub_app_id' => '', + // 'sub_merchant_id' => '', + // ... + ], + ], + //支付宝app支付 + 'alipay_app' => [ + 'appId' => '2017070707673008', + 'rsaPrivateKey' => 'MIIEpAIBAAKCAQEA5Eccv1+NjMMEMYC9ePnldw8MgCvIsXq1A4VUTlfzCpLpEAe8Losf4lDqZhcwJOhk6+ZC6dWi1rKE7P+huG0Mh88PpXQAy9zPcbbdFqcuijZFxLNj0qcZGhurS6m0cWofAJxVcuSYpHNwJF24kCPrUje46mpNd3J8hsGXjZQBQpU3BdB4DM0hRA7BopR8WTaiGrNIzJSrAi6hIwDqjMFez3AYD4RhQRt9k7NPY04uKI7UR0D6Me+f6Cu0exodB87L1EXTm/ICG/F8rj+4xUXgqWOWw0QuUHMEYB0S5dSxy2sQg/2A67PogsxIUkOB+UdcsI0W2ZmpO5MKSusPlV6VwwIDAQABAoIBAQCscwBHnkLLtMNlNjFsw7PSln7GEM2DLgSzDTUcHhrPwR3p6z4BFz7V9HSu/RN0vk8HWqLwDWD/ukrq007ziQXvTsAuKI01dLEN4avxoghphwh7yV0+1NcEvyRPe3uCNj4HcxKmQgUCLubnwhlcYpYyPUAnbnjpJIboMjVwUgAFsFBlm5aQ1cCTR2aPg/KkC+VlxWOEBaY6Y2RH59sMon+G2LPIvzYJW8Ive+rccyZ0ly7dqEiaW5+dhcLRUC7z/Z4R9ZZm5zrzwFhI+v4vDN+oaTUSjijVbRkZN4U+PGvNYj+OyYd3rQvGS41EmCiO1L23jI7ve0XnbfXYpnpILVN5AoGBAPRF/4uc2ug3HFfP7jgmxuZHJR6GXZz9S9Au6CFi6SQ3D5bgvIN4RiZ8kIXnf1FAJ+/Gi97QPFpozAbNWgBj42w25FRXCe60HKV7K89ovSyeKcbKQ/PhV4MQnsyUU+bkqVzTK5uCedwYPG9rDGHkS3t0kvtvL+QtaK5FRXjtmmHnAoGBAO88iQsw3cE6Xf4B5byj1C3NaIvW7G8ZqLLKc190aNrMtDym8HPw4H2h0MrQ12fRIU/v06DzKII2SbywaICEpMQnAg2WS+X9oeiFGwVB8L2npHz6TX+TGgC8zjJuzW2wVX5NYATP5nSUbZE5oVEYh44gyE4JkY/iwesupO1PGunFAoGAW81qytd6VcdQeZgFmUjJe4XFZ4Fr8TIoqebXCqUXpaqjyzpO3sH260PpNMnZyXlpCO3/Zw+vfvLfqrbGWlsv/11p1mCXtQQvt+lgf6SHZBtU7AbcHu3Ta8h1RcGA/sd09xPN0bXpglQBcoYysx+PVqhrDN+uifye2M/j2hzB5oUCgYBns13UNAJr19kWWcwz0PAQSpGezDMAlabCmW8ZWWR6M3GNOO/R0f/9dT8EKzK0FbrS46pgggZ1KwMbf3xM+TJStHX3XcbYkvCz0b68sLCiBSEP64/cVO9Ykn7u7Yium1jzvqZ4b4X90rkL0mdSt8dKnHs3GH64WBqmzzk+hKOt4QKBgQCwAPwnlLiZmtORdja3rNFrTTXvjua8HVTemMdp2rUuSFB2FXS3suRhqkH2ilMRvbdiP/GlaCOyOTMSOVis88KZKie5Dy26TUgWUMsvG/7d21meRP6SCqpFhw5tkNkTzX+7ul5Si7iabmMtdlhw1OiD7yv4bo3Sw4YTWMa4s4D2ag==', + 'alipayrsaPublicKey' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmLo5catqqLXWcf+LhRs/WDziyCAB+HPb/+xls2BAtNtvfLHCM9xej5VGTzX7mw6e5/Et3yVAhFnnTZ9U9RWq1m3MiEv19n17/yIbGMXpxSSujYnL0drFBY6Z4f19tzfqWQPETpEf1atFSHbcJQfpaslyr9W2NmS5dbWIe+sJVmZjRN5cYEhFY7U0JHqIPr653XSDzsQ152rHZIb0wJmEVfkr0yyOZl1ja0sx+Gv3/BcHDK1brK94mi9I6J78dDXQS6WSQY7mup9l74Z78FLHf22LtS9GvpkzlL5zAKh0LzTVsgGlyJNMnh0/aRYK4p4IKiSAvQRhLXjfbWLc9XFAzQIDAQAB', + 'signType' => 'RSA2', + ], ]; \ No newline at end of file diff --git a/lqycms.sql b/lqycms.sql index adc9be4..6129292 100644 --- a/lqycms.sql +++ b/lqycms.sql @@ -325,16 +325,14 @@ CREATE TABLE `fl_feedback` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `content` text NOT NULL COMMENT '意见反馈内容', `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间', - `user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户id', - `title` varchar(150) NOT NULL DEFAULT '' COMMENT '标题,选填', - `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号码,选填', - `type` varchar(20) NOT NULL DEFAULT '' COMMENT '意见反馈类型,选填', + `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '用户id', + `title` varchar(150) NOT NULL DEFAULT '' COMMENT '标题', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='意见反馈表'; /*Data for the table `fl_feedback` */ -insert into `fl_feedback`(`id`,`content`,`created_at`,`user_id`,`title`,`mobile`,`type`) values (1,'发过火对光反射','2017-07-27 14:13:31',127,'','',''),(3,'content六角恐龙','2017-08-08 15:46:49',1,'title螺丝款计划','',''),(4,'asfa','2018-03-30 11:40:44',3,'','',''),(5,'sdgsd','2018-03-30 11:43:06',3,'','15280719685','积分/优惠券'),(6,'dgsg','2018-03-30 11:43:33',3,'','','购物流程'); +insert into `fl_feedback`(`id`,`content`,`created_at`,`user_id`,`title`) values (1,'发过火对光反射','2017-07-27 14:13:31',127,''),(3,'content六角恐龙','2017-08-08 15:46:49',1,'title螺丝款计划'); /*Table structure for table `fl_friendlink` */ @@ -392,11 +390,11 @@ CREATE TABLE `fl_goods` ( `brand_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '商品品牌', PRIMARY KEY (`id`), UNIQUE KEY `idx_uqe_sn` (`sn`) -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='商品表'; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='商品表'; /*Data for the table `fl_goods` */ -insert into `fl_goods`(`id`,`typeid`,`tuijian`,`click`,`title`,`body`,`sn`,`price`,`litpic`,`pubdate`,`add_time`,`keywords`,`seotitle`,`description`,`status`,`shipping_fee`,`market_price`,`goods_number`,`user_id`,`sale`,`cost_price`,`goods_weight`,`point`,`comments`,`promote_start_date`,`promote_price`,`promote_end_date`,`goods_img`,`warn_number`,`spec`,`listorder`,`brand_id`) values (1,2,1,5672,'示例产品一','

是的发生

','sn123456','45000.00','/uploads/2017/06/201706041951031181.jpg',1512273964,1496577749,'示例,产品,一','','是的发生',0,'0.00','50000.00',99,1,0,'0.00','0.00',0,0,0,'0.00',0,'/uploads/2017/06/201706041951031181.jpg',0,'',50,0),(2,1,1,32,'示例产品二','说的是','sn987','1.00','/uploads/2017/06/201706042011354141.jpg',1496578330,1496578313,'产品,示例,二','','',0,'3.00','2.00',106,1,3,'0.00','0.00',0,0,0,'0.00',0,'/uploads/2017/06/201706042011354141.jpg',0,'',50,0),(3,1,0,37,'示例产品三','是的发生','sn232143','5.10','/uploads/2017/06/201706042012428057.jpg',1496578380,1496578380,'示例,产品,三','','',0,'3.00','4.00',103,1,1,'0.00','0.00',0,0,0,'0.00',0,'/uploads/2017/06/201706042012428057.jpg',0,'',50,1),(4,1,0,107,'示例产品四2','

电热熔

','sn9809702','5.00','/uploads/2017/06/201706042013331349.jpg',1519736409,1496578429,'示例,产品,四','','电热熔',0,'3.00','6.00',91,1,4,'0.00','0.00',0,0,1518435963,'2.00',1519905139,'/uploads/2017/06/201706042013331349.jpg',0,'',50,0); +insert into `fl_goods`(`id`,`typeid`,`tuijian`,`click`,`title`,`body`,`sn`,`price`,`litpic`,`pubdate`,`add_time`,`keywords`,`seotitle`,`description`,`status`,`shipping_fee`,`market_price`,`goods_number`,`user_id`,`sale`,`cost_price`,`goods_weight`,`point`,`comments`,`promote_start_date`,`promote_price`,`promote_end_date`,`goods_img`,`warn_number`,`spec`,`listorder`,`brand_id`) values (1,2,1,5674,'示例产品一','

是的发生

','sn123456','45000.00','/uploads/2018/04/1.jpg',1512273964,1496577749,'示例,产品,一','','是的发生',0,'0.00','50000.00',99,1,0,'0.00','0.00',0,0,0,'0.00',0,'/uploads/2017/06/201706041951031181.jpg',0,'',50,0),(2,1,1,36,'示例产品二','说的是','sn987','1.00','/uploads/2018/04/2.jpg',1496578330,1496578313,'产品,示例,二','','',0,'3.00','2.00',106,1,3,'0.00','0.00',0,0,0,'0.00',0,'/uploads/2017/06/201706042011354141.jpg',0,'',50,0),(3,1,0,38,'示例产品三','是的发生','sn232143','5.10','/uploads/2018/04/3.jpg',1496578380,1496578380,'示例,产品,三','','',0,'3.00','4.00',103,1,1,'0.00','0.00',0,0,0,'0.00',0,'/uploads/2017/06/201706042012428057.jpg',0,'',50,1),(4,1,0,112,'示例产品四','

电热熔

','sn9809702','5.00','/uploads/2018/04/4.jpg',1519736409,1496578429,'示例,产品,四','','电热熔',0,'3.00','6.00',91,1,4,'0.00','0.00',0,0,1518435963,'2.00',1519905139,'/uploads/2017/06/201706042013331349.jpg',0,'',50,0),(5,1,0,5,'示例产品五','就回家好看','kjkhk3','989.00','/uploads/2018/04/5.jpg',1522849406,1522849066,'示例,产品,五','','',0,'898.00','98.00',8989,1,989,'0.00','0.00',0,0,1523281235,'909.00',1524750039,'',1,'',50,0); /*Table structure for table `fl_goods_brand` */ @@ -669,11 +667,11 @@ CREATE TABLE `fl_page` ( `listorder` int(5) unsigned NOT NULL DEFAULT '50' COMMENT '排序', PRIMARY KEY (`id`), UNIQUE KEY `filename` (`filename`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='单页面表'; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='单页面表'; /*Data for the table `fl_page` */ -insert into `fl_page`(`id`,`title`,`seotitle`,`keywords`,`template`,`description`,`pubdate`,`body`,`filename`,`litpic`,`click`,`listorder`) values (1,'公司简介','','公司简介','page','LQYCMS企业网站管理系统采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言,拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、会员与权限管理)。强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义FLASH样式功能等可为企业打造出大气漂亮且具有营销力的',1496540889,'

我们专注于网络信息化及网络营销领域,通过整合团队专业的市场营销理念与网络技术为客户提供优质的网络营销服务。


我们的主要业务包括:网站系统开发、网站建设、网站推广、空间域名以及网络营销策划与运行。


我们主打产品——LQYCMS企业网站管理系统采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言,拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、会员与权限管理)。强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义FLASH样式功能等可为企业打造出大气漂亮且具有营销力的精品网站。


我们秉承“为合作伙伴创造价值”的核心价值观,并以“诚实、宽容、创新、服务”为企业精神,通过自主创新和真诚合作为电子商务及信息服务行业创造价值。


关于“为合作伙伴创造价值”


我们认为客户、供应商、公司股东、公司员工等一切和自身有合作关系的单位和个人都是自己的合作伙伴,并只有通过努力为合作伙伴创造价值,才能体现自身的价值并获得发展和成功。


关于“诚实、宽容、创新、服务”


我们认为诚信是一切合作的基础,宽容是解决问题的前提,创新是发展事业的利器,服务是创造价值的根本。

','about','',393,50),(2,'联系我们','','','page','',1496540844,'

XX有限公司

地址:XX市XX区XXX号XXX栋XXX房

电话:0000-888888 13300000000

Q  Q:374861669

邮编:000000

邮箱:374861669@

网址:www.1104.org

','contact','',259,50),(3,'企业文化','','','page','​企业文化,或称组织文化(Corporate Culture或Organizational Culture),是一个组织由其价值观、信念、仪式、符号、处事方式等组成的其特有的文化形象。',1496541077,'

企业文化,或称组织文化(Corporate Culture或Organizational Culture),是一个组织由其价值观、信念、仪式、符号、处事方式等组成的其特有的文化形象。


职工文化,也称企业职工文化,是与企业文化相对应的文化形态,职工文化以职工为本,是一种素质文化,企业文化以企业为本,是一种管理文化。

企业文化是在一定的条件下,企业生产经营和管理活动中所创造的具有该企业特色的精神财富和物质形态。它包括文化观念、价值观念、企业精神、道德规范、行为准则、历史传统、企业制度、文化环境、企业产品等。其中价值观是企业文化的核心。


企业文化是企业的灵魂,是推动企业发展的不竭动力。它包含着非常丰富的内容,其核心是企业的精神和价值观。这里的价值观不是泛指企业管理中的各种文化现象,而是企业或企业中的员工在从事商品生产与经营中所持有的价值观念。

','culture','',264,50),(4,'招贤纳士','','','page','',1496541317,'

PHP技术支持


主要工作内容:

1. 负责MetInfo企业网站管理系统技术支持;

2. 为客服人员提供技术支持;

 

岗位要求: 


php能看懂且对PHP感兴趣,理解面向对象基本概念,写过一些小程序;

懂MySql数据库备份、恢复等基本操作,熟悉PHP环境的搭建和配置;

javascript能看懂,了解jquery等js框架;

html/css会写,懂linux的优先;

擅长网上查找资料解决问题;

有PHP作品(留言板,blog等)的优先;

做事要有耐心,性格谦和,学习能力强,能吃苦耐劳,愿意同公司共同发展。

如果你对我们的职位感兴趣,且符合我们的基本要求,请将个人简历投递至xxx@qq.com,或者直接与我们取得联系!



网络销售


大专以上学历,一年以上网络销售经验;

熟悉网络推广,熟悉网站建设基本流程;

有网站制作相关工作经验者优先;

学习能力强,能吃苦耐劳,愿意同公司共同发展;

本岗位招收兼职,投递简历时请说明自己的工作意愿;

如果你对我们的职位感兴趣,且符合我们的基本要求,请将个人简历投递至xxx@qq.com,或者直接与我们取得联系!



网页UI设计师


主要工作内容:负责MetInfo界面和公司网站的界面设计等,重视用户体验。


岗位要求:

视觉设计、平面设计或美术相关专业,大专以上学历。

具有良好的创意设计能力及良好的色彩感,有较高的美术功底,较强的网页设计能力和整体布局感。

精通photoshop、Illustrator、Fireworks、Dreamweaver等图形设计工具中至少两种。

了解网页交互设计知识,对作品有不断追求完美的精神特质。

有网站UI设计同等职位工作经验、能提供过往作品者优先。

','jobs','',460,50),(5,'用户注册协议','用户注册协议','','page','',1519694248,'

尊敬的客户,欢迎您注册成为本网站用户,在注册前请仔细阅读如下服务条款。本协议双方为用户与公司,适用于用户注册使用本网站服务的全部活动。


在注册本网站之前,请您务必认真阅读并充分理解本协议全部内容。您点击本协议下方的“注册”按钮,并按照本网站注册程序成功成为注册为用户,即视为您已经充分理解和同意本协议全部内容,并签署了本协议,本协议立即在您与本公司之间产生合同法律效力,您使用本网站服务的全部活动将受到本协议的约束并应承担相应的责任和义务。


1、协议组成说明


1.1本协议的内容包括本协议以下全部条款以及本网站已经公示发布的及将来可能公示发布的各项规则,该等规则均为本协议不可分割的一部分,与本协议以下所列条款具有同等法律效力。


1.2本网站有权根据需要修改本协议的内容。如以下条款或本网站各项规则有任何变更,本网站将在网站上刊载公告,不再向用户作个别通知。经修订的相关条款和规则一经公告,即于公告规定的特定生效日期自动生效。请您及时关注本网站关于相关条款和规则的公告,如不同意该变更,请您在变更公告刊载之日起72小时内以您在本网站注册时提供的个人邮箱向本网站公布的的服务邮箱发送邮件或拨打客服电话表明希望终止本协议("注册终止申请"),本网站确认收到您的邮件和电话后将与您协商本协议终止后双方义务的履行。如您在本条所述时限内未发送注册终止申请,则本条所述时限届满之时,视为您已经同意接受该等变更,并应遵照修改后的协议履行应尽义务,经修订的相关条款和规则一经公告,即于公告规定的特定生效日期自动生效并对您产生法律约束力。


1.3本协议不涉及您与本网站的其他用户之间因网上交易而产生的法律关系及法律纠纷。但您在此不可撤销地同意,您将全面接受并履行与本网站其他用户在本网站签订的任何电子法律文本,并承诺按照该法律文本享有和(或)放弃相应的权利、承担和(或)豁免相应的义务。


2、用户注册需知


2.1注册成为本网站用户必须满足如下主体资格条件:您必须是中国大陆公民,年龄在18周岁以上,且具有完全的民事权利能力及民事行为能力。如不具备上述资格,您应立即停止在本网站的注册程序、停止使用本网站服务,若违反前述规定注册使用本网站服务,本网站有权随时终止您的注册进程及本网站服务,并保留终止您的用户资格、追究您或您的监护人相关法律责任的权利。


2.2在注册时和使用本网站服务的所有期间,您应根据本网站的要求提供您自身的真实资料和信息,并保证自注册之时起至使用本网站服务的所有期间,其所提交的所有资料和信息(包括但不限于真实姓名、电子邮件地址、联系电话、个人身份信息等)真实、准确、完整、有效和合法,复印件与原件一致,并如有变更,请及时更新,如因用户未及时更新信息和资料导致本网站无法向用户提供服务或发生错误,由此产生的法律责任和后果由用户自己承担。如使用他人信息和文件注册使用本网站服务或向本网站提供的信息和资料不符合上述规定,由此引起的一切责任和后果均由用户本人全部承担,本公司及本网站不因此承担任何法律责任,如因此而给本公司及本网站造成损失,用户应当承担赔偿本公司及本网站损失的责任。


3、服务变更、中断或终止


3.1鉴于网络服务的特殊性,用户同意本网站有权随时变更、中断或终止部分或全部的网络服务(包括收费网络服务)。如变更、中断或终止的网络服务属于免费网络服务,本网站无需通知用户,也无需对任何用户或任何第三方承担任何责任;如变更、中断或终止的网络服务属于收费网络服务,本网站应当在变更、中断或终止之前事先通知用户,并应向受影响的用户提供等值的替代性的收费网络服务,如用户不愿意接受替代性的收费网络服务,就该用户已经向本网站支付的服务费,本网站应当按照该用户实际使用相应收费网络服务的情况扣除相应服务费之后将剩余的服务费退还给该用户。


3.2用户理解,本网站需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,如因此类情况而造成收费网络服务在合理时间内的中断,本网站无需为此承担任何责任,但本网站应尽可能事先进行通告。


4、用户使用规则


4.1您不得利用本网站或本网站服务从事任何不符合中国法律法规或侵犯他人权益的活动。不得自行发布、转载、传送含有下列内容之一的信息,本网站在发现您从事该等活动和发布信息时,有权基于本网站的独立判断直接删除您在本网站上作出的相关信息,有权不经通知而立即停止您对本网站的全部或部分功能的使用(包括但不限于中止、终止、限制您使用本网站服务)而无需通知您,亦无需承担任何责任。如因此而给本公司及本网站造成损失的,应当赔偿本公司及本网站的损失。


(1)违反宪法确定的基本原则的;


(2)危害国家安全,泄露国家机密,颠覆国家政权,破坏国家统一的;


(3)损害国家荣誉和利益的;


(4)煽动民族仇恨、民族歧视,破坏民族团结的;


(5)破坏国家宗教政策,宣扬邪教和封建迷信的;


(6)散布谣言,扰乱社会秩序,破坏社会稳定的;


(7)散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;


(8)侮辱或者诽谤他人,侵害他人合法权益的;


(9)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的;


(10)以非法民间组织名义活动的;


(11)含有法律、行政法规禁止的其他内容的。


4.2在使用本网站时,您不得违反下述规定,如有违反任意一条,本网站基于本网站的独立判断直接删除您在本网站上作出的相关信息,有权要求您改正或直接采取必要的措施禁止(包括但不限于中止、终止、限制您使用本网站服务)而无需通知您,亦无需承担任何责任。如因此而给本公司及本网站造成损失的,您应当赔偿本公司及本网站的损失。


(1)不得为任何非法目的而使用网络服务系统;


(2)遵守所有与网络服务有关的网络协议、规定和程序;


(3)不得利用本网站进行任何可能对互联网的正常运转造成不利影响的行为;


(4)不得利用本网站进行任何不利于本网站或侵犯本公司利益的行为或言论。


4.3账户安全及管理:


4.3.1您在注册时向本网站提交的电子邮箱、用户名、密码及安全问题答案是您在本网站的唯一识别信息。您注册成功后,您应当妥善保管自己的用户名和密码,并对自己的用户名及密码安全性负责,不得将注册的电子邮箱、用户名、密码及安全问题答案转让、赠与或授权给第三方使用。您确认使用您的用户名和密码登陆本网站后在本网站的一切行为以及以您在本网站注册时提交的个人电子邮箱发送邮件的行为均代表您本人,并由您承担相应的法律后果,本公司及本网站不承担任何责任。


4.3.2协助义务:您如发现有第三人冒用或盗用您账户及密码,或其他任何未经合法授权的情形,应立即以有效方式通知本网站,要求本网站暂停相关服务,否则由此产生的一切责任由您本人承担。同时,您理解本网站对您的请求采取行动需要合理期限,在此之前,本网站对第三人使用该服务所导致的损失不承担任何责任。


4.3.3本网站有权基于单方独立判断,在其认为可能发生危害交易安全等情形时,不经通知而先行暂停、中断或终止向您提供本协议项下的全部或部分服务(包括收费服务),并将注册资料移除或删除,且无需对您或任何第三方承担任何责任。前述情形包括但不限于:


(1)本网站认为您提供的个人资料不具有真实性、有效性或完整性;


(2)本网站发现异常交易或有疑义或有违法之虞时;


(3)本网站认为您的账户涉嫌洗钱、套现、传销、被冒用或其他本网站认为有风险之情形;


(4)本网站认为您已经违反本协议中规定的各类规则及精神;


(5)您在使用本网站收费服务时未按规定向本公司(含关联企业)支付相应的服务费用;


(6)用户账户已连续三年内未实际使用且账户中余额为零;


(7)本网站基于交易安全等原因,根据其单独判断需先行暂停、中断或终止向您提供本协议项下的全部或部分用户服务(包括收费服务),并将注册资料移除或删除的其他情形。


4.3.4您同意,在必要时,本网站无需进行事先通知即有权终止提供用户账户服务,并可能立即暂停、关闭或删除您账户及该用户账户中所有相关资料及档案。


4.4知识产权:


4.4.1本网站的所有内容,包括但不限于文本、数据、图片、音频、视频、源代码和其他所有信息,均由本公司及本网站享有知识产权。未经本网站事先书面同意,不得复制、模仿、改编、传播、公布、展示或以任何其他方式侵犯本网站的知识产权。未经本公司书面同意,您不得将本网站包含的资料等任何内容发布到任何其他网站或者服务器。任何未经授权对本网站内容的使用均属于违法行为,本公司有权追究法律责任。注册用户未经本网站的明确书面同意不许下载(除了页面缓存)或修改平台或其任何部分。


5、用户隐私保护及授权


5.1您同意本网站在业务运营中收集和储存您的用户信息,包括但不限于您自行提供的资料和信息,以及本网站自行收集、取得的您在本网站的交易记录和使用信息等。本网站收集和储存您的用户信息的主要目的在于提高为您提供服务的效率和质量。


5.2本网站不对外公开或第三方提供单个用户的注册资料及用户在使用网络服务时存储在本网站的非公开内容,但下列情况除外:


(1)事先获得用户的明确授权;


(2)根据有关的法律法规要求;


(3)按照相关政府主管部门的要求;


(4)为维护社会公众的利益。


5.3本网站可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本站同等的保护用户隐私的责任,则本站有权将用户的注册资料等提供给该第三方。


5.4本网站按照您在本网站上的行为自动追踪关于您的某些资料。在不透露注册用户的隐私资料的前提下,本网站有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。


5.5您同意,本公司及本网站可在本网站平台的某些网页上使用数据收集装置。


6、责任限制


6.1基于互联网的特殊性,本公司无法保证本网站的服务不会中断,对于包括但不限于本公司、本网站及相关第三方的设备、系统存在缺陷,计算机发生故障、遭到病毒、黑客攻击或者发生地震、海啸等不可抗力而造成服务中断或因此给您造成的损失,本公司不承担任何责任,有关损失由您自己承担。


6.2本公司无义务监测本网站内容。您对于本网站披露的信息、选择使用本网站提供的服务,选择参与交易等,应当自行判断真实性和承担风险,由此而产生的法律责任和后果由您自己承担,本公司不承担任何责任。


6.3与本公司合作的第三方机构向您提供的服务由第三方机构自行负责,本公司不对此等服务承担任何责任。


6.4本网站的内容可能涉及第三方所有的信息或第三方网站,该等信息或第三方网站的真实性、可靠性、有效性等由相关第三方负责,您对该等信息或第三方网站自行判断并承担风险,与本网站和本公司无关。


6.5无论如何,本公司对您承担的违约赔偿(如有)总额不超过向您收取的服务费用总额。


7、风险提示


7.1您了解并认可,任何通过本网站进行的交易并不能避免以下风险的产生,本网站不能也没有义务为如下风险负责:


(1)宏观经济风险:因宏观经济形势变化,可能引起价格等方面的异常波动,您有可能遭受损失;


(2)政策风险:有关法律、法规及相关政策、规则发生变化,可能引起价格等方面异常波动,您有可能遭受损失;


(3)违约风险:因其他交易方无力或无意愿按时足额履约,您有可能遭受损失;


(4)利率风险:市场利率变化可能对购买或持有产品的实际收益产生影响;


(5)不可抗力因素导致的风险;


(6)因您的过错导致的任何损失,该过错包括但不限于:操作不当、遗忘或泄露密码、密码被他人破解、您使用的计算机系统被第三方侵入、您委托他人代理交易时他人恶意或不当操作而造成的损失。


7.2除按照规则运作还款风险金外(还款风险金规则以本网站最新公告为准),本网站不对任何您及/或任何交易提供任何担保或条件,无论是明示、默示或法定的。本网站不能也不试图对您发布的信息进行控制,对该等信息,本网站不承担任何形式的证明、鉴定服务。本网站不能完全保证平台内容的真实性、充分性、可靠性、准确性、完整性和有效性,并且无需承担任何由此引起的法律责任。您依赖于您的独立判断进行交易,您应对其作出的判断承担全部责任。


7.3以上并不能揭示您通过本网站进行交易的全部风险及市场的全部情形。您在做出交易决策前,应全面了解相关交易,谨慎决策,并自行承担全部风险。


8、其他


8.1本协议的订立、执行、解释及争议解决均适用中华人民共和国法律(不包括香港、澳门、台湾地区)。本协议条款具有可分性,部分无效不影响其它部门效力。本网站对本协议拥有最终的解释权。


8.2如果你是本网站注册用户,本协议条款将对您持续有效,有效期至您注销或者被关闭账户后。

','agreement','',300,50); +insert into `fl_page`(`id`,`title`,`seotitle`,`keywords`,`template`,`description`,`pubdate`,`body`,`filename`,`litpic`,`click`,`listorder`) values (1,'公司简介','','公司简介','page','LQYCMS企业网站管理系统采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言,拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、会员与权限管理)。强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义FLASH样式功能等可为企业打造出大气漂亮且具有营销力的',1496540889,'

我们专注于网络信息化及网络营销领域,通过整合团队专业的市场营销理念与网络技术为客户提供优质的网络营销服务。


我们的主要业务包括:网站系统开发、网站建设、网站推广、空间域名以及网络营销策划与运行。


我们主打产品——LQYCMS企业网站管理系统采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言,拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、会员与权限管理)。强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义FLASH样式功能等可为企业打造出大气漂亮且具有营销力的精品网站。


我们秉承“为合作伙伴创造价值”的核心价值观,并以“诚实、宽容、创新、服务”为企业精神,通过自主创新和真诚合作为电子商务及信息服务行业创造价值。


关于“为合作伙伴创造价值”


我们认为客户、供应商、公司股东、公司员工等一切和自身有合作关系的单位和个人都是自己的合作伙伴,并只有通过努力为合作伙伴创造价值,才能体现自身的价值并获得发展和成功。


关于“诚实、宽容、创新、服务”


我们认为诚信是一切合作的基础,宽容是解决问题的前提,创新是发展事业的利器,服务是创造价值的根本。

','about','',393,50),(2,'联系我们','','','page','',1496540844,'

XX有限公司

地址:XX市XX区XXX号XXX栋XXX房

电话:0000-888888 13300000000

Q  Q:374861669

邮编:000000

邮箱:374861669@

网址:www.1104.org

','contact','',259,50),(3,'企业文化','','','page','​企业文化,或称组织文化(Corporate Culture或Organizational Culture),是一个组织由其价值观、信念、仪式、符号、处事方式等组成的其特有的文化形象。',1496541077,'

企业文化,或称组织文化(Corporate Culture或Organizational Culture),是一个组织由其价值观、信念、仪式、符号、处事方式等组成的其特有的文化形象。


职工文化,也称企业职工文化,是与企业文化相对应的文化形态,职工文化以职工为本,是一种素质文化,企业文化以企业为本,是一种管理文化。

企业文化是在一定的条件下,企业生产经营和管理活动中所创造的具有该企业特色的精神财富和物质形态。它包括文化观念、价值观念、企业精神、道德规范、行为准则、历史传统、企业制度、文化环境、企业产品等。其中价值观是企业文化的核心。


企业文化是企业的灵魂,是推动企业发展的不竭动力。它包含着非常丰富的内容,其核心是企业的精神和价值观。这里的价值观不是泛指企业管理中的各种文化现象,而是企业或企业中的员工在从事商品生产与经营中所持有的价值观念。

','culture','',264,50),(4,'招贤纳士','','','page','',1496541317,'

PHP技术支持


主要工作内容:

1. 负责MetInfo企业网站管理系统技术支持;

2. 为客服人员提供技术支持;

 

岗位要求: 


php能看懂且对PHP感兴趣,理解面向对象基本概念,写过一些小程序;

懂MySql数据库备份、恢复等基本操作,熟悉PHP环境的搭建和配置;

javascript能看懂,了解jquery等js框架;

html/css会写,懂linux的优先;

擅长网上查找资料解决问题;

有PHP作品(留言板,blog等)的优先;

做事要有耐心,性格谦和,学习能力强,能吃苦耐劳,愿意同公司共同发展。

如果你对我们的职位感兴趣,且符合我们的基本要求,请将个人简历投递至xxx@qq.com,或者直接与我们取得联系!



网络销售


大专以上学历,一年以上网络销售经验;

熟悉网络推广,熟悉网站建设基本流程;

有网站制作相关工作经验者优先;

学习能力强,能吃苦耐劳,愿意同公司共同发展;

本岗位招收兼职,投递简历时请说明自己的工作意愿;

如果你对我们的职位感兴趣,且符合我们的基本要求,请将个人简历投递至xxx@qq.com,或者直接与我们取得联系!



网页UI设计师


主要工作内容:负责MetInfo界面和公司网站的界面设计等,重视用户体验。


岗位要求:

视觉设计、平面设计或美术相关专业,大专以上学历。

具有良好的创意设计能力及良好的色彩感,有较高的美术功底,较强的网页设计能力和整体布局感。

精通photoshop、Illustrator、Fireworks、Dreamweaver等图形设计工具中至少两种。

了解网页交互设计知识,对作品有不断追求完美的精神特质。

有网站UI设计同等职位工作经验、能提供过往作品者优先。

','jobs','',460,50),(5,'用户注册协议','用户注册协议','','page','',1519694248,'

尊敬的客户,欢迎您注册成为本网站用户,在注册前请仔细阅读如下服务条款。本协议双方为用户与公司,适用于用户注册使用本网站服务的全部活动。


在注册本网站之前,请您务必认真阅读并充分理解本协议全部内容。您点击本协议下方的“注册”按钮,并按照本网站注册程序成功成为注册为用户,即视为您已经充分理解和同意本协议全部内容,并签署了本协议,本协议立即在您与本公司之间产生合同法律效力,您使用本网站服务的全部活动将受到本协议的约束并应承担相应的责任和义务。


1、协议组成说明


1.1本协议的内容包括本协议以下全部条款以及本网站已经公示发布的及将来可能公示发布的各项规则,该等规则均为本协议不可分割的一部分,与本协议以下所列条款具有同等法律效力。


1.2本网站有权根据需要修改本协议的内容。如以下条款或本网站各项规则有任何变更,本网站将在网站上刊载公告,不再向用户作个别通知。经修订的相关条款和规则一经公告,即于公告规定的特定生效日期自动生效。请您及时关注本网站关于相关条款和规则的公告,如不同意该变更,请您在变更公告刊载之日起72小时内以您在本网站注册时提供的个人邮箱向本网站公布的的服务邮箱发送邮件或拨打客服电话表明希望终止本协议("注册终止申请"),本网站确认收到您的邮件和电话后将与您协商本协议终止后双方义务的履行。如您在本条所述时限内未发送注册终止申请,则本条所述时限届满之时,视为您已经同意接受该等变更,并应遵照修改后的协议履行应尽义务,经修订的相关条款和规则一经公告,即于公告规定的特定生效日期自动生效并对您产生法律约束力。


1.3本协议不涉及您与本网站的其他用户之间因网上交易而产生的法律关系及法律纠纷。但您在此不可撤销地同意,您将全面接受并履行与本网站其他用户在本网站签订的任何电子法律文本,并承诺按照该法律文本享有和(或)放弃相应的权利、承担和(或)豁免相应的义务。


2、用户注册需知


2.1注册成为本网站用户必须满足如下主体资格条件:您必须是中国大陆公民,年龄在18周岁以上,且具有完全的民事权利能力及民事行为能力。如不具备上述资格,您应立即停止在本网站的注册程序、停止使用本网站服务,若违反前述规定注册使用本网站服务,本网站有权随时终止您的注册进程及本网站服务,并保留终止您的用户资格、追究您或您的监护人相关法律责任的权利。


2.2在注册时和使用本网站服务的所有期间,您应根据本网站的要求提供您自身的真实资料和信息,并保证自注册之时起至使用本网站服务的所有期间,其所提交的所有资料和信息(包括但不限于真实姓名、电子邮件地址、联系电话、个人身份信息等)真实、准确、完整、有效和合法,复印件与原件一致,并如有变更,请及时更新,如因用户未及时更新信息和资料导致本网站无法向用户提供服务或发生错误,由此产生的法律责任和后果由用户自己承担。如使用他人信息和文件注册使用本网站服务或向本网站提供的信息和资料不符合上述规定,由此引起的一切责任和后果均由用户本人全部承担,本公司及本网站不因此承担任何法律责任,如因此而给本公司及本网站造成损失,用户应当承担赔偿本公司及本网站损失的责任。


3、服务变更、中断或终止


3.1鉴于网络服务的特殊性,用户同意本网站有权随时变更、中断或终止部分或全部的网络服务(包括收费网络服务)。如变更、中断或终止的网络服务属于免费网络服务,本网站无需通知用户,也无需对任何用户或任何第三方承担任何责任;如变更、中断或终止的网络服务属于收费网络服务,本网站应当在变更、中断或终止之前事先通知用户,并应向受影响的用户提供等值的替代性的收费网络服务,如用户不愿意接受替代性的收费网络服务,就该用户已经向本网站支付的服务费,本网站应当按照该用户实际使用相应收费网络服务的情况扣除相应服务费之后将剩余的服务费退还给该用户。


3.2用户理解,本网站需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,如因此类情况而造成收费网络服务在合理时间内的中断,本网站无需为此承担任何责任,但本网站应尽可能事先进行通告。


4、用户使用规则


4.1您不得利用本网站或本网站服务从事任何不符合中国法律法规或侵犯他人权益的活动。不得自行发布、转载、传送含有下列内容之一的信息,本网站在发现您从事该等活动和发布信息时,有权基于本网站的独立判断直接删除您在本网站上作出的相关信息,有权不经通知而立即停止您对本网站的全部或部分功能的使用(包括但不限于中止、终止、限制您使用本网站服务)而无需通知您,亦无需承担任何责任。如因此而给本公司及本网站造成损失的,应当赔偿本公司及本网站的损失。


(1)违反宪法确定的基本原则的;


(2)危害国家安全,泄露国家机密,颠覆国家政权,破坏国家统一的;


(3)损害国家荣誉和利益的;


(4)煽动民族仇恨、民族歧视,破坏民族团结的;


(5)破坏国家宗教政策,宣扬邪教和封建迷信的;


(6)散布谣言,扰乱社会秩序,破坏社会稳定的;


(7)散布淫秽、色情、赌博、暴力、恐怖或者教唆犯罪的;


(8)侮辱或者诽谤他人,侵害他人合法权益的;


(9)煽动非法集会、结社、游行、示威、聚众扰乱社会秩序的;


(10)以非法民间组织名义活动的;


(11)含有法律、行政法规禁止的其他内容的。


4.2在使用本网站时,您不得违反下述规定,如有违反任意一条,本网站基于本网站的独立判断直接删除您在本网站上作出的相关信息,有权要求您改正或直接采取必要的措施禁止(包括但不限于中止、终止、限制您使用本网站服务)而无需通知您,亦无需承担任何责任。如因此而给本公司及本网站造成损失的,您应当赔偿本公司及本网站的损失。


(1)不得为任何非法目的而使用网络服务系统;


(2)遵守所有与网络服务有关的网络协议、规定和程序;


(3)不得利用本网站进行任何可能对互联网的正常运转造成不利影响的行为;


(4)不得利用本网站进行任何不利于本网站或侵犯本公司利益的行为或言论。


4.3账户安全及管理:


4.3.1您在注册时向本网站提交的电子邮箱、用户名、密码及安全问题答案是您在本网站的唯一识别信息。您注册成功后,您应当妥善保管自己的用户名和密码,并对自己的用户名及密码安全性负责,不得将注册的电子邮箱、用户名、密码及安全问题答案转让、赠与或授权给第三方使用。您确认使用您的用户名和密码登陆本网站后在本网站的一切行为以及以您在本网站注册时提交的个人电子邮箱发送邮件的行为均代表您本人,并由您承担相应的法律后果,本公司及本网站不承担任何责任。


4.3.2协助义务:您如发现有第三人冒用或盗用您账户及密码,或其他任何未经合法授权的情形,应立即以有效方式通知本网站,要求本网站暂停相关服务,否则由此产生的一切责任由您本人承担。同时,您理解本网站对您的请求采取行动需要合理期限,在此之前,本网站对第三人使用该服务所导致的损失不承担任何责任。


4.3.3本网站有权基于单方独立判断,在其认为可能发生危害交易安全等情形时,不经通知而先行暂停、中断或终止向您提供本协议项下的全部或部分服务(包括收费服务),并将注册资料移除或删除,且无需对您或任何第三方承担任何责任。前述情形包括但不限于:


(1)本网站认为您提供的个人资料不具有真实性、有效性或完整性;


(2)本网站发现异常交易或有疑义或有违法之虞时;


(3)本网站认为您的账户涉嫌洗钱、套现、传销、被冒用或其他本网站认为有风险之情形;


(4)本网站认为您已经违反本协议中规定的各类规则及精神;


(5)您在使用本网站收费服务时未按规定向本公司(含关联企业)支付相应的服务费用;


(6)用户账户已连续三年内未实际使用且账户中余额为零;


(7)本网站基于交易安全等原因,根据其单独判断需先行暂停、中断或终止向您提供本协议项下的全部或部分用户服务(包括收费服务),并将注册资料移除或删除的其他情形。


4.3.4您同意,在必要时,本网站无需进行事先通知即有权终止提供用户账户服务,并可能立即暂停、关闭或删除您账户及该用户账户中所有相关资料及档案。


4.4知识产权:


4.4.1本网站的所有内容,包括但不限于文本、数据、图片、音频、视频、源代码和其他所有信息,均由本公司及本网站享有知识产权。未经本网站事先书面同意,不得复制、模仿、改编、传播、公布、展示或以任何其他方式侵犯本网站的知识产权。未经本公司书面同意,您不得将本网站包含的资料等任何内容发布到任何其他网站或者服务器。任何未经授权对本网站内容的使用均属于违法行为,本公司有权追究法律责任。注册用户未经本网站的明确书面同意不许下载(除了页面缓存)或修改平台或其任何部分。


5、用户隐私保护及授权


5.1您同意本网站在业务运营中收集和储存您的用户信息,包括但不限于您自行提供的资料和信息,以及本网站自行收集、取得的您在本网站的交易记录和使用信息等。本网站收集和储存您的用户信息的主要目的在于提高为您提供服务的效率和质量。


5.2本网站不对外公开或第三方提供单个用户的注册资料及用户在使用网络服务时存储在本网站的非公开内容,但下列情况除外:


(1)事先获得用户的明确授权;


(2)根据有关的法律法规要求;


(3)按照相关政府主管部门的要求;


(4)为维护社会公众的利益。


5.3本网站可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本站同等的保护用户隐私的责任,则本站有权将用户的注册资料等提供给该第三方。


5.4本网站按照您在本网站上的行为自动追踪关于您的某些资料。在不透露注册用户的隐私资料的前提下,本网站有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。


5.5您同意,本公司及本网站可在本网站平台的某些网页上使用数据收集装置。


6、责任限制


6.1基于互联网的特殊性,本公司无法保证本网站的服务不会中断,对于包括但不限于本公司、本网站及相关第三方的设备、系统存在缺陷,计算机发生故障、遭到病毒、黑客攻击或者发生地震、海啸等不可抗力而造成服务中断或因此给您造成的损失,本公司不承担任何责任,有关损失由您自己承担。


6.2本公司无义务监测本网站内容。您对于本网站披露的信息、选择使用本网站提供的服务,选择参与交易等,应当自行判断真实性和承担风险,由此而产生的法律责任和后果由您自己承担,本公司不承担任何责任。


6.3与本公司合作的第三方机构向您提供的服务由第三方机构自行负责,本公司不对此等服务承担任何责任。


6.4本网站的内容可能涉及第三方所有的信息或第三方网站,该等信息或第三方网站的真实性、可靠性、有效性等由相关第三方负责,您对该等信息或第三方网站自行判断并承担风险,与本网站和本公司无关。


6.5无论如何,本公司对您承担的违约赔偿(如有)总额不超过向您收取的服务费用总额。


7、风险提示


7.1您了解并认可,任何通过本网站进行的交易并不能避免以下风险的产生,本网站不能也没有义务为如下风险负责:


(1)宏观经济风险:因宏观经济形势变化,可能引起价格等方面的异常波动,您有可能遭受损失;


(2)政策风险:有关法律、法规及相关政策、规则发生变化,可能引起价格等方面异常波动,您有可能遭受损失;


(3)违约风险:因其他交易方无力或无意愿按时足额履约,您有可能遭受损失;


(4)利率风险:市场利率变化可能对购买或持有产品的实际收益产生影响;


(5)不可抗力因素导致的风险;


(6)因您的过错导致的任何损失,该过错包括但不限于:操作不当、遗忘或泄露密码、密码被他人破解、您使用的计算机系统被第三方侵入、您委托他人代理交易时他人恶意或不当操作而造成的损失。


7.2除按照规则运作还款风险金外(还款风险金规则以本网站最新公告为准),本网站不对任何您及/或任何交易提供任何担保或条件,无论是明示、默示或法定的。本网站不能也不试图对您发布的信息进行控制,对该等信息,本网站不承担任何形式的证明、鉴定服务。本网站不能完全保证平台内容的真实性、充分性、可靠性、准确性、完整性和有效性,并且无需承担任何由此引起的法律责任。您依赖于您的独立判断进行交易,您应对其作出的判断承担全部责任。


7.3以上并不能揭示您通过本网站进行交易的全部风险及市场的全部情形。您在做出交易决策前,应全面了解相关交易,谨慎决策,并自行承担全部风险。


8、其他


8.1本协议的订立、执行、解释及争议解决均适用中华人民共和国法律(不包括香港、澳门、台湾地区)。本协议条款具有可分性,部分无效不影响其它部门效力。本网站对本协议拥有最终的解释权。


8.2如果你是本网站注册用户,本协议条款将对您持续有效,有效期至您注销或者被关闭账户后。

','agreement','',300,50),(6,'帮助中心','','帮助中心','page','帮助中心',1522409345,'

帮助中心

','help','',226,50); /*Table structure for table `fl_payment` */ @@ -866,6 +864,31 @@ CREATE TABLE `fl_special` ( insert into `fl_special`(`id`,`title`,`seotitle`,`keywords`,`description`,`created_at`,`body`,`litpic`,`click`,`listorder`,`updated_at`,`cover_pic`) values (1,'公司简介','','公司简介','LQYCMS企业网站管理系统采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言,拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、会员与权限管理)。强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义FLASH样式功能等可为企业打造出大气漂亮且具有营销力的','0000-00-00 00:00:00','

我们专注于网络信息化及网络营销领域,通过整合团队专业的市场营销理念与网络技术为客户提供优质的网络营销服务。


我们的主要业务包括:网站系统开发、网站建设、网站推广、空间域名以及网络营销策划与运行。


我们主打产品——LQYCMS企业网站管理系统采用PHP+Mysql架构,全站内置了SEO搜索引擎优化机制,支持用户自定义界面语言,拥有企业网站常用的模块功能(企业简介模块、新闻模块、产品模块、下载模块、图片模块、招聘模块、在线留言、反馈系统、在线交流、友情链接、会员与权限管理)。强大灵活的后台管理功能、静态页面生成功能、个性化模块添加功能、不同栏目自定义FLASH样式功能等可为企业打造出大气漂亮且具有营销力的精品网站。


我们秉承“为合作伙伴创造价值”的核心价值观,并以“诚实、宽容、创新、服务”为企业精神,通过自主创新和真诚合作为电子商务及信息服务行业创造价值。


关于“为合作伙伴创造价值”


我们认为客户、供应商、公司股东、公司员工等一切和自身有合作关系的单位和个人都是自己的合作伙伴,并只有通过努力为合作伙伴创造价值,才能体现自身的价值并获得发展和成功。


关于“诚实、宽容、创新、服务”


我们认为诚信是一切合作的基础,宽容是解决问题的前提,创新是发展事业的利器,服务是创造价值的根本。

','',393,50,'2018-03-27 16:47:57',''),(2,'联系我们','','','','0000-00-00 00:00:00','

XX有限公司

地址:XX市XX区XXX号XXX栋XXX房

电话:0000-888888 13300000000

Q  Q:374861669

邮编:000000

邮箱:374861669@

网址:www.1104.org

','',259,50,'2018-03-27 16:47:57',''),(3,'企业文化','','','​企业文化,或称组织文化(Corporate Culture或Organizational Culture),是一个组织由其价值观、信念、仪式、符号、处事方式等组成的其特有的文化形象。','0000-00-00 00:00:00','

企业文化,或称组织文化(Corporate Culture或Organizational Culture),是一个组织由其价值观、信念、仪式、符号、处事方式等组成的其特有的文化形象。


职工文化,也称企业职工文化,是与企业文化相对应的文化形态,职工文化以职工为本,是一种素质文化,企业文化以企业为本,是一种管理文化。

企业文化是在一定的条件下,企业生产经营和管理活动中所创造的具有该企业特色的精神财富和物质形态。它包括文化观念、价值观念、企业精神、道德规范、行为准则、历史传统、企业制度、文化环境、企业产品等。其中价值观是企业文化的核心。


企业文化是企业的灵魂,是推动企业发展的不竭动力。它包含着非常丰富的内容,其核心是企业的精神和价值观。这里的价值观不是泛指企业管理中的各种文化现象,而是企业或企业中的员工在从事商品生产与经营中所持有的价值观念。

','',264,50,'2018-03-27 16:47:57',''),(4,'招贤纳士','','','','0000-00-00 00:00:00','

PHP技术支持


主要工作内容:

1. 负责MetInfo企业网站管理系统技术支持;

2. 为客服人员提供技术支持;

 

岗位要求: 


php能看懂且对PHP感兴趣,理解面向对象基本概念,写过一些小程序;

懂MySql数据库备份、恢复等基本操作,熟悉PHP环境的搭建和配置;

javascript能看懂,了解jquery等js框架;

html/css会写,懂linux的优先;

擅长网上查找资料解决问题;

有PHP作品(留言板,blog等)的优先;

做事要有耐心,性格谦和,学习能力强,能吃苦耐劳,愿意同公司共同发展。

如果你对我们的职位感兴趣,且符合我们的基本要求,请将个人简历投递至xxx@qq.com,或者直接与我们取得联系!



网络销售


大专以上学历,一年以上网络销售经验;

熟悉网络推广,熟悉网站建设基本流程;

有网站制作相关工作经验者优先;

学习能力强,能吃苦耐劳,愿意同公司共同发展;

本岗位招收兼职,投递简历时请说明自己的工作意愿;

如果你对我们的职位感兴趣,且符合我们的基本要求,请将个人简历投递至xxx@qq.com,或者直接与我们取得联系!



网页UI设计师


主要工作内容:负责MetInfo界面和公司网站的界面设计等,重视用户体验。


岗位要求:

视觉设计、平面设计或美术相关专业,大专以上学历。

具有良好的创意设计能力及良好的色彩感,有较高的美术功底,较强的网页设计能力和整体布局感。

精通photoshop、Illustrator、Fireworks、Dreamweaver等图形设计工具中至少两种。

了解网页交互设计知识,对作品有不断追求完美的精神特质。

有网站UI设计同等职位工作经验、能提供过往作品者优先。

','',460,50,'2018-03-27 16:47:57',''); +/*Table structure for table `fl_store` */ + +DROP TABLE IF EXISTS `fl_store`; + +CREATE TABLE `fl_store` ( + `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, + `store_code` varchar(20) NOT NULL DEFAULT '' COMMENT '店铺唯一编号', + `profession_id` int(8) unsigned NOT NULL DEFAULT '0' COMMENT '行业id', + `boss_id` int(8) NOT NULL DEFAULT '0' COMMENT '店主id', + `address` varchar(100) NOT NULL DEFAULT '' COMMENT '店铺地址', + `owner` varchar(30) NOT NULL DEFAULT '' COMMENT '店铺负责人', + `password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码', + `name` varchar(60) NOT NULL DEFAULT '' COMMENT '店铺名称', + `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号码', + `status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0可用,1不可用', + `created_at` timestamp NOT NULL COMMENT '添加', + `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间', + PRIMARY KEY (`id`), + KEY `name` (`name`) +) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='店铺表'; + +/*Data for the table `fl_store` */ + +insert into `fl_store`(`id`,`store_code`,`profession_id`,`boss_id`,`address`,`owner`,`password`,`name`,`mobile`,`status`,`created_at`,`updated_at`) values (1,'',0,0,'ecshop','6526fa13f6c5804fc8aaefa25395ab','0','','',0,'0000-00-00 00:00:00',NULL),(2,'',0,0,'vip','232059cb5361a9336ccf1b8c2ba765','0','','',0,'0000-00-00 00:00:00',NULL); + /*Table structure for table `fl_sysconfig` */ DROP TABLE IF EXISTS `fl_sysconfig`; @@ -878,11 +901,11 @@ CREATE TABLE `fl_sysconfig` ( `is_show` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否显示,默认0显示,让客户看不到', PRIMARY KEY (`id`), UNIQUE KEY `varname` (`varname`) -) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='系统参数配置表'; +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='系统参数配置表'; /*Data for the table `fl_sysconfig` */ -insert into `fl_sysconfig`(`id`,`varname`,`info`,`value`,`is_show`) values (1,'CMS_WEBNAME','网站名称','LQYCMS企业建站系统',0),(2,'CMS_BASEHOST','站点根网址','http://www.lqycms.com',0),(3,'CMS_UPLOADS','图片/上传文件默认路径','/uploads',0),(4,'CMS_CSS','css默认存放路径','/css',0),(5,'CMS_JS','js默认存放路径','/js',0),(6,'CMS_INDEXNAME','主页链接名','首页',0),(7,'CMS_POWERBY','网站版权信息','Copyright © LQYCMS 版权所有',0),(8,'CMS_IMGWIDTH','缩略图默认宽度','240',0),(9,'CMS_IMGHEIGHT','缩略图默认高度','180',0),(10,'CMS_SEOTITLE','网站seotitle','lqycms是一套完全免费、开源、无授权限制的网站管理系统',0),(11,'CMS_KEYWORDS','网站关键词Keywords','lqycms,无授权限制网站系统cms,免费cms系统,开源网站管理系统,开源cms',0),(12,'CMS_DESCRIPTION','网站描述','lqycms完全免费、开源、无授权限制,您可以使用lqycms在任何商业或者非商业网站上使用而不必支付任何费用,系统采用主流的mvc架构开发,更加容易进行二次开发。',0),(13,'CMS_ISCACHE','是否开启缓存,1开启,0关闭','1',0),(14,'CMS_MAXARC','最大返回列表结果数,默认300','300',0),(15,'CMS_PAGESIZE','列表每页显示的数量,默认15','15',0),(16,'CMS_SIGN_POINT','签到积分','5',0),(17,'CMS_WX_APPID','微信appid','wx2ac97c40c4050e24',0),(18,'CMS_WX_APPSECRET','微信appsecret','a0aad71844bbacbe8928447741c82a43',0),(19,'CMS_WX_MCHID','微信支付商户号','1331184301',0),(20,'CMS_WXSHAER_TITLE','微信分享标题','微信分享测试-标题',0),(21,'CMS_WXSHAER_DESC','微信分享描述','微信分享描述',0),(22,'CMS_WXSHAER_LINK','微信分享链接','http://www.lqycms.com/weixin',0),(23,'CMS_WXSHAER_IMGURL','微信分享图标','http://www.lqycms.com/images/weixin/no_user.jpg',0),(24,'CMS_MIN_WITHDRAWAL_MONEY','最低提现金额(元)','100',0),(25,'CMS_SHOPPING_POINT','购物赠送积分','10',0),(26,'CMS_COMMISSION_PERCENT','推介赚钱计划-提成比例(5%)','0.05',0); +insert into `fl_sysconfig`(`id`,`varname`,`info`,`value`,`is_show`) values (1,'CMS_WEBNAME','网站名称','LQYCMS企业建站系统',0),(2,'CMS_BASEHOST','站点根网址','http://www.lqycms.com',0),(3,'CMS_UPLOADS','图片/上传文件默认路径','/uploads',0),(4,'CMS_CSS','css默认存放路径','/css',0),(5,'CMS_JS','js默认存放路径','/js',0),(6,'CMS_INDEXNAME','主页链接名','首页',0),(7,'CMS_POWERBY','网站版权信息','Copyright © LQYCMS 版权所有',0),(8,'CMS_IMGWIDTH','缩略图默认宽度','240',0),(9,'CMS_IMGHEIGHT','缩略图默认高度','180',0),(10,'CMS_SEOTITLE','网站seotitle','lqycms是一套完全免费、开源、无授权限制的网站管理系统',0),(11,'CMS_KEYWORDS','网站关键词Keywords','lqycms,无授权限制网站系统cms,免费cms系统,开源网站管理系统,开源cms',0),(12,'CMS_DESCRIPTION','网站描述','lqycms完全免费、开源、无授权限制,您可以使用lqycms在任何商业或者非商业网站上使用而不必支付任何费用,系统采用主流的mvc架构开发,更加容易进行二次开发。',0),(13,'CMS_ISCACHE','是否开启缓存,1开启,0关闭','1',0),(14,'CMS_MAXARC','最大返回列表结果数,默认300','300',0),(15,'CMS_PAGESIZE','列表每页显示的数量,默认15','15',0),(16,'CMS_SIGN_POINT','签到积分','5',0),(17,'CMS_WX_APPID','微信appid','wx2ac97c40c4050e24',0),(18,'CMS_WX_APPSECRET','微信appsecret','a0aad71844bbacbe8928447741c82a43',0),(19,'CMS_WX_MCHID','微信支付商户号','1331184301',0),(20,'CMS_WXSHAER_TITLE','微信分享标题','微信分享测试-标题',0),(21,'CMS_WXSHAER_DESC','微信分享描述','微信分享描述',0),(22,'CMS_WXSHAER_LINK','微信分享链接','http://www.lqycms.com/weixin',0),(23,'CMS_WXSHAER_IMGURL','微信分享图标','http://www.lqycms.com/images/weixin/no_user.jpg',0),(24,'CMS_MIN_WITHDRAWAL_MONEY','最低提现金额(元)','100',0),(25,'CMS_SHOPPING_POINT','购物赠送积分','10',0); /*Table structure for table `fl_tagindex` */ @@ -940,7 +963,7 @@ CREATE TABLE `fl_token` ( /*Data for the table `fl_token` */ -insert into `fl_token`(`id`,`token`,`type`,`uid`,`data`,`created_at`,`expired_at`) values (1,'72d623d26a1a6d61186a97f9ccf752f7',1,1,'','2017-08-07 13:29:01','2018-05-22 11:15:27'),(2,'70a0c1ba8fb4a4c394dd2bdf7d6106ec',2,3,'','2018-03-09 12:22:03','2018-04-08 12:22:03'),(3,'0ecd2dd522d64f10d39ba95d4fb6adc2',2,3,'','2018-03-30 14:38:19','2018-04-29 14:38:19'); +insert into `fl_token`(`id`,`token`,`type`,`uid`,`data`,`created_at`,`expired_at`) values (1,'72d623d26a1a6d61186a97f9ccf752f7',1,1,'','2017-08-07 13:29:01','2018-05-22 11:15:27'),(2,'70a0c1ba8fb4a4c394dd2bdf7d6106ec',2,3,'','2018-03-09 12:22:03','2018-04-08 12:22:03'),(3,'9c3488cd0cdbb83ca6703906b4af980a',2,3,'','2018-03-29 22:58:45','2018-04-28 22:58:45'); /*Table structure for table `fl_user` */ @@ -971,7 +994,7 @@ CREATE TABLE `fl_user` ( `updated_at` timestamp NULL DEFAULT NULL COMMENT '更新时间', `signin_time` timestamp NULL DEFAULT NULL COMMENT '签到时间', `openid` varchar(100) NOT NULL DEFAULT '' COMMENT 'openid', - `unionid` varchar(128) NOT NULL DEFAULT '' COMMENT 'unionid', + `unionid` varchar(100) NOT NULL DEFAULT '' COMMENT 'unionid', `push_id` varchar(30) NOT NULL DEFAULT '' COMMENT '推送id', `refund_account` varchar(30) NOT NULL DEFAULT '' COMMENT '退款账户,支付宝账号', `refund_name` varchar(20) NOT NULL DEFAULT '' COMMENT '退款姓名', @@ -1075,7 +1098,7 @@ CREATE TABLE `fl_user_money` ( `type` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '0增加,1减少', `money` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '金额', `add_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '添加时间', - `des` varchar(100) NOT NULL DEFAULT '' COMMENT '描述', + `des` varchar(250) NOT NULL DEFAULT '' COMMENT '描述', `user_money` decimal(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '余额,每次增减后面的金额记录', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC COMMENT='用户余额明细'; diff --git a/public/css/style.css b/public/css/style.css index f01effd..28810bd 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -64,6 +64,7 @@ a{color:#313131;text-decoration:none;}a:hover{text-decoration:none;color:#22ac38 .ju-naver .nav-menu li {display: inline-block;position: relative;margin-right: 2px;} .ju-naver .nav-menu a {color: #4A4A4A;font-size: 16px;position: relative;padding:2px 6px;-webkit-border-radius: 3px;-webkit-background-clip: padding-box;-moz-border-radius: 3px;-moz-background-clip: padding;border-radius: 3px;background-clip: padding-box;} .ju-naver .nav-menu a:hover {background-color: #EDEDED;} +.ju-naver .nav-menu .current a, .ju-naver .nav-menu .current a:hover{background-color: #E61414;color: #fff;} #slideBox{width:740px;height:347px;overflow:hidden;position:relative;} #slideBox ul#show_pic{margin:0;padding:0;list-style:none;width:7400px;height:347px;position:absolute;} diff --git a/public/images/logo.png b/public/images/logo.png index 9466235927ba15be25b7cbd03f3ad20b021ffb1b..20666e501bfcf1dae5f0eed9b49eb0856e2b32ec 100644 GIT binary patch delta 13108 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 delta 2511 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 diff --git a/resources/views/home/common/footer.blade.php b/resources/views/home/common/footer.blade.php index 96d09a0..99e510a 100644 --- a/resources/views/home/common/footer.blade.php +++ b/resources/views/home/common/footer.blade.php @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/resources/views/home/common/header.blade.php b/resources/views/home/common/header.blade.php index 1a77ed9..45b66d1 100644 --- a/resources/views/home/common/header.blade.php +++ b/resources/views/home/common/header.blade.php @@ -3,8 +3,7 @@ \ No newline at end of file diff --git a/resources/views/weixin/collect_goods/index.blade.php b/resources/views/weixin/collect_goods/index.blade.php index 979a805..9f28a5b 100644 --- a/resources/views/weixin/collect_goods/index.blade.php +++ b/resources/views/weixin/collect_goods/index.blade.php @@ -13,7 +13,7 @@
    $v){ ?>
  • <?php echo $v['goods']['title']; ?> -

    +

    删除

  • diff --git a/resources/views/weixin/goods/categoryGoodsList.blade.php b/resources/views/weixin/goods/categoryGoodsList.blade.php index ca2cbd6..30f9da0 100644 --- a/resources/views/weixin/goods/categoryGoodsList.blade.php +++ b/resources/views/weixin/goods/categoryGoodsList.blade.php @@ -13,7 +13,7 @@ @include('weixin.common.headerNav') - +