springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java
New file @@ -0,0 +1,76 @@ package com.panzhihua.common.constants; /** * 微信小程序订阅消息常量类 */ public class WxSubscribeConstants { /** * 活动变更通知模板id */ public static final String HDBG_ID = "WkyqgQbrQim4Q68uM4628Tb0FVCXR9JuleRWwOc-UTQ"; /** * 作品点赞通知模板id */ public static final String ZPDZ_ID = "xYpsRZLDO_M36B2WBPgZyBk51J-OEPWPAEA4labsL5I"; /** * 留言回复通知模板id */ public static final String LYHF_ID = "XhTPFPUoHrfZbNiIHO95pf5amYMYAPcB1HiHMKOIMXw"; /** * 新动态发布提醒模板id */ public static final String XDTFB_ID = "cRXVFlIqpqxMpjVvf5s5w8aK_P2run8buCeDxm6_5oA"; /** * 新活动提醒模板id */ public static final String XHDTX_ID = "fW5FkhdBsTrmDIFI10UbMa6pEUuLDyK8so3FAvdGoMQ"; /** * 新的评论提醒模板id */ public static final String PLTX_ID = "12cHm4epIrhDTlUYfGcoBD1Kbj7cv16EyBIYvFjV7BA"; /** * 评论回复通知模板id */ public static final String PLHF_ID = "WvSoXRTpx4JUW4YcvLbnk4xhttjQ_EPQSG2tF5DJ1OU"; /** * 评论点赞通知模板id */ public static final String PLDZ_ID = "7p9Dn0IQ0iCYB2JEm0c5nukc0lY90TKijzUlJjDfYqk"; /** * 活动取消通知模板id */ public static final String HDQX_ID = "K0HeNd4Za4Vh0oaihRbauLL9pNY69en0cCU1nzDRzv0"; /** * 审核状态通知模板id */ public static final String SHZT_ID = "IIEAp-7rmj0_Le_mBMK3X-aTRN7-b-bBdXq-pmJIhHo"; /** * 认证审核通知模板id */ public static final String EZSH_ID = "ZMCHtZn_XR118XnbKabF9DuYG5NKsvCfsr59_gIOAe0"; /** * 调研问卷通知模板id */ public static final String DYWJ_ID = "orfmflVy0RkVT-kIPUk8muikfFqJrK_47OjzM-OVINc"; /** * 奖励发放通知模板id */ public static final String JLFF_ID = "vuGJS9WYb0e_99lcoB8USqJk5emGJftbe-G0PjgEvjU"; /** * 报名成功通知模板id */ public static final String BMCG_ID = "NQbyd_2n-DX2urZVrUkAPYER-J5XY6VqIm6QvaYj0NY"; /** * 活动即将开始通知模板id */ public static final String HDJJKS_ID = "__0i0e8-yfDGW3jv3l-qobcWt23Ec3iZEdJhMV3nHWo"; /** * 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版 */ public static final String MINIPROGRAM_STATE = "trial"; /** * 订阅消息推送url */ public static final String DYXX_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateData.java
New file @@ -0,0 +1,17 @@ package com.panzhihua.common.model.dtos.wx; import lombok.Data; @Data public class TemplateData { private String value; public TemplateData(String value){ this.value = value; } public TemplateData(){ } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateParam.java
New file @@ -0,0 +1,22 @@ package com.panzhihua.common.model.dtos.wx; import lombok.Data; @Data public class TemplateParam { private String key; private String value; public TemplateParam(String key,String value){ this.key=key; this.value=value; } public TemplateParam(){ } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/WxSubscribeDTO.java
New file @@ -0,0 +1,60 @@ package com.panzhihua.common.model.dtos.wx; import com.panzhihua.common.utlis.StringUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @ApiModel("微信订阅消息请求参数") @Data public class WxSubscribeDTO { @ApiModelProperty("用户在小程序的openid") private String touser; @ApiModelProperty("所需下发的订阅模板id") private String template_id; @ApiModelProperty("点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。") private String page; @ApiModelProperty("模板内容,格式形如 { \"key1\": { \"value\": any }, \"key2\": { \"value\": any } }") private Object data; @ApiModelProperty("跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版") private String miniprogram_state; @ApiModelProperty("进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN") private String lang; private List<TemplateParam> templateParamList; public String toJSON() { StringBuffer buffer = new StringBuffer(); buffer.append("{"); buffer.append(String.format("\"touser\":\"%s\"", this.touser)).append(","); buffer.append(String.format("\"template_id\":\"%s\"", this.template_id)).append(","); if(StringUtils.isNotEmpty(this.page)){ buffer.append(String.format("\"page\":\"%s\"", this.page)).append(","); } if(StringUtils.isNotEmpty(this.miniprogram_state)){ buffer.append(String.format("\"miniprogram_state\":\"%s\"", this.miniprogram_state)).append(","); } buffer.append("\"data\":{"); TemplateParam param = null; for (int i = 0; i < this.templateParamList.size(); i++) { param = templateParamList.get(i); // 判断是否追加逗号 if (i < this.templateParamList.size() - 1) { buffer.append(String.format("\"%s\": {\"value\":\"%s\"},", param.getKey(), param.getValue())); } else { buffer.append(String.format("\"%s\": {\"value\":\"%s\"}", param.getKey(), param.getValue())); } } buffer.append("}"); buffer.append("}"); return buffer.toString(); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignVO.java
@@ -36,6 +36,8 @@ private Integer type; @ApiModelProperty("人员主键") private Long userId; @ApiModelProperty("用户openid") private String openid; @ApiModelProperty(value = "分页-当前页数", example = "1") private Long pageNum = 1L; @ApiModelProperty(value = "分页-每页记录数", example = "10") springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -4034,4 +4034,10 @@ @PostMapping("/patrolRecord/rota/import") R listSaveSwRotaExcelVO(@RequestBody List<ComSwRotaExcelVO> list, @RequestParam("communityId") Long communityId); /** * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户 */ @PostMapping("timedTaskActivityNotice") R timedTaskActivityNotice(); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -774,4 +774,12 @@ @GetMapping("getGridsMemberList") R getGridsMemberList(@RequestParam("communityId")Long communityId); /** * 根据用户id查询用户openid * @param userId 用户id * @return openid */ @GetMapping("getUserOpenId") R getUserOpenId(@RequestParam("userId")Long userId); } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
@@ -1,6 +1,9 @@ package com.panzhihua.common.utlis; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.constants.Constants; import com.panzhihua.common.model.dtos.wx.WxSubscribeDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.util.ObjectUtils; @@ -97,6 +100,12 @@ return result.toString(); } public static String wxMessageModeSendUrl(String token, WxSubscribeDTO subscribeDTO) throws Exception { String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN"; String url = tmpurl.replace("ACCESS_TOKEN", token); return HttpClientUtil.httpPost(url, subscribeDTO.toJSON()); } public static String sendSSLPost(String url, String param) springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
@@ -1,7 +1,12 @@ package com.panzhihua.common.utlis; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.panzhihua.common.constants.WxSubscribeConstants; import com.panzhihua.common.model.dtos.wx.TemplateParam; import com.panzhihua.common.model.dtos.wx.WxSubscribeDTO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory; @@ -10,11 +15,15 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j public class WxUtil { //客服消息推送地址 @@ -56,4 +65,263 @@ return HttpClientUtil.httpPost(kf_url+"?access_token="+access_token,content); } /** * 订阅消息推送 * @param accessToken 获取会话token * @return 消息推送结果 */ static void sendSubscribe(String accessToken,WxSubscribeDTO subscribeDTO) throws Exception{ String resultString = HttpUtils.wxMessageModeSendUrl(accessToken,subscribeDTO); JSONObject jsonResult = JSON.parseObject(resultString); if(jsonResult!=null){ log.info("订阅消息推送返回参数" + jsonResult.toJSONString()); int errorCode = jsonResult.getIntValue("errcode"); String errorMessage = jsonResult.getString("errmsg"); if(errorCode==0){ log.info("订阅消息推送成功,openId:" + subscribeDTO.getTouser()); }else{ log.error("订阅消息发送失败,错误码:"+errorCode+",错误信息:"+errorMessage + "用户openid:" + subscribeDTO.getTouser()); } } } /** * 随手拍奖励到账订阅消息推送 * @param openId 用户openid * @param accessToken token会话标识 * @param name 随手拍活动标题 * @param amount 奖励金额 * @param remark 备注说明 */ public static void sendSubscribeJLDZ(String openId, String accessToken, String name, BigDecimal amount,String remark){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.JLFF_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing1",name));//活动名称 paras.add(new TemplateParam("amount3",amount.toString()));//奖励金额 paras.add(new TemplateParam("thing7",remark));//备注说明 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("随手拍奖励到账订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 活动报名成功订阅消息推送 * @param openId 用户openid * @param accessToken token会话标识 * @param name 活动名称 * @param address 活动地址 * @param activityTime 活动时间 * @param signTime 报名时间 */ public static void sendSubscribeSQHD(String openId, String accessToken, String name, String address,String activityTime,String signTime){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.BMCG_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing1",name));//活动名称 paras.add(new TemplateParam("thing2",address));//活动地址 paras.add(new TemplateParam("date3",activityTime));//活动时间 paras.add(new TemplateParam("time8",signTime));//报名时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("活动报名成功订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 新问卷调查订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param name 活动名称 * @param questionnaireName 问卷名称 */ public static void sendSubscribeDYWJ(String openId, String accessToken, String name, String questionnaireName){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.DYWJ_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing1",name));//活动名称 paras.add(new TemplateParam("thing2",questionnaireName));//问卷名称 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("新问卷调查订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 认证审核订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param name 认证内容 * @param applyTime 申请时间 * @param result 审核结果 */ public static void sendSubscribeRZSH(String openId, String accessToken, String name, String applyTime,String result){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.EZSH_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing2",name));//认证内容 paras.add(new TemplateParam("phrase1",result));//审核结果 paras.add(new TemplateParam("date3",applyTime));//申请时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("认证审核订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 随手拍、邻里圈、微心愿、房源审核状态进度通知 * @param openId 用户openid * @param accessToken token会话标识 * @param name 审核项目 * @param applyTime 审核状态 * @param result 审核时间 */ public static void sendSubscribeSHZT(String openId, String accessToken, String name, String applyTime,String result){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.SHZT_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing1",name));//审核项目 paras.add(new TemplateParam("phrase2",result));//审核状态 paras.add(new TemplateParam("time3",applyTime));//审核时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("审核状态订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 社区活动取消通知 * @param openId 用户openid * @param accessToken token会话标识 * @param name 活动名称 * @param time 活动时间 */ public static void sendSubscribeHDQX(String openId, String accessToken, String name, String time){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.HDQX_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing1",name));//活动标题 paras.add(new TemplateParam("date2",time));//活动时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("活动取消订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 留言回复订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param name 回复人名称 * @param time 回复时间 * @param content 回复内容 */ public static void sendSubscribeLYHF(String openId, String accessToken, String name, String time,String content){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.LYHF_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing3",content));//回复内容 paras.add(new TemplateParam("name1",name));//回复者 paras.add(new TemplateParam("date2",time));//回复时间 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 活动变更订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param name 活动名称 * @param changeTime 活动时间变更 * @param changeAddress 活动地点变更 * @param time 活动时间 * @param address 活动地点 */ public static void sendSubscribeHDBG(String openId, String accessToken, String name, String changeTime,String changeAddress,String time,String address){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.HDBG_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing1",name));//活动名称 paras.add(new TemplateParam("time2",changeTime));//活动时间变更 paras.add(new TemplateParam("thing3",changeAddress));//地址变更 paras.add(new TemplateParam("time5",time));//活动时间 paras.add(new TemplateParam("thing6",address));//活动地点 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage()); } } /** * 活动即将开始订阅消息通知 * @param openId 用户openid * @param accessToken token会话标识 * @param name 活动名称 * @param time 活动时间 * @param address 活动地点 * @param num 活动参加人数 */ public static void sendSubscribeHDJJKS(String openId, String accessToken, String name, String time,String address,String num){ WxSubscribeDTO subscribeDTO = new WxSubscribeDTO(); subscribeDTO.setTouser(openId); subscribeDTO.setTemplate_id(WxSubscribeConstants.HDJJKS_ID); List<TemplateParam> paras=new ArrayList<TemplateParam>(); paras.add(new TemplateParam("thing1",name));//活动名称 paras.add(new TemplateParam("date2",time));//活动时间 paras.add(new TemplateParam("number3",num));//参与人数 paras.add(new TemplateParam("thing4",address));//活动地点 subscribeDTO.setTemplateParamList(paras); try { sendSubscribe(accessToken,subscribeDTO); }catch (Exception e){ log.error("活动即将开始订阅消息推送失败,失败原因:" + e.getMessage()); } } public static void main(String[] args) { WxXCXTempSend util = new WxXCXTempSend(); try { // String openId = "oMIR-5S9rpsWAVUUrNKoVDQbn5Mw";//zj的openid String openId = "oMIR-5dWyNyWCCKMl7-kYzvyHOjs";//lyq的openid String accessToken = util.getAppAccessToken(); // sendSubscribeHDJJKS(openId,accessToken,"测试活动即将开始标题","2021-08-04 13:00:00","成都市","50");//活动即将开始 // sendSubscribeHDQX(openId,accessToken,"取消活动测试标题","2021-08-04 13:00:00");//活动取消 // sendSubscribeHDBG(openId,accessToken,"活动名称","2021-08-05","活动变更地址","2021-08-06","活动地址");//活动变更 // sendSubscribeRZSH(openId,accessToken,"用户认证审核通知","2021-08-04","通过");//认证审核 // sendSubscribeJLDZ(openId,accessToken,"随手拍活动DDD",BigDecimal.TEN,"用户参加随手拍活动奖励");//奖励到账 // sendSubscribeLYHF(openId,accessToken,"社区管理员","2021-08-04 11:26:20","勇敢牛牛 不怕困难!");//留言回复 // sendSubscribeSHZT(openId,accessToken,"随手拍审核!!","2021-08-04 11:20:00","通过了");//审核状态 }catch (Exception e){ System.out.println("错误错误!!!"); } } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
@@ -63,7 +63,7 @@ return getAppAccessToken(); } private String getAppAccessToken() throws Exception{ public String getAppAccessToken() throws Exception{ String accessToken = "0"; try { //此处APP_ID APP_SECRET 在微信小程序后端可见 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
@@ -12,6 +12,9 @@ import com.panzhihua.common.model.vos.user.SysUserNoticeVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; @@ -122,29 +125,39 @@ if (!R.isOk(r3)) { Object data = r3.getData(); ComActActivityVO comActActivityVO = JSONObject.parseObject(JSONObject.toJSONString(data), ComActActivityVO.class); R r1 = communityService.listActivitySign(activitySignVO); R r1 = communityService.listActivitySigns(activitySignVO); if (R.isOk(r1)) { List<ActivitySignVO> activitySignVOS = JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), ActivitySignVO.class); if (!ObjectUtils.isEmpty(activitySignVOS)) { activitySignVOS.forEach(activitySignVO1 -> { Long aLong = activitySignVO1.getId(); int isVolunteer = activitySignVO1.getIsVolunteer().intValue(); SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO(); sysUserNoticeVO.setUserId(aLong); sysUserNoticeVO.setType(1); sysUserNoticeVO.setTitle("活动因故取消"); sysUserNoticeVO.setBusinessType(1); sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName()); sysUserNoticeVO.setBusinessContent(String.format("取消原因%s", comActActivityVO.getCancelReason())); sysUserNoticeVO.setBusinessId(id); sysUserNoticeVO.setStatus(0); sysUserNoticeVO.setBusinessStatus(1); sysUserNoticeVO.setActivityType(1 == isVolunteer ? 1 : 2); R r2 = userService.addNotice(sysUserNoticeVO); if (R.isOk(r2)) { log.info("新增取消社区活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } }); try { WxXCXTempSend util = new WxXCXTempSend(); String accessToken = util.getAppAccessToken(); //遍历参与活动人员列表 activitySignVOS.forEach(activitySignVO1 -> { Long aLong = activitySignVO1.getId(); int isVolunteer = activitySignVO1.getIsVolunteer().intValue(); SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO(); sysUserNoticeVO.setUserId(aLong); sysUserNoticeVO.setType(1); sysUserNoticeVO.setTitle("活动因故取消"); sysUserNoticeVO.setBusinessType(1); sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName()); sysUserNoticeVO.setBusinessContent(String.format("取消原因%s", comActActivityVO.getCancelReason())); sysUserNoticeVO.setBusinessId(id); sysUserNoticeVO.setStatus(0); sysUserNoticeVO.setBusinessStatus(1); sysUserNoticeVO.setActivityType(1 == isVolunteer ? 1 : 2); R r2 = userService.addNotice(sysUserNoticeVO); if (R.isOk(r2)) { log.info("新增取消社区活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } //取消社区活动推送订阅消息给用户 WxUtil.sendSubscribeHDQX(activitySignVO1.getOpenid(),accessToken,comActActivityVO.getActivityName(), DateUtils.format(comActActivityVO.getBeginAt(),DateUtils.ymdhms_format)); }); }catch (Exception e){ log.error("新增取消社区活动通知失败,错误原因:" + e.getMessage()); } } } } @@ -297,6 +310,8 @@ R r1 = communityService.detailMicroWish(id, userId); Object data = r1.getData(); ComActMicroWishVO comActMicroWishVO1 = JSONObject.parseObject(JSONObject.toJSONString(data), ComActMicroWishVO.class); //查询用户openid R userResult = userService.getUserOpenId(id); if (R.isOk(r1)) { SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO(); sysUserNoticeVO.setUserId(comActMicroWishVO1.getSponsorId()); @@ -313,6 +328,16 @@ R r2 = userService.addNotice(sysUserNoticeVO); if (R.isOk(r2)) { log.info("新增微心愿未通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } if(R.isOk(userResult)){ String openid = userResult.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeSHZT(openid,util.getAppAccessToken(),"微心愿审核失败" , DateUtils.format(comActMicroWishVO1.getExamineAt(),DateUtils.ymdhms_format),comActMicroWishVO1.getRejectReason()); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } else if (type.intValue() == 5) { sysUserNoticeVO.setTitle("微心愿已完成"); @@ -343,6 +368,16 @@ if(type.equals(1)){//审核通过给用户增加积分 communityService.addIntegralTradeAdmin(new AddComActIntegralUserDTO(id,AddComActIntegralUserDTO.integralType.fbwxy ,this.getCommunityId(),comActMicroWishVO1.getSponsorId())); if(R.isOk(userResult)){ String openid = userResult.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeSHZT(openid,util.getAppAccessToken(),"微心愿审核" , DateUtils.format(comActMicroWishVO1.getExamineAt(),DateUtils.ymdhms_format),"审核通过"); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } } } @@ -386,6 +421,8 @@ sysUserNoticeVO.setBusinessTime(comActEasyPhotoVO1.getExamineAt()); sysUserNoticeVO.setBusinessId(id); sysUserNoticeVO.setStatus(0); //查询用户openid R userResult = userService.getUserOpenId(comActEasyPhotoVO1.getSponsorId()); if (type.intValue() == 2) { sysUserNoticeVO.setBusinessTitle(comActEasyPhotoVO1.getDetail()); sysUserNoticeVO.setTitle("随手拍未通过审核"); @@ -394,6 +431,17 @@ R r2 = userService.addNotice(sysUserNoticeVO); if (R.isOk(r2)) { log.info("新增随手拍未通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } if(R.isOk(userResult)){ String openid = userResult.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeSHZT(openid,util.getAppAccessToken(),"随手拍审核失败" , DateUtils.format(comActEasyPhotoVO1.getExamineAt(),DateUtils.ymdhms_format),comActEasyPhotoVO.getRejectReason()); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } else if (type.intValue() == 3) { sysUserNoticeVO.setTitle("随手拍有反馈"); @@ -409,6 +457,18 @@ if(type.equals(1)){//审核通过给用户增加积分 communityService.addIntegralTradeAdmin(new AddComActIntegralUserDTO(id,AddComActIntegralUserDTO.integralType.fbssp ,this.getCommunityId(),comActEasyPhotoVO1.getSponsorId())); //审核通过发送订阅消息给用户 if(R.isOk(userResult)){ String openid = userResult.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeSHZT(openid,util.getAppAccessToken(),"随手拍审核" , DateUtils.format(comActEasyPhotoVO1.getExamineAt(),DateUtils.ymdhms_format),"审核通过"); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } } } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityManagerApi.java
@@ -20,8 +20,7 @@ import com.panzhihua.common.model.vos.user.SysUserNoticeVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.FileUtil; import com.panzhihua.common.utlis.SFTPUtil; import com.panzhihua.common.utlis.*; import com.panzhihua.common.validated.AddGroup; import com.panzhihua.community_backstage.easyexcel.UploadEexcelUserDTOListener; import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler; @@ -407,6 +406,9 @@ sysUserNoticeVO.setUserId(comMngVolunteerMngVO1.getSubmitUserId()); sysUserNoticeVO.setBusinessTime(date); sysUserNoticeVO.setStatus(0); //查询用户openid R userResult = userService.getUserOpenId(comMngVolunteerMngVO1.getSubmitUserId()); if (state==2) {//通过 // 修改用户志愿者审核状态 //String phone = comMngVolunteerMngVO1.getPhone(); @@ -424,6 +426,17 @@ if (R.isOk(r2)) { log.info("新增志愿者申请通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } if(R.isOk(userResult)){ String openid = userResult.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeRZSH(openid,util.getAppAccessToken(),"用户志愿者审核" , DateUtils.format(comMngVolunteerMngVO1.getCreateAt(),DateUtils.ymdhms_format),"审核通过"); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } }else if(state==3){ //驳回 sysUserNoticeVO.setTitle("志愿者申请未通过"); sysUserNoticeVO.setBusinessContent(String.format("驳回原因:%s",comMngVolunteerMngVO1.getRejectReson())); @@ -432,6 +445,17 @@ if (R.isOk(r2)) { log.info("新增志愿者申请未通过通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } if(R.isOk(userResult)){ String openid = userResult.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeRZSH(openid,util.getAppAccessToken(),"用户志愿者审核失败" , DateUtils.format(comMngVolunteerMngVO1.getCreateAt(),DateUtils.ymdhms_format),comMngVolunteerMngVO1.getRejectReson()); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } } return r; springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -25,7 +25,10 @@ import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.SFTPUtil; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; import com.panzhihua.common.validated.AddGroup; import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler; import com.panzhihua.community_backstage.listen.PartyBuildingMemberExcelListen; @@ -307,7 +310,7 @@ if (R.isOk(r)) { R r1 = partyBuildingService.selectAllPartyBuildingActivityMembers(id); if (R.isOk(r1)) { List<Long> userIds = (List<Long>) r1.getData(); List<Long> userIds = JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), Long.class); userIds.forEach(aLong -> { SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO(); sysUserNoticeVO.setUserId(aLong); @@ -591,6 +594,17 @@ log.info("新增党员认证已被审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } } R r1 = userService.getUserOpenId(userId); if(R.isOk(r1)){ String openid = r1.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeRZSH(openid,util.getAppAccessToken(),"用户党员认证", DateUtils.format(vo1.getCreateAt(),DateUtils.ymdhms_format),"审核通过"); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } return r; } else if (3 == partyBuildingMemberVO.getAuditResult() && R.isOk(updated)) { R r = userService.updateUserNotPartymember(userIdcard); @@ -609,6 +623,17 @@ if (R.isOk(r1)) { log.info("新增党员认证已被审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } R r2 = userService.getUserOpenId(userId); if(R.isOk(r2)){ String openid = r2.getData().toString(); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeRZSH(openid,util.getAppAccessToken(),"用户党员认证失败", DateUtils.format(vo1.getCreateAt(),DateUtils.ymdhms_format),partyBuildingMemberVO.getRefuseReason()); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } return r; } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -20,6 +20,7 @@ import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.*; import com.panzhihua.service_community.dao.ComActActSignDAO; import com.panzhihua.service_community.dao.ComEldersAuthHistoryRecordMapper; import com.panzhihua.service_community.dao.ComMngPopulationDAO; import com.panzhihua.service_community.model.dos.*; @@ -34,10 +35,7 @@ import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.*; import java.util.stream.Collectors; /** @@ -82,6 +80,8 @@ private EldersAuthService eldersAuthService; @Resource public ComMngPopulationDAO comMngPopulationDAO; @Resource private ComActActSignDAO comActActSignDAO; @Resource public ComEldersAuthUserService comEldersAuthUserService; @Resource @@ -1704,8 +1704,21 @@ if (R.isOk(r1)) { log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); } } //用户高龄认证反馈,推送订阅消息给用户 Map<String,String> map = comActActSignDAO.getUserOpenId(eldersAuthDO.getSumitUserId()); if(map != null){ String openid = map.get("openid"); try { WxXCXTempSend util = new WxXCXTempSend(); String accessToken = util.getAppAccessToken(); WxUtil.sendSubscribeRZSH(openid,accessToken,"高龄认证" ,DateUtils.format(eldersAuthDO.getCreateAt(),DateUtils.ymdhms_format),eldersAuthFeedbackAddDTO.getFeedBack()); }catch (Exception e){ log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage()); } } } return addR; } @@ -1790,5 +1803,13 @@ return comActEasyPhotoService.readUserReward(userId,communityId); } /** * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户 */ @PostMapping("timedTaskActivityNotice") public R timedTaskActivityNotice(){ return comActActivityService.timedTaskActivityNotice(); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActSignDAO.java
@@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.Select; import java.util.List; import java.util.Map; /** * @program: springcloud_k8s_panzhihuazhihuishequ @@ -67,6 +68,7 @@ "u.nick_name, " + "case WHEN u.is_partymember = 1 THEN '党员' WHEN a.is_volunteer = 1 THEN '志愿者' ELSE '居民' END identity, " + "u.phone, " + "u.openid, " + "a.create_at, " + "a.is_volunteer " + "FROM " + @@ -120,4 +122,7 @@ " </if> " + " </script>") IPage<ActActivityPeopleListVO> getActActivityPeopleList(Page page,@Param("activityPeopleListDTO") ScreenActActivityPeopleListDTO activityPeopleListDTO); @Select("select openid from sys_user where user_id = #{userId}") Map<String,String> getUserOpenId(@Param("userId")Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java
@@ -121,4 +121,9 @@ R getActActivityPeopleList(ScreenActActivityPeopleListDTO activityPeopleListDTO); /** * 定时任务检测即将开始的社区活动,并始用订阅消息通知用户 */ R timedTaskActivityNotice(); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -16,6 +16,8 @@ import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; import com.panzhihua.service_community.dao.ComActActSignDAO; import com.panzhihua.service_community.dao.ComActActivityDAO; import com.panzhihua.service_community.dao.ComActDiscussOptionUserDAO; @@ -24,15 +26,13 @@ import com.panzhihua.service_community.service.ComActActivityService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.time.DateUtils; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -94,7 +94,34 @@ */ @Override public R putActivity(ComActActivityVO comActActivityVO) { ComActActivityDO comActActivityDO=new ComActActivityDO(); ComActActivityDO comActActivityDO = this.comActActivityDAO.selectById(comActActivityVO.getId()); if(comActActivityDO == null){ return R.fail("未找到社区活动"); } if(!comActActivityDO.getActivityAddr().equals(comActActivityVO.getActivityAddr()) || !comActActivityDO.getBeginAt().equals(comActActivityVO.getBeginAt())){ //修改活动开始时间与活动地点需要推送订阅消息给用户 ActivitySignVO activitySignVO = new ActivitySignVO(); activitySignVO.setId(comActActivityVO.getId()); List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySigns(activitySignVO); if(!activitySignVOS.isEmpty()){ try { WxXCXTempSend util = new WxXCXTempSend(); String accessToken = util.getAppAccessToken(); activitySignVOS.forEach(activitySignVO1 -> { //变更社区活动推送订阅消息给用户 WxUtil.sendSubscribeHDBG(activitySignVO1.getOpenid(),accessToken,comActActivityVO.getActivityName() , com.panzhihua.common.utlis.DateUtils.format(comActActivityDO.getBeginAt() , com.panzhihua.common.utlis.DateUtils.ymdhms_format),comActActivityDO.getActivityAddr(), com.panzhihua.common.utlis.DateUtils.format(comActActivityVO.getBeginAt() , com.panzhihua.common.utlis.DateUtils.ymdhms_format),comActActivityVO.getActivityAddr()); }); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } BeanUtils.copyProperties(comActActivityVO,comActActivityDO); //结束时间大于当前时间则设置为“进行中” @@ -500,14 +527,43 @@ return dates; } public static void main(String[] args) { List<Date> dates=new ArrayList<>(); Date date=new Date(); for(int i=6;i>=0;i--){ Date date1= DateUtils.addDays(date,-i); dates.add(date1); /** * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户 */ @Override public R timedTaskActivityNotice(){ //查询所有即将开始的活动 List<ComActActivityDO> actActivityList = comActActivityDAO.selectList(new QueryWrapper<ComActActivityDO>().lambda() .le(ComActActivityDO::getBeginAt, DateUtils.addDays(new Date(),1))); if(!actActivityList.isEmpty()){ WxXCXTempSend util = new WxXCXTempSend(); try { String accessToken = util.getAppAccessToken(); actActivityList.forEach(actActivity -> { //查询报名活动人员列表 List<ComActActSignDO> actSignList = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>().lambda() .eq(ComActActSignDO::getActivityId,actActivity.getId())); actSignList.forEach(actSign -> { //查询用户openId Map<String,String> map = comActActSignDAO.getUserOpenId(actSign.getUserId()); if(map != null){ String openid = map.get("openid"); //推送消息 WxUtil.sendSubscribeHDJJKS(openid,accessToken,actActivity.getActivityName() , com.panzhihua.common.utlis.DateUtils.format(actActivity.getBeginAt() ,com.panzhihua.common.utlis.DateUtils.ymdhms_format),actActivity.getActivityAddr() ,actSignList.size()+""); } }); }); }catch (Exception e){ log.error("推送失败,错误原因:" + e.getMessage()); } } System.out.println(dates); return R.ok(); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMessageServiceImpl.java
@@ -2,9 +2,14 @@ import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.WxXCXTempSend; import com.panzhihua.service_community.dao.ComActActSignDAO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; @@ -35,6 +40,8 @@ private ComActMessageDAO comActMessageDAO; @Resource private ComActMessageBackDAO comActMessageBackDAO; @Resource private ComActActSignDAO comActActSignDAO; @Override public R addMessage(ComActMessageVO comActMessageVO) { @@ -186,6 +193,19 @@ ComActMessageDO selectById = comActMessageDAO.selectById(comActMessageBackDO.getMsgId()); selectById.setStatus(2); comActMessageDAO.updateById(selectById); //回复成功给用户推送订阅消息 Map<String,String> map = comActActSignDAO.getUserOpenId(selectById.getUserId()); if(map != null){ String openid = map.get("openid"); WxXCXTempSend util = new WxXCXTempSend(); try { WxUtil.sendSubscribeLYHF(openid,util.getAppAccessToken(),comActMessageBackVO.getUserName() , DateUtils.format(comActMessageBackVO.getCreateAt(),DateUtils.ymdhms_format),comActMessageBackVO.getMsgContent()); }catch (Exception e){ log.error("消息推送失败,失败原因:" + e.getMessage()); } } return R.ok(); } return R.fail(); springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
@@ -119,6 +119,7 @@ comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.DCL.getCode())); } BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwDangerReportDO); comSwDangerReportDO.setDagerDescription(comSwPatrolRecordAddDTO.getDangerDescription()); comSwDangerReportDO.setPersonName(comSwPatrolRecordAddDTO.getDPersonName()); comSwDangerReportDO.setPersonPhone(comSwPatrolRecordAddDTO.getDPersonPhone()); comSwDangerReportDAO.insert(comSwDangerReportDO); springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -988,4 +988,14 @@ return userService.getGridsMemberList(communityId); } /** * 根据用户id查询用户openid * @param userId 用户id * @return openid */ @GetMapping("getUserOpenId") public R getUserOpenId(@RequestParam("userId")Long userId) { return userService.getUserOpenId(userId); } } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -473,4 +473,11 @@ R getGridsMemberList(Long communityId); /** * 根据用户id查询用户openid * @param userId 用户id * @return openid */ R getUserOpenId(Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -24,10 +24,7 @@ import com.panzhihua.common.model.vos.user.*; //import com.panzhihua.common.service.grid.GridService; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.common.utlis.IdCard; import com.panzhihua.common.utlis.RealNameUtil; import com.panzhihua.common.utlis.SensitiveUtil; import com.panzhihua.common.utlis.Snowflake; import com.panzhihua.common.utlis.*; import com.panzhihua.service_user.dao.*; import com.panzhihua.service_user.model.dos.*; import com.panzhihua.service_user.model.dtos.DataKanbanDTO; @@ -175,7 +172,7 @@ userDao.updateServiceTeam(purePhoneNumber, purePhoneNumber); int i = userDao.updateById(sysUserDO); if (i > 0) { return R.ok(); return R.ok(purePhoneNumber); } else { return R.fail("维护微信手机号失败"); } @@ -663,6 +660,19 @@ userDao.updateById(sysUserDO); //修改审核绑定的userId userDao.updateComPbMemberUserId(idCard,sysUserDO.getUserId()); } SysUserDO user = userDao.selectById(loginUserInfoVO.getUserId()); if(user != null){ //实名认证成功推送订阅消息给用户 try { WxXCXTempSend util = new WxXCXTempSend(); String accessToken = util.getAppAccessToken(); //用户实名认证推送消息 WxUtil.sendSubscribeRZSH(user.getOpenid(),accessToken,"用户实名认证", com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(),"审核通过"); }catch (Exception e){ log.error("推送用户订阅消息失败,失败原因:" + e.getMessage()); } } return R.ok(); } @@ -2219,4 +2229,18 @@ public R getGridsMemberList(Long communityId){ return R.ok(this.userDao.getGridsMemberList(communityId)); } /** * 根据用户id查询用户openid * @param userId 用户id * @return openid */ @Override public R getUserOpenId(Long userId){ SysUserDO userDO = this.userDao.selectById(userId); if(userDO != null){ return R.ok(userDO.getOpenid()); } return R.fail(); } } springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
@@ -156,4 +156,15 @@ log.info("执行结果【{}】",r.toString()); return ReturnT.SUCCESS; } /** * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户 */ @XxlJob("timedTaskActivityNoticeJobHandler") public ReturnT<String> timedTaskActivityNoticeJobHandler(String param){ log.info("定时任务检测即将开始的社区活动,并使用订阅消息通知用户"); R r=communityService.timedTaskDynStatus(); log.info("执行结果【{}】",r.toString()); return ReturnT.SUCCESS; } }