Administrator
2018-11-20 b669c03260b4445350089df1014f46970ae21bde
IOS推送优化
6个文件已修改
78 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/PushController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/push/DeviceTokenIOSMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/push/DeviceTokenIOS.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/push/DeviceTokenIOSMapper.xml 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/push/IOSPushServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/push/IOSPushService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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