fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java
@@ -60,12 +60,12 @@ @RequestMapping(value = "/insertDeviceToken", method = RequestMethod.POST) public void insertIOSDeviceToken(AcceptData acceptData, String deviceToken, PrintWriter out) { if (!StringUtil.isNullOrEmpty(acceptData.getDevice()) && !StringUtil.isNullOrEmpty(deviceToken)) { DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDevice(acceptData.getDevice()); DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(deviceToken); if (deviceTokenIOS == null) iosPushService.addDeviceToken(null, Integer.parseInt(acceptData.getVersion()), deviceToken, acceptData.getDevice()); else { deviceTokenIOS.setDeviceToken(deviceToken); deviceTokenIOS.setDevice(acceptData.getDevice()); iosPushService.updateDeviceToken(deviceTokenIOS); } out.print(JsonUtil.loadTrue(0, null, "成功")); @@ -80,21 +80,20 @@ * @param deviceToken */ // 传一个device 如果存在device 根据device执行update操作 , 如果不存在 都执行insert操作三个参数 @RequestMapping(value = "/uidBindDeviceToken", method = RequestMethod.POST) public void uidBindIOSDeviceToken(AcceptData acceptData, Long uid, String deviceToken, PrintWriter out) { if (uid != null && uid != 0 && !StringUtil.isNullOrEmpty(deviceToken)) { DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDevice(acceptData.getDevice()); DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(acceptData.getDevice()); if (deviceTokenIOS != null) { if (!StringUtil.isNullOrEmpty(deviceToken)) deviceTokenIOS.setDeviceToken(deviceToken); deviceTokenIOS.setUid(uid); deviceTokenIOS.setDevice(acceptData.getDevice()); deviceTokenIOS.setVersion(Integer.parseInt(acceptData.getVersion())); iosPushService.updateDeviceToken(deviceTokenIOS); } else { iosPushService.addDeviceToken(uid, Integer.parseInt(acceptData.getVersion()), deviceToken, acceptData.getDevice()); } out.print(JsonUtil.loadTrueResult("")); } } @@ -106,8 +105,8 @@ */ @RequestMapping(value = "/unBind", method = RequestMethod.POST) public void unBind(AcceptData acceptData, String deviceToken, PrintWriter out) { if (deviceToken != null && !"".equals(deviceToken)) { DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDevice(acceptData.getDevice()); if (!StringUtil.isNullOrEmpty(deviceToken)) { DeviceTokenIOS deviceTokenIOS = iosPushService.getDeviceTokenByDeviceToken(deviceToken); if (deviceTokenIOS != null) { deviceTokenIOS.setUid(null); iosPushService.updateDeviceToken(deviceTokenIOS); fanli/src/main/java/com/yeshi/fanli/dao/mybatis/push/DeviceTokenIOSMapper.java
@@ -18,6 +18,8 @@ DeviceTokenIOS selectByDevice(String device); DeviceTokenIOS selectByDeviceToken(String deviceToken); List<DeviceTokenIOS> selectByUid(Long uid); List<DeviceTokenIOS> selectList(@Param("start")Long start,@Param("count")int count); fanli/src/main/java/com/yeshi/fanli/entity/push/DeviceTokenIOS.java
@@ -25,6 +25,9 @@ @Column(name = "device_token") private String deviceToken; @Column(name = "device_token_md5") private String deviceTokenMd5; @Column(name = "device") private String device; @@ -46,6 +49,14 @@ this.id = id; } public String getDeviceTokenMd5() { return deviceTokenMd5; } public void setDeviceTokenMd5(String deviceTokenMd5) { this.deviceTokenMd5 = deviceTokenMd5; } public Long getUid() { return uid; } fanli/src/main/java/com/yeshi/fanli/mapping/push/DeviceTokenIOSMapper.xml
@@ -10,21 +10,29 @@ <result column="version" property="version" jdbcType="INTEGER" /> <result column="createtime" property="createTime" jdbcType="TIMESTAMP" /> <result column="updatetime" property="updateTime" jdbcType="TIMESTAMP" /> <result column="device_token_md5" property="deviceTokenMd5" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List">id,uid,device_token,device,createtime,updatetime,version</sql> <sql id="Base_Column_List">id,uid,device_token,device,createtime,updatetime,version,device_token_md5 </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long"> select <include refid="Base_Column_List" /> from yeshi_ec_uid_devicetoken_ios where id = #{id,jdbcType=BIGINT} </select> <select id="selectByDevice" resultMap="BaseResultMap" parameterType="java.lang.String"> select <include refid="Base_Column_List" /> from yeshi_ec_uid_devicetoken_ios where device = #{0} limit 1 </select> <select id="selectByDeviceToken" resultMap="BaseResultMap" parameterType="java.lang.String"> select <include refid="Base_Column_List" /> from yeshi_ec_uid_devicetoken_ios where device_token = #{0} limit 1 </select> @@ -34,33 +42,23 @@ <include refid="Base_Column_List" /> from yeshi_ec_uid_devicetoken_ios where uid = #{0} </select> <select id="selectList" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from yeshi_ec_uid_devicetoken_ios limit #{start},#{count} </select> <select id="selectCount" resultType="java.lang.Long"> select count(id) from <select id="selectCount" resultType="java.lang.Long">select count(id) from yeshi_ec_uid_devicetoken_ios </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from yeshi_ec_uid_devicetoken_ios where id = #{id,jdbcType=BIGINT} </delete> <insert id="insert" parameterType="com.yeshi.fanli.entity.push.DeviceTokenIOS" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_uid_devicetoken_ios (id,uid,device_token,device,createtime,updatetime,`version`) values (#{id,jdbcType=BIGINT},#{uid,jdbcType=BIGINT},#{deviceToken,jdbcType=VARCHAR},#{device,jdbcType=VARCHAR},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{version,jdbcType=INTEGER}) (id,uid,device_token,device,createtime,updatetime,`version`,device_token_md5,version) values (#{id,jdbcType=BIGINT},#{uid,jdbcType=BIGINT},#{deviceToken,jdbcType=VARCHAR},#{device,jdbcType=VARCHAR},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP},#{version,jdbcType=INTEGER},#{deviceTokenMd5,jdbcType=VARCHAR},#{version,jdbcType=INTEGER}) </insert> <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.push.DeviceTokenIOS" useGeneratedKeys="true" keyProperty="id"> @@ -73,6 +71,7 @@ <if test="createTime != null">createtime,</if> <if test="updateTime != null">updatetime,</if> <if test="version != null">version,</if> <if test="deviceTokenMd5 != null">device_token_md5,</if> </trim> values <trim prefix="(" suffix=")" suffixOverrides=","> @@ -83,6 +82,7 @@ <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if> <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if> <if test="version != null">#{version,jdbcType=INTEGER},</if> <if test="deviceTokenMd5 != null">#{deviceTokenMd5,jdbcType=VARCHAR}</if> </trim> </insert> <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.push.DeviceTokenIOS">update @@ -91,8 +91,9 @@ #{deviceToken,jdbcType=VARCHAR},device = #{device,jdbcType=VARCHAR},createtime = #{createTime,jdbcType=TIMESTAMP},updatetime = #{updateTime,jdbcType=TIMESTAMP},version = #{version,jdbcType=INTEGER} where id = #{id,jdbcType=BIGINT} #{updateTime,jdbcType=TIMESTAMP},version = #{version,jdbcType=INTEGER} ,device_token_md5 =#{deviceTokenMd5,jdbcType=VARCHAR} where id = #{id,jdbcType=BIGINT} </update> <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.push.DeviceTokenIOS"> update yeshi_ec_uid_devicetoken_ios @@ -103,6 +104,8 @@ <if test="createTime != null">createtime=#{createTime,jdbcType=TIMESTAMP},</if> <if test="updateTime != null">updatetime=#{updateTime,jdbcType=TIMESTAMP},</if> <if test="version != null">version=#{version,jdbcType=INTEGER},</if> <if test="deviceTokenMd5 !=null">device_token_md5 =#{deviceTokenMd5,jdbcType=VARCHAR}, </if> </set> where id = #{id,jdbcType=BIGINT} </update> fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java
@@ -241,7 +241,7 @@ @Override public void addDeviceToken(Long uid, int version, String deviceToken, String device) { // 如果device为空就返回 if (StringUtil.isNullOrEmpty(device)) if (StringUtil.isNullOrEmpty(device) || StringUtil.isNullOrEmpty(deviceToken)) return; // 判断device是否存在 @@ -252,6 +252,7 @@ deviceTokenIos.setUpdateTime(new Date()); deviceTokenIos.setDevice(device); deviceTokenIos.setDeviceToken(deviceToken); deviceTokenIos.setDeviceTokenMd5(StringUtil.Md5(deviceToken)); deviceTokenIos.setUid(uid); deviceTokenIos.setVersion(version); deviceTokenIOSMapper.insertSelective(deviceTokenIos); @@ -288,8 +289,8 @@ } @Override public DeviceTokenIOS getDeviceTokenByDevice(String device) { return deviceTokenIOSMapper.selectByDevice(device); public DeviceTokenIOS getDeviceTokenByDeviceToken(String deviceToken) { return deviceTokenIOSMapper.selectByDeviceToken(deviceToken); } /** fanli/src/main/java/com/yeshi/fanli/service/inter/push/IOSPushService.java
@@ -33,7 +33,7 @@ * @param device * @return */ public DeviceTokenIOS getDeviceTokenByDevice(String device); public DeviceTokenIOS getDeviceTokenByDeviceToken(String deviceToken); /** * 根据用户ID获取DeviceToken