diff --git a/mall-account/src/main/java/com/suisung/mall/account/controller/mobile/SinglePushController.java b/mall-account/src/main/java/com/suisung/mall/account/controller/mobile/SinglePushController.java index bed0f6e8..988ac49e 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/controller/mobile/SinglePushController.java +++ b/mall-account/src/main/java/com/suisung/mall/account/controller/mobile/SinglePushController.java @@ -1,6 +1,7 @@ package com.suisung.mall.account.controller.mobile; import com.suisung.mall.account.service.AccountSinglePushService; +import com.suisung.mall.common.service.GeTuiPushService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -8,6 +9,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + @RestController @RequestMapping("/admin/account/singlePus") @Slf4j @@ -15,6 +18,10 @@ public class SinglePushController { @Autowired private AccountSinglePushService accountSinglePushService; + + @Resource + private GeTuiPushService geTuiPushService; + @RequestMapping("/getSingleToken") public String getToken() { return accountSinglePushService.getTokenString(); @@ -22,14 +29,14 @@ public class SinglePushController { @RequestMapping("/delSingleToken") public String delSingleToken() { - accountSinglePushService.delToken(); - return "success"; + // accountSinglePushService.delToken(); + return "success"; } @PostMapping("/pushTocid") - public String pushTocid(@RequestParam String message,@RequestParam String userId) { + public String pushTocid(@RequestParam String userId, @RequestParam String message) { log.info("pushTocid"); - accountSinglePushService.pushTocid(message,userId); + accountSinglePushService.pushTocid(message, userId); return "success"; } } diff --git a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountSinglePushServiceImpl.java b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountSinglePushServiceImpl.java index 9013a090..bc92db43 100644 --- a/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountSinglePushServiceImpl.java +++ b/mall-account/src/main/java/com/suisung/mall/account/service/impl/AccountSinglePushServiceImpl.java @@ -1,4 +1,5 @@ package com.suisung.mall.account.service.impl; + import cn.hutool.core.collection.CollectionUtil; import com.getui.push.v2.sdk.api.PushApi; import com.getui.push.v2.sdk.common.ApiResult; @@ -9,11 +10,12 @@ import com.suisung.mall.account.service.AccountSinglePushService; import com.suisung.mall.account.service.UserDeviceBindService; import com.suisung.mall.common.modules.singlepush.UserDeviceBind; import com.suisung.mall.common.service.impl.SinglePushBaseServiceImpl; -import com.suisung.mall.common.utils.ContextUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.UUID; @Service @lombok.extern.slf4j.Slf4j @@ -24,38 +26,38 @@ public class AccountSinglePushServiceImpl extends SinglePushBaseServiceImpl impl @Override public String getTokenString() { - return super.getTokenDTO().getToken(); + return super.getTokenDTO().getToken(); } - public void delToken(){ + public void delToken() { super.delToken(); } @Override - public void pushTocid(String message,String userId) { - UserDeviceBind userDeviceBind= new UserDeviceBind(); + public void pushTocid(String message, String userId) { + UserDeviceBind userDeviceBind = new UserDeviceBind(); userDeviceBind.setUserId(userId); - List list= userDeviceBindService.getActive(userDeviceBind); - if(CollectionUtil.isEmpty(list)){ + List list = userDeviceBindService.getActive(userDeviceBind); + if (CollectionUtil.isEmpty(list)) { log.error("登录时绑定设备不存在"); - return ; + return; } - String cid=list.get(0).getCid(); - PushApi pushApi= this.getApiHelper().creatApi(PushApi.class); - PushDTO pushDTO=new PushDTO<>(); - Audience audience=new Audience(); + String cid = list.get(0).getCid(); + PushApi pushApi = this.getApiHelper().creatApi(PushApi.class); + PushDTO pushDTO = new PushDTO<>(); + Audience audience = new Audience(); audience.addCid(cid); pushDTO.setAudience(audience); pushDTO.setRequestId(UUID.randomUUID().toString()); - PushMessage pushMessage=new PushMessage(); + PushMessage pushMessage = new PushMessage(); pushMessage.setDuration(this.getDuration()); pushMessage.setTransmission(message); pushDTO.setPushMessage(pushMessage); - ApiResult>> mapApiResult= pushApi.pushToSingleByCid(pushDTO,super.getTokenDTO()); - if(mapApiResult.getCode()==0){ - log.info("用户为{},cid为{}发送成功消息成功",list.get(0).getUserId(),list.get(0).getCid()); + ApiResult>> mapApiResult = pushApi.pushToSingleByCid(pushDTO);//,super.getTokenDTO() + if (mapApiResult.getCode() == 0) { + log.info("用户为{},cid为{}发送成功消息成功", list.get(0).getUserId(), list.get(0).getCid()); } - log.info("mapApiResult的数据{}",mapApiResult); + log.info("mapApiResult的数据{}", mapApiResult); } diff --git a/mall-common/pom.xml b/mall-common/pom.xml index c73d8eec..79c08dff 100644 --- a/mall-common/pom.xml +++ b/mall-common/pom.xml @@ -281,13 +281,26 @@ + + + + + + + + com.getui.push restful-sdk - 1.0.6.1 - ${project.basedir}/src/main/resources/lib/restful-sdk-1.0.6.1.jar - system + 1.0.6.0 + + com.getui.push + restful-sdk + 1.0.6.0 + compile + + diff --git a/mall-common/src/main/java/com/suisung/mall/common/service/GeTuiPushService.java b/mall-common/src/main/java/com/suisung/mall/common/service/GeTuiPushService.java new file mode 100644 index 00000000..1d53932e --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/service/GeTuiPushService.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.common.service; + +import org.springframework.data.util.Pair; + +public interface GeTuiPushService { + + /** + * 单个用户透传消息(支持H5、安卓、苹果系统) + * + * @param cid + * @param transmission 透传消息 txt json 格式 + * @return + */ + Pair pushTransmissionToSingleByCid(String cid, String transmission); + + /** + * 单个用户推送消息(支持H5、安卓、苹果系统) + *

+ * 通知消息内容参考:https://docs.getui.com/getui/server/rest_v2/common_args/?id=doc-title-6 + * + * @param cid + * @param title + * @param content + * @param clickType: 点击通知后续动作, + * 目前支持以下后续动作, + * intent:打开应用内特定页面(intent和want字段必须填写一个) + * url:打开网页地址, + * payload:自定义消息内容启动应用, + * payload_custom:自定义消息内容不启动应用, + * startapp:打开应用首页, + * none:纯通知,无后续动作 + * @param clickContent + * @return + */ + Pair pushMessageToSingleByCid(String cid, String title, String content, String clickType, String clickContent); +} diff --git a/mall-common/src/main/java/com/suisung/mall/common/service/SinglePushBaseService.java b/mall-common/src/main/java/com/suisung/mall/common/service/SinglePushBaseService.java index 63e6e798..c7a63786 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/service/SinglePushBaseService.java +++ b/mall-common/src/main/java/com/suisung/mall/common/service/SinglePushBaseService.java @@ -1,12 +1,15 @@ package com.suisung.mall.common.service; import com.getui.push.v2.sdk.dto.res.TokenDTO; -import com.suisung.mall.common.pojo.dto.SmsDto; /** * 第三方服务 */ public interface SinglePushBaseService { TokenDTO getTokenDTO(); + void delToken(); + + + void pushToSingleByCid(String cid, String content); } diff --git a/mall-common/src/main/java/com/suisung/mall/common/service/impl/GeTuiPushServiceImpl.java b/mall-common/src/main/java/com/suisung/mall/common/service/impl/GeTuiPushServiceImpl.java new file mode 100644 index 00000000..38063646 --- /dev/null +++ b/mall-common/src/main/java/com/suisung/mall/common/service/impl/GeTuiPushServiceImpl.java @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2025. Lorem ipsum dolor sit amet, consectetur adipiscing elit. + * Morbi non lorem porttitor neque feugiat blandit. Ut vitae ipsum eget quam lacinia accumsan. + * Etiam sed turpis ac ipsum condimentum fringilla. Maecenas magna. + * Proin dapibus sapien vel ante. Aliquam erat volutpat. Pellentesque sagittis ligula eget metus. + * Vestibulum commodo. Ut rhoncus gravida arcu. + */ + +package com.suisung.mall.common.service.impl; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import com.getui.push.v2.sdk.ApiHelper; +import com.getui.push.v2.sdk.GtApiConfiguration; +import com.getui.push.v2.sdk.api.PushApi; +import com.getui.push.v2.sdk.common.ApiResult; +import com.getui.push.v2.sdk.dto.req.Audience; +import com.getui.push.v2.sdk.dto.req.message.PushChannel; +import com.getui.push.v2.sdk.dto.req.message.PushDTO; +import com.getui.push.v2.sdk.dto.req.message.PushMessage; +import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO; +import com.getui.push.v2.sdk.dto.req.message.android.GTNotification; +import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification; +import com.getui.push.v2.sdk.dto.req.message.android.Ups; +import com.getui.push.v2.sdk.dto.req.message.harmony.HarmonyDTO; +import com.getui.push.v2.sdk.dto.req.message.ios.Alert; +import com.getui.push.v2.sdk.dto.req.message.ios.Aps; +import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO; +import com.suisung.mall.common.service.GeTuiPushService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.util.Pair; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +public class GeTuiPushServiceImpl implements GeTuiPushService { + + @Value("${getui.push.appid}") + private String appId; + @Value("${getui.push.appkey}") + private String appkey; + @Value("${getui.push.mastersecret}") + private String mastersecret; + + @Value("${getui.push.domain}") + private String getuiDomain; + + + // 私有构造函数,防止外部实例化 + private PushApi creatPushApi() { + // 初始化 PushApi 配置 + GtApiConfiguration config = new GtApiConfiguration(); + config.setAppId(appId); + config.setAppKey(appkey); + config.setMasterSecret(mastersecret); + config.setDomain(getuiDomain); + ApiHelper apiHelper = ApiHelper.build(config); + // 创建 PushApi 实例 + return apiHelper.creatApi(PushApi.class); + } + + + /** + * 单个用户透传消息(支持H5、安卓、苹果系统) + * + * @param cid + * @param transmission + * @return + */ + @Override + public Pair pushTransmissionToSingleByCid(String cid, String transmission) { + PushDTO pushDTO = new PushDTO(); + // 设置推送参数 + pushDTO.setRequestId(System.currentTimeMillis() + ""); + + /**** 设置个推通道参数 *****/ + PushMessage pushMessage = new PushMessage(); + pushMessage.setTransmission(transmission); // 设置透传消息 + pushDTO.setPushMessage(pushMessage); + + /**** 设置个推通道参数,更多参数请查看文档或对象源码 *****/ + + /**** 设置厂商相关参数 ****/ + PushChannel pushChannel = new PushChannel(); + pushDTO.setPushChannel(pushChannel); + /*配置安卓厂商参数*/ + AndroidDTO androidDTO = new AndroidDTO(); + pushChannel.setAndroid(androidDTO); + Ups ups = new Ups(); + androidDTO.setUps(ups); + ups.setTransmission(transmission); // 设置透传消息 + /*配置安卓厂商参数结束,更多参数请查看文档或对象源码*/ + + /*设置ios厂商参数*/ + IosDTO iosDTO = new IosDTO(); + pushChannel.setIos(iosDTO); + Aps aps = new Aps(); + iosDTO.setAps(aps); + aps.setContentAvailable(1); + iosDTO.setPayload(transmission); // 设置透传消息 + /*设置ios厂商参数结束,更多参数请查看文档或对象源码*/ + + /*配置鸿蒙厂商参数*/ + HarmonyDTO harmonyDTO = new HarmonyDTO(); + pushChannel.setHarmony(harmonyDTO); + harmonyDTO.setTransmission(transmission); + /*配置鸿蒙厂商参数结束,更多参数请查看文档或对象源码*/ + + /*设置接收人信息*/ + Audience audience = new Audience(); + audience.addCid(cid); + pushDTO.setAudience(audience); + + // 进行cid单推 + ApiResult apiResult = creatPushApi().pushToSingleByCid(pushDTO); + if (!apiResult.isSuccess()) { + log.error("个推推送失败:{}", apiResult); + return Pair.of(false, "个推推送失败:" + apiResult.getMsg()); + } + + return Pair.of(true, "推送成功"); + } + + /** + * 单个用户推送消息(支持H5、安卓、苹果系统) + *

+ * 通知消息内容参考:https://docs.getui.com/getui/server/rest_v2/common_args/?id=doc-title-6 + * + * @param cid + * @param title + * @param content + * @param clickType: 点击通知后续动作, + * 目前支持以下后续动作, + * intent:打开应用内特定页面(intent和want字段必须填写一个) + * url:打开网页地址, + * payload:自定义消息内容启动应用, + * payload_custom:自定义消息内容不启动应用, + * startapp:打开应用首页, + * none:纯通知,无后续动作 + * @param clickContent + * @return + */ + @Override + public Pair pushMessageToSingleByCid(String cid, String title, String content, String clickType, String clickContent) { + //根据cid进行单推 + PushDTO pushDTO = new PushDTO(); + // 设置推送参数 + pushDTO.setRequestId(System.currentTimeMillis() + ""); + + + title = StrUtil.isBlank(title) ? "小发同城" : title; + + /**** 设置个推通道参数 *****/ + PushMessage pushMessage = new PushMessage(); + pushDTO.setPushMessage(pushMessage); + GTNotification notification = new GTNotification(); + pushMessage.setNotification(notification); + notification.setTitle(title); + notification.setBody(content); + + notification.setClickType(clickType); + switch (clickType) { + case "url": + notification.setUrl(clickContent); + break; + case "intent": + notification.setIntent(clickContent); + break; + case "want": + notification.setWant(clickContent); + break; + case "payload": + case "payload_custom": + notification.setPayload(clickContent); + break; + case "none": + case "startapp": + default: + break; + } + + /**** 设置个推通道参数,更多参数请查看文档或对象源码 *****/ + + /**** 设置厂商相关参数 ****/ + PushChannel pushChannel = new PushChannel(); + pushDTO.setPushChannel(pushChannel); + /*配置安卓厂商参数*/ + AndroidDTO androidDTO = new AndroidDTO(); + pushChannel.setAndroid(androidDTO); + Ups ups = new Ups(); + androidDTO.setUps(ups); + ThirdNotification thirdNotification = new ThirdNotification(); + ups.setNotification(thirdNotification); + thirdNotification.setTitle(title); + thirdNotification.setBody(content); + + thirdNotification.setClickType(clickType); + switch (clickType) { + case "url": + thirdNotification.setUrl(clickContent); + break; + case "intent": + thirdNotification.setIntent(clickContent); + break; + case "payload": + case "payload_custom": + thirdNotification.setPayload(clickContent); + break; + case "none": + case "startapp": + default: + break; + } + /*配置安卓厂商参数结束,更多参数请查看文档或对象源码*/ + + /*设置ios厂商参数*/ + IosDTO iosDTO = new IosDTO(); + pushChannel.setIos(iosDTO); + // 相同的collapseId会覆盖之前的消息 + iosDTO.setApnsCollapseId("xxx"); + Aps aps = new Aps(); + iosDTO.setAps(aps); + Alert alert = new Alert(); + aps.setAlert(alert); + alert.setTitle(title); + alert.setBody(content); + /*设置ios厂商参数结束,更多参数请查看文档或对象源码*/ + + + /*设置接收人信息*/ + Audience audience = new Audience(); + pushDTO.setAudience(audience); + audience.addCid(cid); + /*设置接收人信息结束*/ + /**** 设置厂商相关参数,更多参数请查看文档或对象源码 ****/ + + // 进行cid单推 + ApiResult apiResult = creatPushApi().pushToSingleByCid(pushDTO); + if (!apiResult.isSuccess()) { + log.error("个推推送失败:{}", apiResult); + return Pair.of(false, "个推推送失败:" + apiResult.getMsg()); + } + + return Pair.of(true, "推送成功"); + } +} diff --git a/mall-common/src/main/java/com/suisung/mall/common/service/impl/SinglePushBaseServiceImpl.java b/mall-common/src/main/java/com/suisung/mall/common/service/impl/SinglePushBaseServiceImpl.java index 3bf539e4..8867d9f0 100644 --- a/mall-common/src/main/java/com/suisung/mall/common/service/impl/SinglePushBaseServiceImpl.java +++ b/mall-common/src/main/java/com/suisung/mall/common/service/impl/SinglePushBaseServiceImpl.java @@ -1,12 +1,16 @@ package com.suisung.mall.common.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.map.MapUtil; import com.getui.push.v2.sdk.ApiHelper; import com.getui.push.v2.sdk.GtApiConfiguration; import com.getui.push.v2.sdk.api.AuthApi; +import com.getui.push.v2.sdk.api.PushApi; import com.getui.push.v2.sdk.common.ApiResult; +import com.getui.push.v2.sdk.dto.req.Audience; import com.getui.push.v2.sdk.dto.req.AuthDTO; +import com.getui.push.v2.sdk.dto.req.message.PushDTO; +import com.getui.push.v2.sdk.dto.req.message.PushMessage; +import com.getui.push.v2.sdk.dto.req.message.android.GTNotification; import com.getui.push.v2.sdk.dto.res.TokenDTO; import com.suisung.mall.common.RedisKeyManage.RedisKey; import com.suisung.mall.common.service.SinglePushBaseService; @@ -16,77 +20,118 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.Calendar; -import java.util.HashMap; import java.util.Map; @Service @lombok.extern.slf4j.Slf4j public class SinglePushBaseServiceImpl implements SinglePushBaseService { - @Value("${single.push.mastersecret}") + + @Value("${getui.push.appid}") + private String appId; + + @Value("${getui.push.appkey}") + private String appkey; + + @Value("${getui.push.mastersecret}") private String mastersecret; - @Value("${single.push.appkey}") - private String appkey; - @Value("${single.push.appId}") - private String appId; @Autowired private RedisService redisService; @Override public TokenDTO getTokenDTO() { - TokenDTO token=new TokenDTO(); - if(redisService.get(RedisKey.SINGLEPUSHTOKE)==null){ + TokenDTO token = new TokenDTO(); + if (redisService.get(RedisKey.SINGLEPUSHTOKE) == null) { return getTokenFromSingelPush(); - }else { - Map map= (Map) redisService.get(RedisKey.SINGLEPUSHTOKE); + } else { + Map map = (Map) redisService.get(RedisKey.SINGLEPUSHTOKE); token.setToken(map.get("token").toString()); token.setExpireTime((Long) map.get("expireTime")); } - return token; + return token; } + @Override - public void delToken(){ - if(redisService.get(RedisKey.SINGLEPUSHTOKE)!=null){ - Map map= (Map) redisService.get(RedisKey.SINGLEPUSHTOKE); + public void delToken() { + if (redisService.get(RedisKey.SINGLEPUSHTOKE) != null) { + Map map = (Map) redisService.get(RedisKey.SINGLEPUSHTOKE); AuthApi authApi = getApiHelper().creatApi(AuthApi.class); String token = (String) map.get("token"); TokenDTO tokenDTO = new TokenDTO(); tokenDTO.setToken(token); tokenDTO.setExpireTime((Long) map.get("expireTime")); - log.info("token--{}",tokenDTO); - authApi.close(token,tokenDTO); + log.info("token--{}", tokenDTO); +// authApi.close(token, tokenDTO); + authApi.close(token); redisService.del(RedisKey.SINGLEPUSHTOKE); } } - public ApiHelper getApiHelper(){ + /** + * @param cid + * @param content + */ + @Override + public void pushToSingleByCid(String cid, String content) { + PushDTO pushDTO = new PushDTO<>(); + // 设置推送参数 + pushDTO.setRequestId(System.currentTimeMillis() + ""); + /**** 设置个推通道参数 *****/ + PushMessage pushMessage = new PushMessage(); + pushDTO.setPushMessage(pushMessage); + GTNotification notification = new GTNotification(); + pushMessage.setNotification(notification); + notification.setTitle("小发同城"); + notification.setBody("小发同城欢迎你加入大家庭"); + notification.setClickType("url"); + notification.setUrl("https://www.getui.com"); + + /*设置接收人信息*/ + Audience audience = new Audience(); + pushDTO.setAudience(audience); + audience.addCid("f9da7081a7951cff6d7f1d4e2d2f270b"); + + PushApi pushApi = getApiHelper().creatApi(PushApi.class); + // 进行cid单推 + ApiResult>> apiResult = pushApi.pushToSingleByCid(pushDTO); + if (apiResult.isSuccess()) { + // success + System.out.println(apiResult.getData()); + } else { + // failed + System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg()); + } + } + + public ApiHelper getApiHelper() { GtApiConfiguration config = new GtApiConfiguration(); + config.setAppId(appId); config.setAppKey(appkey); config.setMasterSecret(mastersecret); - config.setAppId(appId); + config.setDomain("https://restapi.getui.com/v2/"); return ApiHelper.build(config); } - public String getDuration(){ + public String getDuration() { long timestamp = System.currentTimeMillis(); // 当前时间的时间戳 Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timestamp); calendar.add(Calendar.MINUTE, 10); // 增加10分钟 long newTimestamp = calendar.getTimeInMillis(); // 获取新的时间戳 - return timestamp+"-"+newTimestamp; + return timestamp + "-" + newTimestamp; } - private TokenDTO getTokenFromSingelPush(){ - AuthApi authApi= getApiHelper().creatApi(AuthApi.class); - AuthDTO authDTO= AuthDTO.build(appkey, mastersecret); - ApiResult tokenDTOApiResult= authApi.auth(authDTO); - TokenDTO token=null; - if (tokenDTOApiResult!= null) { + private TokenDTO getTokenFromSingelPush() { + AuthApi authApi = getApiHelper().creatApi(AuthApi.class); + AuthDTO authDTO = AuthDTO.build(appkey, mastersecret); + ApiResult tokenDTOApiResult = authApi.auth(authDTO); + TokenDTO token = null; + if (tokenDTOApiResult != null) { token = tokenDTOApiResult.getData(); - Map map= BeanUtil.beanToMap(token); - log.info("tokenDTO:{}",token); - redisService.set(RedisKey.SINGLEPUSHTOKE, map,(token.getExpireTime()/1000)-60); + Map map = BeanUtil.beanToMap(token); + log.info("tokenDTO:{}", token); + redisService.set(RedisKey.SINGLEPUSHTOKE, map, (token.getExpireTime() / 1000) - 60); } return token; } diff --git a/mall-common/src/main/resources/application-dev.yml b/mall-common/src/main/resources/application-dev.yml index 133826be..2b3d0745 100644 --- a/mall-common/src/main/resources/application-dev.yml +++ b/mall-common/src/main/resources/application-dev.yml @@ -32,4 +32,11 @@ baidu: map: app_id: 116444176 ak: qWKt2xbrqXsp2yK35YYXVBNZgrbiCG5v - url: https://api.map.baidu.com/geoconv/v2/? \ No newline at end of file + url: https://api.map.baidu.com/geoconv/v2/? + +getui: # 个推配置 + push: + appid: KXgzOaKSzd5HG3p9IPaVa8 + appkey: neXXX9r1Tc7gMxN2PIcHA1 + mastersecret: jYnpS1xYhh6GfyZQMlciJ + domain: https://restapi.getui.com/v2/ \ No newline at end of file diff --git a/mall-common/src/main/resources/application-local.yml b/mall-common/src/main/resources/application-local.yml index 53d510c5..e58d5ab0 100644 --- a/mall-common/src/main/resources/application-local.yml +++ b/mall-common/src/main/resources/application-local.yml @@ -33,8 +33,9 @@ baidu: app_id: 116444176 ak: qWKt2xbrqXsp2yK35YYXVBNZgrbiCG5v url: https://api.map.baidu.com/geoconv/v2/? -single: # 个推配置 +getui: # 个推配置 push: - mastersecret: jYnpS1xYhh6GfyZQMlciJ + appid: KXgzOaKSzd5HG3p9IPaVa8 appkey: neXXX9r1Tc7gMxN2PIcHA1 - appId: KXgzOaKSzd5HG3p9IPaVa8 \ No newline at end of file + mastersecret: jYnpS1xYhh6GfyZQMlciJ + domain: https://restapi.getui.com/v2/ diff --git a/mall-common/src/main/resources/application-prod.yml b/mall-common/src/main/resources/application-prod.yml index 1e5279a1..16cc67db 100644 --- a/mall-common/src/main/resources/application-prod.yml +++ b/mall-common/src/main/resources/application-prod.yml @@ -33,8 +33,9 @@ baidu: app_id: 116444176 ak: qWKt2xbrqXsp2yK35YYXVBNZgrbiCG5v url: https://api.map.baidu.com/geoconv/v2/? -single: # 个推配置 +getui: # 个推配置 push: - mastersecret: jYnpS1xYhh6GfyZQMlciJ + appid: KXgzOaKSzd5HG3p9IPaVa8 appkey: neXXX9r1Tc7gMxN2PIcHA1 - appId: KXgzOaKSzd5HG3p9IPaVa8 \ No newline at end of file + mastersecret: jYnpS1xYhh6GfyZQMlciJ + domain: https://restapi.getui.com/v2/ diff --git a/mall-common/src/main/resources/application-test.yml b/mall-common/src/main/resources/application-test.yml index 4e42a7dc..50aa69b5 100644 --- a/mall-common/src/main/resources/application-test.yml +++ b/mall-common/src/main/resources/application-test.yml @@ -33,8 +33,9 @@ baidu: app_id: 116444176 ak: qWKt2xbrqXsp2yK35YYXVBNZgrbiCG5v url: https://api.map.baidu.com/geoconv/v2/? -single: # 个推配置 +getui: # 个推配置 push: - mastersecret: jYnpS1xYhh6GfyZQMlciJ + appid: KXgzOaKSzd5HG3p9IPaVa8 appkey: neXXX9r1Tc7gMxN2PIcHA1 - appId: KXgzOaKSzd5HG3p9IPaVa8 \ No newline at end of file + mastersecret: jYnpS1xYhh6GfyZQMlciJ + domain: https://restapi.getui.com/v2/ \ No newline at end of file diff --git a/mall-common/src/main/resources/application-uat.yml b/mall-common/src/main/resources/application-uat.yml index 4e42a7dc..35043550 100644 --- a/mall-common/src/main/resources/application-uat.yml +++ b/mall-common/src/main/resources/application-uat.yml @@ -33,8 +33,10 @@ baidu: app_id: 116444176 ak: qWKt2xbrqXsp2yK35YYXVBNZgrbiCG5v url: https://api.map.baidu.com/geoconv/v2/? -single: # 个推配置 + +getui: # 个推配置 push: - mastersecret: jYnpS1xYhh6GfyZQMlciJ + appid: KXgzOaKSzd5HG3p9IPaVa8 appkey: neXXX9r1Tc7gMxN2PIcHA1 - appId: KXgzOaKSzd5HG3p9IPaVa8 \ No newline at end of file + mastersecret: jYnpS1xYhh6GfyZQMlciJ + domain: https://restapi.getui.com/v2/ \ No newline at end of file diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java index bb67ced0..8afc57a3 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/lakala/controller/mobile/LakalaController.java @@ -10,6 +10,7 @@ package com.suisung.mall.shop.lakala.controller.mobile; import cn.hutool.json.JSONObject; import com.suisung.mall.common.api.CommonResult; +import com.suisung.mall.common.service.GeTuiPushService; import com.suisung.mall.common.service.impl.BaseControllerImpl; import com.suisung.mall.shop.lakala.service.LakalaApiService; import io.swagger.annotations.Api; @@ -32,11 +33,17 @@ public class LakalaController extends BaseControllerImpl { @Resource private LakalaApiService lakalaPayService; + @Resource + private GeTuiPushService geTuiPushService; + @ApiOperation(value = "测试案例", notes = "测试案例") @RequestMapping(value = "/testcase", method = RequestMethod.POST) public Object testcase(@RequestBody JSONObject paramsJSON) { return lakalaPayService.applyLedgerMerEc(paramsJSON.getStr("mchMobile")); // return lakalaPayService.LedgerMerEcDownload(975790666910121984L); + +// geTuiPushService.pushToSingleByCid("f9da7081a7951cff6d7f1d4e2d2f270b", "shop 发消息"); +// return ""; } @ApiOperation(value = "本地文件转base64", notes = "本地文件转base64")