This commit is contained in:
谢洪龙
2017-07-21 13:35:53 +08:00
parent 158c943b0a
commit 1aac98e96e
20 changed files with 702 additions and 280 deletions
+118 -1
View File
@@ -5,6 +5,7 @@
*/
package com.ifish.API;
import java.util.Date;
import java.util.Properties;
import javax.mail.BodyPart;
import javax.mail.Message;
@@ -15,8 +16,12 @@ import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
/**
*
@@ -38,6 +43,8 @@ public class Mail {
//private static String to = "fun@ifish7.com";
private static String to = "help@ifish7.com";
private static Logger log = LoggerFactory.getLogger(Mail.class);
private static HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
private static String registerEmail = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/api" + request.getContextPath() + "/registerEmail?md5=";
/**
* Constructor
@@ -69,7 +76,7 @@ public class Mail {
* 创建MIME邮件对象
*
* @return
*/
*/
public boolean createMimeMessage() {
try {
session = Session.getDefaultInstance(props, null); //获得邮件会话对象
@@ -203,4 +210,114 @@ public class Mail {
}
return true;
}
/**
* 发送邮箱验证码
*
* @param email
* @return
*/
public static String sendRegisterCode(String email) {
Mail theMail = new Mail(smtp);
if (!theMail.setSubject("邮箱注册验证码")) {
return "";
}
if (!theMail.setFrom(from)) {
return "";
}
if (!theMail.setTo(to)) {
return "";
}
Integer code = (int) (Math.random() * 9000 + 1000);
if (!theMail.setBody(code + "")) {
return "";
}
if (!theMail.sendOut()) {
return "";
}
return code + "";
}
/**
* 发送邮箱注册链接
*
* @param email 发送目标邮箱
* @param value 发送有效时间验证
* @return
*/
public static boolean sendRegisterCodeTest(String email, String value) {
try {
// 1. 创建参数配置, 用于连接邮件服务器的参数配置
Properties props = new Properties(); // 参数配置
props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)
props.setProperty("mail.smtp.host", smtp); // 发件人的邮箱的 SMTP 服务器地址
props.setProperty("mail.smtp.auth", "true"); // 需要请求认证
// PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),
// 如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,
// 打开下面 /* ... */ 之间的注释代码, 开启 SSL 安全连接。
/*
// SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,
// 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,
// QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)
final String smtpPort = "465";
props.setProperty("mail.smtp.port", smtpPort);
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", smtpPort);
*/
// 2. 根据配置创建会话对象, 用于和邮件服务器交互
Session session = Session.getDefaultInstance(props);
session.setDebug(true); // 设置为debug模式, 可以查看详细的发送 log
// 3. 创建一封邮件
MimeMessage message = createMimeMessage(session, email, value);
// 4. 根据 Session 获取邮件传输对象
Transport transport = session.getTransport();
// 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错
//
// PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log,
// 仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误
// 类型到对应邮件服务器的帮助网站上查看具体失败原因。
//
// PS_02: 连接失败的原因通常为以下几点, 仔细检查代码:
// (1) 邮箱没有开启 SMTP 服务;
// (2) 邮箱密码错误, 例如某些邮箱开启了独立密码;
// (3) 邮箱服务器要求必须要使用 SSL 安全连接;
// (4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务;
// (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。
//
// PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。
transport.connect(username, password);
// 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
transport.sendMessage(message, message.getAllRecipients());
// 7. 关闭连接
transport.close();
return true;
} catch (Exception e) {
String a = e.getMessage();
}
return false;
}
public static MimeMessage createMimeMessage(Session session, String receiveMail, String value) throws Exception {
// 1. 创建一封邮件
MimeMessage message = new MimeMessage(session);
// 2. From: 发件人
message.setFrom(new InternetAddress(from, "爱鱼奇", "UTF-8"));
// 3. To: 收件人(可以增加多个收件人、抄送、密送)
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "XX用户", "UTF-8"));
// 4. Subject: 邮件主题
message.setSubject("注册链接", "UTF-8");
// 5. Content: 邮件正文(可以使用html标签)
String content = "您的注册链接为:" + registerEmail + value + " ,请在半小时内进行激活!";
message.setContent(content, "text/html;charset=UTF-8");
// 6. 设置发件时间
message.setSentDate(new Date());
// 7. 保存设置
message.saveChanges();
return message;
}
}
+13 -61
View File
@@ -24,7 +24,7 @@ public class Tbl_Live_Room implements java.io.Serializable {
/**
* 版本号
*/
private static final long serialVersionUID = 4271035874866910990L;
private static final long serialVersionUID = -9036392996642877776L;
/**
* 直播间Id
@@ -42,7 +42,7 @@ public class Tbl_Live_Room implements java.io.Serializable {
/**
* 摄像头ID
*/
@Column(name = "camera_id", nullable = true, length = 20)
@Column(name = "camera_id", nullable = false, length = 20)
private String cameraId;
/**
@@ -87,22 +87,9 @@ public class Tbl_Live_Room implements java.io.Serializable {
private Date createTime;
/**
* 是否推荐
*/
@Column(name = "is_tuijian", nullable = false, length = 1)
private Integer isTuijian;
/**
* 推荐排序
*/
@Column(name = "tuijian_num", nullable = true, length = 10)
private Integer tuijianNum;
/**
* 首次分享
*/
@Column(name = "first_share", nullable = false, length = 1)
private Integer firstShare;
* */
@Column(name = "update_time", nullable = true)
private Date updateTime;
/**
* 获取直播间Id
@@ -286,56 +273,21 @@ public class Tbl_Live_Room implements java.io.Serializable {
}
/**
* 获取是否推荐
* 获取
*
* @return 是否推荐
* @return
*/
public Integer getIsTuijian() {
return this.isTuijian;
public Date getUpdateTime() {
return this.updateTime;
}
/**
* 设置是否推荐
* 设置
*
* @param isTuijian 是否推荐
*/
public void setIsTuijian(Integer isTuijian) {
this.isTuijian = isTuijian;
}
/**
* 获取推荐排序
* @param updateTime
*
* @return 推荐排序
*/
public Integer getTuijianNum() {
return this.tuijianNum;
}
/**
* 设置推荐排序
*
* @param tuijianNum 推荐排序
*/
public void setTuijianNum(Integer tuijianNum) {
this.tuijianNum = tuijianNum;
}
/**
* 获取首次分享
*
* @return 首次分享
*/
public Integer getFirstShare() {
return this.firstShare;
}
/**
* 设置首次分享
*
* @param firstShare 首次分享
*/
public void setFirstShare(Integer firstShare) {
this.firstShare = firstShare;
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
+25 -1
View File
@@ -24,7 +24,7 @@ public class Tbl_User implements java.io.Serializable {
/**
* 版本号
*/
private static final long serialVersionUID = -3293426131332327827L;
private static final long serialVersionUID = 1916426418064460350L;
/**
* 用户Id
@@ -147,6 +147,11 @@ public class Tbl_User implements java.io.Serializable {
@Column(name = "jiguang_userid", nullable = true, length = 50)
private String jiguangUserid;
/**
* */
@Column(name = "token", nullable = true, length = 50)
private String token;
/**
* 经度
*/
@@ -519,6 +524,25 @@ public class Tbl_User implements java.io.Serializable {
this.jiguangUserid = jiguangUserid;
}
/**
* 获取
*
* @return
*/
public String getToken() {
return this.token;
}
/**
* 设置
*
* @param token
*
*/
public void setToken(String token) {
this.token = token;
}
/**
* 获取经度
*
@@ -108,9 +108,9 @@ public class LiveRoom {
* @return
*/
@RequestMapping(value = "/liveRoom/v3/getLiveRoomInfo.do", method = RequestMethod.GET)
public Object getLiveRoomInfo(Integer userId) {
public Object getLiveRoomInfo(Integer roomId) {
try {
return liveRoomHelperI.getLiveRoomInfo(userId);
return liveRoomHelperI.getLiveRoomInfo(roomId);
} catch (Exception e) {
}
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
+56 -20
View File
@@ -9,11 +9,12 @@ import com.ifish.bean.Tbl_User;
import com.ifish.enums.ResultEnum;
import com.ifish.helper.UserHelperI;
import com.ifish.util.IfishUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
/**
*
@@ -31,27 +32,11 @@ public class Login {
* @param user
* @return
*/
@RequestMapping(value = "/userLogin.do", method = RequestMethod.GET)
@RequestMapping(value = "/userLogin.do", method = RequestMethod.POST)
public Object userLogin(Tbl_User user) {
return userHelperI.login(user);
}
/**
* 发送手机验证码
*
* @param sendType
* @param phoneNumber
* @return
*/
@RequestMapping("/getSecurityCode.do")
public Object getSecurityCode(String sendType, String phoneNumber) {
try {
return userHelperI.getSecurityCode(sendType, phoneNumber);
} catch (Exception e) {
}
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
/**
* 手机注册
*
@@ -60,14 +45,42 @@ public class Login {
*/
@RequestMapping(value = "/registerByMobile", method = RequestMethod.GET)
public Object registerByMobile(Tbl_User user) {
return userHelperI.registerByMobile(user);
return userHelperI.registerUserMobile(user);
}
@RequestMapping(value = "/registerByEmail", method = RequestMethod.GET)
/**
* 修改用户信息发送邮件验证
*
* @param user
* @return
*/
@RequestMapping(value = "/updateUserEmail", method = RequestMethod.POST)
public Object updateUserEmail(Tbl_User user) {
return null;
}
/**
* 发送邮件验证
*
* @param user
* @return
*/
@RequestMapping(value = "/registerByEmail", method = RequestMethod.POST)
public Object registerByEmail(Tbl_User user) {
return userHelperI.registerByEmail(user);
}
/**
* 添加邮箱用户
*
* @param md5
* @return
*/
@RequestMapping(value = "/registerEmail", method = RequestMethod.GET)
public Object registerEmailUser(String md5) {
return userHelperI.registerEmail(md5);
}
/**
* 游客注册
*
@@ -78,4 +91,27 @@ public class Login {
return userHelperI.touristRegister();
}
/**
* 修改用户属性
*
* @param user
* @return
*/
@RequestMapping(value = "/updateInfo.do", method = RequestMethod.POST)
public Object updateUser(Tbl_User user) {
return userHelperI.updateUser(user);
}
/**
* 修改用户头像
*
* @param userId
* @param file
* @return
*/
@RequestMapping(value = "/updateUserImg", method = RequestMethod.POST)
public Object updateUserImg(Integer userId, MultipartFile file, String path) {
return userHelperI.updateUserImg(file, userId, path);
}
}
@@ -103,7 +103,6 @@ public class LiveRoomHelper implements LiveRoomHelperI {
}
//新增直播间
liveRoom.setCreateTime(new Date());
liveRoom.setFirstShare(0);
liveRoom.setPopularityValue(0);
int i = tbl_Live_Room_Mapper.insertLiveRoom(liveRoom);
if (i > 0) {
@@ -146,27 +145,6 @@ public class LiveRoomHelper implements LiveRoomHelperI {
return live_Room;
}
/**
* 根据用户ID获取直播间详情
*
* @param roomId
* @return
*/
public Tbl_Live_Room getLive_RoomByUserId(Integer userId) throws Exception {
Tbl_Live_Room live_Room = null;
String key = redisKeyHelperI.getTbl_Live_RoomRedisKeyByUserId(userId);
String redisString = redisHelperI.getRedis(key);
if (StringUtils.isNotBlank(redisString)) {
live_Room = (Tbl_Live_Room) IfishUtil.JsonToBean(redisString, Tbl_Live_Room.class);
} else {
live_Room = tbl_Live_Room_Mapper.getLive_RoomByUserId(userId);
if (live_Room != null && live_Room.getRoomId() > 0) {
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(live_Room));
}
}
return live_Room;
}
/**
* 根据房间ID查询直播间
*
@@ -346,14 +324,13 @@ public class LiveRoomHelper implements LiveRoomHelperI {
* @return
*/
@Override
public Object getLiveRoomInfo(Integer userId) {
public Object getLiveRoomInfo(Integer roomId) {
try {
if (userId != null) {
if (roomId != null) {
//查找直播间信息
Tbl_Live_Room curLiveRoom = getLive_RoomByUserId(userId);
Tbl_Live_Room curLiveRoom = getLive_RoomById(roomId);
if (curLiveRoom != null) {
Map<String, Object> map = new HashMap<String, Object>();
Integer roomId = curLiveRoom.getRoomId();
map.put("roomId", roomId);
map.put("userId", curLiveRoom.getUserId());
map.put("roomName", curLiveRoom.getRoomName());
@@ -361,6 +338,7 @@ public class LiveRoomHelper implements LiveRoomHelperI {
map.put("popularityValue", curLiveRoom.getPopularityValue());
map.put("roomStatus", curLiveRoom.getRoomStatus());
map.put("roomImg", curLiveRoom.getRoomImg());
map.put("createTime", curLiveRoom.getCreateTime());
return IfishUtil.toJson(ResultEnum.success.getKey(), map);
}
}
@@ -55,7 +55,7 @@ public interface LiveRoomHelperI {
* @param userId
* @return
*/
Object getLiveRoomInfo(Integer userId);
Object getLiveRoomInfo(Integer rommId);
/**
* 根据条件查询直播间列表
@@ -36,6 +36,17 @@ public class RedisKeyHelper implements RedisKeyHelperI {
return RedisKey.USER_PHONE + phoneNumber;
}
/**
* 根据token获取tbl_user用户信息的redis缓存key键值
*
* @param token
* @return
*/
@Override
public String getTbl_UserRedisKeyByToken(String token) {
return RedisKey.USER_TOKEN + token;
}
/**
* 根据Email获取Tbl_User用户信息的Redis缓存key键值
*
@@ -239,6 +250,17 @@ public class RedisKeyHelper implements RedisKeyHelperI {
return RedisKey.PUSHLIST_PUSHID + pushId;
}
/**
* 根据MD5值获取redis缓存key键值
*
* @param md5
* @return
*/
@Override
public String getEmailRedisKey(String md5) {
return RedisKey.EMAIL_REGIESTER + md5;
}
/**
* 删除redis中某个设备详情Tbl_Device的缓存
*
@@ -299,6 +321,15 @@ public class RedisKeyHelper implements RedisKeyHelperI {
if (tbl_User.getUserId() != null && tbl_User.getUserId() > 0) {
redisHelperI.deleteRedis(getTbl_UserRedisKeyByUserId(tbl_User.getUserId()));
}
if (StringUtils.isNotBlank(tbl_User.getUserEmail())) {
redisHelperI.deleteRedis(getTbl_UserRedisKeyByEmail(tbl_User.getUserEmail()));
}
if (StringUtils.isNotBlank(tbl_User.getPhoneNumber())) {
redisHelperI.deleteRedis(getTbl_UserRedisKeyByPhoneNumber(tbl_User.getPhoneNumber()));
}
if (StringUtils.isNotBlank(tbl_User.getToken())) {
redisHelperI.deleteRedis(getTbl_UserRedisKeyByToken(tbl_User.getToken()));
}
}
/**
@@ -17,6 +17,14 @@ import com.ifish.bean.Tbl_User;
*/
public interface RedisKeyHelperI {
/**
* 根据token获取tbl_user用户信息的redis缓存key键值
*
* @param token
* @return
*/
public String getTbl_UserRedisKeyByToken(String token);
/**
* 根据userId获取Tbl_User用户信息的Redis缓存key键值
*
@@ -173,6 +181,14 @@ public interface RedisKeyHelperI {
*/
public String getTbl_Push_List_RedisByPushId(Integer pushId);
/**
* 根据MD5值获取redis缓存key键值
*
* @param md5
* @return
*/
public String getEmailRedisKey(String md5);
/**
* 删除redis中某个设备详情的缓存
*
+297 -105
View File
@@ -6,6 +6,7 @@
package com.ifish.helper;
import com.ifish.API.GwellApi;
import com.ifish.API.Mail;
import com.ifish.API.SendMobile;
import com.ifish.bean.Tbl_Device;
import com.ifish.bean.Tbl_Device_User;
@@ -17,10 +18,7 @@ import com.ifish.enums.ResultEnum;
import com.ifish.enums.SendTypeEnum;
import com.ifish.enums.SmsSignEnum;
import com.ifish.enums.SmsTemplateEnum;
import com.ifish.enums.SubDirectoryEnum;
import com.ifish.mapper.Tbl_Hardware_Type_Mapper;
import com.ifish.mapper.Tbl_User_Mapper;
import com.ifish.util.IfishFilePath;
import com.ifish.util.IfishUtil;
import java.util.ArrayList;
import java.util.Date;
@@ -28,9 +26,11 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
/**
*
@@ -63,6 +63,9 @@ public class UserHelper implements UserHelperI {
@Autowired
private SendMobile sendMobile;
@Autowired
private FastDFSClientI fastDFSClientI;
/**
* 登陆接口
*
@@ -85,6 +88,13 @@ public class UserHelper implements UserHelperI {
else if (user.getUserId() != null && user.getUserId() > 0) {
tmpUser = getUserById(user.getUserId());
return touristLogin(tmpUser);
} else if (StringUtils.isNotBlank(user.getToken())) {
tmpUser = getTbl_UserByToken(user.getToken());
if (tmpUser != null) {
return touristLogin(tmpUser);
} else {
return touristRegister();
}
}
//密码不正确
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
@@ -94,112 +104,191 @@ public class UserHelper implements UserHelperI {
}
/**
* 手机用户注册
* 手机验证成功后用户注册
*
* @param user
* @return
*/
@Override
public Object registerByMobile(Tbl_User user) {
public Object registerUserMobile(Tbl_User user) {
if (StringUtils.isBlank(user.getPhoneNumber()) || user.getUserId() > 0) {
return IfishUtil.returnJson(ResultEnum.error401.getKey(), "");
}
//随机生成6位用户名
user.setNickName("鱼友" + IfishUtil.getCharAndNumr(5));
user.setIsRegisterGwell("0");
user.setUserType("1");
Date date = new Date();
user.setCreateTime(date);
user.setUserImg("default/" + (new Random().nextInt(7) + 1) + ".png");
user.setUserImg("http://139.196.24.156:83/00/00/" + (new Random().nextInt(7) + 1) + ".png");
user.setUpdateTime(date);
//注册技威
//4.1未注册技威,则注册获取code1code2
Map gwellMap = registUserGWell(user, false);
user = (Tbl_User) gwellMap.get("user");
if (StringUtils.isBlank(user.getP2pverifyCode1()) || StringUtils.isBlank(user.getP2pverifyCode2()) || StringUtils.isBlank(user.getGwellUserid())) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
Integer updateInteger = tbl_User_Mapper.updateUser(user);
//如果修改失败,返回错误信息
if (updateInteger <= 0) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
try {
saveUserToRedis(user);
} catch (Exception e) {
}
//注册云信
// Map<String, String> neteaseMap = neteaseIM.createAccid(user.getUserId().toString(), user.getNickName(), IfishFilePath.getPath(SubDirectoryEnum.headImage, user.getUserImg()), "");
// if (neteaseMap != null) {
// String code = neteaseMap.get("code");
// if (code.equals(NeteaseEnum.status200.getKey())) {
// user.setIsRegisterNetease(BooleanEnum.YES.getKey());
// user.setNeteaseToken(neteaseMap.get("token"));
// } else if (code.equals(NeteaseEnum.status414.getKey())) {
// user.setIsRegisterNetease(BooleanEnum.YES.getKey());
// }
// this.userDao.update(user);
// }
//发送云信消息
// User imUser = this.userDao.findUniqueByProperty(Restrictions.eq("phoneNumber", IfishFilePath.netease_phone));
// if (imUser != null) {
// neteaseIM.sendMsg(imUser.getUserId().toString(), user.getUserId().toString(), "感谢您使用爱鱼奇,连接智能设备请查看下方说明书,内含操作视频:http://u.eqxiu.com/s/KmmVl87l \n摄像头售后:021-54131006\n睿芯插排售后:18658232626\n绚多插排售后:18857689069\n松诺插排售后:13392205468", "");
// }
//返回给App的数据
int i = tbl_User_Mapper.insertUserByPhoneNumberAndEmail(user);
Map dataMap = new HashMap();
dataMap.put("userId", user.getUserId().toString());
dataMap.put("nickName", user.getNickName());
dataMap.put("updateTime", IfishUtil.format(user.getUpdateTime()));
if (i > 0) {
//注册技威
//4.1未注册技威,则注册获取code1code2
Map gwellMap = registUserGWell(user, false);
user = (Tbl_User) gwellMap.get("user");
if (StringUtils.isNotBlank(user.getP2pverifyCode1()) && StringUtils.isNotBlank(user.getP2pverifyCode2()) && StringUtils.isNotBlank(user.getGwellUserid())) {
dataMap.put("P2PVerifyCode1", user.getP2pverifyCode1());
dataMap.put("P2PVerifyCode2", user.getP2pverifyCode2());
dataMap.put("gwellUserID", user.getGwellUserid());
tbl_User_Mapper.updateUser(user);
}
} else {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
//返回给App的数据
dataMap.put("userId", user.getUserId());
dataMap.put("P2PVerifyCode1", user.getP2pverifyCode1());
dataMap.put("P2PVerifyCode2", user.getP2pverifyCode2());
dataMap.put("gwellUserID", user.getGwellUserid());
dataMap.put("phoneNumber", user.getPhoneNumber());
dataMap.put("userSex", user.getUserSex());
dataMap.put("userImg", user.getUserImg());
dataMap.put("nickName", user.getNickName());
return IfishUtil.returnJson(ResultEnum.success.getKey(), dataMap);
}
/**
* 邮箱用户注册
*
* @param user
* @return
* 邮箱用户发送注册链接
*/
@Override
public Object registerByEmail(Tbl_User user) {
return null;
}
/**
* 根据类型和手机号,发送验证码
*
* @param sendType
* @param phoneNumber
* @return
*/
@Override
public Object getSecurityCode(String sendType, String phoneNumber) {
Tbl_User user = getUserByPhoneNumber(phoneNumber);
if (sendType.equals(SendTypeEnum.register.getKey())) {
if (user != null) {
//手机号注册过,发送错误码
return IfishUtil.returnJson(ResultEnum.warn201.getKey(), "");
try {
if (StringUtils.isBlank(user.getUserEmail()) || StringUtils.isBlank(user.getUserPassword())) {
return IfishUtil.returnJson(ResultEnum.error401.getKey(), "");
} else {
//手机未被注册,获取验证码
return sendSecurityCode(phoneNumber, SmsSignEnum.sign4.getValue(), SmsTemplateEnum.SMS_720018.getKey());
String md5 = IfishUtil.EncoderByMd5(user.getUserEmail() + user.getUserPassword());
Map map = new HashMap();
map.put("email", user.getUserEmail());
map.put("password", user.getUserPassword());
if (StringUtils.isNotBlank(user.getToken())) {
map.put("token", user.getToken());
}
String key = redisKeyHelperI.getEmailRedisKey(md5);
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(map), 30, TimeUnit.MINUTES);
Mail.sendRegisterCodeTest(user.getUserEmail(), md5);
return IfishUtil.returnJson(ResultEnum.success.getKey(), "");
}
} //找回密码
else if (sendType.equals(SendTypeEnum.findpwd.getKey())) {
if (user != null) {
//手机号存在,获取验证码
return sendSecurityCode(phoneNumber, SmsSignEnum.sign5.getValue(), SmsTemplateEnum.SMS_720021.getKey());
} else {
//手机号不存在,发送错误码
return IfishUtil.returnJson(ResultEnum.warn202.getKey(), "");
}
} else {
//未知操作,返回错误码
return IfishUtil.returnJson(ResultEnum.warn203.getKey(), "");
} catch (Exception e) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
}
/**
* 添加邮箱用户
*
* @param md5
* @return
*/
@Override
public String registerEmail(String md5) {
String key = redisKeyHelperI.getEmailRedisKey(md5);
String redisString = redisHelperI.getRedis(key);
if (StringUtils.isBlank(redisString)) {
return "链接超时,请重新注册!";
} else {
Map map = (Map) IfishUtil.JsonToRealMap(redisString);
Tbl_User user = new Tbl_User();
user.setUserEmail(map.get("email").toString());
user.setUserPassword(map.get("password").toString());
if (map.get("token") != null && StringUtils.isNotBlank(map.get("token").toString())) {
user.setToken(map.get("token").toString());
}
//随机生成6位用户名
user.setNickName("鱼友" + IfishUtil.getCharAndNumr(5));
user.setIsRegisterGwell("0");
user.setUserType("1");
Date date = new Date();
user.setCreateTime(date);
user.setUserImg("http://139.196.24.156:83/00/00/" + (new Random().nextInt(7) + 1) + ".png");
user.setUpdateTime(date);
int i = tbl_User_Mapper.insertUserByPhoneNumberAndEmail(user);
if (i > 0) {
try {
//注册技威
//4.1未注册技威,则注册获取code1code2
Map gwellMap = registUserGWell(user, false);
user = (Tbl_User) gwellMap.get("user");
tbl_User_Mapper.updateUser(user);
} catch (Exception e) {
}
return "注册成功,请用邮箱和密码进行登陆!";
}
}
return "注册失败,请联系管理员!";
}
// /**
// * 根据类型和手机号,发送验证码
// *
// * @param sendType
// * @param phoneNumber
// * @return
// */
// @Override
//
// public Object getSecurityCodeByPhoneNumber(String sendType, String phoneNumber) {
// Tbl_User user = getUserByPhoneNumber(phoneNumber);
// if (sendType.equals(SendTypeEnum.register.getKey())) {
// if (user != null) {
// //手机号注册过,发送错误码
// return IfishUtil.returnJson(ResultEnum.warn201.getKey(), "");
// } else {
// //手机未被注册,获取验证码
// return sendSecurityCode(phoneNumber, SmsSignEnum.sign4.getValue(), SmsTemplateEnum.SMS_720018.getKey());
// }
// } //找回密码
// else if (sendType.equals(SendTypeEnum.findpwd.getKey())) {
// if (user != null) {
// //手机号存在,获取验证码
// return sendSecurityCode(phoneNumber, SmsSignEnum.sign5.getValue(), SmsTemplateEnum.SMS_720021.getKey());
// } else {
// //手机号不存在,发送错误码
// return IfishUtil.returnJson(ResultEnum.warn202.getKey(), "");
// }
// } else {
// //未知操作,返回错误码
// return IfishUtil.returnJson(ResultEnum.warn203.getKey(), "");
// }
// }
// /**
// * 根据类型和邮件地址,发送验证码
// *
// * @param sendType
// * @param phoneNumber
// * @return
// */
// @Override
// public Object getSecurityCodeByEmail(String sendType, String Email) {
// Tbl_User user = getUserByEmail(Email);
// if (sendType.equals(SendTypeEnum.register.getKey())) {
// if (user != null) {
// //邮箱注册过,发送错误码
// return IfishUtil.returnJson(ResultEnum.warn201.getKey(), "");
// } else {
// //邮箱未被注册,获取验证码
//// String code = Mail.sendRegisterCodeTest(Email);
//// if (StringUtils.isNotBlank(code)) {
//// return IfishUtil.returnJson(ResultEnum.success.getKey(),"");
//// }
// }
// } //找回密码
// else if (sendType.equals(SendTypeEnum.findpwd.getKey())) {
// if (user != null) {
// //手机号存在,获取验证码
// String code = Mail.sendRegisterCode(Email);
// return IfishUtil.returnJson(ResultEnum.success.getKey(), code.toString());
// } else {
// //手机号不存在,发送错误码
// return IfishUtil.returnJson(ResultEnum.warn202.getKey(), "");
// }
// } else {
// //未知操作,返回错误码
// return IfishUtil.returnJson(ResultEnum.warn203.getKey(), "");
// }
// return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
// }
/**
* 根据用户ID从缓存中获取用户对象
*
@@ -217,7 +306,9 @@ public class UserHelper implements UserHelperI {
tmpUser = (Tbl_User) IfishUtil.JsonToBean(userString, Tbl_User.class);
} else {
tmpUser = tbl_User_Mapper.getUserByUserId(userId + "");
saveUserToRedis(tmpUser);
if (tmpUser != null && tmpUser.getUserId() > 0) {
redisHelperI.setRedis(userKey, IfishUtil.ObjectToJson(tmpUser));
}
}
return tmpUser;
}
@@ -231,7 +322,7 @@ public class UserHelper implements UserHelperI {
public Object touristRegister() {
Tbl_User user = new Tbl_User();
user.setUserType("0");
int i = tbl_User_Mapper.insertUser(user);
int i = tbl_User_Mapper.insertUserByTourist(user);
Map result = new HashMap();
if (i > 0 && user.getUserId() > 0) {
//4.1未注册技威,则注册获取code1code2
@@ -245,12 +336,6 @@ public class UserHelper implements UserHelperI {
if (updateInteger <= 0) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
try {
saveUserToRedis(user);
} catch (Exception e) {
}
result.put("userId", user.getUserId());
result.put("P2PVerifyCode1", user.getP2pverifyCode1());
result.put("P2PVerifyCode2", user.getP2pverifyCode2());
@@ -261,9 +346,96 @@ public class UserHelper implements UserHelperI {
}
}
@Override
public Object updateUser(Tbl_User user) {
try {
//用户ID
Integer userId = user.getUserId();
if (userId != null) {
//查找用户信息
Tbl_User curUser = getUserById(userId);
if (curUser != null) {
//是否需要更新
boolean bln = false;
//昵称
String nickName = user.getNickName();
if (StringUtils.isNotBlank(nickName)) {
//敏感词过滤
if (nickName.contains("爱鱼奇") || nickName.contains("官方")) {
return IfishUtil.returnJson(ResultEnum.warn203.getKey(), "");
} else {
curUser.setNickName(nickName);
bln = true;
}
}
//性别
String userSex = user.getUserSex();
if (StringUtils.isNotBlank(userSex)) {
curUser.setUserSex(userSex);
bln = true;
}
//有参数变更
if (bln) {
//更新用户信息
curUser.setUpdateTime(new Date());
tbl_User_Mapper.updateUser(user);
redisKeyHelperI.deleteRedisByTbl_User(user);
}
Map userMap = getUserMap(user);
return IfishUtil.returnJson(ResultEnum.success.getKey(), userMap);
} else {
return IfishUtil.returnJson(ResultEnum.warn211.getKey(), "");
}
} else {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
} catch (Exception e) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
}
/**
* 修改用户头像
*
* @param file
* @param userId
* @return
*/
@Override
public Object updateUserImg(MultipartFile file, Integer userId, String path) {
try {
if (file.isEmpty() && StringUtils.isBlank(path)) {
return IfishUtil.returnJson(ResultEnum.warn205.getKey(), "");
}
String img = "";
if (file.isEmpty()) {
img = path;
} else {
img = fastDFSClientI.uploadFileToFastDFS(file);
if (StringUtils.isBlank(img)) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
}
Tbl_User user = getUserById(userId);
user.setUserImg(img);
int i = tbl_User_Mapper.updateUser(user);
if (i > 0) {
redisKeyHelperI.deleteRedisByTbl_User(user);
Map userMap = getUserMap(user);
return IfishUtil.returnJson(ResultEnum.success.getKey(), userMap);
}
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
} catch (Exception e) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
}
/**
* 根据手机号从缓存或数据库中取得用户对象
*
* @param phoneNumber
* @param email
* @return
*/
@@ -277,7 +449,9 @@ public class UserHelper implements UserHelperI {
tmpUser = (Tbl_User) IfishUtil.JsonToBean(userString, Tbl_User.class);
} else {
tmpUser = tbl_User_Mapper.getUserByPhoneNumber(phoneNumber);
saveUserToRedis(tmpUser);
if (tmpUser != null && tmpUser.getUserId() > 0) {
redisHelperI.setRedis(userKey, IfishUtil.ObjectToJson(tmpUser));
}
}
} catch (Exception e) {
}
@@ -300,7 +474,34 @@ public class UserHelper implements UserHelperI {
tmpUser = (Tbl_User) IfishUtil.JsonToBean(userString, Tbl_User.class);
} else {
tmpUser = tbl_User_Mapper.getUserByUserEmail(email);
saveUserToRedis(tmpUser);
if (tmpUser != null && tmpUser.getUserId() > 0) {
redisHelperI.setRedis(userKey, IfishUtil.ObjectToJson(tmpUser));
}
}
} catch (Exception e) {
}
return tmpUser;
}
/**
* 根据token从缓存或数据库中取得用户对象
*
* @param token
* @return
*/
public Tbl_User getTbl_UserByToken(String token) {
Tbl_User tmpUser = null;
try {
String userKey = redisKeyHelperI.getTbl_UserRedisKeyByToken(token);
String userString = redisHelperI.getRedis(userKey);
//1.从数据库或缓存中读取用户对象
if (StringUtils.isNotBlank(userString)) {
tmpUser = (Tbl_User) IfishUtil.JsonToBean(userString, Tbl_User.class);
} else {
tmpUser = tbl_User_Mapper.getUserByUserToken(token);
if (tmpUser != null && tmpUser.getUserId() > 0) {
redisHelperI.setRedis(userKey, IfishUtil.ObjectToJson(tmpUser));
}
}
} catch (Exception e) {
}
@@ -346,7 +547,7 @@ public class UserHelper implements UserHelperI {
if (updateInteger <= 0) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
saveUserToRedis(tmpUser);
redisKeyHelperI.deleteRedisByTbl_User(tmpUser);
}
//4.5 获取用户数据
@@ -393,7 +594,7 @@ public class UserHelper implements UserHelperI {
if (updateInteger <= 0) {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
saveUserToRedis(tmpUser);
redisKeyHelperI.deleteRedisByTbl_User(tmpUser);
}
//4.5 获取用户数据
@@ -631,16 +832,6 @@ public class UserHelper implements UserHelperI {
return cameraMap;
}
/**
* 将用户对象保存至redis缓存中,有效期1天
*
* @param user
*/
private void saveUserToRedis(Tbl_User user) throws Exception {
String key = redisKeyHelperI.getTbl_UserRedisKeyByUserId(user.getUserId());
redisHelperI.setRedis(key, IfishUtil.ObjectToJson(user));
}
/**
* 发送手机验证码
*
@@ -659,4 +850,5 @@ public class UserHelper implements UserHelperI {
return IfishUtil.returnJson(ResultEnum.fail101.getKey(), "");
}
}
}
@@ -9,6 +9,7 @@ import com.ifish.bean.Tbl_Device;
import com.ifish.bean.Tbl_Device_User;
import com.ifish.bean.Tbl_User;
import java.util.Map;
import org.springframework.web.multipart.MultipartFile;
/**
*
@@ -51,15 +52,15 @@ public interface UserHelperI {
public Map<String, Object> getDeviceInfo(Tbl_Device device, Tbl_Device_User deviceUser) throws Exception;
/**
* 手机用户注册
* 手机邮箱用户注册
*
* @param user
* @return
*/
public Object registerByMobile(Tbl_User user);
public Object registerUserMobile(Tbl_User user);
/**
* 邮箱用户注册
* 邮箱用户发送注册链接
*
* @param user
* @return
@@ -67,12 +68,44 @@ public interface UserHelperI {
public Object registerByEmail(Tbl_User user);
/**
* 根据类型和手机号,发送验证码
* 添加邮箱用户
*
* @param sendType
* @param phoneNumber
* @param md5
* @return
*/
public Object getSecurityCode(String sendType, String phoneNumber);
public String registerEmail(String md5);
// /**
// * 根据类型和手机号,发送验证码
// *
// * @param sendType
// * @param phoneNumber
// * @return
// */
// public Object getSecurityCodeByPhoneNumber(String sendType, String phoneNumber);
// /**
// * 根据类型和邮件地址,发送验证码
// *
// * @param sendType
// * @param phoneNumber
// * @return
// */
// public Object getSecurityCodeByEmail(String sendType, String Email);
/**
* 修改用户属性
*
* @param user
* @return
*/
public Object updateUser(Tbl_User user);
/**
* 修改用户头像
*
* @param file
* @param userId
* @return
*/
public Object updateUserImg(MultipartFile file, Integer userId, String path);
}
@@ -28,8 +28,8 @@ public interface Tbl_Live_Room_Mapper {
/**
* 建立一个直播间
*/
@Insert("INSERT INTO tbl_live_room (user_id,camera_id,room_name,room_desc,room_status,popularity_value,create_time,is_tuijian,tuijian_num,first_share,room_Img) VALUES("
+ "#{liveroom.userId},#{liveroom.cameraId},#{liveroom.roomName},#{liveroom.roomDesc},#{liveroom.roomStatus},#{liveroom.popularityValue},now(),#{liveroom.isTuijian},#{liveroom.tuijianNum},#{liveroom.firstShare},#{liveroom.roomImg})")
@Insert("INSERT INTO tbl_live_room (user_id,camera_id,room_name,room_desc,room_status,popularity_value,create_time,room_Img) VALUES("
+ "#{liveroom.userId},#{liveroom.cameraId},#{liveroom.roomName},#{liveroom.roomDesc},#{liveroom.roomStatus},#{liveroom.popularityValue},now(),#{liveroom.roomImg})")
@SelectKey(statement = "select @@IDENTITY as room_id", keyProperty = "liveroom.roomId", keyColumn = "room_id", before = false, resultType = int.class)
Integer insertLiveRoom(@Param("liveroom") Tbl_Live_Room liveRoom);
@@ -43,15 +43,6 @@ public interface Tbl_Live_Room_Mapper {
@SelectKey(statement = "select @@IDENTITY as message_id", keyProperty = "livemessage.messageId", keyColumn = "message_id", before = false, resultType = int.class)
Integer insertLiveMessage(@Param("livemessage") Tbl_Live_Message live_Message);
/**
* 根据用户ID查询直播间(每个用户只有一个直播间)
*
* @param UserId
* @return
*/
@Select("SELECT room_id,user_id,camera_id,room_name,room_desc,room_status,popularity_value,is_tuijian,tuijian_num,first_share,room_Img,zanNum FROM TBL_LIVE_ROOM WHERE user_id = #{userid}")
Tbl_Live_Room getLive_RoomByUserId(@Param("userid") Integer UserId);
/**
* 查询直播间总赞数
*
@@ -97,7 +88,7 @@ public interface Tbl_Live_Room_Mapper {
* @param roomid
* @return
*/
@Select("SELECT ROOM_ID,USER_ID,CAMERA_ID,ROOM_NAME,ROOM_DESC,ROOM_STATUS,POPULARITY_VALUE,CREATE_TIME,IS_TUIJIAN,TUIJIAN_NUM,FIRST_SHARE,room_Img,zanNum FROM TBL_LIVE_ROOM WHERE ROOM_ID = #{roomid}")
@Select("SELECT ROOM_ID,USER_ID,CAMERA_ID,ROOM_NAME,ROOM_DESC,ROOM_STATUS,POPULARITY_VALUE,CREATE_TIME,UPDATE_TIME,room_Img,zanNum FROM TBL_LIVE_ROOM WHERE ROOM_ID = #{roomid}")
Tbl_Live_Room getTbl_Live_RoomById(@Param("roomid") Integer roomid);
/**
@@ -107,15 +98,18 @@ public interface Tbl_Live_Room_Mapper {
* @param FirstResult
* @return
*/
@Select("select l.room_id AS roomId,u.user_id AS userId,u.user_type AS userType,u.nick_name AS nickName,u.user_img AS userImg,u.login_time AS loginTime,l.create_time AS createTime,"
+ "td.camera_id AS cameraId,l.room_name AS roomName,l.room_desc AS roomDesc,l.popularity_value AS popularityValue,l.room_Img AS roomImg,"
+ "(TO_DAYS(NOW())-TO_DAYS(l.create_time)) AS numberDays,count(lm.message_id) AS pinglunNum,l.zanNum "
+ "from tbl_user u "
+ "LEFT JOIN tbl_device_user c ON u.user_id=c.user_id "
+ "LEFT JOIN tbl_device td ON c.device_id = td.device_id "
+ "LEFT JOIN tbl_live_room l ON u.user_id=l.user_id "
+ "LEFT JOIN tbl_live_message lm ON l.room_id = lm.room_id "
+ "where td.is_camera = '1' ORDER BY l.create_time DESC LIMIT ${first},${pagesize}")
@Select(" select a.roomId,a.userId,a.userType,a.nickName,a.userImg,a.loginTime,a.createTime,a.cameraId,a.roomName,a.roomDesc,a.popularityValue,a.roomImg,a.numberDays,a.zanNum,count(*) as pinglunNum from ("
+ " SELECT l.room_id AS roomId,u.user_id AS userId,u.user_type AS userType,u.nick_name AS nickName,u.user_img AS userImg,u.login_time AS loginTime,l.create_time AS createTime,"
+ " td.camera_id AS cameraId,l.room_name AS roomName,l.room_desc AS roomDesc,l.popularity_value AS popularityValue,l.room_Img AS roomImg,"
+ " (TO_DAYS(NOW())-TO_DAYS(l.create_time)) AS numberDays,l.zanNum,b.message_id"
+ " from tbl_user u"
+ " LEFT JOIN tbl_device_user c ON u.user_id=c.user_id "
+ " LEFT JOIN tbl_device td ON c.device_id = td.device_id"
+ " LEFT JOIN tbl_live_room l ON u.user_id=l.user_id and l.camera_id = td.camera_id"
+ " LEFT JOIN tbl_live_message b ON l.room_id = b.room_id"
+ " where c.is_live='1' AND l.room_status='1' ) as a"
+ " GROUP BY a.roomId,a.userId,a.userType,a.nickName,a.userImg,a.loginTime,a.createTime,a.cameraId,a.roomName,a.roomDesc,a.popularityValue,a.roomImg,a.numberDays,a.zanNum"
+ " ORDER BY a.createTime DESC LIMIT ${first},${pagesize}")
List<LiveRoomPageInfo> getLiveRoomListByCreateTime(@Param("pagesize") Integer pageSize, @Param("first") Integer FirstResult);
/**
@@ -125,15 +119,18 @@ public interface Tbl_Live_Room_Mapper {
* @param FirstResult
* @return
*/
@Select("select l.room_id AS roomId,u.user_id AS userId,u.user_type AS userType,u.nick_name AS nickName,u.user_img AS userImg,u.login_time AS loginTime,l.create_time AS createTime,"
+ "td.camera_id AS cameraId,l.room_name AS roomName,l.room_desc AS roomDesc,l.popularity_value AS popularityValue,l.room_Img AS roomImg,"
+ "(TO_DAYS(NOW())-TO_DAYS(l.create_time)) AS numberDays,count(lm.message_id) AS pinglunNum,l.zanNum "
+ "from tbl_user u "
+ "LEFT JOIN tbl_device_user c ON u.user_id=c.user_id "
+ "LEFT JOIN tbl_device td ON c.device_id = td.device_id "
+ "LEFT JOIN tbl_live_room l ON u.user_id=l.user_id "
+ "LEFT JOIN tbl_live_message lm ON l.room_id = lm.room_id "
+ "where td.is_camera = '1' ORDER BY l.popularity_value DESC LIMIT ${first},${pagesize}")
@Select(" select a.roomId,a.userId,a.userType,a.nickName,a.userImg,a.loginTime,a.createTime,a.cameraId,a.roomName,a.roomDesc,a.popularityValue,a.roomImg,a.numberDays,a.zanNum,count(*) as pinglunNum from ("
+ " SELECT l.room_id AS roomId,u.user_id AS userId,u.user_type AS userType,u.nick_name AS nickName,u.user_img AS userImg,u.login_time AS loginTime,l.create_time AS createTime,"
+ " td.camera_id AS cameraId,l.room_name AS roomName,l.room_desc AS roomDesc,l.popularity_value AS popularityValue,l.room_Img AS roomImg,"
+ " (TO_DAYS(NOW())-TO_DAYS(l.create_time)) AS numberDays,l.zanNum,b.message_id"
+ " from tbl_user u"
+ " LEFT JOIN tbl_device_user c ON u.user_id=c.user_id "
+ " LEFT JOIN tbl_device td ON c.device_id = td.device_id"
+ " LEFT JOIN tbl_live_room l ON u.user_id=l.user_id and l.camera_id = td.camera_id"
+ " LEFT JOIN tbl_live_message b ON l.room_id = b.room_id"
+ " where c.is_live='1' AND l.room_status='1' ) as a"
+ " GROUP BY a.roomId,a.userId,a.userType,a.nickName,a.userImg,a.loginTime,a.createTime,a.cameraId,a.roomName,a.roomDesc,a.popularityValue,a.roomImg,a.numberDays,a.zanNum"
+ " ORDER BY a.popularityValue DESC LIMIT ${first},${pagesize}")
List<LiveRoomPageInfo> getLiveRoomListByRenqi(@Param("pagesize") Integer pageSize, @Param("first") Integer FirstResult);
/**
@@ -141,11 +138,12 @@ public interface Tbl_Live_Room_Mapper {
*
* @return
*/
@Select("select count(1) from tbl_user u "
+ "LEFT JOIN tbl_device_user c ON u.user_id=c.user_id "
+ "LEFT JOIN tbl_device td ON c.device_id = td.device_id "
+ "LEFT JOIN tbl_live_room l ON u.user_id=l.user_id "
+ "where td.is_camera = '1'")
@Select("SELECT COUNT(1)"
+ " from tbl_user u"
+ " LEFT JOIN tbl_device_user c ON u.user_id=c.user_id "
+ " LEFT JOIN tbl_device td ON c.device_id = td.device_id"
+ " LEFT JOIN tbl_live_room l ON u.user_id=l.user_id and l.camera_id = td.camera_id"
+ " where c.is_live='1' AND l.room_status='1'")
Integer getLiveRoomListCount();
/**
@@ -29,9 +29,6 @@ public class Tbl_Live_Room_MapperSql {
if (StringUtils.isNotBlank(live_Room.getCameraId())) {
sb.append("camera_id = #{live.cameraId}, ");
}
if (live_Room.getFirstShare() != null && live_Room.getFirstShare() >= 0) {
sb.append("first_share = #{live.firstShare}, ");
}
if (StringUtils.isNotBlank(live_Room.getRoomDesc())) {
sb.append("room_desc = #{live.roomDesc}, ");
}
@@ -44,15 +41,9 @@ public class Tbl_Live_Room_MapperSql {
if (StringUtils.isNotBlank(live_Room.getRoomStatus())) {
sb.append("room_status = #{live.roomStatus}, ");
}
if (live_Room.getIsTuijian() != null && live_Room.getIsTuijian() >= 0) {
sb.append("is_tuijian = #{live.isTuijian}, ");
}
if (live_Room.getPopularityValue() != null && live_Room.getPopularityValue() >= 0) {
sb.append("popularity_value = #{live.popularityValue}, ");
}
if (live_Room.getTuijianNum() != null && live_Room.getTuijianNum() >= 0) {
sb.append("tuijian_num = #{live.tuijianNum}, ");
}
if (live_Room.getZanNum() != null && live_Room.getZanNum() >= 0) {
sb.append("zanNum = #{live.zanNum}, ");
}
@@ -6,6 +6,7 @@
package com.ifish.mapper;
import com.ifish.bean.Tbl_User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -25,7 +26,7 @@ public interface Tbl_User_Mapper {
* @return
*/
@Select("select user_id,nick_name,user_password,phone_number,user_email,user_type,user_img,user_sex,login_count,update_time,login_time,create_time,login_type,remarks,address,P2PVerify_code1,P2PVerify_code2,"
+ "gwell_userID,is_register_gwell,jiguang_userID,longitude,latitude from tbl_user where phone_number=#{phoneNumber}")
+ "gwell_userID,is_register_gwell,jiguang_userID,token,longitude,latitude from tbl_user where phone_number=#{phoneNumber}")
Tbl_User getUserByPhoneNumber(@Param("phoneNumber") String phoneNumber);
/**
@@ -35,9 +36,19 @@ public interface Tbl_User_Mapper {
* @return
*/
@Select("select user_id,nick_name,user_password,phone_number,user_email,user_type,user_img,user_sex,login_count,update_time,login_time,create_time,login_type,remarks,address,P2PVerify_code1,P2PVerify_code2,"
+ "gwell_userID,is_register_gwell,jiguang_userID,longitude,latitude from tbl_user where user_email=#{user_email}")
+ "gwell_userID,is_register_gwell,jiguang_userID,token,longitude,latitude from tbl_user where user_email=#{user_email}")
Tbl_User getUserByUserEmail(@Param("user_email") String userEmail);
/**
* 根据用户token获取用户对象
*
* @param userid
* @return
*/
@Select("select user_id,nick_name,user_password,phone_number,user_email,user_type,user_img,user_sex,login_count,update_time,login_time,create_time,login_type,remarks,address,P2PVerify_code1,P2PVerify_code2,"
+ "gwell_userID,is_register_gwell,jiguang_userID,token,longitude,latitude from tbl_user where token=#{token}")
Tbl_User getUserByUserToken(@Param("token") String token);
/**
* 根据用户ID获取用户对象
*
@@ -45,7 +56,7 @@ public interface Tbl_User_Mapper {
* @return
*/
@Select("select user_id,nick_name,user_password,phone_number,user_email,user_type,user_img,user_sex,login_count,update_time,login_time,create_time,login_type,remarks,address,P2PVerify_code1,P2PVerify_code2,"
+ "gwell_userID,is_register_gwell,jiguang_userID,longitude,latitude from tbl_user where user_id=#{userid}")
+ "gwell_userID,is_register_gwell,jiguang_userID,token,longitude,latitude from tbl_user where user_id=#{userid}")
Tbl_User getUserByUserId(@Param("userid") String userid);
/**
@@ -68,12 +79,25 @@ public interface Tbl_User_Mapper {
Integer updateUser(@Param("user") Tbl_User user);
/**
* 注册用户
* 游客注册用户
*
* @param user
* @return
*/
@InsertProvider(type = Tbl_User_MapperSql.class, method = "registerUser")
@InsertProvider(type = Tbl_User_MapperSql.class, method = "registerUserByTourist")
@SelectKey(statement = "select @@IDENTITY as user_id", keyProperty = "user.userId", keyColumn = "userId", before = false, resultType = int.class)
Integer insertUser(@Param("user") Tbl_User user);
Integer insertUserByTourist(@Param("user") Tbl_User user);
/**
* 手机邮箱注册用户
*
* @param user
* @return
*/
@Insert("INSERT INTO tbl_user (`nick_name`, `user_password`, `phone_number`, `user_email`, `user_type`, `user_img`, `user_sex`, `login_count`, `update_time`, `login_time`, `create_time`, `login_type`, `remarks`, `address`, `P2PVerify_code1`, `P2PVerify_code2`, `gwell_userID`, `is_register_gwell`, `jiguang_userID`,`token`, `longitude`, `latitude`) "
+ "VALUES (#{user.nickName},#{user.userPassword},#{user.phoneNumber},#{user.userEmail},#{user.userType},#{user.userImg},#{user.userSex},#{user.loginCount},#{user.updateTime},#{user.loginTime},"
+ "#{user.createTime},#{user.loginType},#{user.remarks},#{user.address},#{user.p2pverifyCode1},#{user.p2pverifyCode2},#{user.gwellUserid},#{user.isRegisterGwell},#{user.jiguangUserid},"
+ "#{user.token},#{user.longitude},#{userlatitude})")
@SelectKey(statement = "select @@IDENTITY as user_id", keyProperty = "user.userId", keyColumn = "userId", before = false, resultType = int.class)
Integer insertUserByPhoneNumberAndEmail(@Param("user") Tbl_User user);
}
@@ -85,10 +85,10 @@ public class Tbl_User_MapperSql {
* @param user
* @return
*/
public String registerUser(@Param("user") Tbl_User user) {
public String registerUserByTourist(@Param("user") Tbl_User user) {
StringBuilder sb = new StringBuilder();
sb.append("INSERT tbl_user (user_type) value ('0')");
sb.append("INSERT tbl_user (user_type,token) value ('0',#{user.token})");
return sb.toString();
}
@@ -10,6 +10,8 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -21,6 +23,7 @@ import java.util.Map;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.JavaType;
import org.springframework.web.multipart.MultipartFile;
@@ -309,6 +312,13 @@ public class IfishUtil {
if (value.equals("")) {
map.put("data", null);
} else {
if (value.getClass().equals(HashMap.class)) {
Map map1 = (Map) value;
if (map1.get("total") != null && StringUtils.isNotBlank(map1.get("total").toString())) {
map.put("total", map1.get("total"));
map1.remove("total");
}
}
map.put("data", value);
}
return map;
@@ -467,4 +477,18 @@ public class IfishUtil {
String os = System.getProperty("os.name");//获取当前操作系统
return os.toLowerCase().startsWith("win");
}
public static String EncoderByMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
byte[] bs = MessageDigest.getInstance("MD5").digest(str.getBytes());
StringBuilder sb = new StringBuilder(40);
for (byte x : bs) {
if ((x & 0xff) >> 4 == 0) {
sb.append("0").append(Integer.toHexString(x & 0xff));
} else {
sb.append(Integer.toHexString(x & 0xff));
}
}
return sb.toString();
}
}
@@ -25,6 +25,11 @@ public class RedisKey {
*/
public static final String USER_EMAIL = "userE:ema_";
/**
* 用户缓存前缀以token进行存储
*/
public static final String USER_TOKEN = "userE:to_";
/**
* 设备用户关系缓存前缀以设备ID和用户ID进行存储
*/
@@ -104,4 +109,9 @@ public class RedisKey {
* 推送信息表缓存前缀以推送Id进行存储
*/
public static final String PUSHLIST_PUSHID = "pushlistE:id_";
/**
* 邮箱验证有效缓存key
*/
public static final String EMAIL_REGIESTER = "emailkeyE:";
}
Binary file not shown.
Binary file not shown.
-4
View File
@@ -9,9 +9,5 @@
</head>
<body>
<h1 style="text-align: center">访问正常!</h1>
<form action="/api/test" method="post" enctype="multipart/form-data">
<input type="file" name="file" >
<input type="submit" value="提交">
</form>
</body>
</html>