19 changed files with 493 additions and 64 deletions
@ -0,0 +1,169 @@ |
|||||
|
package com.ccsens.tall.util; |
||||
|
|
||||
|
import cn.hutool.core.collection.CollectionUtil; |
||||
|
import cn.hutool.core.date.DateUtil; |
||||
|
import cn.hutool.core.util.StrUtil; |
||||
|
import com.ccsens.util.WechatUtil; |
||||
|
import com.ccsens.util.wx.WxGzhUtil; |
||||
|
import com.ccsens.util.wx.WxTemplateMessage; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* @description: 微信模板 |
||||
|
* @author: whj |
||||
|
* @time: 2020/6/9 11:07 |
||||
|
*/ |
||||
|
public class WxTemplateUtil { |
||||
|
|
||||
|
/** |
||||
|
* 设置小程序跳转 |
||||
|
* @param projectId |
||||
|
* @return |
||||
|
*/ |
||||
|
private static WxTemplateMessage getWxTemplateMessage(Long projectId) { |
||||
|
String url = String.format(WechatUtil.PROJECT_URL, projectId); |
||||
|
WxTemplateMessage.MiniProgram miniProgram = new WxTemplateMessage.MiniProgram(WechatUtil.appid,url); |
||||
|
|
||||
|
WxTemplateMessage message = new WxTemplateMessage(); |
||||
|
message.setMiniprogram(miniProgram); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 完成任务提醒(备注是在切面处统一加的) |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @param operation |
||||
|
* @param taskName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getFinishTask(Long projectId, String userName, String operation, String taskName){ |
||||
|
|
||||
|
WxTemplateMessage message = getWxTemplateMessage(projectId); |
||||
|
message.setTemplate_id(WxGzhUtil.Template.TASK_FINISH.templateId); |
||||
|
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); |
||||
|
data.setFirst(new WxTemplateMessage.TemplateSettings(userName + operation + taskName)); |
||||
|
data.setKeyword1(new WxTemplateMessage.TemplateSettings(taskName)); |
||||
|
data.setKeyword2(new WxTemplateMessage.TemplateSettings(DateUtil.now())); |
||||
|
message.setData(data); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 添加任务(备注是在切面处统一加的) |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @param taskName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getAddTask(Long projectId, String userName, String taskName) { |
||||
|
WxTemplateMessage message = getWxTemplateMessage(projectId); |
||||
|
message.setTemplate_id(WxGzhUtil.Template.TASK_ADD.templateId); |
||||
|
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); |
||||
|
data.setFirst(new WxTemplateMessage.TemplateSettings(StrUtil.format("{}添加了{}任务", userName, taskName))); |
||||
|
data.setKeyword1(new WxTemplateMessage.TemplateSettings(taskName)); |
||||
|
data.setKeyword2(new WxTemplateMessage.TemplateSettings(DateUtil.now())); |
||||
|
message.setData(data); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除任务 |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @param taskName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getDeleteTask(Long projectId, String userName, String taskName) { |
||||
|
WxTemplateMessage message = getWxTemplateMessage(projectId); |
||||
|
message.setTemplate_id(WxGzhUtil.Template.TASK_DELETE.templateId); |
||||
|
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); |
||||
|
data.setFirst(new WxTemplateMessage.TemplateSettings(StrUtil.format("{}删除了{}任务", userName, taskName))); |
||||
|
data.setKeyword1(new WxTemplateMessage.TemplateSettings(taskName)); |
||||
|
data.setKeyword2(new WxTemplateMessage.TemplateSettings(DateUtil.now())); |
||||
|
data.setKeyword3(new WxTemplateMessage.TemplateSettings("")); |
||||
|
message.setData(data); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改任务 |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @param taskName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getChangeTask(Long projectId, String userName, String taskName) { |
||||
|
WxTemplateMessage message = getAddTask(projectId, userName, taskName); |
||||
|
message.getData().setFirst(new WxTemplateMessage.TemplateSettings(StrUtil.format("{}修改了{}任务", userName, taskName))); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 上传交付物 |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @param deliverName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getAddDeliver(Long projectId, String userName, String deliverName) { |
||||
|
WxTemplateMessage message = getWxTemplateMessage(projectId); |
||||
|
message.setTemplate_id(WxGzhUtil.Template.TASK_PROGRESS.templateId); |
||||
|
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); |
||||
|
data.setFirst(new WxTemplateMessage.TemplateSettings("")); |
||||
|
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "上传了" + deliverName)); |
||||
|
data.setKeyword2(new WxTemplateMessage.TemplateSettings("上传交付物")); |
||||
|
message.setData(data); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除交付物 |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @param deliverName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getDeleteDeliver(Long projectId, String userName, String deliverName) { |
||||
|
WxTemplateMessage message = getAddDeliver(projectId, userName, deliverName); |
||||
|
WxTemplateMessage.TemplateData data = message.getData(); |
||||
|
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "删除了" + deliverName)); |
||||
|
data.setKeyword2(new WxTemplateMessage.TemplateSettings("删除交付物")); |
||||
|
message.setData(data); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 检查交付物 |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @param deliverName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getCheckDeliver(Long projectId, String userName, String deliverName) { |
||||
|
WxTemplateMessage message = getAddDeliver(projectId, userName, deliverName); |
||||
|
WxTemplateMessage.TemplateData data = message.getData(); |
||||
|
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName + "检查了" + deliverName)); |
||||
|
data.setKeyword2(new WxTemplateMessage.TemplateSettings("检查交付物")); |
||||
|
message.setData(data); |
||||
|
return message; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 发表评论 |
||||
|
* @param projectId |
||||
|
* @param userName |
||||
|
* @return |
||||
|
*/ |
||||
|
public static WxTemplateMessage getAddComment(Long projectId, String userName) { |
||||
|
WxTemplateMessage message = getWxTemplateMessage(projectId); |
||||
|
message.setTemplate_id(WxGzhUtil.Template.COMMENT.templateId); |
||||
|
WxTemplateMessage.TemplateData data = new WxTemplateMessage.TemplateData(); |
||||
|
data.setFirst(new WxTemplateMessage.TemplateSettings(userName + "进行了点评")); |
||||
|
data.setKeyword1(new WxTemplateMessage.TemplateSettings(userName)); |
||||
|
data.setKeyword2(new WxTemplateMessage.TemplateSettings(DateUtil.now())); |
||||
|
message.setData(data); |
||||
|
return message; |
||||
|
} |
||||
|
} |
@ -0,0 +1,70 @@ |
|||||
|
package com.ccsens.util.wx; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
import lombok.Getter; |
||||
|
import lombok.Setter; |
||||
|
|
||||
|
import javax.validation.constraints.NotNull; |
||||
|
|
||||
|
/** |
||||
|
* @description: |
||||
|
* @author: whj |
||||
|
* @time: 2020/6/9 9:59 |
||||
|
*/ |
||||
|
@ApiModel("微信模板消息") |
||||
|
@Data |
||||
|
public class WxTemplateMessage { |
||||
|
@NotNull |
||||
|
@ApiModelProperty("接收者openid") |
||||
|
private String touser; |
||||
|
@NotNull |
||||
|
@ApiModelProperty("模板ID") |
||||
|
private String template_id; |
||||
|
@ApiModelProperty("模板跳转链接(海外帐号没有跳转能力)") |
||||
|
private String url; |
||||
|
@ApiModelProperty("小程序") |
||||
|
private MiniProgram miniprogram; |
||||
|
@ApiModelProperty("模板数据") |
||||
|
private TemplateData data ; |
||||
|
|
||||
|
@ApiModel("跳转小程序") |
||||
|
@Data |
||||
|
public static class MiniProgram{ |
||||
|
@ApiModelProperty("所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)") |
||||
|
private String appid; |
||||
|
@ApiModelProperty("所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),要求该小程序已发布,暂不支持小游戏") |
||||
|
private String pagepath; |
||||
|
|
||||
|
public MiniProgram(String appid, String pagepath) { |
||||
|
this.appid = appid; |
||||
|
this.pagepath = pagepath; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Data |
||||
|
@ApiModel("模板数据") |
||||
|
public static class TemplateData{ |
||||
|
private TemplateSettings first; |
||||
|
private TemplateSettings keyword1; |
||||
|
private TemplateSettings keyword2; |
||||
|
private TemplateSettings keyword3; |
||||
|
private TemplateSettings remark; |
||||
|
} |
||||
|
|
||||
|
@Getter @Setter |
||||
|
@ApiModel("模板参数配置") |
||||
|
public static class TemplateSettings { |
||||
|
@ApiModelProperty("模板值") |
||||
|
private String value; |
||||
|
@ApiModelProperty("模板内容字体颜色,不填默认为黑色") |
||||
|
private String color; |
||||
|
public TemplateSettings(){} |
||||
|
public TemplateSettings(String value) { |
||||
|
this.value = value; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
Loading…
Reference in new issue