新增接口 绑定手机号码 微信登录

This commit is contained in:
易焱 2019-12-15 22:29:02 +08:00
parent 1a26816770
commit 6259645d6c
3 changed files with 87 additions and 34 deletions

View File

@ -114,7 +114,7 @@ public class UsersAction {
* @param phoneNum
* @return
*/
@RequestMapping(value="/bindPhone",method=RequestMethod.POST)
@RequestMapping(value="/bindPhone",method=RequestMethod.GET)
public JsonResult<?> bindPhone(String unionId, String phoneNum) {
return userService.bindPhone(unionId, phoneNum);
}

View File

@ -9,6 +9,7 @@ import com.ifish.entity.CameraUser;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
/**
*
@ -25,4 +26,10 @@ public interface Tbl_Camera_User_Mapper {
@Select("select user_id,camera_id,is_master,show_name,is_look,is_live,create_time,update_time from tbl_camera_user where user_id=#{userid}")
List<CameraUser> getCameraUserListByUserId(@Param("userid") Integer userid);
@Update("update tbl_camera_user set user_id = #{userId} where camera_id = #{cameraId}")
void updateCameraUserId(@Param("userId") Integer userId, @Param("cameraId") Integer cameraId);
@Update("update tbl_device_user set user_id = #{userId} where device_id = #{deviceId} and user_id = #{userId1}")
void updateDeviceUserId(@Param("userId") Integer userId, @Param("userId1") Integer userId1, @Param("deviceId") Integer deviceId);
}

View File

@ -2,17 +2,17 @@ package com.ifish.serviceImpl;
import java.io.File;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.*;
import com.alibaba.fastjson.JSON;
import com.ifish.entity.*;
import com.ifish.entity.event.QueueEventBody;
import com.ifish.entity.event.QueueEventEntity;
import com.ifish.mapper.Tbl_Camera_User_Mapper;
import com.ifish.util.StringUtil;
import com.ifish.util.WeChatUtils;
import org.apache.commons.lang3.StringUtils;
@ -46,23 +46,6 @@ import com.ifish.dto.NeteaseParamDto;
import com.ifish.dto.UserAssetDto;
import com.ifish.dto.UserInfoDto;
import com.ifish.dto.VenderDto;
import com.ifish.entity.Camera;
import com.ifish.entity.CameraUser;
import com.ifish.entity.Device;
import com.ifish.entity.DeviceCamera;
import com.ifish.entity.DeviceCameraId;
import com.ifish.entity.DeviceUser;
import com.ifish.entity.DeviceUserId;
import com.ifish.entity.GoldControl;
import com.ifish.entity.GoldGetRecord;
import com.ifish.entity.GoldTask;
import com.ifish.entity.GradeTask;
import com.ifish.entity.HardwareType;
import com.ifish.entity.PushList;
import com.ifish.entity.ShopsInfo;
import com.ifish.entity.User;
import com.ifish.entity.UserAsset;
import com.ifish.entity.VenderList;
import com.ifish.enums.AddTypeEnum;
import com.ifish.enums.BooleanEnum;
import com.ifish.enums.GoldGetTypeEnum;
@ -102,6 +85,9 @@ import javax.jms.Session;
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private Tbl_Camera_User_Mapper tbl_Camera_User_Mapper;
@Autowired
private UserDao userDao;
@Autowired
@ -507,7 +493,7 @@ public class UserServiceImpl implements UserService {
if (userWechat == null) {
throw new IfishException(ResultEnum.fail101);
}
User userPhone = userDao.findUniqueByProperty(Restrictions.eq("phoneNumber",unionId));
User userPhone = userDao.findUniqueByProperty(Restrictions.eq("phoneNumber",phone));
if (userPhone == null) {
throw new IfishException(ResultEnum.fail101);
}
@ -528,23 +514,47 @@ public class UserServiceImpl implements UserService {
}
} else {
// 微信账号下绑定的userid改为手机号的userid
DeviceUserId priId = deviceUser.getPriId();
priId.setUserId(userPhone.getUserId());
deviceUserDao.update(deviceUser);
updateData("update tbl_device_user set user_id = " + userPhone.getUserId() + " where device_id = " + deviceUser.getPriId().getDeviceId() + " and user_id = " + userWechat.getUserId());
// tbl_Camera_User_Mapper.updateDeviceUserId(userPhone.getUserId(), deviceUser.getPriId().getDeviceId(), userWechat.getUserId());
}
}
//如果 手机号码账号下不存在设备 则修改微信账号下的设备关联为手机号的userid
if (deviceUserListPhone.size() == 0) {
DeviceUserId priId = deviceUser.getPriId();
priId.setUserId(userPhone.getUserId());
deviceUserDao.update(deviceUser);
updateData("update tbl_device_user set user_id = " + userPhone.getUserId() + " where device_id = " + deviceUser.getPriId().getDeviceId() + " and user_id = " + userWechat.getUserId());
// tbl_Camera_User_Mapper.updateDeviceUserId(userPhone.getUserId(), deviceUser.getPriId().getDeviceId(), userWechat.getUserId());
}
}
List<CameraUser> cameraUserListWechat = cameraUserDao.findByProperty(Restrictions.eq("cameraUserId.userId", userWechat.getUserId()));
List<CameraUser> cameraUserListPhone = cameraUserDao.findByProperty(Restrictions.eq("cameraUserId.userId", userPhone.getUserId()));
for(CameraUser cameraUser:cameraUserListWechat){
for (CameraUser cameraPhone : cameraUserListPhone) {
//如果 手机账号中存在设备
if (cameraPhone.getCameraUserId().getCameraId().equals(cameraUser.getCameraUserId().getCameraId())) {
//当前账号是主控制账号
if (cameraPhone.getIsMaster().equals("1")) {
//删除 微信账号下的设备
cameraUserDao.delete(cameraPhone);
} else {
//修改 手机号账号下的设备为主控设备
cameraPhone.setIsMaster("1");
cameraUserDao.update(cameraPhone);
}
} else {
// 微信账号下绑定的userid改为手机号的userid
updateData("update tbl_camera_user set user_id = " + userPhone.getUserId() + " where camera_id = " + cameraUser.getCameraUserId().getCameraId());
// tbl_Camera_User_Mapper.updateCameraUserId(userPhone.getUserId(), Integer.valueOf(cameraUser.getCameraUserId().getCameraId()));
}
}
//如果 手机号码账号下不存在设备 则修改微信账号下的设备关联为手机号的userid
if (cameraUserListPhone.size() == 0) {
updateData("update tbl_camera_user set user_id = " + userPhone.getUserId() + " where camera_id = " + cameraUser.getCameraUserId().getCameraId());
// tbl_Camera_User_Mapper.updateCameraUserId(userPhone.getUserId(), Integer.valueOf(cameraUser.getCameraUserId().getCameraId()));
}
}
//修改手机账号的微信unionid
userPhone.setWechatUnionid(userWechat.getWechatUnionid());
userDao.update(userPhone);
userDao.delete(userWechat);
//用户资产信息
UserAssetDto userAssetDtoWechat = getUserAssetInfo(userWechat.getUserId());
UserAssetDto userAssetDtoPhone = getUserAssetInfo(userPhone.getUserId());
@ -575,6 +585,42 @@ public class UserServiceImpl implements UserService {
return wechatValidate(unionId);
}
public void updateData(String sql){
ResourceBundle bundle = ResourceBundle.getBundle("jdbc");
String driver = bundle.getString("jdbc.driver");
String url = bundle.getString("jdbc.url");
String username = bundle.getString("jdbc.username");
String password = bundle.getString("jdbc.password");
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, username, password);
preparedStatement = connection.prepareStatement(sql);
preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/**
* 更多用户数据信息
*/