From 7b197f8cd0480b0f9f7d2db48afba637603640b5 Mon Sep 17 00:00:00 2001 From: yiyan Date: Sat, 3 Feb 2018 18:09:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9APP=E6=8D=A2=E6=B0=B4?= =?UTF-8?q?=E6=8F=90=E9=86=92=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ifish/dao/DeviceUserDao.java | 8 +- .../java/com/ifish/dao/PushRemindDao.java | 16 +++ .../com/ifish/daoImpl/DeviceUserDaoImpl.java | 17 ++- .../com/ifish/daoImpl/PushRemindDaoImpl.java | 38 +++++++ .../java/com/ifish/dto/PushRemindDto.java | 102 +++++++++++++++++ .../java/com/ifish/entity/PushRemind.java | 104 ++++++++++++++++++ .../java/com/ifish/entity/PushRemindId.java | 53 +++++++++ .../ifish/serviceImpl/BaseServiceImpl.java | 104 ++++++++++++------ 8 files changed, 406 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/ifish/dao/PushRemindDao.java create mode 100644 src/main/java/com/ifish/daoImpl/PushRemindDaoImpl.java create mode 100644 src/main/java/com/ifish/dto/PushRemindDto.java create mode 100644 src/main/java/com/ifish/entity/PushRemind.java create mode 100644 src/main/java/com/ifish/entity/PushRemindId.java diff --git a/src/main/java/com/ifish/dao/DeviceUserDao.java b/src/main/java/com/ifish/dao/DeviceUserDao.java index fe0e099..538670d 100644 --- a/src/main/java/com/ifish/dao/DeviceUserDao.java +++ b/src/main/java/com/ifish/dao/DeviceUserDao.java @@ -21,5 +21,11 @@ public interface DeviceUserDao extends BaseDao{ * @return */ public int getDeviceNumById(Integer userId); - + + /** + * 根据deviceId查询设备和用户对应数据 + * @param deviceId + * @return + */ + List getUserIdByDeviceId(Integer deviceId); } diff --git a/src/main/java/com/ifish/dao/PushRemindDao.java b/src/main/java/com/ifish/dao/PushRemindDao.java new file mode 100644 index 0000000..26b8ba5 --- /dev/null +++ b/src/main/java/com/ifish/dao/PushRemindDao.java @@ -0,0 +1,16 @@ +package com.ifish.dao; + +import com.ifish.entity.PushRemind; + +import java.util.List; + +/** + * @author: yan.y + * @Description: + * @Date: Created in 16:44 2018/1/28 + * @Modified by: + */ +public interface PushRemindDao extends BaseDao { + + List getPushRemindByDeviceId(Integer deviceId); +} diff --git a/src/main/java/com/ifish/daoImpl/DeviceUserDaoImpl.java b/src/main/java/com/ifish/daoImpl/DeviceUserDaoImpl.java index db544aa..160d732 100644 --- a/src/main/java/com/ifish/daoImpl/DeviceUserDaoImpl.java +++ b/src/main/java/com/ifish/daoImpl/DeviceUserDaoImpl.java @@ -1,8 +1,12 @@ package com.ifish.daoImpl; import java.math.BigInteger; +import java.util.ArrayList; import java.util.List; +import org.hibernate.Query; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import com.ifish.dao.DeviceUserDao; @@ -43,5 +47,16 @@ public class DeviceUserDaoImpl extends HibernateBaseDao getUserIdByDeviceId(Integer deviceId) { + Criterion criterion = Restrictions.eq("priId.deviceId",deviceId); + List deviceUsers = this.findByProperty(criterion); + return deviceUsers; + } } diff --git a/src/main/java/com/ifish/daoImpl/PushRemindDaoImpl.java b/src/main/java/com/ifish/daoImpl/PushRemindDaoImpl.java new file mode 100644 index 0000000..2386d92 --- /dev/null +++ b/src/main/java/com/ifish/daoImpl/PushRemindDaoImpl.java @@ -0,0 +1,38 @@ +package com.ifish.daoImpl; + +import com.ifish.dao.PushRemindDao; +import com.ifish.entity.PushRemind; +import com.ifish.hibernate.HibernateBaseDao; +import org.hibernate.criterion.Criterion; +import org.hibernate.criterion.Restrictions; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author: yan.y + * @Description: + * @Date: Created in 17:11 2018/1/28 + * @Modified by: + */ +@Repository +public class PushRemindDaoImpl extends HibernateBaseDao implements PushRemindDao { + + + /** + * 根据设备 查询出推送信息表 + * @param deviceId + * @return + */ + @Override + public List getPushRemindByDeviceId(Integer deviceId) { + Criterion criterion = Restrictions.eq("id.deviceId",deviceId); + List pushReminds = this.findByProperty(criterion); + return pushReminds; + } + + @Override + protected Class getEntityClass() { + return PushRemind.class; + } +} diff --git a/src/main/java/com/ifish/dto/PushRemindDto.java b/src/main/java/com/ifish/dto/PushRemindDto.java new file mode 100644 index 0000000..38f5698 --- /dev/null +++ b/src/main/java/com/ifish/dto/PushRemindDto.java @@ -0,0 +1,102 @@ +package com.ifish.dto; + +import java.util.Date; + +/** + * @author: yan.y + * @Description: tbl_tmp_push_remind DTO + * @Date: Created in 16:45 2018/1/28 + * @Modified by: + */ +public class PushRemindDto { + + private Integer deviceId; + + private Integer userId; + + private String phoneNumber; + + private String macAddress; + + private String showName; + + private String loginType; + + private Date remindDate; + + private Integer remindCycle; + + private String isPush; + + public Integer getDeviceId() { + return deviceId; + } + + public void setDeviceId(Integer deviceId) { + this.deviceId = deviceId; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getMacAddress() { + return macAddress; + } + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + public String getShowName() { + return showName; + } + + public void setShowName(String showName) { + this.showName = showName; + } + + public String getLoginType() { + return loginType; + } + + public void setLoginType(String loginType) { + this.loginType = loginType; + } + + public Date getRemindDate() { + return remindDate; + } + + public void setRemindDate(Date remindDate) { + this.remindDate = remindDate; + } + + public Integer getRemindCycle() { + return remindCycle; + } + + public void setRemindCycle(Integer remindCycle) { + this.remindCycle = remindCycle; + } + + public String getIsPush() { + return isPush; + } + + public void setIsPush(String isPush) { + this.isPush = isPush; + } +} diff --git a/src/main/java/com/ifish/entity/PushRemind.java b/src/main/java/com/ifish/entity/PushRemind.java new file mode 100644 index 0000000..4dcf1d9 --- /dev/null +++ b/src/main/java/com/ifish/entity/PushRemind.java @@ -0,0 +1,104 @@ +package com.ifish.entity; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.Date; + +/** + * @author: yan.y + * @Description: tbl_tmp_push_remind + * @Date: Created in 16:45 2018/1/28 + * @Modified by: + */ +@Entity +@Table(name = "tbl_tmp_push_remind") +public class PushRemind implements Serializable{ + + @Id + private PushRemindId id; + + @Column(name = "phone_number") + private String phoneNumber; + + @Column(name = "mac_address") + private String macAddress; + + @Column(name = "show_name") + private String showName; + + @Column(name = "login_type") + private String loginType; + + @Column(name = "remind_date") + private Date remindDate; + + @Column(name = "remind_cycle") + private Integer remindCycle; + + @Column(name = "is_push") + private String isPush; + + public PushRemindId getId() { + return id; + } + + public void setId(PushRemindId id) { + this.id = id; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getMacAddress() { + return macAddress; + } + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + public String getShowName() { + return showName; + } + + public void setShowName(String showName) { + this.showName = showName; + } + + public String getLoginType() { + return loginType; + } + + public void setLoginType(String loginType) { + this.loginType = loginType; + } + + public Date getRemindDate() { + return remindDate; + } + + public void setRemindDate(Date remindDate) { + this.remindDate = remindDate; + } + + public Integer getRemindCycle() { + return remindCycle; + } + + public void setRemindCycle(Integer remindCycle) { + this.remindCycle = remindCycle; + } + + public String getIsPush() { + return isPush; + } + + public void setIsPush(String isPush) { + this.isPush = isPush; + } +} diff --git a/src/main/java/com/ifish/entity/PushRemindId.java b/src/main/java/com/ifish/entity/PushRemindId.java new file mode 100644 index 0000000..c00ad91 --- /dev/null +++ b/src/main/java/com/ifish/entity/PushRemindId.java @@ -0,0 +1,53 @@ +package com.ifish.entity; + +import javax.persistence.Column; +import javax.persistence.Embeddable; +import java.io.Serializable; + +/** + * @author: yan.y + * @Description: tbl_tmp_push_remind 联合主键ID + * @Date: Created in 16:45 2018/1/28 + * @Modified by: + */ +@Embeddable +public class PushRemindId implements Serializable { + + private static final long serialVersionUID = 1L; + + @Column(name = "user_id") + private Integer userId; + + @Column(name = "device_id") + private Integer deviceId; + + public Integer getUserId() { + return userId; + } + public void setUserId(Integer userId) { + this.userId = userId; + } + public Integer getDeviceId() { + return deviceId; + } + public void setDeviceId(Integer deviceId) { + this.deviceId = deviceId; + } + + @Override + public boolean equals(Object obj) { + if(obj instanceof PushRemindId){ + PushRemindId pk=(PushRemindId)obj; + if(this.userId.equals(pk.userId)&&this.deviceId.equals(pk.deviceId)){ + return true; + } + } + return false; + } + + @Override + public int hashCode() { + return super.hashCode(); + } + +} diff --git a/src/main/java/com/ifish/serviceImpl/BaseServiceImpl.java b/src/main/java/com/ifish/serviceImpl/BaseServiceImpl.java index cefec68..3d70390 100644 --- a/src/main/java/com/ifish/serviceImpl/BaseServiceImpl.java +++ b/src/main/java/com/ifish/serviceImpl/BaseServiceImpl.java @@ -9,6 +9,9 @@ import java.util.List; import java.util.Map; import java.util.Random; +import com.ifish.dao.*; +import com.ifish.entity.*; +import org.apache.log4j.Logger; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,37 +19,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import com.alibaba.fastjson.JSON; -import com.ifish.dao.CameraActiveDao; -import com.ifish.dao.CameraDao; -import com.ifish.dao.CameraUserDao; -import com.ifish.dao.DeviceCameraDao; -import com.ifish.dao.DeviceDao; -import com.ifish.dao.DeviceUserDao; -import com.ifish.dao.HardwareTypeDao; -import com.ifish.dao.LookReportDao; -import com.ifish.dao.PushListDao; -import com.ifish.dao.QuestionsFeedbackDao; -import com.ifish.dao.ShopsInfoDao; -import com.ifish.dao.UserDao; -import com.ifish.dao.VenderListDao; -import com.ifish.dao.VersionDao; -import com.ifish.entity.Camera; -import com.ifish.entity.CameraActive; -import com.ifish.entity.CameraUser; -import com.ifish.entity.CameraUserId; -import com.ifish.entity.Device; -import com.ifish.entity.DeviceCamera; -import com.ifish.entity.DeviceCameraId; -import com.ifish.entity.DeviceUser; -import com.ifish.entity.HardwareType; -import com.ifish.entity.LookReport; -import com.ifish.entity.DeviceUserId; -import com.ifish.entity.PushList; -import com.ifish.entity.QuestionsFeedback; -import com.ifish.entity.ShopsInfo; -import com.ifish.entity.User; -import com.ifish.entity.VenderList; -import com.ifish.entity.Version; import com.ifish.enums.BooleanEnum; import com.ifish.enums.GwellEnum; import com.ifish.enums.Index1Enum; @@ -111,6 +83,8 @@ public class BaseServiceImpl implements BaseService { private HardwareTypeDao hardwareTypeDao; @Autowired private QuestionsFeedbackDao questionsFeedbackDao; + @Autowired + private PushRemindDao pushRemindDao; /** * 获取验证码 @@ -704,8 +678,6 @@ public class BaseServiceImpl implements BaseService { /** * 封装摄像头返回信息 * - * @param device - * @param deviceUser * @return */ public Map getCameraInfo(Camera camera, CameraUser cameraUser) { @@ -1011,7 +983,6 @@ public class BaseServiceImpl implements BaseService { /** * 极光推送 * - * @param userId */ public boolean jPushNotifcation(Map baseMap, Map pushMap) { try { @@ -1096,6 +1067,8 @@ public class BaseServiceImpl implements BaseService { @Override public Object setRemindWaterInf(Device device) { + Logger log = Logger.getLogger(BaseServiceImpl.class); + log.info("setRemindWaterInf begin"); Device tmpDevice = this.deviceDao.get(device.getDeviceId()); if (tmpDevice != null) { //设置换水提醒 @@ -1108,6 +1081,69 @@ public class BaseServiceImpl implements BaseService { calendar.add(Calendar.DATE, device.getRemindCycle()); tmpDevice.setRemindDate(calendar.getTime()); this.deviceDao.update(tmpDevice); + //-----------------------------modify by yan.y begin------------------------------------ + //换水提醒打开状态 + if ("1".equals(device.getWaterRemind())) { + //对于已存在的数据做修改的操作 + Map pushRemindMap = new HashMap(); + //新增逻辑对tbl_tmp_push_remind表操作 + List pushReminds = pushRemindDao.getPushRemindByDeviceId(device.getDeviceId()); + for (PushRemind pushRemind : pushReminds) { + pushRemindMap.put(pushRemind.getId().getUserId(),pushRemind); + } + //查询出所有的设备和用户对应表 + List users = deviceUserDao.getUserIdByDeviceId(device.getDeviceId()); + //修改或创建 + if (pushReminds.size() != 0 && users.size() == pushReminds.size()) { + for (PushRemind pushRemind : pushReminds) { + pushRemind.setRemindCycle(tmpDevice.getRemindCycle()); + pushRemind.setRemindDate(tmpDevice.getRemindDate()); + pushRemind.setIsPush("0"); + this.pushRemindDao.update(pushRemind); + } + } else { + + //添加设备所绑定的用户 + for (DeviceUser deviceUser : users) { + //根据userID获取已存在的推送对象 + PushRemind pr = pushRemindMap.get(deviceUser.getPriId().getUserId()); + //如果对象存在 作修改操作 + if (pr != null) { + pr.setRemindCycle(tmpDevice.getRemindCycle()); + pr.setRemindDate(tmpDevice.getRemindDate()); + this.pushRemindDao.update(pr); + } else { + //推送表ID + PushRemindId id = new PushRemindId(); + //新增对象 + PushRemind pushRemind = new PushRemind(); + pushRemind.setRemindCycle(tmpDevice.getRemindCycle()); + pushRemind.setRemindDate(tmpDevice.getRemindDate()); + id.setDeviceId(tmpDevice.getDeviceId()); + pushRemind.setMacAddress(tmpDevice.getMacAddress()); + //新增操作 + //查询用户信息 + User user = this.userDao.get(deviceUser.getPriId().getUserId()); + id.setUserId(deviceUser.getPriId().getUserId()); + pushRemind.setId(id); + pushRemind.setPhoneNumber(user.getPhoneNumber()); + pushRemind.setShowName(deviceUser.getShowName()); + pushRemind.setLoginType(user.getLoginType()); + pushRemind.setIsPush("0"); + this.pushRemindDao.save(pushRemind); + } + } + } + } else { + //换水提醒关闭状态 + //查询推送表中当前设备的所有数据 + List pushReminds = this.pushRemindDao.getPushRemindByDeviceId(device.getDeviceId()); + for (PushRemind pushRemind : pushReminds) { + this.pushRemindDao.delete(pushRemind); + } + } + + //-----------------------------modify by yan.y end------------------------------------ Map map = new HashMap(); map.put("todayRemind", tmpDevice.getTodayRemind()); map.put("waterRemind", tmpDevice.getWaterRemind());