当前位置: 首页 > news >正文

如何邀请好友注册您的网站(模拟百度网盘)

花了一年时间做了个网盘下载站点,有兴趣的朋友可以看看站名:去转盘网 链接:www.quzhuanpan.com

其中有个需求是想模拟百度网盘的邀请好友注册功能,

想了很久果然"皇天不负有心人",终于整理出个思路,并且附上代码,希望各位网友多多吐槽。

我的思路大体是用网络范围内唯一的字符串uuid为标识去邀请好友,邀请者给个状态位1代表
邀请者,并给他绑定个唯一uuid。被邀请者给个标识位0代表被邀请者,如果他注册成功,则
可以根据邀请链接获得uuid去查询数据库找到邀请者,找到后给予相应积分即可,代码如下:
public String invite(){

    
int  invteOrBeInted=1;//邀请人为1,被邀请为0
String username=null;
String temp=getParameter("username");
if(temp!=null){
    try {
        username = new String(temp.getBytes("ISO-8859-1"), "utf-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
}
//username=((User)session.get(CodeConst.USERINSESSION)).getUsername();
if(username==null){
    message="没有权限邀请用户";
    return ERROR;
}
RegisterService registerService = ServiceFactory.getRegisterService();
UserDao userDao=null;
try {
    userDao = registerService.getUserDao();
} catch (Exception e1) {
    e1.printStackTrace();
}
@SuppressWarnings("rawtypes")
java.util.List list=null;
User u=null;
try {
    list=userDao.findByUserName(username);
} catch (Exception e) {
    e.printStackTrace();
}
if(list!=null&&list.size()>0){
    u=(User)list.get(0);
}
if(u.getInviteCode()!=null&&u.getInvitedOrBeInvited()==1){ //已经邀请了
    inviteCode=u.getInviteCode();
}
else{
    inviteCode=UUID.randomUUID().toString();//uuid的唯一性
}
String goodNews="网盘分享,网盘下载,这里是去转盘网。赶快点击下面链接注册吧,海量网盘资源与你共享";
String url=goodNews+getBase()+"registerManager/inviteRegister.action?inviteCode="+inviteCode;
//注释,这里getBase()函数请自己实现,是获得
getHttpRequest().setAttribute("url",url);//发送给前台
try {
    registerService.updateInviteMan(username, inviteCode,invteOrBeInted); //更新邀请人信息,注意inviteCode为uuid是唯一的
    //当用户注册成功之后根据inviteCode为邀请人加分
} catch (Exception e) {
    
    e.printStackTrace();
}
return SUCCESS;

}

相关文章:

  • jquery 读取type=radio值
  • CALayer简要概述与特点
  • 直击微软第九频道著名主持Robert Green 对话一站式示例代码库大老板梁梅女士
  • 关于Xcode的项目文件夹
  • Iptables静态防火墙基础教程
  • Linux系统密钥验证(附件有实验过程和截图)
  • 工程中Java Code Review发现的问题汇总
  • android 添加新的键值,自定义按键
  • 视频采集卡板子之后续工作
  • javaMail发邮件 简单小例子 解决QQ邮箱530 SSL问题
  • Linux 线程管理
  • tomcat 热布署
  • chrome扩展demo1-小时钟
  • java.io.Serializable引发的问题
  • oc之类排序
  • 「译」Node.js Streams 基础
  • Angular6错误 Service: No provider for Renderer2
  • axios 和 cookie 的那些事
  • Babel配置的不完全指南
  • gops —— Go 程序诊断分析工具
  • PermissionScope Swift4 兼容问题
  • Selenium实战教程系列(二)---元素定位
  • storm drpc实例
  • Vue组件定义
  • 从零开始学习部署
  • 工程优化暨babel升级小记
  • 后端_MYSQL
  • 协程
  • 一、python与pycharm的安装
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #include到底该写在哪
  • $refs 、$nextTic、动态组件、name的使用
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (一)基于IDEA的JAVA基础1
  • (转)为C# Windows服务添加安装程序
  • (转载)Linux 多线程条件变量同步
  • .net6 webapi log4net完整配置使用流程
  • .NET和.COM和.CN域名区别
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [Android]通过PhoneLookup读取所有电话号码
  • [bzoj1912]异象石(set)
  • [C语言]——函数递归
  • [IE技巧] 使IE8以单进程的模式运行
  • [JAVA设计模式]第二部分:创建模式
  • [RK3568 Android11] Binder驱动结构体
  • [Unity Sentis] Unity Sentis 详细步骤工作流程
  • [vscode]将命令行参数传递给调试目标
  • [week5]每周总结与工作计划
  • [win10] ffmpeg gpu加速
  • [短彩信]C#短彩信模块开发设计(2)——配置