PHP多商城系统开发制作——登录下单
huang -整站伪静态:增强搜索引擎的友好度,对于后期网络营销有比较明显作用
通用帐户登陆:让您的可以使用微信号、QQ号码、支付宝、淘宝等社会化网络账号登录您的网站
<template>
<div >
<div >
<!-- 头像区域 -->
<div >
<img src="../assets/logo.png" alt="">
</div>
<!-- 登录表单区 -->
<el-form ref="loginFormRef" :model="loginForm" :rules="loginFormRules" label-width="0px" >
<!-- 用户名 -->
<el-form-item prop="username" >
<el-input v-model="loginForm.username" prefix-icon="el-icon-user"></el-input>
</el-form-item>
<!-- 密码 -->
<el-form-item prop="password">
<el-input v-model="loginForm.password" prefix-icon="el-icon-lock" type="password"></el-input>
</el-form-item>
<!-- 按钮 -->
<el-form-item >
<el-button type="primary" @click="login">登录</el-button>
<el-button type="info" @click="resetloginForm">重置</el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
export default {
data(){
return {
// 登录表单的数据绑定对象
loginForm:{
username:'',
password:''
},
//表单的验证规则
loginFormRules:{
//验证用户名是否合法
username:[
{required: true, message: '请输入登录名称', trigger: 'blur'},
{ min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
],
//验证密码是否合法
password:[
{required: true, message: '请输入登录密码', trigger: 'blur'},
{ min: 6, max: 15, message: '长度在 6 到 15 个字符', trigger: 'blur'}
]
}
}
},
methods: {
//点击重置按钮
resetloginForm(){
this.$refs.loginFormRef.resetFields()
},
login(){
this.$refs.loginFormRef.validate(async valid => {
if(!valid) return;
// const result = await this.$http.post('login',this.loginForm);
// console.log(result);
// 结构赋值data属性
const {data:res} = await this.$http.post('login',this.loginForm);
if(res.meta.status !== 200)return console.log('登录失败')
console.log('登录成功');
});
}
}
}
</script>
抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:
1 高并发对数据库产生的压力
2 竞争状态下如何解决库存的正确减少("超卖"问题)
下单系统:
/**
* Class redisConcurrent
*/
class RedisConcurrent
{
/** lock key
* @var string
*/
public $_lockKey = 'redis_lock';
/** Redis Class
* @var Redis
*/
private $_redis ;
/** ip
* @var mixed|string
*/
private $ip ='127.0.0.1' ;
/** port
* @var string
*/
private $port = '6379' ;
/** init redis connect
* redisConcurrent constructor.
* @param array $config
*/
public function __construct( $config = [] )
{
if(!empty($config)) {
if(isset($config['ip'])) {
$this->ip = $config['ip'];
}
if(isset($config['port'])){
$this->ip = $config['port'];
}
}
/**
* Redis连接信息可以用原生,也可以用其它的框架集成
*/
$this->_redis = new Redis();
$this->_redis->connect($this->ip,$this->port);
}
/** 锁定
* @param int $intTimeout 默认过期时间(避免死锁)
* @return bool
*/
private function lock($intTimeout = 8) {
#新版set,已经集成了大多数集成操作
$strRet = $this->_redis->set($this->_lockKey, time().rand(10000,99999).rand(1000,9999).rand(100,999), 'ex', $intTimeout, 'nx');
if($strRet) {
return true;
}else{
return false;
}
}
/** 解锁
* @throws \Exception
*/
private function unlock()
{
$strRet = $this->_redis->del($this->_lockKey);
if($strRet) {
return true;
}else{
if($this->_redis->get($this->_lockKey)) {
return false ;
}else{
return false ;
}
}
}
/**
* 业务相关的key,可以是库存,物品数等
*/
const ORDER_KEY = 'order_num';
/**
* 用户相关的key
*/
const USER_KEY = 'user_num';
/** Redis下单
* @param int $num 下单个数
* @param string $userId 用户ID
*
* 场次是为了方便异常处理,方便数据查找
* @param string $bout 商品场次 => order_num:1 , order_num:2
* @return bool
* @throws Exception
*/
public function order( string $userId ,string $bout = '1' ,int $num = 1)
{
$orderKey = self::ORDER_KEY.':'.$bout ;
$userKey = self::USER_KEY.':'.$bout ;
//此方法不具备原子性 并发处理是不能做条件判断
//$len = $this->_redis->llen();
#实际为n+1次触发完结,这里只做Redis自减
$check = $this->_redis->lpop($orderKey);
if(!$check){
#当前order_num已经为0!
//自动补货为 100 ,$bout有一定的处理规则,不能乱传
self::autoBuild(100,$bout);
return false ;
}
//特殊处理,避免n+1次的情况
$len = $this->_redis->llen($orderKey) ;
if($len == 0) {
//自动补货为 100 ,$bout有一定的处理规则,不能乱传
self::autoBuild(100,$bout);
return false ;
}
//添加用户数据
$result = $this->_redis->lpush($u
竞拍系统:在现在产品管理系统上选择相关的产品,设置拍卖开始到结束时间,设置起拍价格、一口价、加价幅度、保证金等参数,前台会员就可以进行商品的竞价了,价高者得。
团购系统:在现有的产品管理系统上选择需要团购的商品,设置开始到结束时间、保证金、限购数量、赠送积分、价格阶梯以及整个活动的说明,完成后所有的会员即可进行团购活动。
希望这编文章可以帮助到真正有需要的朋友,如果各位对于互联网开发这块还有什么问题或者有这方面的疑惑,都可以随时私信或微信kjwenlc我一起交流,一起进步哈~
同时,感谢大家的支持与阅读,如果觉得不错欢迎点赞和分享,谢谢!
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。
php介绍
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
下一篇: 学习PHP中的信息格式化操作