88 changed files with 4719 additions and 9 deletions
@ -0,0 +1,126 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import lombok.Data; |
|||
|
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpMsgSendRecordDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 所属端类型 居民端:resi 工作端:work |
|||
*/ |
|||
private String clientType; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* 行为类型(存title字段的中间值) 入组申请、党员认证等 |
|||
*/ |
|||
private String behaviorType; |
|||
|
|||
/** |
|||
* 消息标题 消息标题 |
|||
*/ |
|||
private String title; |
|||
|
|||
/** |
|||
* 消息内容 消息内容 |
|||
*/ |
|||
private String messageContent; |
|||
|
|||
/** |
|||
* 消息时间 消息时间 |
|||
*/ |
|||
private Date messageTime; |
|||
|
|||
/** |
|||
* 发送结果(成功:success 失败:error) |
|||
*/ |
|||
private String result; |
|||
|
|||
/** |
|||
* 发送失败的原因,成功可以不记录 |
|||
*/ |
|||
private String reason; |
|||
|
|||
/** |
|||
* 删除标识 |
|||
*/ |
|||
private Integer delFlag; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,101 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import lombok.Data; |
|||
|
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpResiUserSubscribeDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
/** |
|||
* 可用推送次数 可用推送次数 |
|||
*/ |
|||
private Integer count; |
|||
|
|||
/** |
|||
* 删除标识 |
|||
*/ |
|||
private Integer delFlag; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,106 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import lombok.Data; |
|||
|
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpTemplateMsgSubscribeStatusDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 所属端类型 居民端:resi 工作端:work |
|||
*/ |
|||
private String clientType; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* 是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String alwaysVisit; |
|||
|
|||
/** |
|||
* 订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String subscribeStatus; |
|||
|
|||
/** |
|||
* wx是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String wxAlwaysVisit; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
/** |
|||
* 删除标识 |
|||
*/ |
|||
private Integer delFlag; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,106 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import lombok.Data; |
|||
|
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpUserSubscribeRecordDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* 行为类型(存title字段的中间值) 入组申请、党员认证等 |
|||
*/ |
|||
private String behaviorType; |
|||
|
|||
/** |
|||
* wx是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String wxAlwaysVisit; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
/** |
|||
* 删除标识 |
|||
*/ |
|||
private Integer delFlag; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,101 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dto; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import lombok.Data; |
|||
|
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpWorkUserSubscribeDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
/** |
|||
* 可用推送次数 可用推送次数 |
|||
*/ |
|||
private Integer count; |
|||
|
|||
/** |
|||
* 删除标识 |
|||
*/ |
|||
private Integer delFlag; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
} |
@ -0,0 +1,31 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description 获取客户小程序模板列表-接口入参 |
|||
* @Author sun |
|||
*/ |
|||
@Data |
|||
public class TemplateListFormDTO implements Serializable { |
|||
|
|||
/** |
|||
* 客户Id |
|||
*/ |
|||
@NotBlank(message="客户Id不能为空", groups = {TemplateListFormDTO.AddUserInternalGroup.class}) |
|||
private String customerId; |
|||
/** |
|||
* 小程序Id |
|||
*/ |
|||
@NotBlank(message="小程序appId不能为空", groups = {TemplateListFormDTO.AddUserInternalGroup.class}) |
|||
private String appId; |
|||
/** |
|||
* 模板类型(站内信提醒) |
|||
*/ |
|||
private String templateType; |
|||
public interface AddUserInternalGroup {} |
|||
} |
|||
|
@ -0,0 +1,24 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
@Data |
|||
public class WxMsgAuthInfoFormDTO { |
|||
|
|||
public interface SaveSysAuthInfoGroup {} |
|||
|
|||
@NotBlank(message = "客户id不能为空", groups = { SaveSysAuthInfoGroup.class }) |
|||
private String customerId; |
|||
|
|||
@NotBlank(message = "客户端类型不能为空", groups = { SaveSysAuthInfoGroup.class }) |
|||
private String clientType; |
|||
|
|||
@NotBlank(message = "是否总是字段不能为空", groups = { SaveSysAuthInfoGroup.class }) |
|||
private String alwaysVisit; |
|||
|
|||
@NotBlank(message = "是否去订阅字段不能为空", groups = { SaveSysAuthInfoGroup.class }) |
|||
private String subscribeStatus; |
|||
|
|||
} |
@ -0,0 +1,51 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.alibaba.fastjson.annotation.JSONField; |
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* @description: 微信订阅消息FormDTO |
|||
* @author: liushaowen |
|||
* @date: 2020/10/21 14:29 |
|||
*/ |
|||
@Data |
|||
public class WxSubscribeMessageFormDTO implements Serializable { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户id |
|||
*/ |
|||
@NotBlank(message = "客户id不能为空") |
|||
private String customerId; |
|||
/** |
|||
* 客户端类型 居民端:resi 工作端:work |
|||
*/ |
|||
@NotBlank(message = "客户端类型不能为空") |
|||
private String clientType; |
|||
|
|||
/** |
|||
* 接收者(用户)的 userId |
|||
*/ |
|||
@NotBlank(message = "接收用户id不能为空") |
|||
private String userId; |
|||
|
|||
/** |
|||
* 行为类型(存title字段的中间值) 入组申请、党员认证等 |
|||
*/ |
|||
@NotBlank(message = "行为类型不能为空") |
|||
private String behaviorType; |
|||
|
|||
/** |
|||
* 消息内容 |
|||
*/ |
|||
@NotBlank(message = "消息内容不能为空") |
|||
private String messageContent; |
|||
|
|||
} |
@ -0,0 +1,41 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
public class WxMsgAuthInfoResultDTO { |
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 所属端类型 居民端:resi 工作端:work |
|||
*/ |
|||
private String clientType; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* 是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String alwaysVisit; |
|||
|
|||
/** |
|||
* 订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String subscribeStatus; |
|||
|
|||
/** |
|||
* wx是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String wxAlwaysVisit; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
} |
@ -0,0 +1,61 @@ |
|||
package com.epmet.constant; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @description: 微信订阅消息常量 |
|||
* @author: liushaowen |
|||
* @date: 2020/10/21 17:45 |
|||
*/ |
|||
|
|||
public interface WxmpMessageConstant { |
|||
String SEND_MESSAGE = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="; |
|||
|
|||
String ERR_CODE = "errcode"; |
|||
|
|||
String ERR_MSG = "errmsg"; |
|||
|
|||
int USER_REFUSED = 43101; |
|||
|
|||
String AUTHORIZER_ACCESS_TOKEN = "authorizerAccessToken"; |
|||
|
|||
String RESI = "resi"; |
|||
|
|||
String WORK = "work"; |
|||
|
|||
String ACCESS_TOKEN = "access_token"; |
|||
|
|||
String TOUSER = "touser"; |
|||
|
|||
String TEMPLATE_ID = "template_id"; |
|||
|
|||
String PAGE = "page"; |
|||
|
|||
String TITLE = "title"; |
|||
|
|||
int TITLE_LIMIT = 20; |
|||
|
|||
String MESSAGE_CONTENT = "message_content"; |
|||
|
|||
int MESSAGE_CONTENT_LIMIT = 20; |
|||
|
|||
String MESSAGE_TIME = "message_time"; |
|||
|
|||
String DATA = "data"; |
|||
|
|||
String MINIPROGRAM_STATE = "miniprogram_state"; |
|||
|
|||
String SUCCESS = "success"; |
|||
|
|||
String ERROR = "error"; |
|||
|
|||
String PAGE_RESI = ""; |
|||
|
|||
String PAGE_WORK = ""; |
|||
|
|||
String STATE_DEV = "developer"; |
|||
|
|||
String STATE_TEST = "trial"; |
|||
|
|||
} |
@ -0,0 +1,92 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.security.user.LoginUserUtil; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.dto.form.GetTemplateListFormDTO; |
|||
import com.epmet.dto.form.WxMsgAuthInfoFormDTO; |
|||
import com.epmet.dto.form.WxSubscribeMessageFormDTO; |
|||
import com.epmet.dto.result.GetTemplateListResultDTO; |
|||
import com.epmet.service.WxmpMessageService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
/** |
|||
* 微信消息订阅controller |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("wxmpmessage") |
|||
public class WxmpMessageController { |
|||
|
|||
@Autowired |
|||
private WxmpMessageService wxmpMessageService; |
|||
|
|||
@Autowired |
|||
private LoginUserUtil loginUserUtil; |
|||
|
|||
/** |
|||
* @Description 保存系统自身的弹框授权信息 |
|||
* @return com.epmet.commons.tools.utils.Result |
|||
* @author wxz |
|||
* @date 2020.10.21 17:32 |
|||
*/ |
|||
@PostMapping("save-sys-authorizeinfo") |
|||
public Result saveSysAuthorizationInfo(@RequestBody WxMsgAuthInfoFormDTO form) { |
|||
ValidatorUtils.validateEntity(form, WxMsgAuthInfoFormDTO.SaveSysAuthInfoGroup.class); |
|||
|
|||
String alwaysVisit = form.getAlwaysVisit(); |
|||
String clientType = form.getClientType(); |
|||
String customerId = form.getCustomerId(); |
|||
String subscribeStatus = form.getSubscribeStatus(); |
|||
|
|||
wxmpMessageService.saveSysAuthorizeInfo(customerId, clientType, alwaysVisit, subscribeStatus, loginUserUtil.getLoginUserId()); |
|||
|
|||
return new Result(); |
|||
} |
|||
@PostMapping("sendwxsubscribemessage") |
|||
public Result sendWxSubscribeMessage(@RequestBody List<WxSubscribeMessageFormDTO> msgList){ |
|||
for (WxSubscribeMessageFormDTO wxSubscribeMessageFormDTO : msgList) { |
|||
ValidatorUtils.validateEntity(wxSubscribeMessageFormDTO); |
|||
} |
|||
wxmpMessageService.sendWxSubscribeMessage(msgList); |
|||
return new Result(); |
|||
} |
|||
|
|||
/** |
|||
* @return |
|||
* @Description 居民端、工作端-获取客户小程序模板列表 |
|||
* @author sun |
|||
*/ |
|||
@PostMapping("templatelist") |
|||
public Result<List<GetTemplateListResultDTO>> templateList(@RequestBody GetTemplateListFormDTO formDTO) { |
|||
ValidatorUtils.validateEntity(formDTO, GetTemplateListFormDTO.AddUserInternalGroup.class); |
|||
return new Result<List<GetTemplateListResultDTO>>().ok(wxmpMessageService.templateList(formDTO)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,94 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ExcelUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.AssertUtils; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import com.epmet.commons.tools.validator.group.UpdateGroup; |
|||
import com.epmet.commons.tools.validator.group.DefaultGroup; |
|||
import com.epmet.dto.WxmpMsgSendRecordDTO; |
|||
import com.epmet.excel.WxmpMsgSendRecordExcel; |
|||
import com.epmet.service.WxmpMsgSendRecordService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("wxmpmsgsendrecord") |
|||
public class WxmpMsgSendRecordController { |
|||
|
|||
@Autowired |
|||
private WxmpMsgSendRecordService wxmpMsgSendRecordService; |
|||
|
|||
@GetMapping("page") |
|||
public Result<PageData<WxmpMsgSendRecordDTO>> page(@RequestParam Map<String, Object> params){ |
|||
PageData<WxmpMsgSendRecordDTO> page = wxmpMsgSendRecordService.page(params); |
|||
return new Result<PageData<WxmpMsgSendRecordDTO>>().ok(page); |
|||
} |
|||
|
|||
@GetMapping("{id}") |
|||
public Result<WxmpMsgSendRecordDTO> get(@PathVariable("id") String id){ |
|||
WxmpMsgSendRecordDTO data = wxmpMsgSendRecordService.get(id); |
|||
return new Result<WxmpMsgSendRecordDTO>().ok(data); |
|||
} |
|||
|
|||
@PostMapping |
|||
public Result save(@RequestBody WxmpMsgSendRecordDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
wxmpMsgSendRecordService.save(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@PutMapping |
|||
public Result update(@RequestBody WxmpMsgSendRecordDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
|||
wxmpMsgSendRecordService.update(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@DeleteMapping |
|||
public Result delete(@RequestBody String[] ids){ |
|||
//效验数据
|
|||
AssertUtils.isArrayEmpty(ids, "id"); |
|||
wxmpMsgSendRecordService.delete(ids); |
|||
return new Result(); |
|||
} |
|||
|
|||
@GetMapping("export") |
|||
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
|||
List<WxmpMsgSendRecordDTO> list = wxmpMsgSendRecordService.list(params); |
|||
ExcelUtils.exportExcelToTarget(response, null, list, WxmpMsgSendRecordExcel.class); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,94 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ExcelUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.AssertUtils; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import com.epmet.commons.tools.validator.group.UpdateGroup; |
|||
import com.epmet.commons.tools.validator.group.DefaultGroup; |
|||
import com.epmet.dto.WxmpResiUserSubscribeDTO; |
|||
import com.epmet.excel.WxmpResiUserSubscribeExcel; |
|||
import com.epmet.service.WxmpResiUserSubscribeService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("wxmpresiusersubscribe") |
|||
public class WxmpResiUserSubscribeController { |
|||
|
|||
@Autowired |
|||
private WxmpResiUserSubscribeService wxmpResiUserSubscribeService; |
|||
|
|||
@GetMapping("page") |
|||
public Result<PageData<WxmpResiUserSubscribeDTO>> page(@RequestParam Map<String, Object> params){ |
|||
PageData<WxmpResiUserSubscribeDTO> page = wxmpResiUserSubscribeService.page(params); |
|||
return new Result<PageData<WxmpResiUserSubscribeDTO>>().ok(page); |
|||
} |
|||
|
|||
@GetMapping("{id}") |
|||
public Result<WxmpResiUserSubscribeDTO> get(@PathVariable("id") String id){ |
|||
WxmpResiUserSubscribeDTO data = wxmpResiUserSubscribeService.get(id); |
|||
return new Result<WxmpResiUserSubscribeDTO>().ok(data); |
|||
} |
|||
|
|||
@PostMapping |
|||
public Result save(@RequestBody WxmpResiUserSubscribeDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
wxmpResiUserSubscribeService.save(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@PutMapping |
|||
public Result update(@RequestBody WxmpResiUserSubscribeDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
|||
wxmpResiUserSubscribeService.update(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@DeleteMapping |
|||
public Result delete(@RequestBody String[] ids){ |
|||
//效验数据
|
|||
AssertUtils.isArrayEmpty(ids, "id"); |
|||
wxmpResiUserSubscribeService.delete(ids); |
|||
return new Result(); |
|||
} |
|||
|
|||
@GetMapping("export") |
|||
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
|||
List<WxmpResiUserSubscribeDTO> list = wxmpResiUserSubscribeService.list(params); |
|||
ExcelUtils.exportExcelToTarget(response, null, list, WxmpResiUserSubscribeExcel.class); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,94 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ExcelUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.AssertUtils; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import com.epmet.commons.tools.validator.group.UpdateGroup; |
|||
import com.epmet.commons.tools.validator.group.DefaultGroup; |
|||
import com.epmet.dto.WxmpTemplateMsgSubscribeStatusDTO; |
|||
import com.epmet.excel.WxmpTemplateMsgSubscribeStatusExcel; |
|||
import com.epmet.service.WxmpTemplateMsgSubscribeStatusService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("wxmptemplatemsgsubscribestatus") |
|||
public class WxmpTemplateMsgSubscribeStatusController { |
|||
|
|||
@Autowired |
|||
private WxmpTemplateMsgSubscribeStatusService wxmpTemplateMsgSubscribeStatusService; |
|||
|
|||
@GetMapping("page") |
|||
public Result<PageData<WxmpTemplateMsgSubscribeStatusDTO>> page(@RequestParam Map<String, Object> params){ |
|||
PageData<WxmpTemplateMsgSubscribeStatusDTO> page = wxmpTemplateMsgSubscribeStatusService.page(params); |
|||
return new Result<PageData<WxmpTemplateMsgSubscribeStatusDTO>>().ok(page); |
|||
} |
|||
|
|||
@GetMapping("{id}") |
|||
public Result<WxmpTemplateMsgSubscribeStatusDTO> get(@PathVariable("id") String id){ |
|||
WxmpTemplateMsgSubscribeStatusDTO data = wxmpTemplateMsgSubscribeStatusService.get(id); |
|||
return new Result<WxmpTemplateMsgSubscribeStatusDTO>().ok(data); |
|||
} |
|||
|
|||
@PostMapping |
|||
public Result save(@RequestBody WxmpTemplateMsgSubscribeStatusDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
wxmpTemplateMsgSubscribeStatusService.save(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@PutMapping |
|||
public Result update(@RequestBody WxmpTemplateMsgSubscribeStatusDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
|||
wxmpTemplateMsgSubscribeStatusService.update(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@DeleteMapping |
|||
public Result delete(@RequestBody String[] ids){ |
|||
//效验数据
|
|||
AssertUtils.isArrayEmpty(ids, "id"); |
|||
wxmpTemplateMsgSubscribeStatusService.delete(ids); |
|||
return new Result(); |
|||
} |
|||
|
|||
@GetMapping("export") |
|||
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
|||
List<WxmpTemplateMsgSubscribeStatusDTO> list = wxmpTemplateMsgSubscribeStatusService.list(params); |
|||
ExcelUtils.exportExcelToTarget(response, null, list, WxmpTemplateMsgSubscribeStatusExcel.class); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,94 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ExcelUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.AssertUtils; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import com.epmet.commons.tools.validator.group.UpdateGroup; |
|||
import com.epmet.commons.tools.validator.group.DefaultGroup; |
|||
import com.epmet.dto.WxmpUserSubscribeRecordDTO; |
|||
import com.epmet.excel.WxmpUserSubscribeRecordExcel; |
|||
import com.epmet.service.WxmpUserSubscribeRecordService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("wxmpusersubscriberecord") |
|||
public class WxmpUserSubscribeRecordController { |
|||
|
|||
@Autowired |
|||
private WxmpUserSubscribeRecordService wxmpUserSubscribeRecordService; |
|||
|
|||
@GetMapping("page") |
|||
public Result<PageData<WxmpUserSubscribeRecordDTO>> page(@RequestParam Map<String, Object> params){ |
|||
PageData<WxmpUserSubscribeRecordDTO> page = wxmpUserSubscribeRecordService.page(params); |
|||
return new Result<PageData<WxmpUserSubscribeRecordDTO>>().ok(page); |
|||
} |
|||
|
|||
@GetMapping("{id}") |
|||
public Result<WxmpUserSubscribeRecordDTO> get(@PathVariable("id") String id){ |
|||
WxmpUserSubscribeRecordDTO data = wxmpUserSubscribeRecordService.get(id); |
|||
return new Result<WxmpUserSubscribeRecordDTO>().ok(data); |
|||
} |
|||
|
|||
@PostMapping |
|||
public Result save(@RequestBody WxmpUserSubscribeRecordDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
wxmpUserSubscribeRecordService.save(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@PutMapping |
|||
public Result update(@RequestBody WxmpUserSubscribeRecordDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
|||
wxmpUserSubscribeRecordService.update(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@DeleteMapping |
|||
public Result delete(@RequestBody String[] ids){ |
|||
//效验数据
|
|||
AssertUtils.isArrayEmpty(ids, "id"); |
|||
wxmpUserSubscribeRecordService.delete(ids); |
|||
return new Result(); |
|||
} |
|||
|
|||
@GetMapping("export") |
|||
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
|||
List<WxmpUserSubscribeRecordDTO> list = wxmpUserSubscribeRecordService.list(params); |
|||
ExcelUtils.exportExcelToTarget(response, null, list, WxmpUserSubscribeRecordExcel.class); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,94 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ExcelUtils; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.AssertUtils; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.commons.tools.validator.group.AddGroup; |
|||
import com.epmet.commons.tools.validator.group.UpdateGroup; |
|||
import com.epmet.commons.tools.validator.group.DefaultGroup; |
|||
import com.epmet.dto.WxmpWorkUserSubscribeDTO; |
|||
import com.epmet.excel.WxmpWorkUserSubscribeExcel; |
|||
import com.epmet.service.WxmpWorkUserSubscribeService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("wxmpworkusersubscribe") |
|||
public class WxmpWorkUserSubscribeController { |
|||
|
|||
@Autowired |
|||
private WxmpWorkUserSubscribeService wxmpWorkUserSubscribeService; |
|||
|
|||
@GetMapping("page") |
|||
public Result<PageData<WxmpWorkUserSubscribeDTO>> page(@RequestParam Map<String, Object> params){ |
|||
PageData<WxmpWorkUserSubscribeDTO> page = wxmpWorkUserSubscribeService.page(params); |
|||
return new Result<PageData<WxmpWorkUserSubscribeDTO>>().ok(page); |
|||
} |
|||
|
|||
@GetMapping("{id}") |
|||
public Result<WxmpWorkUserSubscribeDTO> get(@PathVariable("id") String id){ |
|||
WxmpWorkUserSubscribeDTO data = wxmpWorkUserSubscribeService.get(id); |
|||
return new Result<WxmpWorkUserSubscribeDTO>().ok(data); |
|||
} |
|||
|
|||
@PostMapping |
|||
public Result save(@RequestBody WxmpWorkUserSubscribeDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
wxmpWorkUserSubscribeService.save(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@PutMapping |
|||
public Result update(@RequestBody WxmpWorkUserSubscribeDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
|||
wxmpWorkUserSubscribeService.update(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@DeleteMapping |
|||
public Result delete(@RequestBody String[] ids){ |
|||
//效验数据
|
|||
AssertUtils.isArrayEmpty(ids, "id"); |
|||
wxmpWorkUserSubscribeService.delete(ids); |
|||
return new Result(); |
|||
} |
|||
|
|||
@GetMapping("export") |
|||
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
|||
List<WxmpWorkUserSubscribeDTO> list = wxmpWorkUserSubscribeService.list(params); |
|||
ExcelUtils.exportExcelToTarget(response, null, list, WxmpWorkUserSubscribeExcel.class); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,34 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.entity.WxmpMsgSendRecordEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Mapper |
|||
public interface WxmpMsgSendRecordDao extends BaseDao<WxmpMsgSendRecordEntity> { |
|||
|
|||
int saveRecord(WxmpMsgSendRecordEntity entity); |
|||
} |
@ -0,0 +1,77 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.entity.WxmpResiUserSubscribeEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Mapper |
|||
public interface WxmpResiUserSubscribeDao extends BaseDao<WxmpResiUserSubscribeEntity> { |
|||
|
|||
/** |
|||
* @Description 根据openId获取剩余订阅条数 |
|||
* @param openId |
|||
* @param templateId |
|||
* @param customerId |
|||
* @return java.lang.Integer |
|||
* @Author liushaowen |
|||
* @Date 2020/10/22 9:30 |
|||
*/ |
|||
Integer getResiSubscribeInfo(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId); |
|||
|
|||
/** |
|||
* @Description 减少订阅条数 |
|||
* @param openId |
|||
* @param customerId |
|||
* @param templateId |
|||
* @param i 减少的数量 |
|||
* @return int |
|||
* @Author liushaowen |
|||
* @Date 2020/10/22 9:38 |
|||
*/ |
|||
int decreaseResiSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId,@Param("num") int i); |
|||
|
|||
/** |
|||
* @Description 清空订阅条数,修改订阅状态 |
|||
* @param openId |
|||
* @param customerId |
|||
* @param templateId |
|||
* @return int |
|||
* @Author liushaowen |
|||
* @Date 2020/10/22 13:23 |
|||
*/ |
|||
int clearResiSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId); |
|||
/** |
|||
* @Description 获取模板id |
|||
* @param openId |
|||
* @param templateId |
|||
* @param customerId |
|||
* @return java.lang.Integer |
|||
* @Author liushaowen |
|||
* @Date 2020/10/23 10:53 |
|||
*/ |
|||
String getResiSubscribeTemplateId(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId); |
|||
} |
@ -0,0 +1,42 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.dto.result.WxMsgAuthInfoResultDTO; |
|||
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Mapper |
|||
public interface WxmpTemplateMsgSubscribeStatusDao extends BaseDao<WxmpTemplateMsgSubscribeStatusEntity> { |
|||
|
|||
WxMsgAuthInfoResultDTO getUserSubscribeStatusDTO(@Param("userId") String userId, |
|||
@Param("customerId") String customerId, |
|||
@Param("clientType") String clientType); |
|||
|
|||
WxmpTemplateMsgSubscribeStatusEntity getUserSubscribeStatusEntity(@Param("userId") String userId, |
|||
@Param("customerId") String customerId, |
|||
@Param("clientType") String clientType); |
|||
} |
@ -0,0 +1,33 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.entity.WxmpUserSubscribeRecordEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Mapper |
|||
public interface WxmpUserSubscribeRecordDao extends BaseDao<WxmpUserSubscribeRecordEntity> { |
|||
|
|||
} |
@ -0,0 +1,78 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.dao; |
|||
|
|||
import com.epmet.commons.mybatis.dao.BaseDao; |
|||
import com.epmet.entity.WxmpWorkUserSubscribeEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Mapper |
|||
public interface WxmpWorkUserSubscribeDao extends BaseDao<WxmpWorkUserSubscribeEntity> { |
|||
|
|||
/** |
|||
* @Description 根据openId获取剩余订阅条数 |
|||
* @param openId |
|||
* @param templateId |
|||
* @param customerId |
|||
* @return java.lang.Integer |
|||
* @Author liushaowen |
|||
* @Date 2020/10/22 9:31 |
|||
*/ |
|||
Integer getWorkSubscribeInfo(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId); |
|||
|
|||
/** |
|||
* @Description 减少订阅条数 |
|||
* @param openId |
|||
* @param templateId |
|||
* @param customerId |
|||
* @param i 减少的数量 |
|||
* @return int |
|||
* @Author liushaowen |
|||
* @Date 2020/10/22 9:38 |
|||
*/ |
|||
int decreaseWorkSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId, @Param("num") int i); |
|||
|
|||
/** |
|||
* @Description 清空订阅数,修改订阅状态 |
|||
* @param openId |
|||
* @param customerId |
|||
* @param templateId |
|||
* @return int |
|||
* @Author liushaowen |
|||
* @Date 2020/10/22 13:22 |
|||
*/ |
|||
int clearWorkSubscribeCount(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId); |
|||
|
|||
/** |
|||
* @Description 获取模板id |
|||
* @param openId |
|||
* @param templateId |
|||
* @param customerId |
|||
* @return java.lang.String |
|||
* @Author liushaowen |
|||
* @Date 2020/10/23 10:54 |
|||
*/ |
|||
String getWorkSubscribeTemplateId(@Param("openId") String openId, @Param("templateId") String templateId, @Param("customerId") String customerId); |
|||
} |
@ -0,0 +1,96 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("wxmp_msg_send_record") |
|||
public class WxmpMsgSendRecordEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 所属端类型 居民端:resi 工作端:work |
|||
*/ |
|||
private String clientType; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* 行为类型(存title字段的中间值) 入组申请、党员认证等 |
|||
*/ |
|||
private String behaviorType; |
|||
|
|||
/** |
|||
* 消息标题 消息标题 |
|||
*/ |
|||
private String title; |
|||
|
|||
/** |
|||
* 消息内容 消息内容 |
|||
*/ |
|||
private String messageContent; |
|||
|
|||
/** |
|||
* 消息时间 消息时间 |
|||
*/ |
|||
private Date messageTime; |
|||
|
|||
/** |
|||
* 发送结果(成功:success 失败:error) |
|||
*/ |
|||
private String result; |
|||
|
|||
/** |
|||
* 发送失败的原因,成功可以不记录 |
|||
*/ |
|||
private String reason; |
|||
|
|||
} |
@ -0,0 +1,71 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("wxmp_resi_user_subscribe") |
|||
public class WxmpResiUserSubscribeEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
/** |
|||
* 可用推送次数 可用推送次数 |
|||
*/ |
|||
private Integer count; |
|||
|
|||
} |
@ -0,0 +1,76 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("wxmp_template_msg_subscribe_status") |
|||
public class WxmpTemplateMsgSubscribeStatusEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 所属端类型 居民端:resi 工作端:work |
|||
*/ |
|||
private String clientType; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* 是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String alwaysVisit; |
|||
|
|||
/** |
|||
* 订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String subscribeStatus; |
|||
|
|||
/** |
|||
* wx是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String wxAlwaysVisit; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
} |
@ -0,0 +1,76 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("wxmp_user_subscribe_record") |
|||
public class WxmpUserSubscribeRecordEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* 行为类型(存title字段的中间值) 入组申请、党员认证等 |
|||
*/ |
|||
private String behaviorType; |
|||
|
|||
/** |
|||
* wx是否总是访问 是:yes 否:no |
|||
*/ |
|||
private String wxAlwaysVisit; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
} |
@ -0,0 +1,71 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.epmet.commons.mybatis.entity.BaseEpmetEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("wxmp_work_user_subscribe") |
|||
public class WxmpWorkUserSubscribeEntity extends BaseEpmetEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 客户Id 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 消息模板Id 消息模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 用户Id 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* openId openId |
|||
*/ |
|||
private String wxOpenId; |
|||
|
|||
/** |
|||
* wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe) |
|||
*/ |
|||
private String wxSubscribeStatus; |
|||
|
|||
/** |
|||
* 可用推送次数 可用推送次数 |
|||
*/ |
|||
private Integer count; |
|||
|
|||
} |
@ -0,0 +1,89 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.excel; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpMsgSendRecordExcel { |
|||
|
|||
@Excel(name = "主键") |
|||
private String id; |
|||
|
|||
@Excel(name = "客户Id 客户Id") |
|||
private String customerId; |
|||
|
|||
@Excel(name = "所属端类型 居民端:resi 工作端:work") |
|||
private String clientType; |
|||
|
|||
@Excel(name = "消息模板Id 消息模板Id") |
|||
private String templateId; |
|||
|
|||
@Excel(name = "用户Id 用户Id") |
|||
private String userId; |
|||
|
|||
@Excel(name = "openId openId") |
|||
private String wxOpenId; |
|||
|
|||
@Excel(name = "行为类型(存title字段的中间值) 入组申请、党员认证等") |
|||
private String behaviorType; |
|||
|
|||
@Excel(name = "消息标题 消息标题") |
|||
private String title; |
|||
|
|||
@Excel(name = "消息内容 消息内容") |
|||
private String messageContent; |
|||
|
|||
@Excel(name = "消息时间 消息时间") |
|||
private Date messageTime; |
|||
|
|||
@Excel(name = "发送结果") |
|||
private String result; |
|||
|
|||
@Excel(name = "发送失败的原因") |
|||
private String reason; |
|||
|
|||
@Excel(name = "删除标识") |
|||
private Integer delFlag; |
|||
|
|||
@Excel(name = "乐观锁") |
|||
private Integer revision; |
|||
|
|||
@Excel(name = "创建人") |
|||
private String createdBy; |
|||
|
|||
@Excel(name = "创建时间") |
|||
private Date createdTime; |
|||
|
|||
@Excel(name = "更新人") |
|||
private String updatedBy; |
|||
|
|||
@Excel(name = "更新时间") |
|||
private Date updatedTime; |
|||
|
|||
|
|||
} |
@ -0,0 +1,74 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.excel; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpResiUserSubscribeExcel { |
|||
|
|||
@Excel(name = "主键") |
|||
private String id; |
|||
|
|||
@Excel(name = "客户Id 客户Id") |
|||
private String customerId; |
|||
|
|||
@Excel(name = "消息模板Id 消息模板Id") |
|||
private String templateId; |
|||
|
|||
@Excel(name = "用户Id 用户Id") |
|||
private String userId; |
|||
|
|||
@Excel(name = "openId openId") |
|||
private String wxOpenId; |
|||
|
|||
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)") |
|||
private String wxSubscribeStatus; |
|||
|
|||
@Excel(name = "可用推送次数 可用推送次数") |
|||
private Integer count; |
|||
|
|||
@Excel(name = "删除标识") |
|||
private Integer delFlag; |
|||
|
|||
@Excel(name = "乐观锁") |
|||
private Integer revision; |
|||
|
|||
@Excel(name = "创建人") |
|||
private String createdBy; |
|||
|
|||
@Excel(name = "创建时间") |
|||
private Date createdTime; |
|||
|
|||
@Excel(name = "更新人") |
|||
private String updatedBy; |
|||
|
|||
@Excel(name = "更新时间") |
|||
private Date updatedTime; |
|||
|
|||
|
|||
} |
@ -0,0 +1,77 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.excel; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpTemplateMsgSubscribeStatusExcel { |
|||
|
|||
@Excel(name = "主键") |
|||
private String id; |
|||
|
|||
@Excel(name = "客户Id 客户Id") |
|||
private String customerId; |
|||
|
|||
@Excel(name = "所属端类型 居民端:resi 工作端:work") |
|||
private String clientType; |
|||
|
|||
@Excel(name = "用户Id 用户Id") |
|||
private String userId; |
|||
|
|||
@Excel(name = "是否总是访问 是:yes 否:no") |
|||
private String alwaysVisit; |
|||
|
|||
@Excel(name = "订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)") |
|||
private String subscribeStatus; |
|||
|
|||
@Excel(name = "wx是否总是访问 是:yes 否:no") |
|||
private String wxAlwaysVisit; |
|||
|
|||
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)") |
|||
private String wxSubscribeStatus; |
|||
|
|||
@Excel(name = "删除标识") |
|||
private Integer delFlag; |
|||
|
|||
@Excel(name = "乐观锁") |
|||
private Integer revision; |
|||
|
|||
@Excel(name = "创建人") |
|||
private String createdBy; |
|||
|
|||
@Excel(name = "创建时间") |
|||
private Date createdTime; |
|||
|
|||
@Excel(name = "更新人") |
|||
private String updatedBy; |
|||
|
|||
@Excel(name = "更新时间") |
|||
private Date updatedTime; |
|||
|
|||
|
|||
} |
@ -0,0 +1,77 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.excel; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpUserSubscribeRecordExcel { |
|||
|
|||
@Excel(name = "主键") |
|||
private String id; |
|||
|
|||
@Excel(name = "客户Id 客户Id") |
|||
private String customerId; |
|||
|
|||
@Excel(name = "消息模板Id 消息模板Id") |
|||
private String templateId; |
|||
|
|||
@Excel(name = "用户Id 用户Id") |
|||
private String userId; |
|||
|
|||
@Excel(name = "openId openId") |
|||
private String wxOpenId; |
|||
|
|||
@Excel(name = "行为类型(存title字段的中间值) 入组申请、党员认证等") |
|||
private String behaviorType; |
|||
|
|||
@Excel(name = "wx是否总是访问 是:yes 否:no") |
|||
private String wxAlwaysVisit; |
|||
|
|||
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)") |
|||
private String wxSubscribeStatus; |
|||
|
|||
@Excel(name = "删除标识") |
|||
private Integer delFlag; |
|||
|
|||
@Excel(name = "乐观锁") |
|||
private Integer revision; |
|||
|
|||
@Excel(name = "创建人") |
|||
private String createdBy; |
|||
|
|||
@Excel(name = "创建时间") |
|||
private Date createdTime; |
|||
|
|||
@Excel(name = "更新人") |
|||
private String updatedBy; |
|||
|
|||
@Excel(name = "更新时间") |
|||
private Date updatedTime; |
|||
|
|||
|
|||
} |
@ -0,0 +1,74 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.excel; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Data |
|||
public class WxmpWorkUserSubscribeExcel { |
|||
|
|||
@Excel(name = "主键") |
|||
private String id; |
|||
|
|||
@Excel(name = "客户Id 客户Id") |
|||
private String customerId; |
|||
|
|||
@Excel(name = "消息模板Id 消息模板Id") |
|||
private String templateId; |
|||
|
|||
@Excel(name = "用户Id 用户Id") |
|||
private String userId; |
|||
|
|||
@Excel(name = "openId openId") |
|||
private String wxOpenId; |
|||
|
|||
@Excel(name = "wx订阅状态 订阅状态(订阅:subscribe 取消订阅:unsubscribe)") |
|||
private String wxSubscribeStatus; |
|||
|
|||
@Excel(name = "可用推送次数 可用推送次数") |
|||
private Integer count; |
|||
|
|||
@Excel(name = "删除标识") |
|||
private Integer delFlag; |
|||
|
|||
@Excel(name = "乐观锁") |
|||
private Integer revision; |
|||
|
|||
@Excel(name = "创建人") |
|||
private String createdBy; |
|||
|
|||
@Excel(name = "创建时间") |
|||
private Date createdTime; |
|||
|
|||
@Excel(name = "更新人") |
|||
private String updatedBy; |
|||
|
|||
@Excel(name = "更新时间") |
|||
private Date updatedTime; |
|||
|
|||
|
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.epmet.exception; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: liushaowen |
|||
* @date: 2020/10/22 11:07 |
|||
*/ |
|||
|
|||
public class WxSubscribeException extends Exception { |
|||
private String openId; |
|||
private String templateId; |
|||
|
|||
/** |
|||
* Constructs a new exception with the specified detail message. The |
|||
* cause is not initialized, and may subsequently be initialized by |
|||
* a call to {@link #initCause}. |
|||
* |
|||
* @param message the detail message. The detail message is saved for |
|||
* later retrieval by the {@link #getMessage()} method. |
|||
*/ |
|||
public WxSubscribeException(String message, String templateId, String openId) { |
|||
super(message); |
|||
this.openId = openId; |
|||
this.templateId = templateId; |
|||
} |
|||
|
|||
public String getTemplateId() { |
|||
return templateId; |
|||
} |
|||
|
|||
public void setTemplateId(String templateId) { |
|||
this.templateId = templateId; |
|||
} |
|||
|
|||
public String getOpenId() { |
|||
return openId; |
|||
} |
|||
|
|||
public void setOpenId(String openId) { |
|||
this.openId = openId; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,30 @@ |
|||
package com.epmet.redis; |
|||
|
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @description: 微信订阅Redis |
|||
* @author: liushaowen |
|||
* @date: 2020/10/21 15:28 |
|||
*/ |
|||
@Slf4j |
|||
@Component |
|||
public class WxmpMessageRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
/** |
|||
* @Description 获取刷新 |
|||
* @param key = epmet:wechartthird:authorizerrefreshtoken:customerId:clientType 前缀+客户ID+客户端类型 |
|||
* @author zxc |
|||
*/ |
|||
public Map<String,Object> getAuthorizerRefreshToken(String key){ |
|||
Map<String, Object> result = redisUtils.hGetAll("epmet:wechartthird:authorizerrefreshtoken:" + key); |
|||
return result; |
|||
} |
|||
} |
@ -0,0 +1,47 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.redis; |
|||
|
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Component |
|||
public class WxmpMsgSendRecordRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
public void delete(Object[] ids) { |
|||
|
|||
} |
|||
|
|||
public void set(){ |
|||
|
|||
} |
|||
|
|||
public String get(String id){ |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.redis; |
|||
|
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Component |
|||
public class WxmpResiUserSubscribeRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
public void delete(Object[] ids) { |
|||
|
|||
} |
|||
|
|||
public void set(){ |
|||
|
|||
} |
|||
|
|||
public String get(String id){ |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.redis; |
|||
|
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Component |
|||
public class WxmpTemplateMsgSubscribeStatusRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
public void delete(Object[] ids) { |
|||
|
|||
} |
|||
|
|||
public void set(){ |
|||
|
|||
} |
|||
|
|||
public String get(String id){ |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.redis; |
|||
|
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Component |
|||
public class WxmpUserSubscribeRecordRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
public void delete(Object[] ids) { |
|||
|
|||
} |
|||
|
|||
public void set(){ |
|||
|
|||
} |
|||
|
|||
public String get(String id){ |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.redis; |
|||
|
|||
import com.epmet.commons.tools.redis.RedisUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Component |
|||
public class WxmpWorkUserSubscribeRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
public void delete(Object[] ids) { |
|||
|
|||
} |
|||
|
|||
public void set(){ |
|||
|
|||
} |
|||
|
|||
public String get(String id){ |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,51 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.dto.form.GetTemplateListFormDTO; |
|||
import com.epmet.dto.form.WxSubscribeMessageFormDTO; |
|||
import com.epmet.dto.result.GetTemplateListResultDTO; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 微信消息订阅Service |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
public interface WxmpMessageService { |
|||
|
|||
void saveSysAuthorizeInfo(String customerId, String clientType, String alwaysVisit, String subscribeStatus, String userId); |
|||
|
|||
/** |
|||
* @Description 发送订阅消息 |
|||
* @param msgList |
|||
* @return void |
|||
* @Author liushaowen |
|||
* @Date 2020/10/21 15:34 |
|||
*/ |
|||
void sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList); |
|||
|
|||
/** |
|||
* @return |
|||
* @Description 居民端、工作端-获取客户小程序模板列表 |
|||
* @author sun |
|||
*/ |
|||
List<GetTemplateListResultDTO> templateList(GetTemplateListFormDTO formDTO); |
|||
} |
@ -0,0 +1,105 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.WxmpMsgSendRecordDTO; |
|||
import com.epmet.entity.WxmpMsgSendRecordEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
public interface WxmpMsgSendRecordService extends BaseService<WxmpMsgSendRecordEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param params |
|||
* @return PageData<WxmpMsgSendRecordDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
PageData<WxmpMsgSendRecordDTO> page(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 默认查询 |
|||
* |
|||
* @param params |
|||
* @return java.util.List<WxmpMsgSendRecordDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
List<WxmpMsgSendRecordDTO> list(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 单条查询 |
|||
* |
|||
* @param id |
|||
* @return WxmpMsgSendRecordDTO |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
WxmpMsgSendRecordDTO get(String id); |
|||
|
|||
/** |
|||
* 默认保存 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void save(WxmpMsgSendRecordDTO dto); |
|||
|
|||
/** |
|||
* 默认更新 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void update(WxmpMsgSendRecordDTO dto); |
|||
|
|||
/** |
|||
* 批量删除 |
|||
* |
|||
* @param ids |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void delete(String[] ids); |
|||
|
|||
/** |
|||
* 保存 |
|||
* |
|||
* @param entity |
|||
* @return int |
|||
* @author liushaowen |
|||
* @date 2020-10-22 |
|||
*/ |
|||
int saveRecord(WxmpMsgSendRecordEntity entity); |
|||
} |
@ -0,0 +1,95 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.WxmpResiUserSubscribeDTO; |
|||
import com.epmet.entity.WxmpResiUserSubscribeEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
public interface WxmpResiUserSubscribeService extends BaseService<WxmpResiUserSubscribeEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param params |
|||
* @return PageData<WxmpResiUserSubscribeDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
PageData<WxmpResiUserSubscribeDTO> page(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 默认查询 |
|||
* |
|||
* @param params |
|||
* @return java.util.List<WxmpResiUserSubscribeDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
List<WxmpResiUserSubscribeDTO> list(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 单条查询 |
|||
* |
|||
* @param id |
|||
* @return WxmpResiUserSubscribeDTO |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
WxmpResiUserSubscribeDTO get(String id); |
|||
|
|||
/** |
|||
* 默认保存 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void save(WxmpResiUserSubscribeDTO dto); |
|||
|
|||
/** |
|||
* 默认更新 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void update(WxmpResiUserSubscribeDTO dto); |
|||
|
|||
/** |
|||
* 批量删除 |
|||
* |
|||
* @param ids |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void delete(String[] ids); |
|||
} |
@ -0,0 +1,95 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.WxmpTemplateMsgSubscribeStatusDTO; |
|||
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
public interface WxmpTemplateMsgSubscribeStatusService extends BaseService<WxmpTemplateMsgSubscribeStatusEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param params |
|||
* @return PageData<WxmpTemplateMsgSubscribeStatusDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
PageData<WxmpTemplateMsgSubscribeStatusDTO> page(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 默认查询 |
|||
* |
|||
* @param params |
|||
* @return java.util.List<WxmpTemplateMsgSubscribeStatusDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
List<WxmpTemplateMsgSubscribeStatusDTO> list(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 单条查询 |
|||
* |
|||
* @param id |
|||
* @return WxmpTemplateMsgSubscribeStatusDTO |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
WxmpTemplateMsgSubscribeStatusDTO get(String id); |
|||
|
|||
/** |
|||
* 默认保存 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void save(WxmpTemplateMsgSubscribeStatusDTO dto); |
|||
|
|||
/** |
|||
* 默认更新 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void update(WxmpTemplateMsgSubscribeStatusDTO dto); |
|||
|
|||
/** |
|||
* 批量删除 |
|||
* |
|||
* @param ids |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void delete(String[] ids); |
|||
} |
@ -0,0 +1,95 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.WxmpUserSubscribeRecordDTO; |
|||
import com.epmet.entity.WxmpUserSubscribeRecordEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
public interface WxmpUserSubscribeRecordService extends BaseService<WxmpUserSubscribeRecordEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param params |
|||
* @return PageData<WxmpUserSubscribeRecordDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
PageData<WxmpUserSubscribeRecordDTO> page(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 默认查询 |
|||
* |
|||
* @param params |
|||
* @return java.util.List<WxmpUserSubscribeRecordDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
List<WxmpUserSubscribeRecordDTO> list(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 单条查询 |
|||
* |
|||
* @param id |
|||
* @return WxmpUserSubscribeRecordDTO |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
WxmpUserSubscribeRecordDTO get(String id); |
|||
|
|||
/** |
|||
* 默认保存 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void save(WxmpUserSubscribeRecordDTO dto); |
|||
|
|||
/** |
|||
* 默认更新 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void update(WxmpUserSubscribeRecordDTO dto); |
|||
|
|||
/** |
|||
* 批量删除 |
|||
* |
|||
* @param ids |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void delete(String[] ids); |
|||
} |
@ -0,0 +1,95 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.mybatis.service.BaseService; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.dto.WxmpWorkUserSubscribeDTO; |
|||
import com.epmet.entity.WxmpWorkUserSubscribeEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
public interface WxmpWorkUserSubscribeService extends BaseService<WxmpWorkUserSubscribeEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param params |
|||
* @return PageData<WxmpWorkUserSubscribeDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
PageData<WxmpWorkUserSubscribeDTO> page(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 默认查询 |
|||
* |
|||
* @param params |
|||
* @return java.util.List<WxmpWorkUserSubscribeDTO> |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
List<WxmpWorkUserSubscribeDTO> list(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 单条查询 |
|||
* |
|||
* @param id |
|||
* @return WxmpWorkUserSubscribeDTO |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
WxmpWorkUserSubscribeDTO get(String id); |
|||
|
|||
/** |
|||
* 默认保存 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void save(WxmpWorkUserSubscribeDTO dto); |
|||
|
|||
/** |
|||
* 默认更新 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void update(WxmpWorkUserSubscribeDTO dto); |
|||
|
|||
/** |
|||
* 批量删除 |
|||
* |
|||
* @param ids |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-10-21 |
|||
*/ |
|||
void delete(String[] ids); |
|||
} |
@ -0,0 +1,322 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.alibaba.fastjson.JSON; |
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.epmet.commons.tools.constant.NumConstant; |
|||
import com.epmet.commons.tools.enums.EnvEnum; |
|||
import com.epmet.commons.tools.exception.RenException; |
|||
import com.epmet.commons.tools.exception.ValidateException; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.utils.HttpClientManager; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.commons.tools.validator.ValidatorUtils; |
|||
import com.epmet.constant.WxmpMessageConstant; |
|||
import com.epmet.dao.WxmpResiUserSubscribeDao; |
|||
import com.epmet.dao.WxmpTemplateMsgSubscribeStatusDao; |
|||
import com.epmet.dao.WxmpWorkUserSubscribeDao; |
|||
import com.epmet.dto.form.GetTemplateListFormDTO; |
|||
import com.epmet.dto.form.StaffBasicInfoFormDTO; |
|||
import com.epmet.dto.form.UserBasicInfoFormDTO; |
|||
import com.epmet.dto.form.WxSubscribeMessageFormDTO; |
|||
import com.epmet.dto.result.GetTemplateListResultDTO; |
|||
import com.epmet.entity.WxmpMsgSendRecordEntity; |
|||
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity; |
|||
import com.epmet.exception.WxSubscribeException; |
|||
import com.epmet.feign.EpmetUserOpenFeignClient; |
|||
import com.epmet.redis.WxmpMessageRedis; |
|||
import com.epmet.service.WxmpMessageService; |
|||
import com.epmet.service.WxmpMsgSendRecordService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.text.ParseException; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.Date; |
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 微信消息订阅Service |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Service |
|||
public class WxmpMessageServiceImpl implements WxmpMessageService { |
|||
private Logger logger = LoggerFactory.getLogger(getClass()); |
|||
|
|||
@Autowired |
|||
private WxmpTemplateMsgSubscribeStatusDao msgSubscribeStatusDao; |
|||
|
|||
@Autowired |
|||
private EpmetUserOpenFeignClient epmetUserOpenFeignClient; |
|||
|
|||
@Autowired |
|||
private WxmpMessageRedis wxmpMessageRedis; |
|||
|
|||
@Resource |
|||
private WxmpResiUserSubscribeDao wxmpResiUserSubscribeDao; |
|||
|
|||
@Resource |
|||
private WxmpWorkUserSubscribeDao wxmpWorkUserSubscribeDao; |
|||
|
|||
@Autowired |
|||
private WxmpMsgSendRecordService wxmpMsgSendRecordService; |
|||
|
|||
/** |
|||
* @return void |
|||
* @Description 保存系统授权信息 |
|||
* @author wxz |
|||
* @date 2020.10.21 17:29 |
|||
*/ |
|||
@Override |
|||
public void saveSysAuthorizeInfo(String customerId, String clientType, String alwaysVisit, String subscribeStatus, String userId) { |
|||
WxmpTemplateMsgSubscribeStatusEntity userSubscribeStatusEntity = msgSubscribeStatusDao.getUserSubscribeStatusEntity(userId, customerId, clientType); |
|||
if (userSubscribeStatusEntity != null) { |
|||
userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit); |
|||
userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus); |
|||
msgSubscribeStatusDao.updateById(userSubscribeStatusEntity); |
|||
return; |
|||
} |
|||
|
|||
userSubscribeStatusEntity = new WxmpTemplateMsgSubscribeStatusEntity(); |
|||
userSubscribeStatusEntity.setCustomerId(customerId); |
|||
userSubscribeStatusEntity.setClientType(clientType); |
|||
userSubscribeStatusEntity.setAlwaysVisit(alwaysVisit); |
|||
userSubscribeStatusEntity.setSubscribeStatus(subscribeStatus); |
|||
userSubscribeStatusEntity.setUserId(userId); |
|||
msgSubscribeStatusDao.insert(userSubscribeStatusEntity); |
|||
} |
|||
|
|||
/** |
|||
* @param msgList |
|||
* @return void |
|||
* @Description 发送订阅消息 |
|||
* @Author liushaowen |
|||
* @Date 2020/10/21 15:34 |
|||
*/ |
|||
@Override |
|||
public void sendWxSubscribeMessage(List<WxSubscribeMessageFormDTO> msgList) { |
|||
logger.info("待发送订阅消息数量:{}", msgList.size()); |
|||
int succecssCount = 0; |
|||
for (WxSubscribeMessageFormDTO msg : msgList) { |
|||
try { |
|||
String userId = msg.getUserId(); |
|||
String clientType = msg.getClientType(); |
|||
String customerId = msg.getCustomerId(); |
|||
String templateId = null; |
|||
String openId = null; |
|||
//通过userId获取openId
|
|||
try { |
|||
if (WxmpMessageConstant.RESI.equals(clientType)) { |
|||
UserBasicInfoFormDTO userBasicInfoFormDTO = new UserBasicInfoFormDTO(); |
|||
userBasicInfoFormDTO.setUserId(userId); |
|||
openId = epmetUserOpenFeignClient.getUserBasicInfo(userBasicInfoFormDTO).getData().getOpenId(); |
|||
} else if (WxmpMessageConstant.WORK.equals(clientType)) { |
|||
StaffBasicInfoFormDTO staffBasicInfoFormDTO = new StaffBasicInfoFormDTO(); |
|||
staffBasicInfoFormDTO.setStaffId(userId); |
|||
openId = epmetUserOpenFeignClient.getStaffBasicInfo(staffBasicInfoFormDTO).getData().getOpenId(); |
|||
} else { |
|||
throw new WxSubscribeException("clientType有误", "", openId); |
|||
} |
|||
} catch (Exception e) { |
|||
throw new WxSubscribeException("连接User服务失败", "", ""); |
|||
} |
|||
|
|||
if (StringUtils.isBlank(openId)) { |
|||
throw new WxSubscribeException("openId获取失败", "", ""); |
|||
} |
|||
|
|||
//获取accessToken
|
|||
StringBuilder key = new StringBuilder(msg.getCustomerId()).append(":").append(msg.getClientType()); |
|||
Map<String, Object> authorizerRefreshToken = new HashMap<>(); |
|||
try { |
|||
authorizerRefreshToken = wxmpMessageRedis.getAuthorizerRefreshToken(key.toString()); |
|||
} catch (Exception e) { |
|||
throw new WxSubscribeException("连接缓存服务器失败", "", openId); |
|||
} |
|||
String accessToken = (String) authorizerRefreshToken.get(WxmpMessageConstant.AUTHORIZER_ACCESS_TOKEN); |
|||
if (StringUtils.isBlank(accessToken)) { |
|||
throw new WxSubscribeException("accessToken获取失败", "", openId); |
|||
} |
|||
|
|||
//获取模板id
|
|||
if (WxmpMessageConstant.RESI.equals(clientType)) { |
|||
templateId = wxmpResiUserSubscribeDao.getResiSubscribeTemplateId(openId, templateId, customerId); |
|||
} else if (WxmpMessageConstant.WORK.equals(clientType)) { |
|||
templateId = wxmpWorkUserSubscribeDao.getWorkSubscribeTemplateId(openId, templateId, customerId); |
|||
} |
|||
if (StringUtils.isBlank(templateId)) { |
|||
throw new WxSubscribeException("获取模板id失败", "", openId); |
|||
} |
|||
|
|||
//判断用户是否有次数
|
|||
Integer count = null; |
|||
if (WxmpMessageConstant.RESI.equals(clientType)) { |
|||
count = wxmpResiUserSubscribeDao.getResiSubscribeInfo(openId, templateId, customerId); |
|||
} else if (WxmpMessageConstant.WORK.equals(clientType)) { |
|||
count = wxmpWorkUserSubscribeDao.getWorkSubscribeInfo(openId, templateId, customerId); |
|||
} |
|||
if (count == null) { |
|||
//用户未订阅
|
|||
throw new WxSubscribeException("用户未订阅", templateId, openId); |
|||
} |
|||
if (count == 0) { |
|||
throw new WxSubscribeException("用户可用额度不足", templateId, openId); |
|||
} |
|||
|
|||
//发送消息
|
|||
JSONObject jsonObject = new JSONObject(); |
|||
JSONObject data = new JSONObject(); |
|||
//必填项
|
|||
jsonObject.put(WxmpMessageConstant.ACCESS_TOKEN, accessToken); |
|||
jsonObject.put(WxmpMessageConstant.TOUSER, openId); |
|||
jsonObject.put(WxmpMessageConstant.TEMPLATE_ID, templateId); |
|||
data.put(WxmpMessageConstant.TITLE, new JSONObject().put("value", ("您有一条" + msg.getBehaviorType()).substring(0, WxmpMessageConstant.TITLE_LIMIT))); |
|||
data.put(WxmpMessageConstant.MESSAGE_CONTENT, new JSONObject().put("value", msg.getMessageContent().substring(0, WxmpMessageConstant.MESSAGE_CONTENT_LIMIT))); |
|||
data.put(WxmpMessageConstant.MESSAGE_TIME, new JSONObject().put("value", new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()))); |
|||
jsonObject.put(WxmpMessageConstant.DATA, data); |
|||
EnvEnum envEnum = EnvEnum.getCurrentEnv(); |
|||
//选填项
|
|||
if (WxmpMessageConstant.RESI.equals(clientType)) { |
|||
jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_RESI); |
|||
} else if (WxmpMessageConstant.WORK.equals(clientType)) { |
|||
jsonObject.put(WxmpMessageConstant.PAGE, WxmpMessageConstant.PAGE_WORK); |
|||
} |
|||
//开发环境
|
|||
if ("dev".equals(envEnum.getCode())) { |
|||
jsonObject.put(WxmpMessageConstant.MINIPROGRAM_STATE, WxmpMessageConstant.STATE_DEV); |
|||
} |
|||
//测试环境
|
|||
if ("test".equals(envEnum.getCode())) { |
|||
jsonObject.put(WxmpMessageConstant.MINIPROGRAM_STATE, WxmpMessageConstant.STATE_TEST); |
|||
} |
|||
|
|||
String resultStr = HttpClientManager.getInstance().sendPostByJSON(WxmpMessageConstant.SEND_MESSAGE + accessToken, JSON.toJSONString(jsonObject)).getData(); |
|||
Map<String, Object> resultMap = JSON.parseObject(resultStr, Map.class); |
|||
Object errcode = resultMap.get(WxmpMessageConstant.ERR_CODE); |
|||
if (errcode.equals(NumConstant.ZERO)) { |
|||
//发送成功
|
|||
|
|||
//订阅条数-1
|
|||
int decrease = 0; |
|||
if (WxmpMessageConstant.RESI.equals(clientType)) { |
|||
decrease = wxmpResiUserSubscribeDao.decreaseResiSubscribeCount(openId, templateId, customerId, 1); |
|||
} else if (WxmpMessageConstant.WORK.equals(clientType)) { |
|||
decrease = wxmpWorkUserSubscribeDao.decreaseWorkSubscribeCount(openId, templateId, customerId, 1); |
|||
} |
|||
if (decrease == 0) { |
|||
logger.error("消息{}发送成功但订阅条数-1失败", JSON.toJSONString(msg)); |
|||
} |
|||
//存表
|
|||
int saveRes = wxmpMsgSendRecordService.saveRecord(initRecord(msg, templateId, openId, WxmpMessageConstant.SUCCESS)); |
|||
if (saveRes == 0) { |
|||
logger.error("消息{}发送成功但存入记录表失败", JSON.toJSONString(msg)); |
|||
} |
|||
} else { |
|||
//发送失败
|
|||
//用户拒绝,需清空订阅表条数,修改订阅状态
|
|||
if (errcode.equals(WxmpMessageConstant.USER_REFUSED)) { |
|||
int clear = 0; |
|||
if (WxmpMessageConstant.RESI.equals(clientType)) { |
|||
clear = wxmpResiUserSubscribeDao.clearResiSubscribeCount(openId, templateId, customerId); |
|||
} else if (WxmpMessageConstant.WORK.equals(clientType)) { |
|||
clear = wxmpWorkUserSubscribeDao.clearWorkSubscribeCount(openId, templateId, customerId); |
|||
} |
|||
if (clear == 0) { |
|||
logger.error("消息{}发送失败且清空订阅条数失败", JSON.toJSONString(msg)); |
|||
} |
|||
} |
|||
|
|||
//抛出错误
|
|||
throw new WxSubscribeException(String.valueOf(resultMap.get(WxmpMessageConstant.ERR_MSG)),templateId, openId); |
|||
} |
|||
|
|||
succecssCount++; |
|||
} catch (Exception e) { |
|||
String errMsg = e.getMessage(); |
|||
//ValidateException错误信息为getMsg
|
|||
// if (StringUtils.isBlank(errMsg) && e instanceof ValidateException) {
|
|||
// errMsg = ((ValidateException) e).getMsg();
|
|||
// }
|
|||
if (e instanceof WxSubscribeException) { |
|||
//存表
|
|||
WxmpMsgSendRecordEntity wxmpMsgSendRecordEntity = initRecord(msg, ((WxSubscribeException) e).getTemplateId(), ((WxSubscribeException) e).getOpenId(), WxmpMessageConstant.ERROR); |
|||
wxmpMsgSendRecordEntity.setReason(errMsg); |
|||
int saveRes = wxmpMsgSendRecordService.saveRecord(wxmpMsgSendRecordEntity); |
|||
if (saveRes == 0) { |
|||
logger.error("消息{}发送失败且存入记录表失败", JSON.toJSONString(msg)); |
|||
} |
|||
} |
|||
|
|||
logger.error("消息:{}发送失败,原因是:{}", JSON.toJSONString(msg), errMsg); |
|||
continue; |
|||
} |
|||
} |
|||
logger.info("{}条消息中的{}条发送成功", msgList.size(), succecssCount); |
|||
} |
|||
|
|||
//初始化记录对象
|
|||
private WxmpMsgSendRecordEntity initRecord(WxSubscribeMessageFormDTO msg, String templateId, String openId, String status) { |
|||
WxmpMsgSendRecordEntity wxmpMsgSendRecordEntity = new WxmpMsgSendRecordEntity(); |
|||
wxmpMsgSendRecordEntity.setCustomerId(msg.getCustomerId()); |
|||
wxmpMsgSendRecordEntity.setClientType(msg.getClientType()); |
|||
wxmpMsgSendRecordEntity.setTemplateId(templateId); |
|||
wxmpMsgSendRecordEntity.setUserId(msg.getUserId()); |
|||
wxmpMsgSendRecordEntity.setWxOpenId(openId); |
|||
wxmpMsgSendRecordEntity.setBehaviorType(msg.getBehaviorType()); |
|||
wxmpMsgSendRecordEntity.setTitle("您有一条" + msg.getBehaviorType()); |
|||
wxmpMsgSendRecordEntity.setMessageContent(msg.getMessageContent()); |
|||
wxmpMsgSendRecordEntity.setMessageTime(new Date()); |
|||
wxmpMsgSendRecordEntity.setResult(status); |
|||
return wxmpMsgSendRecordEntity; |
|||
} |
|||
|
|||
/** |
|||
* @return |
|||
* @Description 居民端、工作端-获取客户小程序模板列表 |
|||
* @author sun |
|||
*/ |
|||
@Override |
|||
public List<GetTemplateListResultDTO> templateList(GetTemplateListFormDTO formDTO) { |
|||
GetTemplateListFormDTO dto = ConvertUtils.sourceToTarget(formDTO, GetTemplateListFormDTO.class); |
|||
String url = "https://epmet-cloud.elinkservice.cn/api/third/personaltemplate/templatelist"; |
|||
//String url = "http://localhost:8080/api/third/personaltemplate/templatelist";
|
|||
String data = HttpClientManager.getInstance().sendPostByJSON(url, JSON.toJSONString(dto)).getData(); |
|||
logger.info("ThirdLoginServiceImpl.getUserWeChat:httpclient->url:"+url+",结果->"+data); |
|||
JSONObject toResult = JSON.parseObject(data); |
|||
Result mapToResult = ConvertUtils.mapToEntity(toResult, Result.class); |
|||
if (null != toResult.get("code")) { |
|||
mapToResult.setCode(((Integer) toResult.get("code")).intValue()); |
|||
} |
|||
if (!mapToResult.success()) { |
|||
logger.error("调用epmet_third服务获取小程序消息订阅模板数据失败"); |
|||
throw new RenException(mapToResult.getCode()); |
|||
} |
|||
List<GetTemplateListResultDTO> resultList = (List<GetTemplateListResultDTO>) mapToResult.getData(); |
|||
return resultList; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,109 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.constant.FieldConstant; |
|||
import com.epmet.dao.WxmpMsgSendRecordDao; |
|||
import com.epmet.dto.WxmpMsgSendRecordDTO; |
|||
import com.epmet.entity.WxmpMsgSendRecordEntity; |
|||
import com.epmet.redis.WxmpMsgSendRecordRedis; |
|||
import com.epmet.service.WxmpMsgSendRecordService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 消息发送记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Service |
|||
public class WxmpMsgSendRecordServiceImpl extends BaseServiceImpl<WxmpMsgSendRecordDao, WxmpMsgSendRecordEntity> implements WxmpMsgSendRecordService { |
|||
|
|||
@Autowired |
|||
private WxmpMsgSendRecordRedis wxmpMsgSendRecordRedis; |
|||
|
|||
@Override |
|||
public PageData<WxmpMsgSendRecordDTO> page(Map<String, Object> params) { |
|||
IPage<WxmpMsgSendRecordEntity> page = baseDao.selectPage( |
|||
getPage(params, FieldConstant.CREATED_TIME, false), |
|||
getWrapper(params) |
|||
); |
|||
return getPageData(page, WxmpMsgSendRecordDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<WxmpMsgSendRecordDTO> list(Map<String, Object> params) { |
|||
List<WxmpMsgSendRecordEntity> entityList = baseDao.selectList(getWrapper(params)); |
|||
|
|||
return ConvertUtils.sourceToTarget(entityList, WxmpMsgSendRecordDTO.class); |
|||
} |
|||
|
|||
private QueryWrapper<WxmpMsgSendRecordEntity> getWrapper(Map<String, Object> params){ |
|||
String id = (String)params.get(FieldConstant.ID_HUMP); |
|||
|
|||
QueryWrapper<WxmpMsgSendRecordEntity> wrapper = new QueryWrapper<>(); |
|||
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
|||
|
|||
return wrapper; |
|||
} |
|||
|
|||
@Override |
|||
public WxmpMsgSendRecordDTO get(String id) { |
|||
WxmpMsgSendRecordEntity entity = baseDao.selectById(id); |
|||
return ConvertUtils.sourceToTarget(entity, WxmpMsgSendRecordDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void save(WxmpMsgSendRecordDTO dto) { |
|||
WxmpMsgSendRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpMsgSendRecordEntity.class); |
|||
insert(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void update(WxmpMsgSendRecordDTO dto) { |
|||
WxmpMsgSendRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpMsgSendRecordEntity.class); |
|||
updateById(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void delete(String[] ids) { |
|||
// 逻辑删除(@TableLogic 注解)
|
|||
baseDao.deleteBatchIds(Arrays.asList(ids)); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public int saveRecord(WxmpMsgSendRecordEntity entity) { |
|||
return baseDao.saveRecord(entity); |
|||
} |
|||
} |
@ -0,0 +1,104 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.constant.FieldConstant; |
|||
import com.epmet.dao.WxmpResiUserSubscribeDao; |
|||
import com.epmet.dto.WxmpResiUserSubscribeDTO; |
|||
import com.epmet.entity.WxmpResiUserSubscribeEntity; |
|||
import com.epmet.redis.WxmpResiUserSubscribeRedis; |
|||
import com.epmet.service.WxmpResiUserSubscribeService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 居民端用户订阅模板消息次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Service |
|||
public class WxmpResiUserSubscribeServiceImpl extends BaseServiceImpl<WxmpResiUserSubscribeDao, WxmpResiUserSubscribeEntity> implements WxmpResiUserSubscribeService { |
|||
|
|||
@Autowired |
|||
private WxmpResiUserSubscribeRedis wxmpResiUserSubscribeRedis; |
|||
|
|||
@Override |
|||
public PageData<WxmpResiUserSubscribeDTO> page(Map<String, Object> params) { |
|||
IPage<WxmpResiUserSubscribeEntity> page = baseDao.selectPage( |
|||
getPage(params, FieldConstant.CREATED_TIME, false), |
|||
getWrapper(params) |
|||
); |
|||
return getPageData(page, WxmpResiUserSubscribeDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<WxmpResiUserSubscribeDTO> list(Map<String, Object> params) { |
|||
List<WxmpResiUserSubscribeEntity> entityList = baseDao.selectList(getWrapper(params)); |
|||
|
|||
return ConvertUtils.sourceToTarget(entityList, WxmpResiUserSubscribeDTO.class); |
|||
} |
|||
|
|||
private QueryWrapper<WxmpResiUserSubscribeEntity> getWrapper(Map<String, Object> params){ |
|||
String id = (String)params.get(FieldConstant.ID_HUMP); |
|||
|
|||
QueryWrapper<WxmpResiUserSubscribeEntity> wrapper = new QueryWrapper<>(); |
|||
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
|||
|
|||
return wrapper; |
|||
} |
|||
|
|||
@Override |
|||
public WxmpResiUserSubscribeDTO get(String id) { |
|||
WxmpResiUserSubscribeEntity entity = baseDao.selectById(id); |
|||
return ConvertUtils.sourceToTarget(entity, WxmpResiUserSubscribeDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void save(WxmpResiUserSubscribeDTO dto) { |
|||
WxmpResiUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpResiUserSubscribeEntity.class); |
|||
insert(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void update(WxmpResiUserSubscribeDTO dto) { |
|||
WxmpResiUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpResiUserSubscribeEntity.class); |
|||
updateById(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void delete(String[] ids) { |
|||
// 逻辑删除(@TableLogic 注解)
|
|||
baseDao.deleteBatchIds(Arrays.asList(ids)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,104 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.constant.FieldConstant; |
|||
import com.epmet.dao.WxmpTemplateMsgSubscribeStatusDao; |
|||
import com.epmet.dto.WxmpTemplateMsgSubscribeStatusDTO; |
|||
import com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity; |
|||
import com.epmet.redis.WxmpTemplateMsgSubscribeStatusRedis; |
|||
import com.epmet.service.WxmpTemplateMsgSubscribeStatusService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 用户模板消息订阅授权状态表(记录我们自己和微信的授权页用户勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Service |
|||
public class WxmpTemplateMsgSubscribeStatusServiceImpl extends BaseServiceImpl<WxmpTemplateMsgSubscribeStatusDao, WxmpTemplateMsgSubscribeStatusEntity> implements WxmpTemplateMsgSubscribeStatusService { |
|||
|
|||
@Autowired |
|||
private WxmpTemplateMsgSubscribeStatusRedis wxmpTemplateMsgSubscribeStatusRedis; |
|||
|
|||
@Override |
|||
public PageData<WxmpTemplateMsgSubscribeStatusDTO> page(Map<String, Object> params) { |
|||
IPage<WxmpTemplateMsgSubscribeStatusEntity> page = baseDao.selectPage( |
|||
getPage(params, FieldConstant.CREATED_TIME, false), |
|||
getWrapper(params) |
|||
); |
|||
return getPageData(page, WxmpTemplateMsgSubscribeStatusDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<WxmpTemplateMsgSubscribeStatusDTO> list(Map<String, Object> params) { |
|||
List<WxmpTemplateMsgSubscribeStatusEntity> entityList = baseDao.selectList(getWrapper(params)); |
|||
|
|||
return ConvertUtils.sourceToTarget(entityList, WxmpTemplateMsgSubscribeStatusDTO.class); |
|||
} |
|||
|
|||
private QueryWrapper<WxmpTemplateMsgSubscribeStatusEntity> getWrapper(Map<String, Object> params){ |
|||
String id = (String)params.get(FieldConstant.ID_HUMP); |
|||
|
|||
QueryWrapper<WxmpTemplateMsgSubscribeStatusEntity> wrapper = new QueryWrapper<>(); |
|||
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
|||
|
|||
return wrapper; |
|||
} |
|||
|
|||
@Override |
|||
public WxmpTemplateMsgSubscribeStatusDTO get(String id) { |
|||
WxmpTemplateMsgSubscribeStatusEntity entity = baseDao.selectById(id); |
|||
return ConvertUtils.sourceToTarget(entity, WxmpTemplateMsgSubscribeStatusDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void save(WxmpTemplateMsgSubscribeStatusDTO dto) { |
|||
WxmpTemplateMsgSubscribeStatusEntity entity = ConvertUtils.sourceToTarget(dto, WxmpTemplateMsgSubscribeStatusEntity.class); |
|||
insert(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void update(WxmpTemplateMsgSubscribeStatusDTO dto) { |
|||
WxmpTemplateMsgSubscribeStatusEntity entity = ConvertUtils.sourceToTarget(dto, WxmpTemplateMsgSubscribeStatusEntity.class); |
|||
updateById(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void delete(String[] ids) { |
|||
// 逻辑删除(@TableLogic 注解)
|
|||
baseDao.deleteBatchIds(Arrays.asList(ids)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,104 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.constant.FieldConstant; |
|||
import com.epmet.dao.WxmpUserSubscribeRecordDao; |
|||
import com.epmet.dto.WxmpUserSubscribeRecordDTO; |
|||
import com.epmet.entity.WxmpUserSubscribeRecordEntity; |
|||
import com.epmet.redis.WxmpUserSubscribeRecordRedis; |
|||
import com.epmet.service.WxmpUserSubscribeRecordService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 用户触发订阅的行为记录表(同时记录微信授权页每次勾选的状态) |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Service |
|||
public class WxmpUserSubscribeRecordServiceImpl extends BaseServiceImpl<WxmpUserSubscribeRecordDao, WxmpUserSubscribeRecordEntity> implements WxmpUserSubscribeRecordService { |
|||
|
|||
@Autowired |
|||
private WxmpUserSubscribeRecordRedis wxmpUserSubscribeRecordRedis; |
|||
|
|||
@Override |
|||
public PageData<WxmpUserSubscribeRecordDTO> page(Map<String, Object> params) { |
|||
IPage<WxmpUserSubscribeRecordEntity> page = baseDao.selectPage( |
|||
getPage(params, FieldConstant.CREATED_TIME, false), |
|||
getWrapper(params) |
|||
); |
|||
return getPageData(page, WxmpUserSubscribeRecordDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<WxmpUserSubscribeRecordDTO> list(Map<String, Object> params) { |
|||
List<WxmpUserSubscribeRecordEntity> entityList = baseDao.selectList(getWrapper(params)); |
|||
|
|||
return ConvertUtils.sourceToTarget(entityList, WxmpUserSubscribeRecordDTO.class); |
|||
} |
|||
|
|||
private QueryWrapper<WxmpUserSubscribeRecordEntity> getWrapper(Map<String, Object> params){ |
|||
String id = (String)params.get(FieldConstant.ID_HUMP); |
|||
|
|||
QueryWrapper<WxmpUserSubscribeRecordEntity> wrapper = new QueryWrapper<>(); |
|||
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
|||
|
|||
return wrapper; |
|||
} |
|||
|
|||
@Override |
|||
public WxmpUserSubscribeRecordDTO get(String id) { |
|||
WxmpUserSubscribeRecordEntity entity = baseDao.selectById(id); |
|||
return ConvertUtils.sourceToTarget(entity, WxmpUserSubscribeRecordDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void save(WxmpUserSubscribeRecordDTO dto) { |
|||
WxmpUserSubscribeRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpUserSubscribeRecordEntity.class); |
|||
insert(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void update(WxmpUserSubscribeRecordDTO dto) { |
|||
WxmpUserSubscribeRecordEntity entity = ConvertUtils.sourceToTarget(dto, WxmpUserSubscribeRecordEntity.class); |
|||
updateById(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void delete(String[] ids) { |
|||
// 逻辑删除(@TableLogic 注解)
|
|||
baseDao.deleteBatchIds(Arrays.asList(ids)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,104 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.epmet.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.epmet.commons.tools.page.PageData; |
|||
import com.epmet.commons.tools.utils.ConvertUtils; |
|||
import com.epmet.commons.tools.constant.FieldConstant; |
|||
import com.epmet.dao.WxmpWorkUserSubscribeDao; |
|||
import com.epmet.dto.WxmpWorkUserSubscribeDTO; |
|||
import com.epmet.entity.WxmpWorkUserSubscribeEntity; |
|||
import com.epmet.redis.WxmpWorkUserSubscribeRedis; |
|||
import com.epmet.service.WxmpWorkUserSubscribeService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 工作端用户订阅模板消息有效次数记录表 |
|||
* |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-10-21 |
|||
*/ |
|||
@Service |
|||
public class WxmpWorkUserSubscribeServiceImpl extends BaseServiceImpl<WxmpWorkUserSubscribeDao, WxmpWorkUserSubscribeEntity> implements WxmpWorkUserSubscribeService { |
|||
|
|||
@Autowired |
|||
private WxmpWorkUserSubscribeRedis wxmpWorkUserSubscribeRedis; |
|||
|
|||
@Override |
|||
public PageData<WxmpWorkUserSubscribeDTO> page(Map<String, Object> params) { |
|||
IPage<WxmpWorkUserSubscribeEntity> page = baseDao.selectPage( |
|||
getPage(params, FieldConstant.CREATED_TIME, false), |
|||
getWrapper(params) |
|||
); |
|||
return getPageData(page, WxmpWorkUserSubscribeDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<WxmpWorkUserSubscribeDTO> list(Map<String, Object> params) { |
|||
List<WxmpWorkUserSubscribeEntity> entityList = baseDao.selectList(getWrapper(params)); |
|||
|
|||
return ConvertUtils.sourceToTarget(entityList, WxmpWorkUserSubscribeDTO.class); |
|||
} |
|||
|
|||
private QueryWrapper<WxmpWorkUserSubscribeEntity> getWrapper(Map<String, Object> params){ |
|||
String id = (String)params.get(FieldConstant.ID_HUMP); |
|||
|
|||
QueryWrapper<WxmpWorkUserSubscribeEntity> wrapper = new QueryWrapper<>(); |
|||
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
|||
|
|||
return wrapper; |
|||
} |
|||
|
|||
@Override |
|||
public WxmpWorkUserSubscribeDTO get(String id) { |
|||
WxmpWorkUserSubscribeEntity entity = baseDao.selectById(id); |
|||
return ConvertUtils.sourceToTarget(entity, WxmpWorkUserSubscribeDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void save(WxmpWorkUserSubscribeDTO dto) { |
|||
WxmpWorkUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpWorkUserSubscribeEntity.class); |
|||
insert(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void update(WxmpWorkUserSubscribeDTO dto) { |
|||
WxmpWorkUserSubscribeEntity entity = ConvertUtils.sourceToTarget(dto, WxmpWorkUserSubscribeEntity.class); |
|||
updateById(entity); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void delete(String[] ids) { |
|||
// 逻辑删除(@TableLogic 注解)
|
|||
baseDao.deleteBatchIds(Arrays.asList(ids)); |
|||
} |
|||
|
|||
} |
@ -0,0 +1,48 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.epmet.dao.WxmpMsgSendRecordDao"> |
|||
|
|||
<insert id="saveRecord" parameterType="com.epmet.entity.WxmpMsgSendRecordEntity"> |
|||
insert into wxmp_msg_send_record |
|||
(id, |
|||
customer_id, |
|||
client_type, |
|||
template_id, |
|||
user_id, |
|||
wx_open_id, |
|||
behavior_type, |
|||
title, |
|||
message_content, |
|||
message_time, |
|||
result, |
|||
reason, |
|||
del_flag, |
|||
revision, |
|||
created_by, |
|||
created_time, |
|||
updated_by, |
|||
updated_time) |
|||
values |
|||
(MD5(replace(UUID(),'-','')), |
|||
#{customerId}, |
|||
#{clientType}, |
|||
#{templateId}, |
|||
#{userId}, |
|||
#{wxOpenId}, |
|||
#{behaviorType}, |
|||
#{title}, |
|||
#{messageContent}, |
|||
#{messageTime}, |
|||
#{result}, |
|||
#{reason}, |
|||
0, |
|||
0, |
|||
'sys', |
|||
now(), |
|||
'sys', |
|||
now() |
|||
) |
|||
</insert> |
|||
|
|||
</mapper> |
@ -0,0 +1,53 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.epmet.dao.WxmpResiUserSubscribeDao"> |
|||
|
|||
<select id="getResiSubscribeInfo" parameterType="String" resultType="java.lang.Integer"> |
|||
select |
|||
count |
|||
from Wxmp_Resi_User_Subscribe |
|||
where |
|||
del_flag = 0 |
|||
and customer_id = #{customerId} |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
and wx_subscribe_status = 'subscribe' |
|||
</select> |
|||
|
|||
<update id="decreaseResiSubscribeCount"> |
|||
update Wxmp_Resi_User_Subscribe |
|||
set count = if(count <![CDATA[<]]> 1, 0, count - ${num} ) |
|||
where |
|||
del_flag = 0 |
|||
and customer_id = #{customerId} |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
and wx_subscribe_status = 'subscribe' |
|||
</update> |
|||
|
|||
<update id="clearResiSubscribeCount" parameterType="String"> |
|||
update Wxmp_Resi_User_Subscribe |
|||
set count = 0, |
|||
wx_subscribe_status = 'unsubscribe' |
|||
where |
|||
del_flag = 0 |
|||
and customer_id = #{customerId} |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
</update> |
|||
|
|||
<select id="getResiSubscribeTemplateId" resultType="String"> |
|||
select |
|||
template_id |
|||
from Wxmp_Resi_User_Subscribe |
|||
where |
|||
del_flag = 0 |
|||
and customer_id = #{customerId} |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
and wx_subscribe_status = 'subscribe' |
|||
limit 1 |
|||
</select> |
|||
|
|||
</mapper> |
@ -0,0 +1,47 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.epmet.dao.WxmpTemplateMsgSubscribeStatusDao"> |
|||
|
|||
<select id="getUserSubscribeStatusDTO" resultType="com.epmet.dto.result.WxMsgAuthInfoResultDTO"> |
|||
select id, |
|||
customer_id, |
|||
client_type, |
|||
user_id, |
|||
always_visit, |
|||
subscribe_status, |
|||
wx_always_visit, |
|||
wx_subscribe_status, |
|||
del_flag, |
|||
revision, |
|||
created_by, |
|||
created_time, |
|||
updated_by, |
|||
updated_time |
|||
from wxmp_template_msg_subscribe_status status |
|||
where USER_ID = #{userId} |
|||
and CUSTOMER_ID = #{customerId} |
|||
and CLIENT_TYPE = #{clientType} |
|||
</select> |
|||
|
|||
<select id="getUserSubscribeStatusEntity" resultType="com.epmet.entity.WxmpTemplateMsgSubscribeStatusEntity"> |
|||
select id, |
|||
customer_id, |
|||
client_type, |
|||
user_id, |
|||
always_visit, |
|||
subscribe_status, |
|||
wx_always_visit, |
|||
wx_subscribe_status, |
|||
del_flag, |
|||
revision, |
|||
created_by, |
|||
created_time, |
|||
updated_by, |
|||
updated_time |
|||
from wxmp_template_msg_subscribe_status status |
|||
where USER_ID = #{userId} |
|||
and CUSTOMER_ID = #{customerId} |
|||
and CLIENT_TYPE = #{clientType} |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.epmet.dao.WxmpUserSubscribeRecordDao"> |
|||
|
|||
|
|||
|
|||
</mapper> |
@ -0,0 +1,49 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.epmet.dao.WxmpWorkUserSubscribeDao"> |
|||
|
|||
<select id="getWorkSubscribeInfo" parameterType="String" resultType="Integer"> |
|||
select |
|||
`count` |
|||
from Wxmp_Work_User_Subscribe |
|||
where |
|||
del_flag =0 |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
and wx_subscribe_status = 'subscribe' |
|||
</select> |
|||
|
|||
<update id="decreaseWorkSubscribeCount"> |
|||
update Wxmp_Work_User_Subscribe |
|||
set count = if(count < 1, 0, count - ${num} ) |
|||
where |
|||
del_flag =0 |
|||
and customer_id = #{customerId} |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
and wx_subscribe_status = 'subscribe' |
|||
</update> |
|||
<update id="clearWorkSubscribeCount" parameterType="String"> |
|||
update Wxmp_Work_User_Subscribe |
|||
set count = 0, |
|||
wx_subscribe_status = 'unsubscribe' |
|||
where |
|||
del_flag =0 |
|||
and customer_id = #{customerId} |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
</update> |
|||
<select id="getWorkSubscribeTemplateId" resultType="String"> |
|||
select |
|||
template_id |
|||
from Wxmp_Work_User_Subscribe |
|||
where |
|||
del_flag = 0 |
|||
and customer_id = #{customerId} |
|||
and template_id = #{templateId} |
|||
and wx_open_id = #{openId} |
|||
and wx_subscribe_status = 'subscribe' |
|||
limit 1 |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,31 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description 获取客户小程序模板列表-接口入参 |
|||
* @Author sun |
|||
*/ |
|||
@Data |
|||
public class GetTemplateListFormDTO implements Serializable { |
|||
|
|||
/** |
|||
* 客户Id |
|||
*/ |
|||
@NotBlank(message="客户Id不能为空", groups = {AddUserInternalGroup.class}) |
|||
private String customerId; |
|||
/** |
|||
* 小程序Id |
|||
*/ |
|||
@NotBlank(message="小程序appId不能为空", groups = {AddUserInternalGroup.class}) |
|||
private String appId; |
|||
/** |
|||
* 模板类型(站内信提醒) |
|||
*/ |
|||
private String templateType; |
|||
public interface AddUserInternalGroup {} |
|||
} |
|||
|
@ -0,0 +1,25 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description 获取客户小程序模板列表-接口返参 |
|||
* @Author sun |
|||
*/ |
|||
@Data |
|||
public class GetTemplateListResultDTO implements Serializable { |
|||
private static final long serialVersionUID = 6856602932571839314L; |
|||
|
|||
/** |
|||
* 模板Id |
|||
*/ |
|||
private String templateId; |
|||
|
|||
/** |
|||
* 模板类型(站内信提醒) |
|||
*/ |
|||
private String templateType; |
|||
|
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.epmet.controller; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.dto.form.GetTemplateListFormDTO; |
|||
import com.epmet.dto.result.GetTemplateListResultDTO; |
|||
import com.epmet.service.PersonalTemplateService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author generator generator@elink-cn.com |
|||
* @since v1.0.0 2020-09-09 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("personaltemplate") |
|||
public class PersonalTemplateController { |
|||
|
|||
@Autowired |
|||
private PersonalTemplateService personalTemplateService; |
|||
|
|||
/** |
|||
* @return |
|||
* @Description 居民端、工作端-获取客户小程序模板列表 |
|||
* @author sun |
|||
*/ |
|||
@PostMapping("templatelist") |
|||
public Result<List<GetTemplateListResultDTO>> templateList(@RequestBody GetTemplateListFormDTO formDTO) { |
|||
return new Result<List<GetTemplateListResultDTO>>().ok(personalTemplateService.templateList(formDTO)); |
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Author sun |
|||
* @Description 工作端-查询用户基础信息-接口入参 |
|||
**/ |
|||
@Data |
|||
public class StaffBasicInfoFormDTO implements Serializable{ |
|||
private static final long serialVersionUID = -7994579456530273809L; |
|||
/** |
|||
* 用户Id |
|||
* */ |
|||
@NotBlank(message = "用户Id不能为空" , groups = { StaffBasicInfoGroup.class }) |
|||
private String staffId; |
|||
public interface StaffBasicInfoGroup {} |
|||
|
|||
} |
@ -0,0 +1,22 @@ |
|||
package com.epmet.dto.form; |
|||
|
|||
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Author sun |
|||
* @Description 居民端-查询用户基础信息-接口入参 |
|||
**/ |
|||
@Data |
|||
public class UserBasicInfoFormDTO implements Serializable{ |
|||
private static final long serialVersionUID = -7994579456530273809L; |
|||
/** |
|||
* 用户Id |
|||
* */ |
|||
@NotBlank(message = "用户Id不能为空" , groups = { UserBasicInfoGroup.class }) |
|||
private String userId; |
|||
public interface UserBasicInfoGroup {} |
|||
} |
@ -0,0 +1,39 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Author sun |
|||
* @Description 工作端-查询用户基础信息-接口返参 |
|||
**/ |
|||
@Data |
|||
public class StaffBasicInfo implements Serializable { |
|||
|
|||
/** |
|||
* 客户Id |
|||
*/ |
|||
private String customerId; |
|||
|
|||
/** |
|||
* 用户Id |
|||
*/ |
|||
private String staffId; |
|||
|
|||
/** |
|||
* wx_open_id |
|||
*/ |
|||
private String openId; |
|||
|
|||
/** |
|||
* 是否禁用(未禁用enable,已禁用disabled) |
|||
*/ |
|||
private String enableFlag; |
|||
|
|||
/** |
|||
* 手机号 |
|||
*/ |
|||
private String mobile; |
|||
|
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.epmet.dto.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Author sun |
|||
* @Description 居民端-查询用户基础信息-接口返参 |
|||
**/ |
|||
@Data |
|||
public class UserBasicInfo implements Serializable { |
|||
|
|||
/** |
|||
* 用户Id |
|||
*/ |
|||
private String userId; |
|||
|
|||
/** |
|||
* wx_open_id |
|||
*/ |
|||
private String openId; |
|||
|
|||
} |
Loading…
Reference in new issue