记得上下班打卡 | git大法好,push需谨慎

Commit c5e2fc38 authored by jiangxiulong's avatar jiangxiulong

Merge branch 'jxl_1130_push' into dev_20211205

parents d3ee6e93 71e2dabe
......@@ -60,6 +60,7 @@ public class KylinRedisConst {
public static final String ADMIN_UPUSH_LIST_IOS = "basicServices:upushList:IOS";
public static final String ADMIN_UPUSH_LIST_ANDROID = "basicServices:upushList:Android";
public static final String ADMIN_UPUSH_LIST_READ_UID = "basicServices:upushList:read:uid";
public static final String ADMIN_BANNER_LIST = "kylin:bannerList";
}
......@@ -189,6 +189,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
AdminUpush updatePush = new AdminUpush();
try {
AndroidBroadcast broadcast = new AndroidBroadcast(androidAppkey, androidAppMasterSecret);
broadcast.setBadge(1);
broadcast.setTicker(adminUpush.getPushTitle());
broadcast.setTitle(adminUpush.getPushTitle());
broadcast.setText(adminUpush.getPushContent());
......@@ -257,7 +258,7 @@ public class AdminUpushServiceImpl extends ServiceImpl<AdminUpushMapper, AdminUp
IOSBroadcast broadcast = new IOSBroadcast(iosAppkey, iosAppMasterSecret);
//alert的值设置为字典
broadcast.setAlert(adminUpush.getPushTitle(), "", adminUpush.getPushContent());
broadcast.setBadge(0);
broadcast.setBadge(1);
broadcast.setSound("default");
if (Arrays.asList(LnsEnum.ENV.dev.name(), LnsEnum.ENV.test.name()).contains(environment.getProperty(CurrentUtil.CK_ENV_ACTIVE))) {
broadcast.setTestMode();
......
......@@ -13,7 +13,7 @@ public abstract class AndroidNotification extends UmengNotification {
// Keys can be set in the body level
protected static final HashSet<String> BODY_KEYS = new HashSet<String>(Arrays.asList(new String[]{
"ticker", "title", "text", "builder_id", "icon", "largeIcon", "img", "play_vibrate", "play_lights", "play_sound",
"sound", "after_open", "url", "activity", "custom"}));
"sound", "after_open", "url", "activity", "custom", "badge"}));
public enum DisplayType{
NOTIFICATION{public String getValue(){return "notification";}},///通知:消息送达到用户设备后,由友盟SDK接管处理并在通知栏上显示通知内容。
......@@ -81,6 +81,10 @@ public abstract class AndroidNotification extends UmengNotification {
}
return true;
}
public void setBadge(Integer badge) throws Exception {
setPredefinedKeyValue("badge", badge);
}
// Set extra key/value for Android notification
public boolean setExtraField(String key, String value) throws Exception {
......@@ -102,8 +106,7 @@ public abstract class AndroidNotification extends UmengNotification {
extraJson.put(key, value);
return true;
}
//
public void setDisplayType(DisplayType d) throws Exception {
setPredefinedKeyValue("display_type", d.getValue());
}
......
package com.liquidnet.service.kylin.controller;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.vo.admin.AdminUpushVo;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.service.impl.KylinUpushServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* <p>
* 友盟推送 系统消息
* </p>
*
* @author jiangxiulong
* @since 2021-07-15
*/
@Api(tags = "basicServices")
@RestController
@RequestMapping("basicServices/upush")
public class KylinUpushController {
@Autowired
private KylinUpushServiceImpl upushServiceImpl;
@GetMapping("system")
@ApiOperation("系统消息列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "Integer", name = "page", value = "页码"),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "size", value = "每页数量"),
})
public ResponseDto<PageInfo<AdminUpushVo>> lists(
HttpServletRequest request,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer size
) {
PageInfo<AdminUpushVo> result = upushServiceImpl.lists(request, page, size);
return ResponseDto.success(result);
}
@GetMapping("unread")
@ApiOperation("用户未读数量")
public ResponseDto<Integer> unread(HttpServletRequest request) {
Integer num = upushServiceImpl.unread(request);
return ResponseDto.success(num);
}
}
package com.liquidnet.service.kylin.service.impl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.admin.AdminUpushVo;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.LinkedList;
/**
* <p>
* 轮播图 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2021-05-02
*/
@Service
public class KylinUpushServiceImpl {
@Value("${liquidnet.al-oss.imgUrl}")
private String imgUrl;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
private RedisUtil redisUtil;
public PageInfo<AdminUpushVo> lists(HttpServletRequest request, Integer page, Integer size) {
String uid = CurrentUtil.getCurrentUid();
String source = request.getHeader("source");
PageInfo<AdminUpushVo> voPageInfo = null;
Object adminUpushVo = null;
if (null != source) {
if (source.equals("IOS")) {
adminUpushVo = redisUtil.get(KylinRedisConst.ADMIN_UPUSH_LIST_IOS);
} else if (source.equals("Android")) {
adminUpushVo = redisUtil.get(KylinRedisConst.ADMIN_UPUSH_LIST_ANDROID);
}
}
if (null == adminUpushVo || page > 1) { // 不分页了 大于第一页返回空
voPageInfo = PageInfo.of(new LinkedList<>());
} else {
LinkedList<AdminUpushVo> pushList = (LinkedList<AdminUpushVo>) adminUpushVo;
Integer num = 0;
for (AdminUpushVo info : pushList) {
if (num == 0) {
redisUtil.set(KylinRedisConst.ADMIN_UPUSH_LIST_READ_UID.concat(uid), info.getUpushId());
}
num++;
if (!info.getImg().isEmpty()) {
String img = imgUrl + info.getImg();
info.setImg(img);
}
}
voPageInfo = PageInfo.of(pushList);
voPageInfo.setTotal(pushList.size());
}
return voPageInfo;
}
public Integer unread(HttpServletRequest request) {
String uid = CurrentUtil.getCurrentUid();
Object obj = redisUtil.get(KylinRedisConst.ADMIN_UPUSH_LIST_READ_UID.concat(uid));
String source = request.getHeader("source");
Object adminUpushVo = null;
if (null != source) {
if (source.equals("IOS")) {
adminUpushVo = redisUtil.get(KylinRedisConst.ADMIN_UPUSH_LIST_IOS);
} else if (source.equals("Android")) {
adminUpushVo = redisUtil.get(KylinRedisConst.ADMIN_UPUSH_LIST_ANDROID);
}
}
if (null == adminUpushVo || null == source) {
return 0;
}
LinkedList<AdminUpushVo> pushList = (LinkedList<AdminUpushVo>) adminUpushVo;
if (null == obj) {
return pushList.size();
}
Integer num = 0;
String pushId = (String) obj;
for (AdminUpushVo info : pushList) {
if (info.getUpushId().equals(pushId)) {
break;
} else {
num++;
}
}
return num;
}
}
......@@ -3,6 +3,7 @@ package com.liquidnet.service.platform.service.basicServices;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.admin.AdminUpushVo;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.entity.AdminUpush;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment