From 6259645d6cb10b3b056b7acccb508fc10a89bca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=93=E7=84=B1?= Date: Sun, 15 Dec 2019 22:29:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E6=89=8B=E6=9C=BA=E5=8F=B7=E7=A0=81=20?= =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ifish/action/UsersAction.java | 2 +- .../ifish/mapper/Tbl_Camera_User_Mapper.java | 7 ++ .../ifish/serviceImpl/UserServiceImpl.java | 112 ++++++++++++------ 3 files changed, 87 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/ifish/action/UsersAction.java b/src/main/java/com/ifish/action/UsersAction.java index b7bfafa..f0ba966 100644 --- a/src/main/java/com/ifish/action/UsersAction.java +++ b/src/main/java/com/ifish/action/UsersAction.java @@ -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); } diff --git a/src/main/java/com/ifish/mapper/Tbl_Camera_User_Mapper.java b/src/main/java/com/ifish/mapper/Tbl_Camera_User_Mapper.java index 3da9a8a..8136f22 100644 --- a/src/main/java/com/ifish/mapper/Tbl_Camera_User_Mapper.java +++ b/src/main/java/com/ifish/mapper/Tbl_Camera_User_Mapper.java @@ -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 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); + } diff --git a/src/main/java/com/ifish/serviceImpl/UserServiceImpl.java b/src/main/java/com/ifish/serviceImpl/UserServiceImpl.java index bc36660..7338b8f 100644 --- a/src/main/java/com/ifish/serviceImpl/UserServiceImpl.java +++ b/src/main/java/com/ifish/serviceImpl/UserServiceImpl.java @@ -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 cameraUserListWechat = cameraUserDao.findByProperty(Restrictions.eq("cameraUserId.userId", userWechat.getUserId())); + List 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(); + } + } + + } + + + } + /** * 更多用户数据信息 */