diff --git a/flossom-common/flossom-common-core/pom.xml b/flossom-common/flossom-common-core/pom.xml index 85ed097..c4a9a0b 100644 --- a/flossom-common/flossom-common-core/pom.xml +++ b/flossom-common/flossom-common-core/pom.xml @@ -118,6 +118,12 @@ cn.hutool hutool-core + + + + org.apache.httpcomponents + httpclient + diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/constant/IntegralChangTextConstants.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/constant/IntegralChangTextConstants.java index 989b25b..172e552 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/constant/IntegralChangTextConstants.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/constant/IntegralChangTextConstants.java @@ -6,7 +6,10 @@ public class IntegralChangTextConstants { public static final String COMPLETE_INFORMATION = "完善信息,获得奖励积分"; // 绑定仪器 - public static final String BINDING_INSTRUMENT = "绑定成功,获得奖励积分"; + public static final String BINDING_INSTRUMENT = "{}绑定成功,获得奖励积分"; + + // 绑定仪器 + public static final String UNBINDING_INSTRUMENT = "{}解绑,扣除{}积分"; // 日常打卡 public static final String DAILY_CLOCK = "打卡成功,获得奖励积分"; diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/constant/InterfaceRequestBelongingConstants.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/constant/InterfaceRequestBelongingConstants.java new file mode 100644 index 0000000..25afe4c --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/constant/InterfaceRequestBelongingConstants.java @@ -0,0 +1,11 @@ +package com.flossom.common.core.constant; + +/** + * 接口请求日志-接口归属人 + */ +public class InterfaceRequestBelongingConstants { + + public static final String SHUYUN_INTERFACE = "shuyun"; + + +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/R.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/R.java index ce13b7e..7e8f8b9 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/R.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/R.java @@ -24,6 +24,10 @@ public class R implements Serializable private T data; + private String message; + + private String gatewaySuccess; + public static R ok() { return restResult(null, SUCCESS, null); @@ -112,4 +116,20 @@ public class R implements Serializable { return R.SUCCESS == ret.getCode(); } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getGatewaySuccess() { + return gatewaySuccess; + } + + public void setGatewaySuccess(String gatewaySuccess) { + this.gatewaySuccess = gatewaySuccess; + } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/ActivityChannelInfo.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/ActivityChannelInfo.java index 3ee76b0..a02122c 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/ActivityChannelInfo.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/ActivityChannelInfo.java @@ -11,57 +11,59 @@ import org.apache.commons.lang3.builder.ToStringStyle; * @author flossom * @date 2023-12-20 */ -public class ActivityChannelInfo extends BaseEntity -{ +public class ActivityChannelInfo extends BaseEntity { private static final long serialVersionUID = 1L; - /** 渠道ID */ + /** + * 渠道ID + */ private Long id; - /** 渠道类型 */ + /** + * 渠道类型 + */ @Excel(name = "渠道类型") private Integer channelType; - /** 渠道名称 */ + /** + * 渠道名称 + */ @Excel(name = "渠道名称") private String channelName; - public void setId(Long id) - { + public void setId(Long id) { this.id = id; } - public Long getId() - { + public Long getId() { return id; } - public void setChannelType(Integer channelType) - { + + public void setChannelType(Integer channelType) { this.channelType = channelType; } - public Integer getChannelType() - { + public Integer getChannelType() { return channelType; } - public void setChannelName(String channelName) - { + + public void setChannelName(String channelName) { this.channelName = channelName; } - public String getChannelName() - { + public String getChannelName() { return channelName; } + @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("channelType", getChannelType()) - .append("channelName", getChannelName()) - .append("createTime", getCreateTime()) - .append("createBy", getCreateBy()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("channelType", getChannelType()) + .append("channelName", getChannelName()) + .append("createTime", getCreateTime()) + .append("createBy", getCreateBy()) + .toString(); } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/CtLeaveMessage.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/CtLeaveMessage.java index 0dcc4f2..319648e 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/CtLeaveMessage.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/CtLeaveMessage.java @@ -1,5 +1,6 @@ package com.flossom.common.core.domain.entity; +import com.fasterxml.jackson.annotation.JsonFormat; import com.flossom.common.core.annotation.Excel; import com.flossom.common.core.web.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -15,51 +16,82 @@ import java.util.Date; * @author flossom * @date 2023-12-11 */ -public class CtLeaveMessage extends BaseEntity -{ +public class CtLeaveMessage extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键ID */ + + /** + * 主键ID + */ + private Long id; - /** 来源 1-我的模块 */ + /** + * 来源 1-我的模块 + */ @Excel(name = "来源 1-我的模块 ") private Integer source; private Long userId; - /** 来源名称 */ + /** + * 来源名称 + */ @Excel(name = "来源名称") private String sourceName; - /** 用户编号 */ + /** + * 用户编号 + */ @Excel(name = "用户编号") private Integer userNumber; - /** 用户头像 */ + /** + * 用户头像 + */ @Excel(name = "用户头像") private String userImg; - /** 用户昵称 */ + /** + * 用户昵称 + */ @Excel(name = "用户昵称") private String userName; - /** 用户手机号码 */ + /** + * 用户手机号码 + */ @Excel(name = "用户手机号码") private String userPhone; - /** 用户留言 */ + /** + * 用户留言 + */ @Excel(name = "用户留言") @NotBlank(message = "留言反馈不能为空") @Length(min = 1, max = 100) private String messageInfo; - /** 查询开始时间 */ + + /** + * 查询开始时间 + */ private Date beginTime; - /** 查询结束时间 */ + + /** + * 查询结束时间 + */ private Date endTime; - /** 查询用户ID处理 */ + /** + * 查询用户ID处理 + */ private String userNumberStr; - /** 查询用户电话处理 */ + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + /** + * 查询用户电话处理 + */ private WxUserMember wxUserMember; public Long getUserId() { @@ -70,67 +102,59 @@ public class CtLeaveMessage extends BaseEntity this.userId = userId; } - public void setId(Long id) - { + public void setId(Long id) { this.id = id; } - public Long getId() - { + public Long getId() { return id; } - public void setSource(Integer source) - { + + public void setSource(Integer source) { this.source = source; } - public Integer getSource() - { + public Integer getSource() { return source; } - public void setSourceName(String sourceName) - { + + public void setSourceName(String sourceName) { this.sourceName = sourceName; } - public String getSourceName() - { + public String getSourceName() { return sourceName; } - public void setUserImg(String userImg) - { + + public void setUserImg(String userImg) { this.userImg = userImg; } - public String getUserImg() - { + public String getUserImg() { return userImg; } - public void setUserName(String userName) - { + + public void setUserName(String userName) { this.userName = userName; } - public String getUserName() - { + public String getUserName() { return userName; } - public void setUserPhone(String userPhone) - { + + public void setUserPhone(String userPhone) { this.userPhone = userPhone; } - public String getUserPhone() - { + public String getUserPhone() { return userPhone; } - public void setMessageInfo(String messageInfo) - { + + public void setMessageInfo(String messageInfo) { this.messageInfo = messageInfo; } - public String getMessageInfo() - { + public String getMessageInfo() { return messageInfo; } @@ -176,15 +200,15 @@ public class CtLeaveMessage extends BaseEntity @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("source", getSource()) - .append("sourceName", getSourceName()) - .append("userImg", getUserImg()) - .append("userName", getUserName()) - .append("userPhone", getUserPhone()) - .append("messageInfo", getMessageInfo()) - .append("createTime", getCreateTime()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("source", getSource()) + .append("sourceName", getSourceName()) + .append("userImg", getUserImg()) + .append("userName", getUserName()) + .append("userPhone", getUserPhone()) + .append("messageInfo", getMessageInfo()) + .append("createTime", getCreateTime()) + .toString(); } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralClock.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralClock.java index 22776b6..0d94cea 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralClock.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralClock.java @@ -1,23 +1,22 @@ package com.flossom.common.core.domain.entity; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - import com.fasterxml.jackson.annotation.JsonFormat; import com.flossom.common.core.annotation.Excel; import com.flossom.common.core.web.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** * 打卡奖励积分对象 integral_clock * * @author flossom * @date 2024-01-25 */ -public class IntegralClock extends BaseEntity -{ +public class IntegralClock extends BaseEntity { private static final long serialVersionUID = 1L; /** $column.columnComment */ diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralGlobal.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralGlobal.java index 11b8221..73c2ec8 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralGlobal.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/IntegralGlobal.java @@ -11,45 +11,45 @@ import org.apache.commons.lang3.builder.ToStringStyle; * @author flossom * @date 2023-12-11 */ -public class IntegralGlobal extends BaseEntity -{ +public class IntegralGlobal extends BaseEntity { private static final long serialVersionUID = 1L; - /** 主键 */ + /** + * 主键 + */ private Long id; - /** 初始奖励积分 */ + /** + * 初始奖励积分 + */ @Excel(name = "初始奖励积分") private Long integral; - public void setId(Long id) - { + public void setId(Long id) { this.id = id; } - public Long getId() - { + public Long getId() { return id; } - public void setIntegral(Long integral) - { + + public void setIntegral(Long integral) { this.integral = integral; } - public Long getIntegral() - { + public Long getIntegral() { return integral; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("integral", getIntegral()) - .append("createTime", getCreateTime()) - .append("createBy", getCreateBy()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("integral", getIntegral()) + .append("createTime", getCreateTime()) + .append("createBy", getCreateBy()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SiteInfo.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SiteInfo.java index dea7ee2..5c2bb54 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SiteInfo.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SiteInfo.java @@ -1,9 +1,5 @@ package com.flossom.common.core.domain.entity; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - import com.fasterxml.jackson.annotation.JsonFormat; import com.flossom.common.core.annotation.Excel; import com.flossom.common.core.web.domain.BaseEntity; @@ -11,37 +7,52 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.springframework.format.annotation.DateTimeFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** * 站点管理对象 site_info * * @author flossom * @date 2023-12-20 */ -public class SiteInfo extends BaseEntity -{ +public class SiteInfo extends BaseEntity { private static final long serialVersionUID = 1L; - /** 站点管理ID */ + /** + * 站点管理ID + */ private Long id; - /** 类型 1-弹窗列表 2-轮播列表 */ + /** + * 类型 1-弹窗列表 2-轮播列表 + */ @Excel(name = "类型 1-弹窗列表 2-轮播列表 ") private Integer siteType; - /** 站点名称 */ + /** + * 站点名称 + */ @Excel(name = "站点名称") private String siteName; - /** 文件路径 */ + /** + * 文件路径 + */ @Excel(name = "文件路径") private String fileUrl; - /** 开启开始时间 */ + /** + * 开启开始时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @Excel(name = "开启开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm") private Date siteStartTime; private List startTime = new ArrayList(); - /** 开启结束时间 */ + /** + * 开启结束时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @Excel(name = "开启结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm") @@ -49,87 +60,123 @@ public class SiteInfo extends BaseEntity private List registerTime = new ArrayList(); - /** 用户注册开始时间 */ + /** + * 用户注册开始时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @Excel(name = "用户注册开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm") private Date userRegisterStartTime; - /** 用户注册结束时间 */ + /** + * 用户注册结束时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @Excel(name = "用户注册结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm") private Date userRegisterEndTime; - /** 1-首页 2-发现模块 3-活动模块 */ + /** + * 1-首页 2-发现模块 3-活动模块 + */ @Excel(name = "1-首页 2-发现模块 3-活动模块") private Integer openType; - /** 推送批次 1-永久一次 2-每次进入 3-自定义频次 */ + /** + * 推送批次 1-永久一次 2-每次进入 3-自定义频次 + */ @Excel(name = "推送批次 1-永久一次 2-每次进入 3-自定义频次") private Integer pushType; - /** 推送次数(自定义批次) */ + /** + * 推送次数(自定义批次) + */ @Excel(name = "推送次数(自定义批次)") private Integer pushNumber; - /** 推送时间 */ + /** + * 推送时间 + */ @Excel(name = "推送时间") private String pushTimer; // 推送时间数组 private List pushTimerArray = new ArrayList(); - /** 可见小程序标签 */ + /** + * 可见小程序标签 + */ @Excel(name = "可见小程序标签") private String showWechatTag; private List showWechatTagArray = new ArrayList(); - /** 可见小程序标签ID */ + /** + * 可见小程序标签ID + */ @Excel(name = "可见小程序标签ID") private String showWechatTagId; - /** 可见外部标签 */ + /** + * 可见外部标签 + */ @Excel(name = "可见外部标签") private String showCompanyTag; private List showCompanyTagArray = new ArrayList(); - /** 可见外部标签ID */ + /** + * 可见外部标签ID + */ @Excel(name = "可见外部标签ID") private String showCompanyTagId; - /** 禁止小程序标签 */ + /** + * 禁止小程序标签 + */ @Excel(name = "禁止小程序标签") private String forbidWechatTag; private List forbidWechatTagArray = new ArrayList(); - /** 禁止小程序标签ID */ + /** + * 禁止小程序标签ID + */ @Excel(name = "禁止小程序标签ID") private String forbidWechatTagId; - /** 禁止外部标签 */ + /** + * 禁止外部标签 + */ @Excel(name = "禁止外部标签") private String forbidCompanyTag; private List forbidCompanyTagArray = new ArrayList(); - /** 禁止外部标签ID */ + /** + * 禁止外部标签ID + */ @Excel(name = "禁止外部标签ID") private String forbidCompanyTagId; - /** 渠道名称 */ + /** + * 渠道名称 + */ @Excel(name = "渠道名称") private String channelName; private List channelArray = new ArrayList(); - /** 渠道ID */ + /** + * 渠道ID + */ @Excel(name = "渠道ID") private String channelId; - /** 仪器名称 */ + /** + * 仪器名称 + */ @Excel(name = "仪器名称") private String instrumentName; - /** 仪器ID */ + /** + * 仪器ID + */ @Excel(name = "仪器ID") private String instrumentId; private List machineArray = new ArrayList(); @@ -137,78 +184,114 @@ public class SiteInfo extends BaseEntity private String handlerCompanyTagId; private List handlerCompanyTagArray = new ArrayList(); - /** 获取外部标签 */ + /** + * 获取外部标签 + */ @Excel(name = "获取外部标签") private String handlerCompanyTag; @Excel(name = "获取小程序标签") private String handlerWechatTag; - /** 获取小程序标签ID */ + /** + * 获取小程序标签ID + */ private String handlerWechatTagId; private List handlerWechatTagArray = new ArrayList(); - /** 用户类型 0-全部 1-游客 2-会员 */ + /** + * 用户类型 0-全部 1-游客 2-会员 + */ @Excel(name = "用户类型 0-全部 1-游客 2-会员") private Integer userType; - /** 1-开启 2-关闭 弹窗 */ + /** + * 1-开启 2-关闭 弹窗 + */ @Excel(name = "1-开启 2-关闭 弹窗") private Integer operate; - /** 打卡多少次显示活动 */ + /** + * 打卡多少次显示活动 + */ @Excel(name = "打卡多少次显示活动 ") private Long signNumber; - /** 排序 */ + /** + * 排序 + */ @Excel(name = "排序") private Long orderNumber; - /** 跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间 */ + /** + * 跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间 + */ @Excel(name = "跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间") private Integer type; - /** 跳转链接(跳转外部链接、跳转内部链接) */ + /** + * 跳转链接(跳转外部链接、跳转内部链接) + */ @Excel(name = "跳转链接", readConverterExp = "跳=转外部链接、跳转内部链接") private String link; - /** 跳转链接参数(跳转内部链接) */ + /** + * 跳转链接参数(跳转内部链接) + */ @Excel(name = "跳转链接参数", readConverterExp = "跳=转内部链接") private String linkParams; - /** 外链小程序appid(跳转小程序) */ + /** + * 外链小程序appid(跳转小程序) + */ @Excel(name = "外链小程序appid", readConverterExp = "跳=转小程序") private String redirectAppid; - /** 外链小程序url(跳转小程序) */ + /** + * 外链小程序url(跳转小程序) + */ @Excel(name = "外链小程序url", readConverterExp = "跳=转小程序") private String redirectUrl; - /** 视频号(导向视频号、导向视频号直播间) */ + /** + * 视频号(导向视频号、导向视频号直播间) + */ @Excel(name = "视频号", readConverterExp = "导=向视频号、导向视频号直播间") private String videoNo; - /** 视频号feedId(导向视频号) */ + /** + * 视频号feedId(导向视频号) + */ @Excel(name = "视频号feedId", readConverterExp = "导=向视频号") private String feedId; - public void setId(Long id) - { + /** + * 是否为排序 + */ + private Boolean isSortAndOpen; + + public Boolean getSortAndOpen() { + return isSortAndOpen; + } + + public void setSortAndOpen(Boolean sortAndOpen) { + isSortAndOpen = sortAndOpen; + } + + public void setId(Long id) { this.id = id; } - public Long getId() - { + public Long getId() { return id; } - public void setSiteName(String siteName) - { + + public void setSiteName(String siteName) { this.siteName = siteName; } - public String getSiteName() - { + public String getSiteName() { return siteName; } @@ -220,166 +303,147 @@ public class SiteInfo extends BaseEntity this.fileUrl = fileUrl; } - public void setSiteStartTime(Date siteStartTime) - { + public void setSiteStartTime(Date siteStartTime) { this.siteStartTime = siteStartTime; } - public Date getSiteStartTime() - { + public Date getSiteStartTime() { return siteStartTime; } - public void setSiteEndTime(Date siteEndTime) - { + + public void setSiteEndTime(Date siteEndTime) { this.siteEndTime = siteEndTime; } - public Date getSiteEndTime() - { + public Date getSiteEndTime() { return siteEndTime; } - public void setUserRegisterStartTime(Date userRegisterStartTime) - { + + public void setUserRegisterStartTime(Date userRegisterStartTime) { this.userRegisterStartTime = userRegisterStartTime; } - public Date getUserRegisterStartTime() - { + public Date getUserRegisterStartTime() { return userRegisterStartTime; } - public void setUserRegisterEndTime(Date userRegisterEndTime) - { + + public void setUserRegisterEndTime(Date userRegisterEndTime) { this.userRegisterEndTime = userRegisterEndTime; } - public Date getUserRegisterEndTime() - { + public Date getUserRegisterEndTime() { return userRegisterEndTime; } - public void setOpenType(Integer openType) - { + + public void setOpenType(Integer openType) { this.openType = openType; } - public Integer getOpenType() - { + public Integer getOpenType() { return openType; } - public void setPushType(Integer pushType) - { + + public void setPushType(Integer pushType) { this.pushType = pushType; } - public Integer getPushType() - { + public Integer getPushType() { return pushType; } - public void setPushNumber(Integer pushNumber) - { + + public void setPushNumber(Integer pushNumber) { this.pushNumber = pushNumber; } - public Integer getPushNumber() - { + public Integer getPushNumber() { return pushNumber; } - public void setPushTimer(String pushTimer) - { + + public void setPushTimer(String pushTimer) { this.pushTimer = pushTimer; } - public String getPushTimer() - { + public String getPushTimer() { return pushTimer; } - public void setShowWechatTag(String showWechatTag) - { + + public void setShowWechatTag(String showWechatTag) { this.showWechatTag = showWechatTag; } - public String getShowWechatTag() - { + public String getShowWechatTag() { return showWechatTag; } - public void setShowWechatTagId(String showWechatTagId) - { + + public void setShowWechatTagId(String showWechatTagId) { this.showWechatTagId = showWechatTagId; } - public String getShowWechatTagId() - { + public String getShowWechatTagId() { return showWechatTagId; } - public void setShowCompanyTag(String showCompanyTag) - { + + public void setShowCompanyTag(String showCompanyTag) { this.showCompanyTag = showCompanyTag; } - public String getShowCompanyTag() - { + public String getShowCompanyTag() { return showCompanyTag; } - public void setShowCompanyTagId(String showCompanyTagId) - { + + public void setShowCompanyTagId(String showCompanyTagId) { this.showCompanyTagId = showCompanyTagId; } - public String getShowCompanyTagId() - { + public String getShowCompanyTagId() { return showCompanyTagId; } - public void setForbidWechatTag(String forbidWechatTag) - { + + public void setForbidWechatTag(String forbidWechatTag) { this.forbidWechatTag = forbidWechatTag; } - public String getForbidWechatTag() - { + public String getForbidWechatTag() { return forbidWechatTag; } - public void setForbidWechatTagId(String forbidWechatTagId) - { + + public void setForbidWechatTagId(String forbidWechatTagId) { this.forbidWechatTagId = forbidWechatTagId; } - public String getForbidWechatTagId() - { + public String getForbidWechatTagId() { return forbidWechatTagId; } - public void setForbidCompanyTag(String forbidCompanyTag) - { + + public void setForbidCompanyTag(String forbidCompanyTag) { this.forbidCompanyTag = forbidCompanyTag; } - public String getForbidCompanyTag() - { + public String getForbidCompanyTag() { return forbidCompanyTag; } - public void setForbidCompanyTagId(String forbidCompanyTagId) - { + + public void setForbidCompanyTagId(String forbidCompanyTagId) { this.forbidCompanyTagId = forbidCompanyTagId; } - public String getForbidCompanyTagId() - { + public String getForbidCompanyTagId() { return forbidCompanyTagId; } - public void setChannelName(String channelName) - { + + public void setChannelName(String channelName) { this.channelName = channelName; } - public String getChannelName() - { + public String getChannelName() { return channelName; } - public void setChannelId(String channelId) - { + + public void setChannelId(String channelId) { this.channelId = channelId; } - public String getChannelId() - { + public String getChannelId() { return channelId; } @@ -417,103 +481,91 @@ public class SiteInfo extends BaseEntity // { // return machineId; // } - public void setUserType(Integer userType) - { + public void setUserType(Integer userType) { this.userType = userType; } - public Integer getUserType() - { + public Integer getUserType() { return userType; } - public void setOperate(Integer operate) - { + + public void setOperate(Integer operate) { this.operate = operate; } - public Integer getOperate() - { + public Integer getOperate() { return operate; } - public void setSignNumber(Long signNumber) - { + + public void setSignNumber(Long signNumber) { this.signNumber = signNumber; } - public Long getSignNumber() - { + public Long getSignNumber() { return signNumber; } - public void setOrderNumber(Long orderNumber) - { + + public void setOrderNumber(Long orderNumber) { this.orderNumber = orderNumber; } - public Long getOrderNumber() - { + public Long getOrderNumber() { return orderNumber; } - public void setType(Integer type) - { + + public void setType(Integer type) { this.type = type; } - public Integer getType() - { + public Integer getType() { return type; } - public void setLink(String link) - { + + public void setLink(String link) { this.link = link; } - public String getLink() - { + public String getLink() { return link; } - public void setLinkParams(String linkParams) - { + + public void setLinkParams(String linkParams) { this.linkParams = linkParams; } - public String getLinkParams() - { + public String getLinkParams() { return linkParams; } - public void setRedirectAppid(String redirectAppid) - { + + public void setRedirectAppid(String redirectAppid) { this.redirectAppid = redirectAppid; } - public String getRedirectAppid() - { + public String getRedirectAppid() { return redirectAppid; } - public void setRedirectUrl(String redirectUrl) - { + + public void setRedirectUrl(String redirectUrl) { this.redirectUrl = redirectUrl; } - public String getRedirectUrl() - { + public String getRedirectUrl() { return redirectUrl; } - public void setVideoNo(String videoNo) - { + + public void setVideoNo(String videoNo) { this.videoNo = videoNo; } - public String getVideoNo() - { + public String getVideoNo() { return videoNo; } - public void setFeedId(String feedId) - { + + public void setFeedId(String feedId) { this.feedId = feedId; } - public String getFeedId() - { + public String getFeedId() { return feedId; } @@ -647,44 +699,44 @@ public class SiteInfo extends BaseEntity @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("siteName", getSiteName()) - .append("siteStartTime", getSiteStartTime()) - .append("siteEndTime", getSiteEndTime()) - .append("userRegisterStartTime", getUserRegisterStartTime()) - .append("userRegisterEndTime", getUserRegisterEndTime()) - .append("openType", getOpenType()) - .append("pushType", getPushType()) - .append("pushNumber", getPushNumber()) - .append("pushTimer", getPushTimer()) - .append("showWechatTag", getShowWechatTag()) - .append("showWechatTagId", getShowWechatTagId()) - .append("showCompanyTag", getShowCompanyTag()) - .append("showCompanyTagId", getShowCompanyTagId()) - .append("forbidWechatTag", getForbidWechatTag()) - .append("forbidWechatTagId", getForbidWechatTagId()) - .append("forbidCompanyTag", getForbidCompanyTag()) - .append("forbidCompanyTagId", getForbidCompanyTagId()) - .append("channelName", getChannelName()) - .append("channelId", getChannelId()) + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("siteName", getSiteName()) + .append("siteStartTime", getSiteStartTime()) + .append("siteEndTime", getSiteEndTime()) + .append("userRegisterStartTime", getUserRegisterStartTime()) + .append("userRegisterEndTime", getUserRegisterEndTime()) + .append("openType", getOpenType()) + .append("pushType", getPushType()) + .append("pushNumber", getPushNumber()) + .append("pushTimer", getPushTimer()) + .append("showWechatTag", getShowWechatTag()) + .append("showWechatTagId", getShowWechatTagId()) + .append("showCompanyTag", getShowCompanyTag()) + .append("showCompanyTagId", getShowCompanyTagId()) + .append("forbidWechatTag", getForbidWechatTag()) + .append("forbidWechatTagId", getForbidWechatTagId()) + .append("forbidCompanyTag", getForbidCompanyTag()) + .append("forbidCompanyTagId", getForbidCompanyTagId()) + .append("channelName", getChannelName()) + .append("channelId", getChannelId()) // .append("machineName", getMachineName()) // .append("machineId", getMachineId()) - .append("userType", getUserType()) - .append("operate", getOperate()) - .append("signNumber", getSignNumber()) - .append("orderNumber", getOrderNumber()) - .append("type", getType()) - .append("link", getLink()) - .append("linkParams", getLinkParams()) - .append("redirectAppid", getRedirectAppid()) - .append("redirectUrl", getRedirectUrl()) - .append("videoNo", getVideoNo()) - .append("feedId", getFeedId()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + .append("userType", getUserType()) + .append("operate", getOperate()) + .append("signNumber", getSignNumber()) + .append("orderNumber", getOrderNumber()) + .append("type", getType()) + .append("link", getLink()) + .append("linkParams", getLinkParams()) + .append("redirectAppid", getRedirectAppid()) + .append("redirectUrl", getRedirectUrl()) + .append("videoNo", getVideoNo()) + .append("feedId", getFeedId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SysTag.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SysTag.java index af03f42..36e4e56 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SysTag.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/SysTag.java @@ -70,7 +70,7 @@ public class SysTag extends BaseEntity private Integer tagUsers; @Excel(name = "数云外部标签ID") - private String shuyunTagId; + private Integer shuyunTagId; /** 子标签 */ private List children = new ArrayList(); @@ -222,11 +222,11 @@ public class SysTag extends BaseEntity this.tagUsers = tagUsers; } - public String getShuyunTagId() { + public Integer getShuyunTagId() { return shuyunTagId; } - public void setShuyunTagId(String shuyunTagId) { + public void setShuyunTagId(Integer shuyunTagId) { this.shuyunTagId = shuyunTagId; } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindCarousel.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindCarousel.java new file mode 100644 index 0000000..eac34b9 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindCarousel.java @@ -0,0 +1,568 @@ +package com.flossom.common.core.domain.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.flossom.common.core.annotation.Excel; +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 发现轮播图对象 wx_find_carousel + * + * @author flossom + * @date 2024-04-10 + */ +public class WxFindCarousel extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 发现轮播图ID + */ + private Long id; + + /** + * 标题 + */ + @Excel(name = "标题") + private String title; + + /** + * 文件路径 + */ + @Excel(name = "文件路径") + private String fileUrl; + + /** + * 开启开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开启开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date siteStartTime; + + /** + * 开启结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开启结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date siteEndTime; + + /** + * 处理页面开启时间修改回显值 + */ + private List startTime = new ArrayList<>(); + + /** + * 处理页面用户注册时间修改回显值 + */ + private List registerTime = new ArrayList<>(); + + /** + * 用户注册开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "用户注册开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date userRegisterStartTime; + + /** + * 用户注册结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "用户注册结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date userRegisterEndTime; + + /** + * 可见小程序标签ID列表 + */ + private List showWechatTagArray = new ArrayList<>(); + + /** + * 可见小程序标签ID + */ + @Excel(name = "可见小程序标签ID") + private String showWechatTagId; + + /** + * 可见外部标签ID列表 + */ + private List showCompanyTagArray = new ArrayList<>(); + + /** + * 可见外部标签ID + */ + @Excel(name = "可见外部标签ID") + private String showCompanyTagId; + + /** + *禁止小程序标签ID列表 + */ + private List forbidWechatTagArray = new ArrayList<>(); + + /** + * 禁止小程序标签ID + */ + @Excel(name = "禁止小程序标签ID") + private String forbidWechatTagId; + + /** + * 禁止外部标签ID列表 + */ + private List forbidCompanyTagArray = new ArrayList<>(); + + /** + * 禁止外部标签ID + */ + @Excel(name = "禁止外部标签ID") + private String forbidCompanyTagId; + + /** + * 弹窗获取外部标签ID + */ + @Excel(name = "弹窗获取外部标签ID") + private String handlerCompanyTagId; + + /** + * 弹窗获取外部标签ID列表 + */ + private List handlerCompanyTagArray = new ArrayList<>(); + + /** + * 弹窗获取小程序标签ID + */ + @Excel(name = "弹窗获取小程序标签ID") + private String handlerWechatTagId; + + /** + * 弹窗获取小程序标签ID列表 + */ + private List handlerWechatTagArray = new ArrayList<>(); + + /** + * 渠道ID + */ + @Excel(name = "渠道ID") + private String channelId; + + /** + * 仪器ID列表 + */ + private List machineArray = new ArrayList<>(); + + /** + * 仪器ID + */ + @Excel(name = "仪器ID") + private String instrumentId; + + /** + * 1开启 2关闭 轮播图开关 + */ + @Excel(name = "1开启 2关闭 轮播图开关") + private Long operate; + + /** + * 打卡多少次显示活动 + */ + @Excel(name = "打卡多少次显示活动 ") + private Long signNumber; + + /** + * 用户类型 0全部 1游客 2会员 + */ + @Excel(name = "用户类型 0全部 1游客 2会员") + private Long userType; + + /** + * 排序 + */ + @Excel(name = "排序") + private Long orderNumber; + + /** + * 跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间 + */ + @Excel(name = "跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间") + private Long type; + + /** + * 跳转链接(跳转外部链接、跳转内部链接) + */ + @Excel(name = "跳转链接", readConverterExp = "跳=转外部链接、跳转内部链接") + private String link; + + /** + * 跳转链接参数(跳转内部链接) + */ + @Excel(name = "跳转链接参数", readConverterExp = "跳=转内部链接") + private String linkParams; + + /** + * 外链小程序appid(跳转小程序) + */ + @Excel(name = "外链小程序appid", readConverterExp = "跳=转小程序") + private String redirectAppid; + + /** + * 外链小程序url(跳转小程序) + */ + @Excel(name = "外链小程序url", readConverterExp = "跳=转小程序") + private String redirectUrl; + + /** + * 视频号(导向视频号、导向视频号直播间) + */ + @Excel(name = "视频号", readConverterExp = "导=向视频号、导向视频号直播间") + private String videoNo; + + /** + * 视频号feedId(导向视频号) + */ + @Excel(name = "视频号feedId", readConverterExp = "导=向视频号") + private String feedId; + + /** + * 是否为修改排序或开启关闭 + */ + private Boolean isSortAndOpen; + + /** + * 删除标志(0存在 2删除) + */ + private Long delFlag = 0L; + + public Boolean getSortAndOpen() { + return isSortAndOpen; + } + + public void setSortAndOpen(Boolean sortAndOpen) { + isSortAndOpen = sortAndOpen; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return title; + } + + public void setFileUrl(String fileUrl) { + this.fileUrl = fileUrl; + } + + public String getFileUrl() { + return fileUrl; + } + + public void setSiteStartTime(Date siteStartTime) { + this.siteStartTime = siteStartTime; + } + + public Date getSiteStartTime() { + return siteStartTime; + } + + public void setSiteEndTime(Date siteEndTime) { + this.siteEndTime = siteEndTime; + } + + public Date getSiteEndTime() { + return siteEndTime; + } + + public void setUserRegisterStartTime(Date userRegisterStartTime) { + this.userRegisterStartTime = userRegisterStartTime; + } + + public Date getUserRegisterStartTime() { + return userRegisterStartTime; + } + + public void setUserRegisterEndTime(Date userRegisterEndTime) { + this.userRegisterEndTime = userRegisterEndTime; + } + + public Date getUserRegisterEndTime() { + return userRegisterEndTime; + } + + public void setShowWechatTagId(String showWechatTagId) { + this.showWechatTagId = showWechatTagId; + } + + public String getShowWechatTagId() { + return showWechatTagId; + } + + public void setShowCompanyTagId(String showCompanyTagId) { + this.showCompanyTagId = showCompanyTagId; + } + + public String getShowCompanyTagId() { + return showCompanyTagId; + } + + public void setForbidWechatTagId(String forbidWechatTagId) { + this.forbidWechatTagId = forbidWechatTagId; + } + + public String getForbidWechatTagId() { + return forbidWechatTagId; + } + + public void setForbidCompanyTagId(String forbidCompanyTagId) { + this.forbidCompanyTagId = forbidCompanyTagId; + } + + public String getForbidCompanyTagId() { + return forbidCompanyTagId; + } + + public void setHandlerCompanyTagId(String handlerCompanyTagId) { + this.handlerCompanyTagId = handlerCompanyTagId; + } + + public String getHandlerCompanyTagId() { + return handlerCompanyTagId; + } + + public void setHandlerWechatTagId(String handlerWechatTagId) { + this.handlerWechatTagId = handlerWechatTagId; + } + + public String getHandlerWechatTagId() { + return handlerWechatTagId; + } + + public void setChannelId(String channelId) { + this.channelId = channelId; + } + + public String getChannelId() { + return channelId; + } + + public void setInstrumentId(String instrumentId) { + this.instrumentId = instrumentId; + } + + public String getInstrumentId() { + return instrumentId; + } + + public void setOperate(Long operate) { + this.operate = operate; + } + + public Long getOperate() { + return operate; + } + + public void setSignNumber(Long signNumber) { + this.signNumber = signNumber; + } + + public Long getSignNumber() { + return signNumber; + } + + public void setUserType(Long userType) { + this.userType = userType; + } + + public Long getUserType() { + return userType; + } + + public void setOrderNumber(Long orderNumber) { + this.orderNumber = orderNumber; + } + + public Long getOrderNumber() { + return orderNumber; + } + + public void setType(Long type) { + this.type = type; + } + + public Long getType() { + return type; + } + + public void setLink(String link) { + this.link = link; + } + + public String getLink() { + return link; + } + + public void setLinkParams(String linkParams) { + this.linkParams = linkParams; + } + + public String getLinkParams() { + return linkParams; + } + + public void setRedirectAppid(String redirectAppid) { + this.redirectAppid = redirectAppid; + } + + public String getRedirectAppid() { + return redirectAppid; + } + + public void setRedirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + } + + public String getRedirectUrl() { + return redirectUrl; + } + + public void setVideoNo(String videoNo) { + this.videoNo = videoNo; + } + + public String getVideoNo() { + return videoNo; + } + + public void setFeedId(String feedId) { + this.feedId = feedId; + } + + public String getFeedId() { + return feedId; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + public List getShowWechatTagArray() { + return showWechatTagArray; + } + + public void setShowWechatTagArray(List showWechatTagArray) { + this.showWechatTagArray = showWechatTagArray; + } + + public List getShowCompanyTagArray() { + return showCompanyTagArray; + } + + public void setShowCompanyTagArray(List showCompanyTagArray) { + this.showCompanyTagArray = showCompanyTagArray; + } + + public List getForbidWechatTagArray() { + return forbidWechatTagArray; + } + + public void setForbidWechatTagArray(List forbidWechatTagArray) { + this.forbidWechatTagArray = forbidWechatTagArray; + } + + public List getForbidCompanyTagArray() { + return forbidCompanyTagArray; + } + + public void setForbidCompanyTagArray(List forbidCompanyTagArray) { + this.forbidCompanyTagArray = forbidCompanyTagArray; + } + + public List getMachineArray() { + return machineArray; + } + + public void setMachineArray(List machineArray) { + this.machineArray = machineArray; + } + + public List getHandlerCompanyTagArray() { + return handlerCompanyTagArray; + } + + public void setHandlerCompanyTagArray(List handlerCompanyTagArray) { + this.handlerCompanyTagArray = handlerCompanyTagArray; + } + + public List getHandlerWechatTagArray() { + return handlerWechatTagArray; + } + + public void setHandlerWechatTagArray(List handlerWechatTagArray) { + this.handlerWechatTagArray = handlerWechatTagArray; + } + + public List getStartTime() { + return startTime; + } + + public void setStartTime(List startTime) { + this.startTime = startTime; + } + + public List getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(List registerTime) { + this.registerTime = registerTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("title", getTitle()) + .append("fileUrl", getFileUrl()) + .append("siteStartTime", getSiteStartTime()) + .append("siteEndTime", getSiteEndTime()) + .append("userRegisterStartTime", getUserRegisterStartTime()) + .append("userRegisterEndTime", getUserRegisterEndTime()) + .append("showWechatTagId", getShowWechatTagId()) + .append("showCompanyTagId", getShowCompanyTagId()) + .append("forbidWechatTagId", getForbidWechatTagId()) + .append("forbidCompanyTagId", getForbidCompanyTagId()) + .append("handlerCompanyTagId", getHandlerCompanyTagId()) + .append("handlerWechatTagId", getHandlerWechatTagId()) + .append("channelId", getChannelId()) + .append("instrumentId", getInstrumentId()) + .append("operate", getOperate()) + .append("signNumber", getSignNumber()) + .append("userType", getUserType()) + .append("orderNumber", getOrderNumber()) + .append("type", getType()) + .append("link", getLink()) + .append("linkParams", getLinkParams()) + .append("redirectAppid", getRedirectAppid()) + .append("redirectUrl", getRedirectUrl()) + .append("videoNo", getVideoNo()) + .append("feedId", getFeedId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("delFlag", getDelFlag()) + .toString(); + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindInstrument.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindInstrument.java new file mode 100644 index 0000000..23ff5b1 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindInstrument.java @@ -0,0 +1,97 @@ +package com.flossom.common.core.domain.entity; + +import com.flossom.common.core.annotation.Excel; +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 发现管理与图仪器关联对象 wx_find_instrument + * + * @author flossom + * @date 2024-04-10 + */ +public class WxFindInstrument extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + private Long id; + + /** + * 发现管理id(发现轮播图和产品攻略) + */ + @Excel(name = "发现管理id(发现轮播图和产品攻略)") + private Long wxFindId; + + /** + * 发现管理类型 1:发现轮播图 2:产品攻略 + */ + @Excel(name = "发现管理类型 1:发现轮播图 2:产品攻略") + private Integer wxFindType; + + /** + * 仪器ID + */ + @Excel(name = "仪器ID") + private Long instrumentId; + + /** + * 删除标志(0存在 2删除) + */ + private Long delFlag = 0L; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setWxFindId(Long wxFindId) { + this.wxFindId = wxFindId; + } + + public Long getWxFindId() { + return wxFindId; + } + + public void setInstrumentId(Long instrumentId) { + this.instrumentId = instrumentId; + } + + public Long getInstrumentId() { + return instrumentId; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + public Integer getWxFindType() { + return wxFindType; + } + + public void setWxFindType(Integer wxFindType) { + this.wxFindType = wxFindType; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("wxFindId", getWxFindId()) + .append("instrumentId", getInstrumentId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("delFlag", getDelFlag()) + .toString(); + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindProductStrategy.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindProductStrategy.java new file mode 100644 index 0000000..8c7204a --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindProductStrategy.java @@ -0,0 +1,580 @@ +package com.flossom.common.core.domain.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.flossom.common.core.annotation.Excel; +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 产品攻略对象 wx_find_product_strategy + * + * @author flossom + * @date 2024-04-10 + */ +public class WxFindProductStrategy extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 产品攻略ID + */ + private Long id; + + /** + * 标题 + */ + @Excel(name = "标题") + private String title; + + /** + * 文件路径 + */ + @Excel(name = "文件路径") + private String fileUrl; + + /** + * 开启开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开启开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date siteStartTime; + + /** + * 开启结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开启结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date siteEndTime; + + /** + * 处理页面开启时间修改回显值 + */ + private List startTime = new ArrayList<>(); + + /** + * 处理页面用户注册时间修改回显值 + */ + private List registerTime = new ArrayList<>(); + + /** + * 用户注册开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "用户注册开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date userRegisterStartTime; + + /** + * 用户注册结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "用户注册结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date userRegisterEndTime; + + /** + * 可见小程序标签ID列表 + */ + private List showWechatTagArray = new ArrayList<>(); + + /** + * 可见小程序标签ID + */ + @Excel(name = "可见小程序标签ID") + private String showWechatTagId; + + /** + * 可见外部标签ID列表 + */ + private List showCompanyTagArray = new ArrayList<>(); + + /** + * 可见外部标签ID + */ + @Excel(name = "可见外部标签ID") + private String showCompanyTagId; + + /** + *禁止小程序标签ID列表 + */ + private List forbidWechatTagArray = new ArrayList<>(); + + /** + * 禁止小程序标签ID + */ + @Excel(name = "禁止小程序标签ID") + private String forbidWechatTagId; + + /** + * 禁止外部标签ID列表 + */ + private List forbidCompanyTagArray = new ArrayList<>(); + + /** + * 禁止外部标签ID + */ + @Excel(name = "禁止外部标签ID") + private String forbidCompanyTagId; + + /** + * 弹窗获取外部标签ID + */ + @Excel(name = "弹窗获取外部标签ID") + private String handlerCompanyTagId; + + /** + * 弹窗获取外部标签ID列表 + */ + private List handlerCompanyTagArray = new ArrayList<>(); + + /** + * 弹窗获取小程序标签ID + */ + @Excel(name = "弹窗获取小程序标签ID") + private String handlerWechatTagId; + + /** + * 弹窗获取小程序标签ID列表 + */ + private List handlerWechatTagArray = new ArrayList<>(); + + /** + * 渠道ID + */ + @Excel(name = "渠道ID") + private String channelId; + + /** + * 仪器ID列表 + */ + private List machineArray = new ArrayList<>(); + + /** + * 仪器ID + */ + @Excel(name = "仪器ID") + private String instrumentId; + + /** + * 1开启 2关闭 是否开启 + */ + @Excel(name = "1开启 2关闭 是否开启") + private Long operate; + + /** + * 打卡多少次显示活动 + */ + @Excel(name = "打卡多少次显示活动 ") + private Long signNumber; + + /** + * 用户类型 0全部 1游客 2会员 + */ + @Excel(name = "用户类型 0全部 1游客 2会员") + private Long userType; + + /** + * 排序 + */ + @Excel(name = "排序") + private Long orderNumber; + + /** + * 跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间 + */ + @Excel(name = "跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间") + private Long type; + + /** + * 跳转链接(跳转外部链接、跳转内部链接) + */ + @Excel(name = "跳转链接", readConverterExp = "跳=转外部链接、跳转内部链接") + private String link; + + /** + * 跳转链接参数(跳转内部链接) + */ + @Excel(name = "跳转链接参数", readConverterExp = "跳=转内部链接") + private String linkParams; + + /** + * 外链小程序appid(跳转小程序) + */ + @Excel(name = "外链小程序appid", readConverterExp = "跳=转小程序") + private String redirectAppid; + + /** + * 外链小程序url(跳转小程序) + */ + @Excel(name = "外链小程序url", readConverterExp = "跳=转小程序") + private String redirectUrl; + + /** + * 视频号(导向视频号、导向视频号直播间) + */ + @Excel(name = "视频号", readConverterExp = "导=向视频号、导向视频号直播间") + private String videoNo; + + /** + * 视频号feedId(导向视频号) + */ + @Excel(name = "视频号feedId", readConverterExp = "导=向视频号") + private String feedId; + + /** + * 删除标志(0存在 2删除) + */ + private Long delFlag = 0L; + + /** + * 前端需要 + */ + private Long key; + + /** + * 是否为排序 + */ + private Boolean isSortAndOpen; + + public Boolean getSortAndOpen() { + return isSortAndOpen; + } + + public void setSortAndOpen(Boolean sortAndOpen) { + isSortAndOpen = sortAndOpen; + } + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTitle() { + return title; + } + + public void setFileUrl(String fileUrl) { + this.fileUrl = fileUrl; + } + + public String getFileUrl() { + return fileUrl; + } + + public void setSiteStartTime(Date siteStartTime) { + this.siteStartTime = siteStartTime; + } + + public Date getSiteStartTime() { + return siteStartTime; + } + + public void setSiteEndTime(Date siteEndTime) { + this.siteEndTime = siteEndTime; + } + + public Date getSiteEndTime() { + return siteEndTime; + } + + public void setUserRegisterStartTime(Date userRegisterStartTime) { + this.userRegisterStartTime = userRegisterStartTime; + } + + public Date getUserRegisterStartTime() { + return userRegisterStartTime; + } + + public void setUserRegisterEndTime(Date userRegisterEndTime) { + this.userRegisterEndTime = userRegisterEndTime; + } + + public Date getUserRegisterEndTime() { + return userRegisterEndTime; + } + + public void setShowWechatTagId(String showWechatTagId) { + this.showWechatTagId = showWechatTagId; + } + + public String getShowWechatTagId() { + return showWechatTagId; + } + + public void setShowCompanyTagId(String showCompanyTagId) { + this.showCompanyTagId = showCompanyTagId; + } + + public String getShowCompanyTagId() { + return showCompanyTagId; + } + + public void setForbidWechatTagId(String forbidWechatTagId) { + this.forbidWechatTagId = forbidWechatTagId; + } + + public String getForbidWechatTagId() { + return forbidWechatTagId; + } + + public void setForbidCompanyTagId(String forbidCompanyTagId) { + this.forbidCompanyTagId = forbidCompanyTagId; + } + + public String getForbidCompanyTagId() { + return forbidCompanyTagId; + } + + public void setHandlerCompanyTagId(String handlerCompanyTagId) { + this.handlerCompanyTagId = handlerCompanyTagId; + } + + public String getHandlerCompanyTagId() { + return handlerCompanyTagId; + } + + public void setHandlerWechatTagId(String handlerWechatTagId) { + this.handlerWechatTagId = handlerWechatTagId; + } + + public String getHandlerWechatTagId() { + return handlerWechatTagId; + } + + public void setChannelId(String channelId) { + this.channelId = channelId; + } + + public String getChannelId() { + return channelId; + } + + public void setInstrumentId(String instrumentId) { + this.instrumentId = instrumentId; + } + + public String getInstrumentId() { + return instrumentId; + } + + public void setOperate(Long operate) { + this.operate = operate; + } + + public Long getOperate() { + return operate; + } + + public void setSignNumber(Long signNumber) { + this.signNumber = signNumber; + } + + public Long getSignNumber() { + return signNumber; + } + + public void setUserType(Long userType) { + this.userType = userType; + } + + public Long getUserType() { + return userType; + } + + public void setOrderNumber(Long orderNumber) { + this.orderNumber = orderNumber; + } + + public Long getOrderNumber() { + return orderNumber; + } + + public void setType(Long type) { + this.type = type; + } + + public Long getType() { + return type; + } + + public void setLink(String link) { + this.link = link; + } + + public String getLink() { + return link; + } + + public void setLinkParams(String linkParams) { + this.linkParams = linkParams; + } + + public String getLinkParams() { + return linkParams; + } + + public void setRedirectAppid(String redirectAppid) { + this.redirectAppid = redirectAppid; + } + + public String getRedirectAppid() { + return redirectAppid; + } + + public void setRedirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + } + + public String getRedirectUrl() { + return redirectUrl; + } + + public void setVideoNo(String videoNo) { + this.videoNo = videoNo; + } + + public String getVideoNo() { + return videoNo; + } + + public void setFeedId(String feedId) { + this.feedId = feedId; + } + + public String getFeedId() { + return feedId; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + public List getShowWechatTagArray() { + return showWechatTagArray; + } + + public void setShowWechatTagArray(List showWechatTagArray) { + this.showWechatTagArray = showWechatTagArray; + } + + public List getShowCompanyTagArray() { + return showCompanyTagArray; + } + + public void setShowCompanyTagArray(List showCompanyTagArray) { + this.showCompanyTagArray = showCompanyTagArray; + } + + public List getForbidWechatTagArray() { + return forbidWechatTagArray; + } + + public void setForbidWechatTagArray(List forbidWechatTagArray) { + this.forbidWechatTagArray = forbidWechatTagArray; + } + + public List getForbidCompanyTagArray() { + return forbidCompanyTagArray; + } + + public void setForbidCompanyTagArray(List forbidCompanyTagArray) { + this.forbidCompanyTagArray = forbidCompanyTagArray; + } + + public List getHandlerCompanyTagArray() { + return handlerCompanyTagArray; + } + + public void setHandlerCompanyTagArray(List handlerCompanyTagArray) { + this.handlerCompanyTagArray = handlerCompanyTagArray; + } + + public List getHandlerWechatTagArray() { + return handlerWechatTagArray; + } + + public void setHandlerWechatTagArray(List handlerWechatTagArray) { + this.handlerWechatTagArray = handlerWechatTagArray; + } + + public List getMachineArray() { + return machineArray; + } + + public void setMachineArray(List machineArray) { + this.machineArray = machineArray; + } + + public List getStartTime() { + return startTime; + } + + public void setStartTime(List startTime) { + this.startTime = startTime; + } + + public List getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(List registerTime) { + this.registerTime = registerTime; + } + + public Long getKey() { + return key; + } + + public void setKey(Long key) { + this.key = key; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("title", getTitle()) + .append("fileUrl", getFileUrl()) + .append("siteStartTime", getSiteStartTime()) + .append("siteEndTime", getSiteEndTime()) + .append("userRegisterStartTime", getUserRegisterStartTime()) + .append("userRegisterEndTime", getUserRegisterEndTime()) + .append("showWechatTagId", getShowWechatTagId()) + .append("showCompanyTagId", getShowCompanyTagId()) + .append("forbidWechatTagId", getForbidWechatTagId()) + .append("forbidCompanyTagId", getForbidCompanyTagId()) + .append("handlerCompanyTagId", getHandlerCompanyTagId()) + .append("handlerWechatTagId", getHandlerWechatTagId()) + .append("channelId", getChannelId()) + .append("instrumentId", getInstrumentId()) + .append("operate", getOperate()) + .append("signNumber", getSignNumber()) + .append("userType", getUserType()) + .append("orderNumber", getOrderNumber()) + .append("type", getType()) + .append("link", getLink()) + .append("linkParams", getLinkParams()) + .append("redirectAppid", getRedirectAppid()) + .append("redirectUrl", getRedirectUrl()) + .append("videoNo", getVideoNo()) + .append("feedId", getFeedId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("delFlag", getDelFlag()) + .toString(); + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindTag.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindTag.java new file mode 100644 index 0000000..6663219 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxFindTag.java @@ -0,0 +1,131 @@ +package com.flossom.common.core.domain.entity; + +import com.flossom.common.core.annotation.Excel; +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 发现管理与标签关联对象 wx_find_tag + * + * @author flossom + * @date 2024-04-10 + */ +public class WxFindTag extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + private Long id; + + /** + * 发现管理id(发现轮播图和产品攻略) + */ + @Excel(name = "发现管理id(发现轮播图和产品攻略)") + private Long wxFindId; + + /** + * 发现管理类型 1:发现轮播图 2:产品攻略 + */ + @Excel(name = "发现管理类型 1:发现轮播图 2:产品攻略") + private Integer wxFindType; + + /** + * 标签主键 + */ + @Excel(name = "标签主键") + private Long tagId; + + /** + * 标签类型(1小程序标签 2企微标签) + */ + @Excel(name = "标签类型", readConverterExp = "1=小程序标签,2=企微标签") + private Integer tagType; + + /** + * 状态(0正常 1禁用,2获得) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=禁用,2获得") + private Long status; + + /** + * 删除标志(0存在 2删除) + */ + private Long delFlag = 0L; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setWxFindId(Long wxFindId) { + this.wxFindId = wxFindId; + } + + public Long getWxFindId() { + return wxFindId; + } + + public void setTagId(Long tagId) { + this.tagId = tagId; + } + + public Long getTagId() { + return tagId; + } + + public void setTagType(Integer tagType) { + this.tagType = tagType; + } + + public Integer getWxFindType() { + return wxFindType; + } + + public void setWxFindType(Integer wxFindType) { + this.wxFindType = wxFindType; + } + + public Integer getTagType() { + return tagType; + } + + public void setStatus(Long status) { + this.status = status; + } + + public Long getStatus() { + return status; + } + + public void setDelFlag(Long delFlag) { + this.delFlag = delFlag; + } + + public Long getDelFlag() { + return delFlag; + } + + + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("wxFindId", getWxFindId()) + .append("tagId", getTagId()) + .append("tagType", getTagType()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("delFlag", getDelFlag()) + .toString(); + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrumentInstructions.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrumentInstructions.java index 0c22650..319793b 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrumentInstructions.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInstrumentInstructions.java @@ -25,6 +25,11 @@ public class WxInstrumentInstructions extends BaseEntity { @Excel(name = "设备id") private Long instrumentId; + /** + * 说明书名称, 查询数据库全值匹配专用 + */ + private String nameCongruent; + /** * 说明书名称 */ @@ -106,6 +111,14 @@ public class WxInstrumentInstructions extends BaseEntity { isSave = save; } + public String getNameCongruent() { + return nameCongruent; + } + + public void setNameCongruent(String nameCongruent) { + this.nameCongruent = nameCongruent; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInterfaceRequestLog.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInterfaceRequestLog.java new file mode 100644 index 0000000..fb5d57e --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxInterfaceRequestLog.java @@ -0,0 +1,143 @@ +package com.flossom.common.core.domain.entity; + +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 请求数云接口日志对象 wx_interface_request_log + */ +public class WxInterfaceRequestLog extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * id + */ + private Long id; + + /** + * 接口归属 + */ + private String belonging; + + /** + * 请求地址 + */ + private String url; + + /** + * 请求方式 + */ + private String method; + + /** + * 请求params参数 + */ + private String requestParams; + + /** + * 请求body参数 + */ + private String requestBody; + + /** + * 响应状态 + */ + private Long responseCode; + + /** + * 接口耗时 + */ + private Long times; + + /** + * 响应数据 + */ + private String responseData; + + /** + * 异常信息 + */ + private String errorMessage; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setBelonging(String belonging) { + this.belonging = belonging; + } + + public String getBelonging() { + return belonging; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUrl() { + return url; + } + + public void setMethod(String method) { + this.method = method; + } + + public String getMethod() { + return method; + } + + public void setRequestParams(String requestParams) { + this.requestParams = requestParams; + } + + public String getRequestParams() { + return requestParams; + } + + public void setRequestBody(String requestBody) { + this.requestBody = requestBody; + } + + public String getRequestBody() { + return requestBody; + } + + public void setResponseCode(Long responseCode) { + this.responseCode = responseCode; + } + + public Long getResponseCode() { + return responseCode; + } + + public void setTimes(Long times) { + this.times = times; + } + + public Long getTimes() { + return times; + } + + public void setResponseData(String responseData) { + this.responseData = responseData; + } + + public String getResponseData() { + return responseData; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + + public String getErrorMessage() { + return errorMessage; + } + +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxMode.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxMode.java index 11bf3eb..f22dc37 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxMode.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxMode.java @@ -122,6 +122,53 @@ public class WxMode extends BaseEntity private List modeVibrate = new ArrayList<>(); + /** + * 面部肌肉对位校准弹窗 json 数据(弹出标题、按钮名称、弹出图片、提示内容) + */ + private String faceCalibrationPopUpJson; + + /** + * 护理调整 json 数据(护理页底图、连接有误提示图、面膜运行中图、区域挡位调整图、报告页人脸图) + */ + private String nursingAdjustmentJson; + + /** + * 定制电流配方json(都选了提拉和滋润、只选了提拉、只选了滋润) + */ + private String customizationElectricFormula; + + /** + * 定制电流护理频率json + */ + private String customizationElectricFrequency; + + /** + * 眼雕大师雷达分值设定json + */ + private String eyeNursingRadar; + + /** + * 眼雕大师问题json + */ + private String eyeNursingQuestion; + + /** + * 眼雕大师护理时长json + */ + private String eyeNursingTime; + + /** + * 眼雕大师模式定制电流配置 + */ + private String eyeNursingElectricFormula; + + /** + * 定制电流问题json(问题x图片、电流定制图片) + */ + private String customizationElectricQuestion; + + private String faleAll; + public void setId(Long id) { @@ -395,6 +442,86 @@ public class WxMode extends BaseEntity this.modeVibrate = modeVibrate; } + public String getFaceCalibrationPopUpJson() { + return faceCalibrationPopUpJson; + } + + public void setFaceCalibrationPopUpJson(String faceCalibrationPopUpJson) { + this.faceCalibrationPopUpJson = faceCalibrationPopUpJson; + } + + public String getNursingAdjustmentJson() { + return nursingAdjustmentJson; + } + + public void setNursingAdjustmentJson(String nursingAdjustmentJson) { + this.nursingAdjustmentJson = nursingAdjustmentJson; + } + + public String getCustomizationElectricFormula() { + return customizationElectricFormula; + } + + public void setCustomizationElectricFormula(String customizationElectricFormula) { + this.customizationElectricFormula = customizationElectricFormula; + } + + public String getCustomizationElectricFrequency() { + return customizationElectricFrequency; + } + + public void setCustomizationElectricFrequency(String customizationElectricFrequency) { + this.customizationElectricFrequency = customizationElectricFrequency; + } + + public String getEyeNursingRadar() { + return eyeNursingRadar; + } + + public void setEyeNursingRadar(String eyeNursingRadar) { + this.eyeNursingRadar = eyeNursingRadar; + } + + public String getEyeNursingQuestion() { + return eyeNursingQuestion; + } + + public void setEyeNursingQuestion(String eyeNursingQuestion) { + this.eyeNursingQuestion = eyeNursingQuestion; + } + + public String getEyeNursingTime() { + return eyeNursingTime; + } + + public void setEyeNursingTime(String eyeNursingTime) { + this.eyeNursingTime = eyeNursingTime; + } + + public String getEyeNursingElectricFormula() { + return eyeNursingElectricFormula; + } + + public void setEyeNursingElectricFormula(String eyeNursingElectricFormula) { + this.eyeNursingElectricFormula = eyeNursingElectricFormula; + } + + public String getCustomizationElectricQuestion() { + return customizationElectricQuestion; + } + + public void setCustomizationElectricQuestion(String customizationElectricQuestion) { + this.customizationElectricQuestion = customizationElectricQuestion; + } + + public String getFaleAll() { + return faleAll; + } + + public void setFaleAll(String faleAll) { + this.faleAll = faleAll; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxModeWe200Relation.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxModeWe200Relation.java new file mode 100644 index 0000000..8495642 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxModeWe200Relation.java @@ -0,0 +1,185 @@ +package com.flossom.common.core.domain.entity; + +import com.flossom.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 【请填写功能名称】对象 wx_mode_we200_relation + * + * @author flossom + * @date 2024-04-11 + */ +public class WxModeWe200Relation extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + private Long id; + + /** + * we200仪器得模式关联数据 + */ + private Long modeId; + + /** + * 面部肌肉对位校准弹窗 json 数据(弹出标题、按钮名称、弹出图片、提示内容) + */ + private String faceCalibrationPopUpJson; + + /** + * 护理调整 json 数据(护理页底图、连接有误提示图、面膜运行中图、区域挡位调整图、报告页人脸图) + */ + private String nursingAdjustmentJson; + + /** + * 定制电流配方json(都选了提拉和滋润、只选了提拉、只选了滋润) + */ + private String customizationElectricFormula; + + /** + * 定制电流护理频率json + */ + private String customizationElectricFrequency; + + /** + * 眼雕大师雷达分值设定json + */ + private String eyeNursingRadar; + + /** + * 眼雕大师问题json + */ + private String eyeNursingQuestion; + + /** + * 眼雕大师护理时长json + */ + private String eyeNursingTime; + + /** + * 眼雕大师模式定制电流配置 + */ + private String eyeNursingElectricFormula; + + /** + * 定制电流问题json(问题x图片、电流定制图片) + */ + private String customizationElectricQuestion; + + private String faleAll; + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setModeId(Long modeId) { + this.modeId = modeId; + } + + public Long getModeId() { + return modeId; + } + + public void setFaceCalibrationPopUpJson(String faceCalibrationPopUpJson) { + this.faceCalibrationPopUpJson = faceCalibrationPopUpJson; + } + + public String getFaceCalibrationPopUpJson() { + return faceCalibrationPopUpJson; + } + + public void setNursingAdjustmentJson(String nursingAdjustmentJson) { + this.nursingAdjustmentJson = nursingAdjustmentJson; + } + + public String getNursingAdjustmentJson() { + return nursingAdjustmentJson; + } + + public void setCustomizationElectricFormula(String customizationElectricFormula) { + this.customizationElectricFormula = customizationElectricFormula; + } + + public String getCustomizationElectricFormula() { + return customizationElectricFormula; + } + + public void setCustomizationElectricFrequency(String customizationElectricFrequency) { + this.customizationElectricFrequency = customizationElectricFrequency; + } + + public String getCustomizationElectricFrequency() { + return customizationElectricFrequency; + } + + public void setEyeNursingRadar(String eyeNursingRadar) { + this.eyeNursingRadar = eyeNursingRadar; + } + + public String getEyeNursingRadar() { + return eyeNursingRadar; + } + + public void setEyeNursingQuestion(String eyeNursingQuestion) { + this.eyeNursingQuestion = eyeNursingQuestion; + } + + public String getEyeNursingQuestion() { + return eyeNursingQuestion; + } + + public void setEyeNursingTime(String eyeNursingTime) { + this.eyeNursingTime = eyeNursingTime; + } + + public String getEyeNursingTime() { + return eyeNursingTime; + } + + public void setEyeNursingElectricFormula(String eyeNursingElectricFormula) { + this.eyeNursingElectricFormula = eyeNursingElectricFormula; + } + + public String getEyeNursingElectricFormula() { + return eyeNursingElectricFormula; + } + + public void setCustomizationElectricQuestion(String customizationElectricQuestion) { + this.customizationElectricQuestion = customizationElectricQuestion; + } + + public String getCustomizationElectricQuestion() { + return customizationElectricQuestion; + } + + public String getFaleAll() { + return faleAll; + } + + public void setFaleAll(String faleAll) { + this.faleAll = faleAll; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("modeId", getModeId()) + .append("faceCalibrationPopUpJson", getFaceCalibrationPopUpJson()) + .append("nursingAdjustmentJson", getNursingAdjustmentJson()) + .append("customizationElectricFormula", getCustomizationElectricFormula()) + .append("customizationElectricFrequency", getCustomizationElectricFrequency()) + .append("eyeNursingRadar", getEyeNursingRadar()) + .append("eyeNursingQuestion", getEyeNursingQuestion()) + .append("eyeNursingTime", getEyeNursingTime()) + .append("eyeNursingElectricFormula", getEyeNursingElectricFormula()) + .append("customizationElectricQuestion", getCustomizationElectricQuestion()) + .toString(); + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxNursingLog.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxNursingLog.java index bf75f6d..5a2850e 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxNursingLog.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxNursingLog.java @@ -155,6 +155,32 @@ public class WxNursingLog extends BaseEntity { */ private Integer jumpType; + /** + * 模式分类名称 + */ + private String dictTypeName; + + /** + * 模式分类id + */ + private Long dictTypeId; + + public String getDictTypeName() { + return dictTypeName; + } + + public void setDictTypeName(String dictTypeName) { + this.dictTypeName = dictTypeName; + } + + public Long getDictTypeId() { + return dictTypeId; + } + + public void setDictTypeId(Long dictTypeId) { + this.dictTypeId = dictTypeId; + } + public void setId(Long id) { this.id = id; } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserScriptLog.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserScriptLog.java index eff947f..70b1046 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserScriptLog.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/entity/WxUserScriptLog.java @@ -1,8 +1,6 @@ package com.flossom.common.core.domain.entity; import com.flossom.common.core.web.domain.BaseEntity; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; /** * 发送话术记录对象 wx_user_script_log diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxNursingLogReq.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxNursingLogReq.java index f03ad02..189f0d2 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxNursingLogReq.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/req/WxNursingLogReq.java @@ -1,13 +1,8 @@ package com.flossom.common.core.domain.req; -import com.flossom.common.core.annotation.Excel; -import com.flossom.common.core.web.domain.BaseEntity; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; - -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.time.LocalTime; +import java.util.List; /** * 用户护理日志对象 wx_nursing_log @@ -55,6 +50,21 @@ public class WxNursingLogReq { */ private String nursingData; + /** + * 是否为水分测试 + */ + private Boolean waterTest; + + /** + * 能量总值 + */ + private Integer energyValue; + + /** + * 档位列表 + */ + private List gearPositionList; + public void setInstrumentId(Long instrumentId) { this.instrumentId = instrumentId; } @@ -110,4 +120,28 @@ public class WxNursingLogReq { public void setNursingData(String nursingData) { this.nursingData = nursingData; } + + public List getGearPositionList() { + return gearPositionList; + } + + public void setGearPositionList(List gearPositionList) { + this.gearPositionList = gearPositionList; + } + + public Boolean getWaterTest() { + return waterTest; + } + + public void setWaterTest(Boolean waterTest) { + this.waterTest = waterTest; + } + + public Integer getEnergyValue() { + return energyValue; + } + + public void setEnergyValue(Integer energyValue) { + this.energyValue = energyValue; + } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/ret/CustomizationElectricFormulaVo.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/ret/CustomizationElectricFormulaVo.java new file mode 100644 index 0000000..d741a15 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/ret/CustomizationElectricFormulaVo.java @@ -0,0 +1,34 @@ +package com.flossom.common.core.domain.ret; + +/** + * 私人定制电流 + */ +public class CustomizationElectricFormulaVo { + private String feelingType; + private Double pullingSeconds; + private Double moisturizeSeconds; + + public String getFeelingType() { + return feelingType; + } + + public void setFeelingType(String feelingType) { + this.feelingType = feelingType; + } + + public Double getPullingSeconds() { + return pullingSeconds; + } + + public void setPullingSeconds(Double pullingSeconds) { + this.pullingSeconds = pullingSeconds; + } + + public Double getMoisturizeSeconds() { + return moisturizeSeconds; + } + + public void setMoisturizeSeconds(Double moisturizeSeconds) { + this.moisturizeSeconds = moisturizeSeconds; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/ret/WxModeRet.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/ret/WxModeRet.java index cf60df8..711fa85 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/ret/WxModeRet.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/ret/WxModeRet.java @@ -181,6 +181,51 @@ public class WxModeRet { */ private List modeVibrate = new ArrayList<>(); + /** + * 面部肌肉对位校准弹窗 json 数据(弹出标题、按钮名称、弹出图片、提示内容) + */ + private String faceCalibrationPopUpJson; + + /** + * 护理调整 json 数据(护理页底图、连接有误提示图、面膜运行中图、区域挡位调整图、报告页人脸图) + */ + private String nursingAdjustmentJson; + + /** + * 定制电流配方json(都选了提拉和滋润、只选了提拉、只选了滋润) + */ + private String customizationElectricFormula; + + /** + * 定制电流护理频率json + */ + private String customizationElectricFrequency; + + /** + * 眼雕大师雷达分值设定json + */ + private String eyeNursingRadar; + + /** + * 眼雕大师问题json + */ + private String eyeNursingQuestion; + + /** + * 眼雕大师护理时长json + */ + private String eyeNursingTime; + + /** + * 眼雕大师模式定制电流配置 + */ + private String eyeNursingElectricFormula; + + /** + * 定制电流问题json(问题x图片、电流定制图片) + */ + private String customizationElectricQuestion; + public void setId(Long id) { this.id = id; @@ -445,4 +490,76 @@ public class WxModeRet { public void setModeVibrate(List modeVibrate) { this.modeVibrate = modeVibrate; } + + public String getFaceCalibrationPopUpJson() { + return faceCalibrationPopUpJson; + } + + public void setFaceCalibrationPopUpJson(String faceCalibrationPopUpJson) { + this.faceCalibrationPopUpJson = faceCalibrationPopUpJson; + } + + public String getNursingAdjustmentJson() { + return nursingAdjustmentJson; + } + + public void setNursingAdjustmentJson(String nursingAdjustmentJson) { + this.nursingAdjustmentJson = nursingAdjustmentJson; + } + + public String getCustomizationElectricFormula() { + return customizationElectricFormula; + } + + public void setCustomizationElectricFormula(String customizationElectricFormula) { + this.customizationElectricFormula = customizationElectricFormula; + } + + public String getCustomizationElectricFrequency() { + return customizationElectricFrequency; + } + + public void setCustomizationElectricFrequency(String customizationElectricFrequency) { + this.customizationElectricFrequency = customizationElectricFrequency; + } + + public String getEyeNursingRadar() { + return eyeNursingRadar; + } + + public void setEyeNursingRadar(String eyeNursingRadar) { + this.eyeNursingRadar = eyeNursingRadar; + } + + public String getEyeNursingQuestion() { + return eyeNursingQuestion; + } + + public void setEyeNursingQuestion(String eyeNursingQuestion) { + this.eyeNursingQuestion = eyeNursingQuestion; + } + + public String getEyeNursingTime() { + return eyeNursingTime; + } + + public void setEyeNursingTime(String eyeNursingTime) { + this.eyeNursingTime = eyeNursingTime; + } + + public String getEyeNursingElectricFormula() { + return eyeNursingElectricFormula; + } + + public void setEyeNursingElectricFormula(String eyeNursingElectricFormula) { + this.eyeNursingElectricFormula = eyeNursingElectricFormula; + } + + public String getCustomizationElectricQuestion() { + return customizationElectricQuestion; + } + + public void setCustomizationElectricQuestion(String customizationElectricQuestion) { + this.customizationElectricQuestion = customizationElectricQuestion; + } } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ExchangeBindingUserInstrument.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ExchangeBindingUserInstrument.java new file mode 100644 index 0000000..de17157 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ExchangeBindingUserInstrument.java @@ -0,0 +1,34 @@ +package com.flossom.common.core.domain.shuyun; + +import com.flossom.common.core.domain.entity.WxUserInstrument; + +public class ExchangeBindingUserInstrument { + + private WxUserInstrument oldUserInstrument; + + private WxUserInstrument newUserInstrument; + + public ExchangeBindingUserInstrument() { + } + + public ExchangeBindingUserInstrument(WxUserInstrument oldUserInstrument, WxUserInstrument newUserInstrument) { + this.oldUserInstrument = oldUserInstrument; + this.newUserInstrument = newUserInstrument; + } + + public WxUserInstrument getOldUserInstrument() { + return oldUserInstrument; + } + + public void setOldUserInstrument(WxUserInstrument oldUserInstrument) { + this.oldUserInstrument = oldUserInstrument; + } + + public WxUserInstrument getNewUserInstrument() { + return newUserInstrument; + } + + public void setNewUserInstrument(WxUserInstrument newUserInstrument) { + this.newUserInstrument = newUserInstrument; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunBatchIntegralOperation.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunBatchIntegralOperation.java new file mode 100644 index 0000000..64ba27b --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunBatchIntegralOperation.java @@ -0,0 +1,43 @@ +package com.flossom.common.core.domain.shuyun; + +public class ShuYunBatchIntegralOperation { + + private ShuYunPointChange shuYunPointChange; + + private Long userId; + + private String unionId; + + public ShuYunBatchIntegralOperation() { + } + + public ShuYunBatchIntegralOperation(ShuYunPointChange shuYunPointChange, Long userId, String unionId) { + this.shuYunPointChange = shuYunPointChange; + this.userId = userId; + this.unionId = unionId; + } + + public ShuYunPointChange getShuYunPointChange() { + return shuYunPointChange; + } + + public void setShuYunPointChange(ShuYunPointChange shuYunPointChange) { + this.shuYunPointChange = shuYunPointChange; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUnionId() { + return unionId; + } + + public void setUnionId(String unionId) { + this.unionId = unionId; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunBatchTagOperation.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunBatchTagOperation.java new file mode 100644 index 0000000..e748684 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunBatchTagOperation.java @@ -0,0 +1,58 @@ +package com.flossom.common.core.domain.shuyun; + +import java.util.ArrayList; +import java.util.List; + +public class ShuYunBatchTagOperation { + + // 计算新增加元素 + List needAddTagIdList = new ArrayList<>(); + // 计算要删除的元素 + List needDelTagIdList = new ArrayList<>(); + + private Long userId; + + private String unionId; + + public ShuYunBatchTagOperation() { + } + + public ShuYunBatchTagOperation(List needAddTagIdList, List needDelTagIdList, Long userId, String unionId) { + this.needDelTagIdList = needDelTagIdList; + this.needAddTagIdList = needAddTagIdList; + this.userId = userId; + this.unionId = unionId; + } + + public List getNeedDelTagIdList() { + return needDelTagIdList; + } + + public void setNeedDelTagIdList(List needDelTagIdList) { + this.needDelTagIdList = needDelTagIdList; + } + + public List getNeedAddTagIdList() { + return needAddTagIdList; + } + + public void setNeedAddTagIdList(List needAddTagIdList) { + this.needAddTagIdList = needAddTagIdList; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUnionId() { + return unionId; + } + + public void setUnionId(String unionId) { + this.unionId = unionId; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTag.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTag.java index 51a820d..1553f4a 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTag.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTag.java @@ -19,7 +19,7 @@ public class ShuYunTag { /** * 0:日期, 1:字符输入(单值), 2:字符选择, 3:数值输入, 4:数值选择, 5:字符输入(多值), 6:年龄, 7:孕龄,8:从属型 */ - private Integer valueType; + private Integer valueType = 1; /** * 标签值为时间类型时必须填入,日期类型(0:年/月/日, 1:年/月) * 如果标签值类型为3(数值输入型)或4(数值选择型), 代表("0":"整数","1":"小数"), @@ -33,16 +33,16 @@ public class ShuYunTag { /** * 在标签值类型为2(字符选择型)或者4(数值选择型)时必须传入,可打标签值个数(0:单选,1:多选) */ - private Integer valueNumberOption; + private Integer valueNumberOption = 0; /** * 标签值有效期,-1表示永久有效 * 标签值有效期,如果有有效期,为固定的一个整数。跟validPeriodType字段组合使用,表示多少天,多少月,多少年 */ - private Integer validPeriod; + private Integer validPeriod = -1; /** * 标签值有效期类型(0:天, 1:月, 2:年,-1:永久有效) */ - private Integer validPeriodType; + private Integer validPeriodType = 0; /** * 标签描述信息,没有描述信息需要传入空字符串 */ @@ -56,7 +56,7 @@ public class ShuYunTag { /** * 标签值类型(0:日期, 1:字符输入(单值), 2:字符选择, 3:数值输入, 4:数值选择, 5:字符输入(多值), 6:年龄, 7:孕龄,8:从属型) */ - private String tagType; + private String tagType = "1"; private List tagValue; private Integer permission; @@ -67,6 +67,10 @@ public class ShuYunTag { public ShuYunTag() { } + public ShuYunTag(Integer groupId, String tagName) { + this.groupId = groupId; + this.tagName = tagName; + } public ShuYunTag(Integer groupId, Integer tagId, String tagName, Integer valueType, Integer optionType, Integer valueNumberOption, Integer validPeriod, Integer validPeriodType, String description) { this.groupId = groupId; diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTagCreateCallbackReq.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTagCreateCallbackReq.java index 6a1bdea..f24093a 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTagCreateCallbackReq.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunTagCreateCallbackReq.java @@ -12,7 +12,7 @@ public class ShuYunTagCreateCallbackReq { /** * 外部标签ID */ - private String tagId; + private Integer tagId; /** * 外部标签名称 */ @@ -27,17 +27,17 @@ public class ShuYunTagCreateCallbackReq { public ShuYunTagCreateCallbackReq() { } - public ShuYunTagCreateCallbackReq(String tagId, String tagName, Date addTime) { + public ShuYunTagCreateCallbackReq(Integer tagId, String tagName, Date addTime) { this.tagId = tagId; this.tagName = tagName; this.addTime = addTime; } - public String getTagId() { + public Integer getTagId() { return tagId; } - public void setTagId(String tagId) { + public void setTagId(Integer tagId) { this.tagId = tagId; } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunUserTagReq.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunUserTagReq.java index 0111244..dc2d0e6 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunUserTagReq.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/domain/shuyun/ShuYunUserTagReq.java @@ -1,7 +1,5 @@ package com.flossom.common.core.domain.shuyun; -import javax.validation.constraints.NotBlank; -import java.util.Date; import java.util.List; /** @@ -43,13 +41,18 @@ public class ShuYunUserTagReq { */ private Integer parentTagId; /** - * 实例名称,从属型子标签打标必须传入 + * 实例名称,从属型子标签打标必须传入(用于区分多个父标签) */ private String instanceName; public ShuYunUserTagReq() { } + public ShuYunUserTagReq(Integer tagId, List tagValue) { + this.tagId = tagId; + this.tagValue = tagValue; + } + public ShuYunUserTagReq(String platCode, String shopId, String platAccount, Integer tagId, List tagValue) { this.platCode = platCode; this.shopId = shopId; @@ -65,6 +68,13 @@ public class ShuYunUserTagReq { this.tagsMark = tagsMark; } + public ShuYunUserTagReq(Integer tagId, List tagValue, Integer parentTagId, String instanceName) { + this.tagId = tagId; + this.tagValue = tagValue; + this.parentTagId = parentTagId; + this.instanceName = instanceName; + } + public String getPlatCode() { return platCode; } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/RedarlevelInitEnum.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/RedarlevelInitEnum.java new file mode 100644 index 0000000..b668142 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/RedarlevelInitEnum.java @@ -0,0 +1,43 @@ +package com.flossom.common.core.enums; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +/** + * 眼雕大师雷达 + * + * @author flossom + */ +public enum RedarlevelInitEnum { + VERTICAL("垂"), + COLLAPSE("垮"), + LINES("纹"), + PINE("松"), + CONCAVE("凹"), + BLACK("黑"), + FATIGUE("疲"), + SWELLING("肿"); + + private final String name; + + RedarlevelInitEnum(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + /** + * 初始化雷达值 + * @return + */ + public static Map initRedarMap(Integer min) { + Map initMap = new HashMap<>(); + Arrays.stream(values()).forEach(item -> { + initMap.put(item.getName(), min); + }); + return initMap; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/WxFindEnum.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/WxFindEnum.java new file mode 100644 index 0000000..5152f8a --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/enums/WxFindEnum.java @@ -0,0 +1,30 @@ +package com.flossom.common.core.enums; + +/** + * 发现管理类型枚举 + * + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/11 + */ +public enum WxFindEnum { + + CAROUSEL_IMAGE(1, "发现轮播图"), + PRODUCT_STARTEGY(2, "产品攻略"); + + private final Integer type; + private final String name; + + WxFindEnum(Integer type, String name) { + this.type = type; + this.name = name; + } + + public Integer getType() { + return type; + } + + public String getName() { + return name; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/ActivityChannelInfoMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/ActivityChannelInfoMapper.java index dd2912b..a5cf9fb 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/ActivityChannelInfoMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/ActivityChannelInfoMapper.java @@ -1,6 +1,7 @@ package com.flossom.common.core.mapper; import com.flossom.common.core.domain.entity.ActivityChannelInfo; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,8 +11,7 @@ import java.util.List; * @author flossom * @date 2023-12-20 */ -public interface ActivityChannelInfoMapper -{ +public interface ActivityChannelInfoMapper { /** * 查询活动渠道信息 * @@ -20,6 +20,14 @@ public interface ActivityChannelInfoMapper */ public ActivityChannelInfo selectActivityChannelInfoById(Long id); + /** + * 查询活动渠道信息 + * + * @param id 活动渠道信息主键 + * @return 活动渠道信息 + */ + List selectActivityChannelInfoByIdList(@Param("ids") List id); + /** * 查询活动渠道信息列表 * diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/CtLeaveMessageMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/CtLeaveMessageMapper.java index ab59747..549021e 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/CtLeaveMessageMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/CtLeaveMessageMapper.java @@ -11,8 +11,7 @@ import java.util.List; * @author flossom * @date 2023-12-11 */ -public interface CtLeaveMessageMapper -{ +public interface CtLeaveMessageMapper { /** * 查询共创管理-留言管理 * diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoMapper.java index 4091d8c..e8cb1f7 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoMapper.java @@ -1,7 +1,9 @@ package com.flossom.common.core.mapper; import com.flossom.common.core.domain.entity.SiteInfo; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -59,4 +61,16 @@ public interface SiteInfoMapper * @return 结果 */ public int deleteSiteInfoByIds(Long[] ids); + + /** + * 修改排序 + * @param orderNumber 排序值 + * @param operate 是否开启 + * @param id id + * @param updateDate 修改时间 + * @param updateName 修改用户名 + */ + void updateSort(@Param("operate")Integer operate, @Param("orderNumber")Long orderNumber, @Param("id")Long id, @Param("updateDate")Date updateDate, @Param("updateName")String updateName); + + } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoTagMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoTagMapper.java index 7d59c53..1c20e54 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoTagMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SiteInfoTagMapper.java @@ -1,8 +1,9 @@ package com.flossom.common.core.mapper; -import java.util.List; - import com.flossom.common.core.domain.entity.SiteInfoTag; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 站点与标签关联Mapper接口 @@ -77,4 +78,12 @@ public interface SiteInfoTagMapper * @return 结果 */ public int deleteSiteInfoTagByTagId(Long tagId); + + /** + * 批量新增发现管理与标签关联 + * + * @param siteInfoTagList 发现管理与标签关联 + * @return 结果 + */ + void inserts(@Param("siteInfoTagList")List siteInfoTagList); } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SysTagMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SysTagMapper.java index 4de6b7f..be51623 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SysTagMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/SysTagMapper.java @@ -36,6 +36,24 @@ public interface SysTagMapper { */ public SysTag selectDeptById(Long id); + /** + * 根据标签ID列表查询信息 + * + * @param ids 标签ID + * @return 标签信息 + */ + List selectDeptByIds(@Param("ids")List ids); + + /** + * 根据标签ID列表查询标签信息 + * + * @param ids 标签ID + * @return 标签信息 + */ + List selectDataListByIds(@Param("ids")List ids); + + public SysTag selectSysTagById(@Param("id") Long id, @Param("delFlag") Integer delFlag); + /** * 根据ID查询所有子标签 * diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockLogMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockLogMapper.java index fde3ef9..d927a73 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockLogMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockLogMapper.java @@ -62,7 +62,7 @@ public interface WxClockLogMapper { */ public int deleteWxClockLogByIds(Long[] ids); - Integer selectCountByUserId(WxClockLog queryClockLog); + Long selectCountByUserId(WxClockLog queryClockLog); List selectWxClockImgRetList(WxClockLog queryClockLog); diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockStatisticsMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockStatisticsMapper.java index 0d0fd80..a381f2b 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockStatisticsMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxClockStatisticsMapper.java @@ -61,5 +61,5 @@ public interface WxClockStatisticsMapper { */ public int deleteWxClockStatisticsByIds(Long[] ids); - List selectByUserIdAndYearMonth(@Param("userIdList") List userIdList, @Param("year") int year, @Param("month") int month); + List selectByUserIdAndYearMonth(@Param("userIdList") List userIdList, @Param("year") Integer year, @Param("month") Integer month); } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindCarouselMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindCarouselMapper.java new file mode 100644 index 0000000..8cad262 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindCarouselMapper.java @@ -0,0 +1,76 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.WxFindCarousel; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 发现轮播图Mapper接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface WxFindCarouselMapper { + /** + * 查询发现轮播图 + * + * @param id 发现轮播图主键 + * @return 发现轮播图 + */ + WxFindCarousel selectWxFindCarouselById(Long id); + + /** + * 查询发现轮播图列表 + * + * @param wxFindCarousel 发现轮播图 + * @return 发现轮播图集合 + */ + List selectWxFindCarouselList(WxFindCarousel wxFindCarousel); + + /** + * 新增发现轮播图 + * + * @param wxFindCarousel 发现轮播图 + * @return 结果 + */ + int insertWxFindCarousel(WxFindCarousel wxFindCarousel); + + /** + * 修改发现轮播图 + * + * @param wxFindCarousel 发现轮播图 + * @return 结果 + */ + int updateWxFindCarousel(WxFindCarousel wxFindCarousel); + + /** + * 删除发现轮播图 + * + * @param id 发现轮播图主键 + * @return 结果 + */ + int deleteWxFindCarouselById(@Param("id") Long id, @Param("updateDate") Date updateDate, @Param("updateName") String updateName); + + /** + * 批量删除发现轮播图 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteWxFindCarouselByIds(@Param("ids") Long[] ids, @Param("updateDate") Date updateDate, @Param("updateName") String updateName); + + /** + * 修改排序 + * + * @param orderNumber 排序值 + * @param operate 是否开启 + * @param id id + * @param updateDate 修改时间 + * @param updateName 修改用户名 + */ + void updateSortOrOpen(@Param("operate") Long operate, @Param("orderNumber") Long orderNumber, @Param("id") Long id, @Param("updateDate") Date updateDate, @Param("updateName") String updateName); + + void updateTitleById(@Param("title") String title, @Param("id") long id); +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindInstrumentMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindInstrumentMapper.java new file mode 100644 index 0000000..a3b6705 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindInstrumentMapper.java @@ -0,0 +1,71 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.WxFindInstrument; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 发现管理与图仪器关联Mapper接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface WxFindInstrumentMapper { + /** + * 查询发现管理与图仪器关联 + * + * @param id 发现管理与图仪器关联主键 + * @return 发现管理与图仪器关联 + */ + WxFindInstrument selectWxFindInstrumentById(Long id); + + /** + * 查询发现管理与图仪器关联列表 + * + * @param wxFindInstrument 发现管理与图仪器关联 + * @return 发现管理与图仪器关联集合 + */ + List selectWxFindInstrumentList(WxFindInstrument wxFindInstrument); + + /** + * 新增发现管理与图仪器关联 + * + * @param wxFindInstrument 发现管理与图仪器关联 + * @return 结果 + */ + int insertWxFindInstrument(WxFindInstrument wxFindInstrument); + + /** + * 修改发现管理与图仪器关联 + * + * @param wxFindInstrument 发现管理与图仪器关联 + * @return 结果 + */ + int updateWxFindInstrument(WxFindInstrument wxFindInstrument); + + /** + * 删除发现管理与图仪器关联 + * + * @param id 发现管理与图仪器关联主键 + * @return 结果 + */ + int deleteWxFindInstrumentById(Long id); + + /** + * 批量删除发现管理与图仪器关联 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteWxFindInstrumentByIds(Long[] ids); + + /** + * 根据发现管理id软删除数据 + * @param wxFindId 发现管理id + * @param updateDate 修改时间 + * @param updateName 修改人名称 + */ + void deleteWxFindInstrumentByWxFindId(@Param("wxFindId")Long wxFindId, @Param("updateDate")Date updateDate, @Param("updateName")String updateName, @Param("wxFindType")Integer wxFindType); +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindProductStrategyMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindProductStrategyMapper.java new file mode 100644 index 0000000..8108e05 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindProductStrategyMapper.java @@ -0,0 +1,73 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.WxFindProductStrategy; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 产品攻略Mapper接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface WxFindProductStrategyMapper { + /** + * 查询产品攻略 + * + * @param id 产品攻略主键 + * @return 产品攻略 + */ + WxFindProductStrategy selectWxFindProductStrategyById(Long id); + + /** + * 查询产品攻略列表 + * + * @param wxFindProductStrategy 产品攻略 + * @return 产品攻略集合 + */ + List selectWxFindProductStrategyList(WxFindProductStrategy wxFindProductStrategy); + + /** + * 新增产品攻略 + * + * @param wxFindProductStrategy 产品攻略 + * @return 结果 + */ + int insertWxFindProductStrategy(WxFindProductStrategy wxFindProductStrategy); + + /** + * 修改产品攻略 + * + * @param wxFindProductStrategy 产品攻略 + * @return 结果 + */ + int updateWxFindProductStrategy(WxFindProductStrategy wxFindProductStrategy); + + /** + * 删除产品攻略 + * + * @param id 产品攻略主键 + * @return 结果 + */ + int deleteWxFindProductStrategyById(@Param("id")Long id, @Param("updateDate") Date updateDate, @Param("updateName")String updateName); + + /** + * 批量删除产品攻略 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteWxFindProductStrategyByIds(@Param("ids")Long[] ids, @Param("updateDate") Date updateDate, @Param("updateName")String updateName); + + /** + * 修改排序 + * @param orderNumber 排序值 + * @param operate 是否开启 + * @param id id + * @param updateDate 修改时间 + * @param updateName 修改用户名 + */ + void updateSort(@Param("operate")Long operate, @Param("orderNumber")Long orderNumber, @Param("id")Long id, @Param("updateDate")Date updateDate, @Param("updateName")String updateName); +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindTagMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindTagMapper.java new file mode 100644 index 0000000..4c1e361 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxFindTagMapper.java @@ -0,0 +1,79 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.WxFindTag; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * 发现管理与标签关联Mapper接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface WxFindTagMapper { + /** + * 查询发现管理与标签关联 + * + * @param id 发现管理与标签关联主键 + * @return 发现管理与标签关联 + */ + WxFindTag selectWxFindTagById(Long id); + + /** + * 查询发现管理与标签关联列表 + * + * @param wxFindTag 发现管理与标签关联 + * @return 发现管理与标签关联集合 + */ + List selectWxFindTagList(WxFindTag wxFindTag); + + /** + * 新增发现管理与标签关联 + * + * @param wxFindTag 发现管理与标签关联 + * @return 结果 + */ + int insertWxFindTag(WxFindTag wxFindTag); + + /** + * 批量新增发现管理与标签关联 + * + * @param wxFindTagList 发现管理与标签关联 + * @return 结果 + */ + int inserts(@Param("wxFindTagList") List wxFindTagList); + + /** + * 修改发现管理与标签关联 + * + * @param wxFindTag 发现管理与标签关联 + * @return 结果 + */ + int updateWxFindTag(WxFindTag wxFindTag); + + /** + * 删除发现管理与标签关联 + * + * @param id 发现管理与标签关联主键 + * @return 结果 + */ + int deleteWxFindTagById(Long id); + + /** + * 批量删除发现管理与标签关联 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + int deleteWxFindTagByIds(Long[] ids); + + /** + * 根据发现管理id软删除数据 + * @param wxFindId 发现管理id + * @param updateDate 修改时间 + * @param updateName 修改人名称 + */ + void deleteWxFindTagByWxFindId(@Param("wxFindId")Long wxFindId, @Param("updateDate")Date updateDate, @Param("updateName")String updateName, @Param("wxFindType")Integer wxFindType); +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxInterfaceRequestLogMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxInterfaceRequestLogMapper.java new file mode 100644 index 0000000..17efc18 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxInterfaceRequestLogMapper.java @@ -0,0 +1,61 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.WxInterfaceRequestLog; + +import java.util.List; + + +/** + * 请求数云接口日志Mapper接口 + */ +public interface WxInterfaceRequestLogMapper { + + /** + * 查询请求数云接口日志 + * + * @param id 请求数云接口日志主键 + * @return 请求数云接口日志 + */ + public WxInterfaceRequestLog selectWxInterfaceRequestLogById(Long id); + + /** + * 查询请求数云接口日志列表 + * + * @param wxInterfaceRequestLog 请求数云接口日志 + * @return 请求数云接口日志集合 + */ + public List selectWxInterfaceRequestLogList(WxInterfaceRequestLog wxInterfaceRequestLog); + + /** + * 新增请求数云接口日志 + * + * @param wxInterfaceRequestLog 请求数云接口日志 + * @return 结果 + */ + public int insertWxInterfaceRequestLog(WxInterfaceRequestLog wxInterfaceRequestLog); + + /** + * 修改请求数云接口日志 + * + * @param wxInterfaceRequestLog 请求数云接口日志 + * @return 结果 + */ + public int updateWxInterfaceRequestLog(WxInterfaceRequestLog wxInterfaceRequestLog); + + /** + * 删除请求数云接口日志 + * + * @param id 请求数云接口日志主键 + * @return 结果 + */ + public int deleteWxInterfaceRequestLogById(Long id); + + /** + * 批量删除请求数云接口日志 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWxInterfaceRequestLogByIds(Long[] ids); + +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxModeWe200RelationMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxModeWe200RelationMapper.java new file mode 100644 index 0000000..d187801 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxModeWe200RelationMapper.java @@ -0,0 +1,66 @@ +package com.flossom.common.core.mapper; + +import com.flossom.common.core.domain.entity.WxModeWe200Relation; + +import java.util.List; + + +/** + * 【请填写功能名称】Mapper接口 + * + * @author flossom + * @date 2024-04-11 + */ +public interface WxModeWe200RelationMapper { + + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + public WxModeWe200Relation selectWxModeWe200RelationById(Long id); + + /** + * 查询【请填写功能名称】列表 + * + * @param wxModeWe200Relation 【请填写功能名称】 + * @return 【请填写功能名称】集合 + */ + public List selectWxModeWe200RelationList(WxModeWe200Relation wxModeWe200Relation); + + public WxModeWe200Relation selectWxModeWe200RelationByModeId(Long modeId); + + /** + * 新增【请填写功能名称】 + * + * @param wxModeWe200Relation 【请填写功能名称】 + * @return 结果 + */ + public int insertWxModeWe200Relation(WxModeWe200Relation wxModeWe200Relation); + + /** + * 修改【请填写功能名称】 + * + * @param wxModeWe200Relation 【请填写功能名称】 + * @return 结果 + */ + public int updateWxModeWe200Relation(WxModeWe200Relation wxModeWe200Relation); + + /** + * 删除【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + public int deleteWxModeWe200RelationById(Long id); + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWxModeWe200RelationByIds(Long[] ids); + +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserInstrumentMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserInstrumentMapper.java index 2a1e7c2..e93dedb 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserInstrumentMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserInstrumentMapper.java @@ -68,4 +68,11 @@ public interface WxUserInstrumentMapper void deleteByUserId(@Param("userId") Long userId); List selectListByCondition(WxUserInstrument wxUserInstrument); + + /** + * 根据用户id查询仪器id + * @param userId 用户id + * @return 用户关联的仪器id + */ + List selectInstrumentIdListByUserId(@Param("userId") Long userId); } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java index 7ee20b2..9b43515 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/mapper/WxUserTagMapper.java @@ -71,9 +71,11 @@ public interface WxUserTagMapper { List selectWxUserTagByTagId(@Param("tagId") Integer tagId, @Param("type") Integer type); + List selectWxUserTagByUserId(@Param("userId") Integer userId, @Param("type") Integer type); + void insertBatch(@Param("list") List list); - void deleteBatch(@Param("tagIdList") List tagIdList, @Param("userIdList") List userIdList); + void deleteBatch(@Param("tagIdList") List tagIdList, @Param("userId") Integer userId, @Param("type") Integer type); void deleteWxUserTagByUserId(@Param("userId") Long userId); } diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/request/miniProgram/AnswerResultRequest.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/request/miniProgram/AnswerResultRequest.java new file mode 100644 index 0000000..667e4b1 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/request/miniProgram/AnswerResultRequest.java @@ -0,0 +1,71 @@ +package com.flossom.common.core.request.miniProgram; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * + * 获取电流定制答题结果 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/16 + */ +public class AnswerResultRequest { + + /** + * 电流定制配方 + */ + @NotEmpty(message = "电流定制配方不能为空") + private List electricList; + + /** + * 电流等级 (Lv1, Lv2, Lv3, Lv4, Lv5) + */ + @NotNull(message = "电流等级不能为空") + private Integer electricLevel; + + /** + * 电流雷达图最小等级 + */ + @NotNull(message = "电流雷达图最小等级不能为空") + private Integer min; + + /** + * 模式id + */ + @NotNull(message = "模式id不能为空") + private Long modeId; + + public List getElectricList() { + return electricList; + } + + public void setElectricList(List electricList) { + this.electricList = electricList; + } + + public Integer getElectricLevel() { + return electricLevel; + } + + public void setElectricLevel(Integer electricLevel) { + this.electricLevel = electricLevel; + } + + public Long getModeId() { + return modeId; + } + + public void setModeId(Long modeId) { + this.modeId = modeId; + } + + public Integer getMin() { + return min; + } + + public void setMin(Integer min) { + this.min = min; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/request/miniProgram/ElectricFormulaRequest.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/request/miniProgram/ElectricFormulaRequest.java new file mode 100644 index 0000000..20fc8c7 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/request/miniProgram/ElectricFormulaRequest.java @@ -0,0 +1,41 @@ +package com.flossom.common.core.request.miniProgram; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 定制电流配方和频率 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/16 + */ +public class ElectricFormulaRequest { + /** + * 模式ID + */ + @NotNull(message = "模式ID不能为空") + private Long modeId; + + /** + * 答题结论 + */ + @NotEmpty(message = "答题结论不能为空") + private List formula; + + public Long getModeId() { + return modeId; + } + + public void setModeId(Long modeId) { + this.modeId = modeId; + } + + public List getFormula() { + return formula; + } + + public void setFormula(List formula) { + this.formula = formula; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/WxFindCarouselListResponse.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/WxFindCarouselListResponse.java new file mode 100644 index 0000000..b8e31a9 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/WxFindCarouselListResponse.java @@ -0,0 +1,132 @@ +package com.flossom.common.core.response; + +import java.io.Serializable; + +/** + * 发现轮播图相应对象 + * + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/11 + */ +public class WxFindCarouselListResponse implements Serializable { + + private static final long serialVersionUID = 1243453534L; + + /** + * 发现轮播图ID + */ + private Long id; + + /** + * 文件路径 + */ + private String fileUrl; + + /** + * 跳转类型:0无跳转、1跳转内部链接、3跳转外部链接、4跳转小程序、5导向视频号、6导向视频号直播间 + */ + private Long type; + + /** + * 跳转链接(跳转外部链接、跳转内部链接) + */ + private String link; + + /** + * 跳转链接参数(跳转内部链接) + */ + private String linkParams; + + /** + * 外链小程序appid(跳转小程序) + */ + private String redirectAppid; + + /** + * 外链小程序url(跳转小程序) + */ + private String redirectUrl; + + /** + * 视频号(导向视频号、导向视频号直播间) + */ + private String videoNo; + + /** + * 视频号feedId(导向视频号) + */ + private String feedId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getFileUrl() { + return fileUrl; + } + + public void setFileUrl(String fileUrl) { + this.fileUrl = fileUrl; + } + + public Long getType() { + return type; + } + + public void setType(Long type) { + this.type = type; + } + + public String getLink() { + return link; + } + + public void setLink(String link) { + this.link = link; + } + + public String getLinkParams() { + return linkParams; + } + + public void setLinkParams(String linkParams) { + this.linkParams = linkParams; + } + + public String getRedirectAppid() { + return redirectAppid; + } + + public void setRedirectAppid(String redirectAppid) { + this.redirectAppid = redirectAppid; + } + + public String getRedirectUrl() { + return redirectUrl; + } + + public void setRedirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + } + + public String getVideoNo() { + return videoNo; + } + + public void setVideoNo(String videoNo) { + this.videoNo = videoNo; + } + + public String getFeedId() { + return feedId; + } + + public void setFeedId(String feedId) { + this.feedId = feedId; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/EyeNursingElectricFormulaResponse.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/EyeNursingElectricFormulaResponse.java new file mode 100644 index 0000000..698492b --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/EyeNursingElectricFormulaResponse.java @@ -0,0 +1,73 @@ +package com.flossom.common.core.response.miniProgram; + +/** + * 眼雕大师模式定制电流配置响模型 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/16 + */ +public class EyeNursingElectricFormulaResponse { + + /** + * 眼周需求选择分组编号 + */ + private String requirementSelection; + + /** + * 部位 + */ + private String part; + + /** + * 电流种类 + */ + private String CurrentType; + + /** + * 电流种类等级分值 + */ + private Integer levelScore; + + + public EyeNursingElectricFormulaResponse() { + } + + public EyeNursingElectricFormulaResponse(String requirementSelection, String part, String currentType, Integer levelScore) { + this.requirementSelection = requirementSelection; + this.part = part; + CurrentType = currentType; + this.levelScore = levelScore; + } + + public String getRequirementSelection() { + return requirementSelection; + } + + public void setRequirementSelection(String requirementSelection) { + this.requirementSelection = requirementSelection; + } + + public String getPart() { + return part; + } + + public void setPart(String part) { + this.part = part; + } + + public String getCurrentType() { + return CurrentType; + } + + public void setCurrentType(String currentType) { + CurrentType = currentType; + } + + public Integer getLevelScore() { + return levelScore; + } + + public void setLevelScore(Integer levelScore) { + this.levelScore = levelScore; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/RedarScoreResponse.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/RedarScoreResponse.java new file mode 100644 index 0000000..06e680b --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/RedarScoreResponse.java @@ -0,0 +1,45 @@ +package com.flossom.common.core.response.miniProgram; + +/** + * 眼雕大师雷达分数响应实体 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/17 + */ +public class RedarScoreResponse { + + /** + * 雷达问题描述名称 + */ + private String redarName; + + /** + * 雷达问题描述分数 + */ + private Integer redarScore; + + + public RedarScoreResponse() { + } + + public RedarScoreResponse(String redarName, Integer redarScore) { + this.redarName = redarName; + this.redarScore = redarScore; + } + + public String getRedarName() { + return redarName; + } + + public void setRedarName(String redarName) { + this.redarName = redarName; + } + + public Integer getRedarScore() { + return redarScore; + } + + public void setRedarScore(Integer redarScore) { + this.redarScore = redarScore; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/WxAnswerResponse.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/WxAnswerResponse.java new file mode 100644 index 0000000..479928d --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/response/miniProgram/WxAnswerResponse.java @@ -0,0 +1,64 @@ +package com.flossom.common.core.response.miniProgram; + +import java.util.List; + +/** + * 眼雕大师雷达响应结果 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/17 + */ +public class WxAnswerResponse { + + /** + * 护理时间 + */ + private Integer nursingTime; + + /** + * 专属配方编号 + */ + private String formulaCode; + + /** + * 雷达参数 + */ + private List redarScoreList; + + /** + * 定制电流配置 + */ + private List electricFormulaList; + + public List getElectricFormulaList() { + return electricFormulaList; + } + + public void setElectricFormulaList(List electricFormulaList) { + this.electricFormulaList = electricFormulaList; + } + + public Integer getNursingTime() { + return nursingTime; + } + + public void setNursingTime(Integer nursingTime) { + this.nursingTime = nursingTime; + } + + public String getFormulaCode() { + return formulaCode; + } + + public void setFormulaCode(String formulaCode) { + this.formulaCode = formulaCode; + } + + public List getRedarScoreList() { + return redarScoreList; + } + + public void setRedarScoreList(List redarScoreList) { + this.redarScoreList = redarScoreList; + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/utils/CollectionUtils.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/utils/CollectionUtils.java new file mode 100644 index 0000000..bca38ff --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/utils/CollectionUtils.java @@ -0,0 +1,43 @@ + +package com.flossom.common.core.utils; + +import java.util.*; + +public class CollectionUtils { + + private CollectionUtils() { + } + + public static boolean isNotEmpty(Collection collection) { + return !isEmpty(collection); + } + + public static boolean isEmpty(Collection collection) { + return null == collection || collection.isEmpty(); + } + + public static int size(Collection collection) { + return null == collection ? 0 : collection.size(); + } + + public static List> split(List list, int size) { + if (isEmpty(list)) { + return Collections.emptyList(); + } else { + int listSize = list.size(); + List> result = new ArrayList(listSize / size + 1); + int offset = 0; + + for (int toIdx = size; toIdx <= listSize; toIdx += size) { + result.add(list.subList(offset, toIdx)); + offset = toIdx; + } + + if (offset < listSize) { + result.add(list.subList(offset, listSize)); + } + + return result; + } + } +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/utils/HttpClientUtils.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/utils/HttpClientUtils.java new file mode 100644 index 0000000..0c6fa9d --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/utils/HttpClientUtils.java @@ -0,0 +1,393 @@ +package com.flossom.common.core.utils; + + +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.config.RequestConfig.Builder; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.utils.URIBuilder; +import org.apache.http.conn.ConnectTimeoutException; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLContextBuilder; +import org.apache.http.conn.ssl.TrustStrategy; +import org.apache.http.conn.ssl.X509HostnameVerifier; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLException; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocket; +import java.io.IOException; +import java.net.SocketTimeoutException; +import java.net.URI; +import java.security.GeneralSecurityException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +public class HttpClientUtils { + + private static final Logger log = LoggerFactory.getLogger(HttpClientUtils.class); + + public static final int connTimeout = 10000; + public static final int readTimeout = 10000; + public static final String charset = "UTF-8"; + private static HttpClient client = null; + + static { + PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); + cm.setMaxTotal(128); + cm.setDefaultMaxPerRoute(128); + client = HttpClients.custom().setConnectionManager(cm).build(); + } + + public static String postJsonParameters(String url, String parameterStr) throws Exception { + return postJson(url, parameterStr, charset, connTimeout, readTimeout); + } + + public static String postParameters(String url, String parameterStr) throws Exception { + return post(url, parameterStr, "application/x-www-form-urlencoded", charset, connTimeout, readTimeout); + } + + public static String postParameters(String url, String parameterStr, String charset, Integer connTimeout, Integer readTimeout) throws ConnectTimeoutException, SocketTimeoutException, Exception { + return post(url, parameterStr, "application/x-www-form-urlencoded", charset, connTimeout, readTimeout); + } + + public static String postParameters(String url, Map params) throws ConnectTimeoutException, + SocketTimeoutException, Exception { + return postForm(url, params, null, connTimeout, readTimeout); + } + + public static String postParameters(String url, Map params, Integer connTimeout, Integer readTimeout) throws ConnectTimeoutException, + SocketTimeoutException, Exception { + return postForm(url, params, null, connTimeout, readTimeout); + } + + public static String get(String url) throws Exception { + return get(url, charset, null, null); + } + + public static String get(String url, String charset) throws Exception { + return get(url, charset, connTimeout, readTimeout); + } + + public static String getParameters(String url, Map params) throws Exception { + URIBuilder builder = new URIBuilder(url); + if (params != null) { + for (String key : params.keySet()) { + builder.addParameter(key, params.get(key)); + } + } + URI uri = builder.build(); + return get(uri.toString(), charset, null, null); + } + + /** + * 发送一个 Post 请求, 使用指定的字符集编码. + * + * @param url + * @param body RequestBody + * @param charset 编码 + * @param connTimeout 建立链接超时时间,毫秒. + * @param readTimeout 响应超时时间,毫秒. + * @return ResponseBody, 使用指定的字符集编码. + * @throws ConnectTimeoutException 建立链接超时异常 + * @throws SocketTimeoutException 响应超时 + * @throws Exception + */ + public static String postJson(String url, String body, String charset, Integer connTimeout, Integer readTimeout) throws Exception { + HttpClient client = null; + HttpPost post = new HttpPost(url); + String result = ""; + try { + if (StringUtils.isNotBlank(body)) { + HttpEntity entity = new StringEntity(body, ContentType.APPLICATION_JSON); + post.setEntity(entity); + } + + // 设置参数 + Builder customReqConf = RequestConfig.custom(); + if (connTimeout != null) { + customReqConf.setConnectTimeout(connTimeout); + } + if (readTimeout != null) { + customReqConf.setSocketTimeout(readTimeout); + } + post.setConfig(customReqConf.build()); + + HttpResponse res; + if (url.startsWith("https")) { + // 执行 Https 请求. + client = createSSLInsecureClient(); + res = client.execute(post); + } else { + // 执行 Http 请求. + client = HttpClientUtils.client; + res = client.execute(post); + } + result = EntityUtils.toString(res.getEntity(), charset); + } catch (Exception ex) { + log.error("HttpClient request error!", ex); + throw ex; + } finally { + post.releaseConnection(); + if (url.startsWith("https") && client != null && client instanceof CloseableHttpClient) { + ((CloseableHttpClient) client).close(); + } + } + return result; + } + + /** + * 发送一个 Post 请求, 使用指定的字符集编码. + * + * @param url + * @param body RequestBody + * @param mimeType 例如 application/xml "application/x-www-form-urlencoded" a=1&b=2&c=3 + * @param charset 编码 + * @param connTimeout 建立链接超时时间,毫秒. + * @param readTimeout 响应超时时间,毫秒. + * @return ResponseBody, 使用指定的字符集编码. + * @throws ConnectTimeoutException 建立链接超时异常 + * @throws SocketTimeoutException 响应超时 + * @throws Exception + */ + public static String post(String url, String body, String mimeType, String charset, Integer connTimeout, Integer readTimeout) + throws ConnectTimeoutException, SocketTimeoutException, Exception { + HttpClient client = null; + HttpPost post = new HttpPost(url); + String result = ""; + try { + if (StringUtils.isNotBlank(body)) { + HttpEntity entity = new StringEntity(body, ContentType.create(mimeType, charset)); + post.setEntity(entity); + } + // 设置参数 + Builder customReqConf = RequestConfig.custom(); + if (connTimeout != null) { + customReqConf.setConnectTimeout(connTimeout); + } + if (readTimeout != null) { + customReqConf.setSocketTimeout(readTimeout); + } + post.setConfig(customReqConf.build()); + + HttpResponse res; + if (url.startsWith("https")) { + // 执行 Https 请求. + client = createSSLInsecureClient(); + res = client.execute(post); + } else { + // 执行 Http 请求. + client = HttpClientUtils.client; + res = client.execute(post); + } + result = EntityUtils.toString(res.getEntity(), charset); + } catch (Exception ex) { + log.error("HttpClient request error!", ex); + throw ex; + } finally { + post.releaseConnection(); + if (url.startsWith("https") && client != null && client instanceof CloseableHttpClient) { + ((CloseableHttpClient) client).close(); + } + } + return result; + } + + /** + * 提交form表单 + * + * @param url + * @param params + * @param connTimeout + * @param readTimeout + * @return + * @throws ConnectTimeoutException + * @throws SocketTimeoutException + * @throws Exception + */ + public static String postForm(String url, Map params, Map headers, Integer connTimeout, Integer readTimeout) throws ConnectTimeoutException, + SocketTimeoutException, Exception { + + HttpClient client = null; + HttpPost post = new HttpPost(url); + try { + if (params != null && !params.isEmpty()) { + List formParams = new ArrayList(); + Set> entrySet = params.entrySet(); + for (Entry entry : entrySet) { + formParams.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); + } + UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams, Consts.UTF_8); + post.setEntity(entity); + } + + if (headers != null && !headers.isEmpty()) { + for (Entry entry : headers.entrySet()) { + post.addHeader(entry.getKey(), entry.getValue()); + } + } + // 设置参数 + Builder customReqConf = RequestConfig.custom(); + if (connTimeout != null) { + customReqConf.setConnectTimeout(connTimeout); + } + if (readTimeout != null) { + customReqConf.setSocketTimeout(readTimeout); + } + post.setConfig(customReqConf.build()); + HttpResponse res = null; + if (url.startsWith("https")) { + // 执行 Https 请求. + client = createSSLInsecureClient(); + res = client.execute(post); + } else { + // 执行 Http 请求. + client = HttpClientUtils.client; + res = client.execute(post); + } + return EntityUtils.toString(res.getEntity(), charset); + } catch (Exception ex) { + log.error("HttpClient request error!", ex); + throw ex; + } finally { + post.releaseConnection(); + if (url.startsWith("https") && client != null + && client instanceof CloseableHttpClient) { + ((CloseableHttpClient) client).close(); + } + } + } + + /** + * 发送一个 GET 请求 + * + * @param url + * @param charset + * @param connTimeout 建立链接超时时间,毫秒. + * @param readTimeout 响应超时时间,毫秒. + * @return + * @throws ConnectTimeoutException 建立链接超时 + * @throws SocketTimeoutException 响应超时 + * @throws Exception + */ + public static String get(String url, String charset, Integer connTimeout, Integer readTimeout) + throws ConnectTimeoutException, SocketTimeoutException, Exception { + + HttpClient client = null; + HttpGet get = new HttpGet(url); + String result = ""; + try { + // 设置参数 + Builder customReqConf = RequestConfig.custom(); + if (connTimeout != null) { + customReqConf.setConnectTimeout(connTimeout); + } + if (readTimeout != null) { + customReqConf.setSocketTimeout(readTimeout); + } + get.setConfig(customReqConf.build()); + + HttpResponse res = null; + + if (url.startsWith("https")) { + // 执行 Https 请求. + client = createSSLInsecureClient(); + res = client.execute(get); + } else { + // 执行 Http 请求. + client = HttpClientUtils.client; + res = client.execute(get); + } + result = EntityUtils.toString(res.getEntity(), charset); + } catch (Exception ex) { + log.error("HttpClient request error!", ex); + throw ex; + } finally { + get.releaseConnection(); + if (url.startsWith("https") && client != null && client instanceof CloseableHttpClient) { + ((CloseableHttpClient) client).close(); + } + } + return result; + } + + /** + * 从 response 里获取 charset + * + * @param ressponse + * @return + */ + @SuppressWarnings("unused") + private static String getCharsetFromResponse(HttpResponse ressponse) { + // Content-Type:text/html; charset=GBK + if (ressponse.getEntity() != null && ressponse.getEntity().getContentType() != null && ressponse.getEntity().getContentType().getValue() != null) { + String contentType = ressponse.getEntity().getContentType().getValue(); + if (contentType.contains("charset=")) { + return contentType.substring(contentType.indexOf("charset=") + 8); + } + } + return null; + } + + /** + * 创建 SSL连接 + * + * @return + * @throws GeneralSecurityException + */ + private static CloseableHttpClient createSSLInsecureClient() throws GeneralSecurityException { + try { + SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { + public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { + return true; + } + }).build(); + SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new X509HostnameVerifier() { + + @Override + public boolean verify(String arg0, SSLSession arg1) { + return true; + } + + @Override + public void verify(String host, SSLSocket ssl) + throws IOException { + } + + @Override + public void verify(String host, X509Certificate cert) + throws SSLException { + } + + @Override + public void verify(String host, String[] cns, + String[] subjectAlts) throws SSLException { + } + }); + return HttpClients.custom().setSSLSocketFactory(sslsf).build(); + } catch (GeneralSecurityException e) { + throw e; + } + } + +} diff --git a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/web/domain/BaseEntity.java b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/web/domain/BaseEntity.java index 406b560..dbb1688 100644 --- a/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/web/domain/BaseEntity.java +++ b/flossom-common/flossom-common-core/src/main/java/com/flossom/common/core/web/domain/BaseEntity.java @@ -1,118 +1,117 @@ package com.flossom.common.core.web.domain; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; + import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; /** * Entity基类 * * @author flossom */ -public class BaseEntity implements Serializable -{ +public class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - /** 搜索值 */ + /** + * 搜索值 + */ @JsonIgnore private String searchValue; - /** 创建者 */ + /** + * 创建者 + */ private String createBy; - /** 创建时间 */ + /** + * 创建时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - /** 更新者 */ + /** + * 更新者 + */ private String updateBy; - /** 更新时间 */ + /** + * 更新时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; - /** 备注 */ + /** + * 备注 + */ private String remark; - /** 请求参数 */ + /** + * 请求参数 + */ @JsonInclude(JsonInclude.Include.NON_EMPTY) private Map params; - public String getSearchValue() - { + public String getSearchValue() { return searchValue; } - public void setSearchValue(String searchValue) - { + public void setSearchValue(String searchValue) { this.searchValue = searchValue; } - public String getCreateBy() - { + public String getCreateBy() { return createBy; } - public void setCreateBy(String createBy) - { + public void setCreateBy(String createBy) { this.createBy = createBy; } - public Date getCreateTime() - { + public Date getCreateTime() { return createTime; } - public void setCreateTime(Date createTime) - { + public void setCreateTime(Date createTime) { this.createTime = createTime; } - public String getUpdateBy() - { + public String getUpdateBy() { return updateBy; } - public void setUpdateBy(String updateBy) - { + public void setUpdateBy(String updateBy) { this.updateBy = updateBy; } - public Date getUpdateTime() - { + public Date getUpdateTime() { return updateTime; } - public void setUpdateTime(Date updateTime) - { + public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } - public String getRemark() - { + public String getRemark() { return remark; } - public void setRemark(String remark) - { + public void setRemark(String remark) { this.remark = remark; } - public Map getParams() - { - if (params == null) - { + public Map getParams() { + if (params == null) { params = new HashMap<>(); } return params; } - public void setParams(Map params) - { + public void setParams(Map params) { this.params = params; } } diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/ActivityChannelInfoMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/ActivityChannelInfoMapper.xml index 0f7b26c..e2bcc7b 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/ActivityChannelInfoMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/ActivityChannelInfoMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -16,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, channel_type, channel_name, create_time, create_by from activity_channel_info - and channel_type = #{channelType} @@ -29,7 +29,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + + + + insert into activity_channel_info id, @@ -47,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update activity_channel_info channel_type = #{channelType}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/CtLeaveMessageMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/CtLeaveMessageMapper.xml index 0850a25..c1d64c8 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/CtLeaveMessageMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/CtLeaveMessageMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id,user_id, source, source_name, user_img,user_number, user_name, user_phone, message_info, create_time from ct_leave_message - and source = #{source} @@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into ct_leave_message user_id, @@ -67,7 +67,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update ct_leave_message user_id = #{userId}, @@ -94,7 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - where 1 = 1 diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralClockMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralClockMapper.xml index 42ab3bc..f5f6c65 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralClockMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralClockMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, daily_clock_credit, is_extra_clock, extra_clock_credit, start_time, end_time, status, create_by, create_time, update_by, update_time, remark from integral_clock - and daily_clock_credit = #{dailyClockCredit} @@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into integral_clock daily_clock_credit, @@ -70,7 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update integral_clock daily_clock_credit = #{dailyClockCredit}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralGlobalMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralGlobalMapper.xml index 45a3a3a..da1533f 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralGlobalMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/IntegralGlobalMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, integral, create_time, create_by, update_by, update_time from integral_global - and integral = #{integral} @@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into integral_global id, @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update integral_global integral = #{integral}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoChannelMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoChannelMapper.xml index 97d4a07..50513fc 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoChannelMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoChannelMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, site_id, channel_id, status, create_by, create_time, update_by, update_time, remark from site_info_channel - and site_id = #{siteId} @@ -34,7 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into site_info_channel site_id, @@ -58,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update site_info_channel site_id = #{siteId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoInstrumentMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoInstrumentMapper.xml index 3ae1d91..82a824a 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoInstrumentMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoInstrumentMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, site_id, instrument_id, create_by, create_time, update_by, update_time from site_info_instrument - and site_id = #{siteId} @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into site_info_instrument id, @@ -53,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update site_info_instrument site_id = #{siteId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoMapper.xml index 2c43852..4f17003 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, site_type, site_name, file_url, site_start_time, site_end_time, user_register_start_time, user_register_end_time, open_type, push_type, push_number, push_timer, show_wechat_tag, show_wechat_tag_id, show_company_tag, show_company_tag_id, forbid_wechat_tag, forbid_wechat_tag_id, forbid_company_tag, handler_company_tag, handler_company_tag_id, handler_wechat_tag_id, handler_wechat_tag, forbid_company_tag_id, channel_name, channel_id, instrument_name, instrument_id, user_type, operate, sign_number, order_number, type, link, link_params, redirect_appid, redirect_url, video_no, feed_id, create_by, create_time, update_by, update_time from site_info - and site_type = #{siteType} @@ -104,7 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into site_info site_type, @@ -196,7 +196,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update site_info site_type = #{siteType}, @@ -255,4 +255,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + + + update site_info + set + order_number = #{orderNumber}, + operate = #{operate}, + update_by = #{updateName}, + update_time = #{updateDate} + where id = #{id} + diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoTagMapper.xml index 10c761d..2dbc02e 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoTagMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteInfoTagMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, site_id, tag_id, tag_type, status, create_by, create_time, update_by, update_time, remark from site_info_tag - and site_id = #{siteId} @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into site_info_tag site_id, @@ -62,7 +62,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + insert into site_info_tag + + site_id, tag_id, status, create_by, create_time, update_by, update_time, remark, tag_type + + VALUES + + + #{item.siteId}, #{item.tagId}, #{item.status}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark}, #{item.tagType} + + + + + update site_info_tag site_id = #{siteId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteLogMapper.xml index f6af63e..1e57adc 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SiteLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SiteLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -16,7 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, site_id, create_by, create_time from site_log - and user_id = #{userId} @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into site_log user_id, @@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update site_log user_id = #{userId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysConfigMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysConfigMapper.xml index 7d216cd..72a31df 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysConfigMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysConfigMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -33,12 +33,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - @@ -69,7 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where config_key = #{configKey} limit 1 - + insert into sys_config ( config_name, config_key, @@ -89,7 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_config config_name = #{configName}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysDeptMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysDeptMapper.xml index af21dec..e0090c4 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysDeptMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysDeptMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dept d - where d.del_flag = '0' @@ -85,7 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1 - + insert into sys_dept( dept_id, parent_id, @@ -113,7 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_dept parent_id = #{parentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictDataMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictDataMapper.xml index 17391e1..cbae3cc 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictDataMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictDataMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dict_data - @@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by dict_sort asc - where status = '0' and dict_type = #{dictType} order by dict_sort asc @@ -71,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_dict_data dict_sort = #{dictSort}, @@ -93,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType} - + insert into sys_dict_data( dict_sort, dict_label, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictTypeMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictTypeMapper.xml index b9b01aa..fb99dbf 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictTypeMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysDictTypeMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dict_type - @@ -71,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_dict_type dict_name = #{dictName}, @@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dict_id = #{dictId} - + insert into sys_dict_type( dict_name, dict_type, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysFiringInfoMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysFiringInfoMapper.xml index 20f98cb..ab8231a 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysFiringInfoMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysFiringInfoMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, title,content,file_url, file_path, file_suffix, del_flag, type, create_time, create_by from sys_firing_info - and file_path = #{filePath} @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into sys_firing_info title, @@ -63,7 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_firing_info title = #{title}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysLogininforMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysLogininforMapper.xml index e631c38..6179f06 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysLogininforMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysLogininforMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -13,12 +13,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into sys_logininfor (user_name, status, ipaddr, msg, access_time) values (#{userName}, #{status}, #{ipaddr}, #{msg}, sysdate()) - select info_id, user_name, ipaddr, status, msg, access_time from sys_logininfor diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysMenuMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysMenuMapper.xml index 4fe350b..71ec8e8 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysMenuMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysMenuMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -32,7 +32,7 @@ from sys_menu - @@ -54,7 +54,7 @@ order by m.parent_id, m.order_num - select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id @@ -127,12 +127,12 @@ select count(1) from sys_menu where parent_id = #{menuId} - where menu_name=#{menuName} and parent_id = #{parentId} limit 1 - + update sys_menu menu_name = #{menuName}, @@ -155,7 +155,7 @@ where menu_id = #{menuId} - + insert into sys_menu( menu_id, parent_id, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysNoticeMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysNoticeMapper.xml index 36bb300..034d159 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysNoticeMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysNoticeMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where notice_id = #{noticeId} - @@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into sys_notice ( notice_title, notice_type, @@ -62,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_notice notice_title = #{noticeTitle}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysOperLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysOperLogMapper.xml index a7c48a5..7b12afa 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysOperLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysOperLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -28,12 +28,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_oper_log - + insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_param, json_result, status, error_msg, cost_time, oper_time) values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName}, #{operUrl}, #{operIp}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg}, #{costTime}, sysdate()) - diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysPostMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysPostMapper.xml index 544dc88..4e63d85 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysPostMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysPostMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_post - @@ -72,7 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where post_code=#{postCode} limit 1 - + update sys_post post_code = #{postCode}, @@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where post_id = #{postId} - + insert into sys_post( post_id, post_code, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRegionMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRegionMapper.xml index bf39ed8..467d1ab 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRegionMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRegionMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, name, parent_id, level from sys_region - and name like concat('%', #{name}, '%') @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" id ASC - + insert into sys_region name, @@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_region name = #{name}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleDeptMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleDeptMapper.xml index 1094967..39feaa1 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleDeptMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleDeptMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMapper.xml index aa05e8f..ff292da 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_dept d on u.dept_id = d.dept_id - where r.del_flag = '0' @@ -93,7 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 - + insert into sys_role( role_id, role_name, @@ -121,7 +121,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_role role_name = #{roleName}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMenuMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMenuMapper.xml index 5aa40e5..f122c2e 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMenuMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysRoleMenuMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysTagMapper.xml index 085f712..9770af8 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysTagMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysTagMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -30,7 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_tag d - where d.del_flag = '0' @@ -69,6 +69,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} and del_flag = '0' + + + + - + + + + + SELECT LAST_INSERT_ID() + insert into sys_tag( id, parent_id, @@ -147,7 +173,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_tag parent_id = #{parentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserMapper.xml index 3c4015b..1ad1e49 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -23,11 +23,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - + @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -56,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_role r on r.role_id = ur.role_id - select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u left join sys_dept d on u.dept_id = d.dept_id where u.del_flag = '0' @@ -85,7 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.dataScope} - select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time from sys_user u left join sys_dept d on u.dept_id = d.dept_id @@ -102,7 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.dataScope} - select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time from sys_user u left join sys_dept d on u.dept_id = d.dept_id @@ -142,7 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1 - + insert into sys_user( user_id, dept_id, @@ -176,7 +176,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_user dept_id = #{deptId}, @@ -197,15 +197,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} - + update sys_user set status = #{status} where user_id = #{userId} - + update sys_user set avatar = #{avatar} where user_name = #{userName} - + update sys_user set password = #{password} where user_name = #{userName} diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserPostMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserPostMapper.xml index a4ffefb..2d07642 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserPostMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserPostMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserRoleMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserRoleMapper.xml index 2576ac7..c1b8ccc 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserRoleMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/SysUserRoleMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + delete from sys_user_role where user_id=#{userId} and role_id=#{roleId} diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockImgMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockImgMapper.xml index fb91985..db517dd 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockImgMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockImgMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_clock_id, clock_img, status, create_by, create_time from wx_clock_img - and user_clock_id = #{userClockId} @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_clock_img user_clock_id, @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_clock_img user_clock_id = #{userClockId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockInstrumentLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockInstrumentLogMapper.xml index 7f89c92..47f83c1 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockInstrumentLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockInstrumentLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, instrument_id, instrument_name, status, create_by, create_time from wx_clock_instrument_log - and user_id = #{userId} @@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_clock_instrument_log user_id, @@ -59,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_clock_instrument_log user_id = #{userId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockLogMapper.xml index d2f8be3..74d3815 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -48,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -59,15 +59,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, instrument_id, instrument_name, clock_content, status, create_by, create_time, update_by, update_time from wx_clock_log - select count(1) from wx_clock_log - where - user_id = #{userId} - and create_time >= #{params.beginTime} - and create_time <= #{params.endTime} + + and user_id = #{userId} + + and create_time >= #{params.beginTime} + + + and create_time <= #{params.endTime} + + - and user_id = #{userId} @@ -85,7 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - SELECT log.id, log.user_id, log.instrument_id, log.instrument_name, log.clock_content, log.status, log.create_by, log.create_time, log.update_by, log.update_time, img.id as img_id, @@ -111,7 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - and user_id = #{userId} @@ -129,7 +134,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - SELECT user_id, MAX( update_time ) AS last_clock_time, @@ -172,7 +177,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" last_clock_time DESC - + SELECT LAST_INSERT_ID() @@ -201,7 +206,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_clock_log user_id = #{userId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockStatisticsMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockStatisticsMapper.xml index 72c20b3..7bcda30 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockStatisticsMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxClockStatisticsMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, `year`, `month`, user_id, clock_num, percentage, status, create_by, create_time, update_by, update_time from wx_clock_statistics - and `year` = #{year} @@ -42,7 +42,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into wx_clock_statistics `year`, @@ -82,7 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_clock_statistics `year` = #{year}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindCarouselMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindCarouselMapper.xml new file mode 100644 index 0000000..07be7f4 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindCarouselMapper.xml @@ -0,0 +1,218 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, title, file_url, site_start_time, site_end_time, user_register_start_time, user_register_end_time, show_wechat_tag_id, show_company_tag_id, forbid_wechat_tag_id, forbid_company_tag_id, handler_company_tag_id, handler_wechat_tag_id, channel_id, instrument_id, operate, sign_number, user_type, order_number, type, link, link_params, redirect_appid, redirect_url, video_no, feed_id, create_by, create_time, update_by, update_time, del_flag from wx_find_carousel + + + + + + + + insert into wx_find_carousel + + title, + file_url, + site_start_time, + site_end_time, + user_register_start_time, + user_register_end_time, + show_wechat_tag_id, + show_company_tag_id, + forbid_wechat_tag_id, + forbid_company_tag_id, + handler_company_tag_id, + handler_wechat_tag_id, + channel_id, + instrument_id, + operate, + sign_number, + user_type, + order_number, + type, + link, + link_params, + redirect_appid, + redirect_url, + video_no, + feed_id, + create_by, + create_time, + update_by, + update_time, + del_flag, + + + #{title}, + #{fileUrl}, + #{siteStartTime}, + #{siteEndTime}, + #{userRegisterStartTime}, + #{userRegisterEndTime}, + #{showWechatTagId}, + #{showCompanyTagId}, + #{forbidWechatTagId}, + #{forbidCompanyTagId}, + #{handlerCompanyTagId}, + #{handlerWechatTagId}, + #{channelId}, + #{instrumentId}, + #{operate}, + #{signNumber}, + #{userType}, + #{orderNumber}, + #{type}, + #{link}, + #{linkParams}, + #{redirectAppid}, + #{redirectUrl}, + #{videoNo}, + #{feedId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{delFlag}, + + + + + update wx_find_carousel + + title = #{title}, + file_url = #{fileUrl}, + site_start_time = #{siteStartTime}, + site_end_time = #{siteEndTime}, + user_register_start_time = #{userRegisterStartTime}, + user_register_end_time = #{userRegisterEndTime}, + show_wechat_tag_id = #{showWechatTagId}, + show_company_tag_id = #{showCompanyTagId}, + forbid_wechat_tag_id = #{forbidWechatTagId}, + forbid_company_tag_id = #{forbidCompanyTagId}, + handler_company_tag_id = #{handlerCompanyTagId}, + handler_wechat_tag_id = #{handlerWechatTagId}, + channel_id = #{channelId}, + instrument_id = #{instrumentId}, + operate = #{operate}, + sign_number = #{signNumber}, + user_type = #{userType}, + order_number = #{orderNumber}, + type = #{type}, + link = #{link}, + link_params = #{linkParams}, + redirect_appid = #{redirectAppid}, + redirect_url = #{redirectUrl}, + video_no = #{videoNo}, + feed_id = #{feedId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + del_flag = #{delFlag}, + + where id = #{id} + + + + update wx_find_carousel + set update_by = #{updateName}, + update_time = #{updateDate}, + del_flag = 2 + where id = #{id} + + + + + update wx_find_carousel + set + order_number = #{orderNumber}, + operate = #{operate}, + update_by = #{updateName}, + update_time = #{updateDate} + where id = #{id} + + + + + update wx_find_carousel + set update_by = #{updateName}, + update_time = #{updateDate}, + del_flag = 2 + where id in + + #{id} + + + \ No newline at end of file diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindInstrumentMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindInstrumentMapper.xml new file mode 100644 index 0000000..304db58 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindInstrumentMapper.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + select id, wx_find_id, wx_find_type, instrument_id, create_by, create_time, update_by, update_time, del_flag from wx_find_instrument + + + + + + + + insert into wx_find_instrument + + wx_find_id, + wx_find_type, + instrument_id, + create_by, + create_time, + update_by, + update_time, + del_flag, + + + #{wxFindId}, + #{wxFindType}, + #{instrumentId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{delFlag}, + + + + + update wx_find_instrument + + wx_find_id = #{wxFindId}, + wx_find_type = #{wxFindType}, + instrument_id = #{instrumentId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + del_flag = #{delFlag}, + + where id = #{id} + + + + update wx_find_instrument set delFlag = 2 where id = #{id} + + + + update wx_find_instrument set delFlag = 2 where id in + + #{id} + + + + + + update wx_find_instrument + set update_by = #{updateName}, + update_time = #{updateDate}, + del_flag = 2 + where wx_find_id = #{wxFindId} and wx_find_type = #{wxFindType} + + \ No newline at end of file diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindProductStrategyMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindProductStrategyMapper.xml new file mode 100644 index 0000000..19babb8 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindProductStrategyMapper.xml @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, title, file_url, site_start_time, site_end_time, user_register_start_time, user_register_end_time, show_wechat_tag_id, show_company_tag_id, forbid_wechat_tag_id, forbid_company_tag_id, handler_company_tag_id, handler_wechat_tag_id, channel_id, instrument_id, operate, sign_number, user_type, order_number, type, link, link_params, redirect_appid, redirect_url, video_no, feed_id, create_by, create_time, update_by, update_time, del_flag from wx_find_product_strategy + + + + + + + + insert into wx_find_product_strategy + + title, + file_url, + site_start_time, + site_end_time, + user_register_start_time, + user_register_end_time, + show_wechat_tag_id, + show_company_tag_id, + forbid_wechat_tag_id, + forbid_company_tag_id, + handler_company_tag_id, + handler_wechat_tag_id, + channel_id, + instrument_id, + operate, + sign_number, + user_type, + order_number, + type, + link, + link_params, + redirect_appid, + redirect_url, + video_no, + feed_id, + create_by, + create_time, + update_by, + update_time, + del_flag, + + + #{title}, + #{fileUrl}, + #{siteStartTime}, + #{siteEndTime}, + #{userRegisterStartTime}, + #{userRegisterEndTime}, + #{showWechatTagId}, + #{showCompanyTagId}, + #{forbidWechatTagId}, + #{forbidCompanyTagId}, + #{handlerCompanyTagId}, + #{handlerWechatTagId}, + #{channelId}, + #{instrumentId}, + #{operate}, + #{signNumber}, + #{userType}, + #{orderNumber}, + #{type}, + #{link}, + #{linkParams}, + #{redirectAppid}, + #{redirectUrl}, + #{videoNo}, + #{feedId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{delFlag}, + + + + + update wx_find_product_strategy + + title = #{title}, + file_url = #{fileUrl}, + site_start_time = #{siteStartTime}, + site_end_time = #{siteEndTime}, + user_register_start_time = #{userRegisterStartTime}, + user_register_end_time = #{userRegisterEndTime}, + show_wechat_tag_id = #{showWechatTagId}, + show_company_tag_id = #{showCompanyTagId}, + forbid_wechat_tag_id = #{forbidWechatTagId}, + forbid_company_tag_id = #{forbidCompanyTagId}, + handler_company_tag_id = #{handlerCompanyTagId}, + handler_wechat_tag_id = #{handlerWechatTagId}, + channel_id = #{channelId}, + instrument_id = #{instrumentId}, + operate = #{operate}, + sign_number = #{signNumber}, + user_type = #{userType}, + order_number = #{orderNumber}, + type = #{type}, + link = #{link}, + link_params = #{linkParams}, + redirect_appid = #{redirectAppid}, + redirect_url = #{redirectUrl}, + video_no = #{videoNo}, + feed_id = #{feedId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + del_flag = #{delFlag}, + + where id = #{id} + + + + update wx_find_product_strategy + set update_by = #{updateName}, + update_time = #{updateDate}, + del_flag = 2 + where id = #{id} + + + + update wx_find_product_strategy + set update_by = #{updateName}, + update_time = #{updateDate}, + del_flag = 2 + where id in + + #{id} + + + + + + update wx_find_product_strategy + set + order_number = #{orderNumber}, + operate = #{operate}, + update_by = #{updateName}, + update_time = #{updateDate} + where id = #{id} + + \ No newline at end of file diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindTagMapper.xml new file mode 100644 index 0000000..63ab0de --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxFindTagMapper.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + select id, wx_find_id, wx_find_type, tag_id, tag_type, status, create_by, create_time, update_by, update_time, remark, del_flag from wx_find_tag + + + + + + + + insert into wx_find_tag + + wx_find_id, + wx_find_type, + tag_id, + tag_type, + status, + create_by, + create_time, + update_by, + update_time, + remark, + del_flag, + + + #{wxFindId}, + #{wxFindType}, + #{tagId}, + #{tagType}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{delFlag}, + + + + + + insert into wx_find_tag + + wx_find_id, wx_find_type, tag_id, tag_type, status, create_by, create_time, update_by, update_time, remark, del_flag + + VALUES + + + #{item.wxFindId}, #{item.wxFindType}, #{item.tagId}, #{item.tagType}, #{item.status}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark},#{item.delFlag}, + + + + + + update wx_find_tag + + wx_find_id = #{wxFindId}, + wx_find_type = #{wxFindType}, + tag_id = #{tagId}, + tag_type = #{tagType}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + del_flag = #{delFlag}, + + where id = #{id} + + + + + update wx_find_tag + set update_by = #{updateName}, + update_time = #{updateDate}, + del_flag = 2 + where wx_find_id = #{wxFindId} and wx_find_type = #{wxFindType} + + + + update wx_find_tag set delFlag = 2 where id = #{id} + + + + update wx_find_tag set delFlag = 2 where id in + + #{id} + + + \ No newline at end of file diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentFileRelateMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentFileRelateMapper.xml index c8f6c66..2a81eef 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentFileRelateMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentFileRelateMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, classify, instrument_id, file, file_type, message, status, create_by, create_time from wx_instrument_file_relate - and classify = #{classify} @@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where instrument_id = #{instrumentId} and classify = #{classify} - + insert into wx_instrument_file_relate classify, @@ -66,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_file_relate classify = #{classify}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentInstructionsMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentInstructionsMapper.xml index 26418de..92adf6b 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentInstructionsMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentInstructionsMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -18,11 +18,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, instrument_id, name, link, status, create_by, create_time from wx_instrument_instructions - and instrument_id = #{instrumentId} and name like concat('%', #{name}, '%') + and name = #{nameCongruent} and link = #{link} and status = #{status} and id != #{id} @@ -34,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_instrument_instructions instrument_id, @@ -54,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_instructions instrument_id = #{instrumentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentLiningMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentLiningMapper.xml index 5f6eccc..47d3751 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentLiningMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentLiningMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, instrument_id, lining_id, status, create_by, create_time from wx_instrument_lining - and instrument_id = #{instrumentId} @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_instrument_lining instrument_id, @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_lining instrument_id = #{instrumentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentMapper.xml index b1917bb..323d650 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -61,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, name, type, model, banner, logo, serial, guarantee, daily_clock_credit, is_extra_clock, binding_credit, extra_clock_credit, start_time, end_time, mini_tag_ids, mini_tag_names, wecom_tag_ids, wecom_tag_names, nursing_time, iot_version, iot_upgrade_data, is_scan_code, is_purchase, shopping_appid, shopping_path, bluetooth_connecting_title, bluetooth_connecting_content,bluetooth_connecting, bluetooth_closed_title, bluetooth_closed_content, bluetooth_closed, bluetooth_connect_fail_title, bluetooth_connect_fail_content, bluetooth_connect_fail, iot_version_upgrade, sort_no, status, manual_code_binding, scan_code_binding, create_by, create_time, update_by, update_time, remark, we200_iot_version, we200_iot_upgrade_data, we200_iot_version_upgrade, we200_bluetooth_connecting_title, we200_bluetooth_connecting_content, we200_bluetooth_connecting from wx_instrument - and name like concat('%', #{name}, '%') @@ -112,7 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - and id like concat('%', #{id}, '%') @@ -161,7 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY ins.sort_no DESC - + SELECT LAST_INSERT_ID() @@ -270,7 +270,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument name = #{name}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentModeMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentModeMapper.xml index 31c725c..d18153e 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentModeMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentModeMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, instrument_id, mode_id, mode_sort, is_new, status, create_by, create_time, lining_id from wx_instrument_mode - and instrument_id = #{instrumentId} @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_instrument_mode instrument_id, @@ -61,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_mode instrument_id = #{instrumentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentNameRelateMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentNameRelateMapper.xml index 31341e9..03e4270 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentNameRelateMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentNameRelateMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, instrument_id, product_name, status, create_by, create_time from wx_instrument_name_relate - and instrument_id = #{instrumentId} @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_instrument_name_relate instrument_id, @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_name_relate instrument_id = #{instrumentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialLogMapper.xml index ee22f26..1883b8c 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, user_name, user_mobile, user_headimg, instrument_id, instrument_name, serial, binding_status, status, create_by, create_time, remark from wx_instrument_serial_log - and user_id = #{userId} @@ -44,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_instrument_serial_log user_id, @@ -76,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_serial_log user_id = #{userId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialMapper.xml index 4b35cbe..e8ee5af 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentSerialMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, source,instrument_id, serial, binding_status, valid_status, status, create_by, create_time, remark from wx_instrument_serial - and instrument_id = #{instrumentId} @@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - and instrument_id = #{instrumentId} @@ -68,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into wx_instrument_serial instrument_id, @@ -94,7 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_serial instrument_id = #{instrumentId}, @@ -110,7 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + update wx_instrument_serial instrument_id = #{instrumentId}, @@ -126,7 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_serial valid_status = #{validStatus}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentTagMapper.xml index 6797432..9ae65ec 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentTagMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInstrumentTagMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, instrument_id, tag_id, type, status, create_by, create_time from wx_instrument_tag - and instrument_id = #{instrumentId} @@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_instrument_tag instrument_id, @@ -53,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_instrument_tag instrument_id = #{instrumentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxInterfaceRequestLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInterfaceRequestLogMapper.xml new file mode 100644 index 0000000..d63e3b8 --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxInterfaceRequestLogMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + select id, belonging, url, method, request_params, request_body, response_code, times, create_by, create_time, response_data, error_message from wx_interface_request_log + + + + + + + + insert into wx_interface_request_log + + belonging, + url, + method, + request_params, + request_body, + response_code, + times, + create_by, + create_time, + response_data, + error_message, + + + #{belonging}, + #{url}, + #{method}, + #{requestParams}, + #{requestBody}, + #{responseCode}, + #{times}, + #{createBy}, + #{createTime}, + #{responseData}, + #{errorMessage}, + + + + + update wx_interface_request_log + + belonging = #{belonging}, + url = #{url}, + method = #{method}, + request_params = #{requestParams}, + request_body = #{requestBody}, + response_code = #{responseCode}, + times = #{times}, + create_by = #{createBy}, + create_time = #{createTime}, + response_data = #{responseData}, + error_message = #{errorMessage}, + + where id = #{id} + + + + delete from wx_interface_request_log where id = #{id} + + + + delete from wx_interface_request_log where id in + + #{id} + + + \ No newline at end of file diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxLiningMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxLiningMapper.xml index 7a8a61c..67a0b17 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxLiningMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxLiningMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, code, name, `desc`, is_show_buy, skip_appid, skip_path, icon, status, create_by, create_time, update_by, update_time from wx_lining - and code = #{code} @@ -43,7 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_lining id, @@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_lining code = #{code}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeCombineInfoMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeCombineInfoMapper.xml index 99d28e1..c64e071 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeCombineInfoMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeCombineInfoMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, combine_mode_id,mode_id, combine, technology_info, effect_content, create_time, create_by from wx_mode_combine_info - and mode_id = #{modeId} @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_mode_combine_info id, @@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_mode_combine_info mode_id = #{modeId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeGearMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeGearMapper.xml index 3ac6976..7fc5190 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeGearMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeGearMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, mode_id, second, type, create_time, create_by from wx_mode_gear - and mode_id = #{modeId} @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_mode_gear mode_id, @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_mode_gear mode_id = #{modeId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeMapper.xml index 8e99a44..9e5014c 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -41,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, instrument_type, instrument_model, mode_name, mode_desc, mode_banner, mode_video, mode_type, mode_class, is_cabin_mode, is_custom_mode, mode_time, preparation_video, began_video, pause_video, status, create_by, create_time, update_by, update_time, remark, technology_info, effect_content, step_one_video, step_two_video, step_three_video from wx_mode - and instrument_type = #{instrumentType} @@ -86,7 +86,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + + + SELECT LAST_INSERT_ID() + insert into wx_mode instrument_type, @@ -144,7 +147,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_mode instrument_type = #{instrumentType}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeOpenSourceMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeOpenSourceMapper.xml index ddc3553..ffc81c2 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeOpenSourceMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeOpenSourceMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, mode_id,open_title, open_source_url, open_source_name, open_source_suffix, open_content, create_time, create_by from wx_mode_open_source - and mode_id = #{modeId} @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_mode_open_source id, @@ -64,7 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_mode_open_source mode_id = #{modeId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeServiceInfoMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeServiceInfoMapper.xml index 9eecadb..08d7096 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeServiceInfoMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeServiceInfoMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id,mode_id, service_start_time, service_end_time, start_source, stop_source, create_time, create_by from wx_mode_service_info - and mode_id = #{modeId} @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_mode_service_info mode_id, @@ -58,7 +58,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_mode_service_info mode_id = #{modeId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeTagMapper.xml index f207724..ecd22b6 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeTagMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeTagMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, mode_id, tag_id, tag_type, status, create_by, create_time, update_by, update_time, remark from wx_mode_tag - and mode_id = #{modeId} @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_mode_tag mode_id, @@ -62,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_mode_tag mode_id = #{modeId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeWe200RelationMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeWe200RelationMapper.xml new file mode 100644 index 0000000..17608da --- /dev/null +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxModeWe200RelationMapper.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + select id, mode_id, face_calibration_pop_up_json, nursing_adjustment_json, customization_electric_formula, customization_electric_frequency, eye_nursing_radar, eye_nursing_question, eye_nursing_time, eye_nursing_electric_formula, customization_electric_question, fale_all from wx_mode_we200_relation + + + + + + + + + + insert into wx_mode_we200_relation + + id, + mode_id, + face_calibration_pop_up_json, + nursing_adjustment_json, + customization_electric_formula, + customization_electric_frequency, + eye_nursing_radar, + eye_nursing_question, + eye_nursing_time, + eye_nursing_electric_formula, + customization_electric_question, + fale_all, + + + #{id}, + #{modeId}, + #{faceCalibrationPopUpJson}, + #{nursingAdjustmentJson}, + #{customizationElectricFormula}, + #{customizationElectricFrequency}, + #{eyeNursingRadar}, + #{eyeNursingQuestion}, + #{eyeNursingTime}, + #{eyeNursingElectricFormula}, + #{customizationElectricQuestion}, + #{faleAll}, + + + + + update wx_mode_we200_relation + + mode_id = #{modeId}, + face_calibration_pop_up_json = #{faceCalibrationPopUpJson}, + nursing_adjustment_json = #{nursingAdjustmentJson}, + customization_electric_formula = #{customizationElectricFormula}, + customization_electric_frequency = #{customizationElectricFrequency}, + eye_nursing_radar = #{eyeNursingRadar}, + eye_nursing_question = #{eyeNursingQuestion}, + eye_nursing_time = #{eyeNursingTime}, + eye_nursing_electric_formula = #{eyeNursingElectricFormula}, + customization_electric_question = #{customizationElectricQuestion}, + fale_all = #{faleAll}, + + where id = #{id} + + + + delete from wx_mode_we200_relation where id = #{id} + + + + delete from wx_mode_we200_relation where id in + + #{id} + + + \ No newline at end of file diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxNoRemindRecordMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxNoRemindRecordMapper.xml index d0a0efe..c9a173e 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxNoRemindRecordMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxNoRemindRecordMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, openid, type, create_time from wx_no_remind_record - and openid = #{openid} @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND YEAR (create_time) = YEAR (sysdate()) - + insert into wx_no_remind_record openid, @@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_no_remind_record openid = #{openid}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml index 853aabc..0030321 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxNursingLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -24,13 +24,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + - select id, user_id, instrument_id, instrument_name, online, mode_id, mode_name, nursing_time, completion_percentage, status, create_by, create_time, update_by, update_time, nursing_days, nursing_days_week, nursing_days_month, nursing_days_year, nursing_data from wx_nursing_log + select id, user_id, instrument_id, instrument_name, online, mode_id, mode_name, nursing_time, completion_percentage, status, create_by, create_time, update_by, update_time, nursing_days, nursing_days_week, nursing_days_month, nursing_days_year, nursing_data,accompany_mode,gear_position_one,gear_position_two,gear_position_three,gear_position_four,energy_value,water_data_one,water_data_two,water_data_three from wx_nursing_log - and user_id = #{userId} @@ -52,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY update_time DESC - SELECT nursing.* FROM @@ -67,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - @@ -145,7 +154,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into wx_nursing_log user_id, @@ -166,6 +175,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" nursing_days_month, nursing_days_year, nursing_data, + accompany_mode, + gear_position_one, + gear_position_two, + gear_position_three, + gear_position_four, + energy_value, + water_data_one, + water_data_two, + water_data_three, #{userId}, @@ -186,10 +204,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{nursingDaysMonth}, #{nursingDaysYear}, #{nursingData}, + #{accompanyMode}, + #{gearPositionOne}, + #{gearPositionTwo}, + #{gearPositionThree}, + #{gearPositionFour}, + #{energyValue}, + #{waterDataOne}, + #{waterDataTwo}, + #{waterDataThree}, - + update wx_nursing_log user_id = #{userId}, @@ -210,6 +237,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" nursing_days_month = #{nursingDaysMonth}, nursing_days_year = #{nursingDaysYear}, nursing_data = #{nursingData}, + accompany_mode = #{accompanyMode}, + gear_position_one = #{gearPositionOne}, + gear_position_two = #{gearPositionTwo}, + gear_position_three = #{gearPositionThree}, + gear_position_four = #{gearPositionFour}, + energy_value = #{energyValue}, + water_data_one = #{waterDataOne}, + water_data_two = #{waterDataTwo}, + water_data_three = #{waterDataThree}, where id = #{id} diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxOtherSettingMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxOtherSettingMapper.xml index 582066c..4084155 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxOtherSettingMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxOtherSettingMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, skip_appid, skip_path, sys_version, status, create_by, create_time, update_by, update_time, remark from wx_other_setting - and skip_appid = #{skipAppid} @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_other_setting id, @@ -64,7 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_other_setting skip_appid = #{skipAppid}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxParameterSettingMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxParameterSettingMapper.xml index 8e499ed..8154642 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxParameterSettingMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxParameterSettingMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, appid, appkey, merchant_id, merchant_api_key, open_key, open_secret, binding_ip, sy_key, sy_secret, sy_url, sy_shop_id, status, create_by, create_time, update_by, update_time, remark from wx_parameter_setting - and appid = #{appid} @@ -52,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_parameter_setting id, @@ -96,7 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_parameter_setting appid = #{appid}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptMessageMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptMessageMapper.xml index 3fb1469..b5f088e 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptMessageMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptMessageMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -29,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, message_type, message_title, instrument_id, instrument_name, message_content, status, type, link, link_params, redirect_appid, redirect_url, video_no, feed_id, create_by, create_time, update_by, update_time from wx_script_message - and message_type = #{messageType} @@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_script_message id, @@ -98,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_script_message message_type = #{messageType}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTagMapper.xml index 3b5b87a..b2e7a72 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTagMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTagMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, script_id, tag_id, tag_type, status, create_by, create_time, update_by, update_time, remark from wx_script_tag - and script_id = #{scriptId} @@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_script_tag script_id, @@ -61,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_script_tag script_id = #{scriptId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTemplateMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTemplateMapper.xml index a6eb3fa..1b45546 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTemplateMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxScriptTemplateMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id,tag_ids,tag_names,script_name, titile, content, level, tag_type, type, link, link_params, redirect_appid, redirect_url, video_no, feed_id, parent_id, status, create_by, create_time, update_by, update_time, remark from wx_script_template - and script_name = #{scriptName} @@ -63,7 +63,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where parent_id = #{id} limit 1 - + insert into wx_script_template tag_names, @@ -113,7 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_script_template tag_names = #{tagNames}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxSystemSettingMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxSystemSettingMapper.xml index 8c5a20e..b9c546d 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxSystemSettingMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxSystemSettingMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, `key`, `value`, instructions, picture_url, status, create_by, create_time, update_by, update_time, remark from wx_system_setting - and `key` = #{key} @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_system_setting `key`, @@ -65,7 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_system_setting `key` = #{key}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentLogMapper.xml index 6901880..9af9bca 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -24,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, serial, instrument_id, instrument_name, serial_image, guarantee, guarantee_endtime, binding_status, status, create_by, create_time from wx_user_instrument_log - and user_instrument_id = #{userInstrumentId} @@ -46,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_user_instrument_log user_instrument_id, @@ -78,7 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_user_instrument_log user_instrument_id = #{userInstrumentId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentMapper.xml index 93b2a4d..c339be8 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserInstrumentMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, serial, instrument_id, serial_image, guarantee, guarantee_endtime, binding_status, status, create_by, create_time, update_by, update_time, remark from wx_user_instrument - and serial like concat('%', #{serial}, '%') @@ -53,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - and user_id = #{userId} @@ -68,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - and user_id = #{userId} @@ -80,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc - select count(1) from wx_user_instrument and user_id != #{userId} @@ -96,7 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + SELECT LAST_INSERT_ID() @@ -133,7 +133,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_user_instrument user_id = #{userId}, @@ -194,4 +194,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + + diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserIntegralLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserIntegralLogMapper.xml index f768845..c62a768 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserIntegralLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserIntegralLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id,user_id, user_name, user_phone, source, float_score, soure_id, remark_content, create_time, create_by from wx_user_integral_log - and user_id = #{userId} @@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_time DESC - + insert into wx_user_integral_log user_id, @@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_user_integral_log user_id = #{userId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml index a21c29e..fb6d094 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserMemberMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -38,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM wx_user_member as member - and nickname like concat('%', #{nickname}, '%') @@ -130,7 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE unionid = #{unionId} - SELECT and member.nickname like concat('%', #{nickname}, '%') @@ -201,9 +201,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and member.status = 0 + order by coalesce(update_time, create_time) desc - + SELECT LAST_INSERT_ID() @@ -274,7 +275,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_user_member nickname = #{nickname}, @@ -334,7 +335,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + INSERT INTO `wx_user_member` (login_time, create_time) VALUES(sysdate(), sysdate()); diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserRemarkMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserRemarkMapper.xml index 5691839..72fb481 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserRemarkMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserRemarkMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, content, status, create_by, create_time, update_by, update_time from wx_user_remark - and user_id = #{userId} @@ -34,7 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} - + insert into wx_user_remark user_id, @@ -56,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_user_remark user_id = #{userId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserScriptLogMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserScriptLogMapper.xml index b83b2d8..c929f60 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserScriptLogMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserScriptLogMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, wx_user_id, message_type, is_read, is_custom, script_template_id, script_name, titile, content, tag_type, type, link, link_params, redirect_appid, redirect_url, video_no, feed_id, tag_names, tag_ids, status, create_by, create_time from wx_user_script_log - and wx_user_id = #{wxUserId} @@ -73,7 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into wx_user_script_log wx_user_id, @@ -123,7 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_user_script_log wx_user_id = #{wxUserId}, diff --git a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml index 2989917..936183c 100644 --- a/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml +++ b/flossom-common/flossom-common-core/src/main/resources/mapper/WxUserTagMapper.xml @@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, user_id, tag_name, tag_id, type, status, create_by, create_time, update_by, update_time from wx_user_tag - and user_id = #{userId} @@ -46,7 +46,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" tag_id = #{tagId} AND type = #{type} AND status = 0 - + + + insert into wx_user_tag user_id, @@ -86,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update wx_user_tag user_id = #{userId}, @@ -117,15 +129,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" DELETE FROM wx_user_tag - WHERE - tag_id IN + + user_id = #{userId} + and `type` = #{type} + AND tag_id IN #{tagId} - AND user_id IN - - #{userId} - + diff --git a/flossom-common/flossom-common-security/pom.xml b/flossom-common/flossom-common-security/pom.xml index 860ed2e..8030db1 100644 --- a/flossom-common/flossom-common-security/pom.xml +++ b/flossom-common/flossom-common-security/pom.xml @@ -34,6 +34,14 @@ flossom-common-redis + + + com.shuyun.open + open-platform-sdk + 1.0.1 + system + ${project.basedir}/src/main/resources/lib/open-platform-sdk-1.0.1.jar + diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ActionMethod.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ActionMethod.java new file mode 100644 index 0000000..78e12d0 --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ActionMethod.java @@ -0,0 +1,222 @@ +package com.flossom.common.security.utils.shuyun; + +/** + * 数云接口方法名称 + */ +public class ActionMethod { + + /** + * 获取token路径标识 + */ + private String accessToken; + + /** + * 查询会员信息(单个会员) + */ + private String queryMember; + + /** + * 注册会员 + */ + private String registerMember; + + /** + * 修改会员信息 + */ + private String modifyMember; + + /** + * 修改会员手机号 + */ + private String modifyMemberMobile; + + /** + * 解绑会员 + */ + private String unbindMember; + + /** + * 积分变更 + */ + private String pointChange; + + /** + * 积分变更记录查询 + */ + private String pointChangeLogSearch; + + /** + * 即将过期积分查询 + */ + private String pointWillDueSearch; + + /** + * 创建标签 + */ + private String tagCreate; + /** + * 删除标签 + */ + private String tagDelete; + /** + * 搜索标签 + */ + private String tagSearch; + /** + * 更改标签 + */ + private String tagUpdate; + + /** + * 给会员标记标签 + */ + private String markUserTag; + /** + * 给会员标记多个标签 + */ + private String markUserTagBatch; + /** + * 删除用户标签 + */ + private String deleteUserTag; + /** + * 查询用户标签 + */ + private String searchUserTag; + + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } + + public String getQueryMember() { + return queryMember; + } + + public void setQueryMember(String queryMember) { + this.queryMember = queryMember; + } + + public String getRegisterMember() { + return registerMember; + } + + public void setRegisterMember(String registerMember) { + this.registerMember = registerMember; + } + + public String getModifyMember() { + return modifyMember; + } + + public void setModifyMember(String modifyMember) { + this.modifyMember = modifyMember; + } + + public String getModifyMemberMobile() { + return modifyMemberMobile; + } + + public void setModifyMemberMobile(String modifyMemberMobile) { + this.modifyMemberMobile = modifyMemberMobile; + } + + public String getUnbindMember() { + return unbindMember; + } + + public void setUnbindMember(String unbindMember) { + this.unbindMember = unbindMember; + } + + public String getPointChange() { + return pointChange; + } + + public void setPointChange(String pointChange) { + this.pointChange = pointChange; + } + + public String getPointChangeLogSearch() { + return pointChangeLogSearch; + } + + public void setPointChangeLogSearch(String pointChangeLogSearch) { + this.pointChangeLogSearch = pointChangeLogSearch; + } + + public String getPointWillDueSearch() { + return pointWillDueSearch; + } + + public void setPointWillDueSearch(String pointWillDueSearch) { + this.pointWillDueSearch = pointWillDueSearch; + } + + public String getTagCreate() { + return tagCreate; + } + + public void setTagCreate(String tagCreate) { + this.tagCreate = tagCreate; + } + + public String getTagDelete() { + return tagDelete; + } + + public void setTagDelete(String tagDelete) { + this.tagDelete = tagDelete; + } + + public String getTagSearch() { + return tagSearch; + } + + public void setTagSearch(String tagSearch) { + this.tagSearch = tagSearch; + } + + public String getTagUpdate() { + return tagUpdate; + } + + public void setTagUpdate(String tagUpdate) { + this.tagUpdate = tagUpdate; + } + + public String getMarkUserTag() { + return markUserTag; + } + + public void setMarkUserTag(String markUserTag) { + this.markUserTag = markUserTag; + } + + public String getDeleteUserTag() { + return deleteUserTag; + } + + public void setDeleteUserTag(String deleteUserTag) { + this.deleteUserTag = deleteUserTag; + } + + public String getSearchUserTag() { + return searchUserTag; + } + + public void setSearchUserTag(String searchUserTag) { + this.searchUserTag = searchUserTag; + } + + public String getMarkUserTagBatch() { + return markUserTagBatch; + } + + public void setMarkUserTagBatch(String markUserTagBatch) { + this.markUserTagBatch = markUserTagBatch; + } +} diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ClockTag.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ClockTag.java new file mode 100644 index 0000000..cedaa97 --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ClockTag.java @@ -0,0 +1,69 @@ +package com.flossom.common.security.utils.shuyun; + +/** + * 打卡行为(94741) + */ +public class ClockTag { + + private Integer clockTagId; + + /** + * 累计打卡天数 + */ + private Integer clockDays; + + /** + * 本月打卡天数 + */ + private Integer clockDaysInMonth; + + /** + * 本周打卡天数 + */ + private Integer clockDaysInWeek; + + /** + * 最新打卡时间 + */ + private Integer clockDaysInLast; + + public Integer getClockTagId() { + return clockTagId; + } + + public void setClockTagId(Integer clockTagId) { + this.clockTagId = clockTagId; + } + + public Integer getClockDays() { + return clockDays; + } + + public void setClockDays(Integer clockDays) { + this.clockDays = clockDays; + } + + public Integer getClockDaysInMonth() { + return clockDaysInMonth; + } + + public void setClockDaysInMonth(Integer clockDaysInMonth) { + this.clockDaysInMonth = clockDaysInMonth; + } + + public Integer getClockDaysInWeek() { + return clockDaysInWeek; + } + + public void setClockDaysInWeek(Integer clockDaysInWeek) { + this.clockDaysInWeek = clockDaysInWeek; + } + + public Integer getClockDaysInLast() { + return clockDaysInLast; + } + + public void setClockDaysInLast(Integer clockDaysInLast) { + this.clockDaysInLast = clockDaysInLast; + } +} diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/FixedTagInfo.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/FixedTagInfo.java new file mode 100644 index 0000000..52cca93 --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/FixedTagInfo.java @@ -0,0 +1,62 @@ +package com.flossom.common.security.utils.shuyun; + + +/** + * 某些标签ID是固定的值(从属标签) + */ +public class FixedTagInfo { + + /** + * 用户信息 + */ + private MemberInfoTag memberInfoTag; + + /** + * 标签 + */ + private InstrumentTag instrumentTag; + + + + /** + * 打卡行为 + */ + private ClockTag clockTag; + + /** + * 护理计划 + */ + + /** + * 问卷活动 + */ + + + + + + public MemberInfoTag getMemberInfoTag() { + return memberInfoTag; + } + + public void setMemberInfoTag(MemberInfoTag memberInfoTag) { + this.memberInfoTag = memberInfoTag; + } + + public InstrumentTag getInstrumentTag() { + return instrumentTag; + } + + public void setInstrumentTag(InstrumentTag instrumentTag) { + this.instrumentTag = instrumentTag; + } + + public ClockTag getClockTag() { + return clockTag; + } + + public void setClockTag(ClockTag clockTag) { + this.clockTag = clockTag; + } + +} diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/InstrumentTag.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/InstrumentTag.java new file mode 100644 index 0000000..0e548a3 --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/InstrumentTag.java @@ -0,0 +1,146 @@ +package com.flossom.common.security.utils.shuyun; + +/** + * 仪器 + */ +public class InstrumentTag { + + /** + * 仪器标签ID(父标签) + */ + private Integer instrumentTagId; + + /** + * 仪器序列号标签ID(子标签) + * 值为:string + */ + private Integer instrumentSerialTagId; + + /** + * 仪器绑定日期标签ID(子标签) + * 值为:date 字符串 + */ + private Integer instrumentBandingTagId; + + /** + * 仪器解绑日期标签ID(子标签) + * 值为:date 字符串 + */ + private Integer instrumentUnBandingTagId; + + /** + * 仪器序列号-状态标签ID(子标签) + * 值为:string + */ + private Integer instrumentSerialStatusTagId; + + /** + * 仪器名称标签ID(子标签) + * 值为:string + */ + private Integer instrumentName; + + /** + * 累计护理天数 + * 值为:int + */ + private Integer instrumentNursingDays; + + /** + * 本月护理天数 + * 值为:int + */ + private Integer instrumentNursingDaysInMonth; + + /** + * 本周护理天数 + * 值为:int + */ + private Integer instrumentNursingDaysInWeek; + + /** + * 最新护理时间 + * 值为:date 字符串 + */ + private Integer instrumentNursingDaysInLast; + + public Integer getInstrumentTagId() { + return instrumentTagId; + } + + public void setInstrumentTagId(Integer instrumentTagId) { + this.instrumentTagId = instrumentTagId; + } + + public Integer getInstrumentSerialTagId() { + return instrumentSerialTagId; + } + + public void setInstrumentSerialTagId(Integer instrumentSerialTagId) { + this.instrumentSerialTagId = instrumentSerialTagId; + } + + public Integer getInstrumentBandingTagId() { + return instrumentBandingTagId; + } + + public void setInstrumentBandingTagId(Integer instrumentBandingTagId) { + this.instrumentBandingTagId = instrumentBandingTagId; + } + + public Integer getInstrumentUnBandingTagId() { + return instrumentUnBandingTagId; + } + + public void setInstrumentUnBandingTagId(Integer instrumentUnBandingTagId) { + this.instrumentUnBandingTagId = instrumentUnBandingTagId; + } + + public Integer getInstrumentSerialStatusTagId() { + return instrumentSerialStatusTagId; + } + + public void setInstrumentSerialStatusTagId(Integer instrumentSerialStatusTagId) { + this.instrumentSerialStatusTagId = instrumentSerialStatusTagId; + } + + public Integer getInstrumentName() { + return instrumentName; + } + + public void setInstrumentName(Integer instrumentName) { + this.instrumentName = instrumentName; + } + + public Integer getInstrumentNursingDays() { + return instrumentNursingDays; + } + + public void setInstrumentNursingDays(Integer instrumentNursingDays) { + this.instrumentNursingDays = instrumentNursingDays; + } + + public Integer getInstrumentNursingDaysInMonth() { + return instrumentNursingDaysInMonth; + } + + public void setInstrumentNursingDaysInMonth(Integer instrumentNursingDaysInMonth) { + this.instrumentNursingDaysInMonth = instrumentNursingDaysInMonth; + } + + public Integer getInstrumentNursingDaysInWeek() { + return instrumentNursingDaysInWeek; + } + + public void setInstrumentNursingDaysInWeek(Integer instrumentNursingDaysInWeek) { + this.instrumentNursingDaysInWeek = instrumentNursingDaysInWeek; + } + + public Integer getInstrumentNursingDaysInLast() { + return instrumentNursingDaysInLast; + } + + public void setInstrumentNursingDaysInLast(Integer instrumentNursingDaysInLast) { + this.instrumentNursingDaysInLast = instrumentNursingDaysInLast; + } +} diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/MemberInfoTag.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/MemberInfoTag.java new file mode 100644 index 0000000..a28feb6 --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/MemberInfoTag.java @@ -0,0 +1,59 @@ +package com.flossom.common.security.utils.shuyun; + +public class MemberInfoTag { + + /** + * 用户信息(父标签) + */ + private Integer memberInfoTagId; + + /** + * 省(子标签) + * 值为:string + */ + private Integer memberProvinceTagId; + + /** + * 市(子标签) + * 值为:string + */ + private Integer memberCityTagId; + + /** + * 区(子标签) + * 值为:string + */ + private Integer memberAreaTagId; + + public Integer getMemberInfoTagId() { + return memberInfoTagId; + } + + public void setMemberInfoTagId(Integer memberInfoTagId) { + this.memberInfoTagId = memberInfoTagId; + } + + public Integer getMemberProvinceTagId() { + return memberProvinceTagId; + } + + public void setMemberProvinceTagId(Integer memberProvinceTagId) { + this.memberProvinceTagId = memberProvinceTagId; + } + + public Integer getMemberCityTagId() { + return memberCityTagId; + } + + public void setMemberCityTagId(Integer memberCityTagId) { + this.memberCityTagId = memberCityTagId; + } + + public Integer getMemberAreaTagId() { + return memberAreaTagId; + } + + public void setMemberAreaTagId(Integer memberAreaTagId) { + this.memberAreaTagId = memberAreaTagId; + } +} diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/NursingTag.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/NursingTag.java new file mode 100644 index 0000000..3638c4a --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/NursingTag.java @@ -0,0 +1,17 @@ +package com.flossom.common.security.utils.shuyun; + +/** + * 护理计划(94746) + */ +public class NursingTag { + + // 活动名称 + // 最近一次参与时间 + // 首次参与计划时间 + // 目前活动状态 + // 累计护理次数 + // 本月护理次数 + // 本周护理次数 + + +} diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ShuYunApiUtils.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ShuYunApiUtils.java new file mode 100644 index 0000000..5747e9b --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ShuYunApiUtils.java @@ -0,0 +1,546 @@ +package com.flossom.common.security.utils.shuyun; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.TypeReference; +import com.flossom.common.core.constant.CacheConstants; +import com.flossom.common.core.constant.InterfaceRequestBelongingConstants; +import com.flossom.common.core.domain.R; +import com.flossom.common.core.domain.entity.WxInterfaceRequestLog; +import com.flossom.common.core.domain.shuyun.*; +import com.flossom.common.core.exception.ServiceException; +import com.flossom.common.core.mapper.WxInterfaceRequestLogMapper; +import com.flossom.common.core.utils.DateUtils; +import com.flossom.common.core.utils.HttpClientUtils; +import com.flossom.common.redis.service.RedisService; +import com.shuyun.open.sdk.bean.HttpMethod; +import com.shuyun.open.sdk.core.GateWayClient; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.stereotype.Component; + +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.temporal.TemporalAdjusters; +import java.util.List; +import java.util.Map; + + +/** + * 数云工具类 + */ +@Configuration +@ConditionalOnProperty(name = "shuyun.enabled", matchIfMissing = false) +@Import({ShuYunConfig.class}) +public class ShuYunApiUtils { + + protected final static Logger logger = LoggerFactory.getLogger(ShuYunApiUtils.class); + + /** + * 数云配置类 + */ + private static ShuYunConfig shuYunConfig; + + private static RedisService redisService; + + private static WxInterfaceRequestLogMapper wxInterfaceRequestLogMapper; + + @Autowired + public void setShuYunConfig(ShuYunConfig shuYunConfig) { + ShuYunApiUtils.shuYunConfig = shuYunConfig; + } + + @Autowired + public void setRedisService(RedisService redisService) { + ShuYunApiUtils.redisService = redisService; + } + + @Autowired + public void setWxInterfaceRequestLogMapper(WxInterfaceRequestLogMapper wxInterfaceRequestLogMapper) { + ShuYunApiUtils.wxInterfaceRequestLogMapper = wxInterfaceRequestLogMapper; + } + + /** + * 数云http请求code + */ + public class ShuYunHttpStatusConstants { + /** + * 请求成功 + */ + public static final int SUCCESS = 10000; + + /** + * 请求成功,但是业务处理错误,或者执行结果不符合预期 + * 但不是处理异常 + */ + public static final int HALF_SUCCESS = 14000; + } + + /** + * 获取 accessToken,缓存没有就请求数云回调接口,通过异步回调将 accessToken 传递过来 + */ + public static String getAccessToken() { + Long expiryTime = redisService.getCacheMapValue(CacheConstants.SHUYUN_ACCESS_TOKEN_CACHE, CacheConstants.SHUYUN_ACCESS_TOKEN_CACHE_EXPIRY); + if (expiryTime == null || expiryTime == 0 || LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond() > expiryTime) { + String accessTokenUrl = StringUtils.replace(shuYunConfig.getActionMethod().getAccessToken(), "{appid}", shuYunConfig.getAppid()); + logger.info("刷新 accessToken 地址:{}", accessTokenUrl); + try { + String result = HttpClientUtils.get(accessTokenUrl); + logger.info("请求数云接口获取 accessToken 结果:{}", result); + R r = JSON.parseObject(result, R.class); + if (r.getCode() != R.SUCCESS) { + logger.error("请求数云接口获取accessToken失败,将直接使用旧的accessToken,失败原因:{}", result); + } + } catch (Exception e) { + logger.error("请求数云接口获取accessToken失败,将直接使用旧的accessToken,失败原因:{}", e.getMessage()); + } + } + String accessTokenStr = redisService.getCacheMapValue(CacheConstants.SHUYUN_ACCESS_TOKEN_CACHE, CacheConstants.SHUYUN_ACCESS_TOKEN_CACHE_VALUE); + if (StringUtils.isNotBlank(accessTokenStr)) { + AccessToken accessToken = JSON.parseObject(accessTokenStr, AccessToken.class); + return accessToken.getAccessToken(); + } + /** + * 第一次获取会失败,因为回调是异步的,如果还没回调回来,我们就从 redis 获取缓存了 + */ + logger.error("从 redis 获取数云 accessToken 失败,缓存中没有 accessToken,有可能是第一次调用"); + throw new ServiceException("从 redis 获取数云 accessToken 失败,缓存中没有 accessToken,有可能是第一次调用"); + } + + /** + * 请求基础封装方法 (增加泛型适配) + * + * @param httpMethod 请求方式 + * @param queryParams get请求时,url地址后的参数 + * @param bodyParams post、put 请求时,请求体的数据 + * @param actionMethod 请求方法地址 + */ + public static R shuYunHttpRequest(HttpMethod httpMethod, Map queryParams, Object bodyParams, String actionMethod, Class clazz) throws ServiceException { + logger.info("数云接口请求地址:{},参数:queryParams = {}、bodyParams = {}", actionMethod, queryParams, JSON.toJSONString(bodyParams)); + LocalDateTime startTime = LocalDateTime.now(); + LocalDateTime endTime = null; + String result = null; + R r = null; + try { + result = GateWayClient.askGateWay( + httpMethod, shuYunConfig.getUrl(), + queryParams, JSON.toJSONString(bodyParams), + shuYunConfig.getAppid(), shuYunConfig.getSecurity(), + getAccessToken(), actionMethod); + endTime = LocalDateTime.now(); + logger.info("返回响应:{}", result); + r = JSON.parseObject(result, new TypeReference>(clazz) { + }); + if (r.getCode() == ShuYunHttpStatusConstants.SUCCESS || r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + addRequestLog(httpMethod, queryParams, bodyParams, Duration.between(startTime, endTime).toMillis(), result, Long.valueOf(r.getCode()), null); + return r; + } + /*if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + if (StringUtils.isNotBlank(r.getMsg())) { + throw new ServiceException(r.getMsg(), ShuYunHttpStatusConstants.HALF_SUCCESS); + } + if (StringUtils.isNotBlank(r.getMessage())) { + throw new ServiceException(r.getMessage(), ShuYunHttpStatusConstants.HALF_SUCCESS); + } + throw new ServiceException(r.getMsg(), ShuYunHttpStatusConstants.HALF_SUCCESS); + }*/ + logger.error("调用数云接口返回未知异常:{}", result); + if (StringUtils.isNotBlank(r.getMessage())) { + throw new ServiceException(r.getMessage()); + } else { + throw new ServiceException(r.getMsg()); + } + } catch (Exception exception) { + addRequestLog(httpMethod, queryParams, bodyParams, Duration.between(startTime, endTime).toMillis(), result, Long.valueOf(r.getCode()), exception.getMessage()); + throw exception; + } + } + + /** + * 保存接口请求日志 + */ + private static void addRequestLog(HttpMethod httpMethod, Map queryParams, Object bodyParams, Long times, String result, Long code, String errorMessage) { + WxInterfaceRequestLog interfaceRequestLog = new WxInterfaceRequestLog(); + interfaceRequestLog.setBelonging(InterfaceRequestBelongingConstants.SHUYUN_INTERFACE); + interfaceRequestLog.setUrl(shuYunConfig.getUrl()); + interfaceRequestLog.setMethod(httpMethod.getMethod()); + if (queryParams != null) { + interfaceRequestLog.setRequestParams(JSON.toJSONString(queryParams)); + } + if (bodyParams != null) { + interfaceRequestLog.setRequestBody(JSON.toJSONString(bodyParams)); + } + if (code != null) { + interfaceRequestLog.setResponseCode(code); + } + interfaceRequestLog.setTimes(times); + if (result != null) { + interfaceRequestLog.setResponseData(result); + } + if (errorMessage != null) { + interfaceRequestLog.setErrorMessage(errorMessage); + } + wxInterfaceRequestLogMapper.insertWxInterfaceRequestLog(interfaceRequestLog); + } + + public static R httpQueryParamsRequest(HttpMethod httpMethod, Map queryParams, String actionMethod, Class clazz) throws ServiceException { + return shuYunHttpRequest(httpMethod, queryParams, null, actionMethod, clazz); + } + + public static R httpBodyParamsRequest(HttpMethod httpMethod, Object bodyParams, String actionMethod, Class clazz) throws ServiceException { + return shuYunHttpRequest(httpMethod, null, bodyParams, actionMethod, clazz); + } + + + /** + * 会员注册 + * https://open.shuyun.com/#/apidoc?type=41&apiId=40 + */ + public static R registerMember(ShuYunMember member) { + try { + return httpBodyParamsRequest(HttpMethod.POST, member, shuYunConfig.getActionMethod().getRegisterMember(), Object.class); + } catch (Exception e) { + logger.error("请求数云接口注册会员失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口注册会员失败"); + } + } + + /** + * 会员信息查询(单查询) + * https://open.shuyun.com/#/apidoc?type=41&apiId=149 + */ + public static ShuYunMember queryMember(String memberId, String platCode, String shopId) { + Map params = MapUtil.newHashMap(); + params.put("id", memberId); + params.put("platCode", platCode); + params.put("shopId", shopId); + try { + R r = httpBodyParamsRequest(HttpMethod.POST, params, shuYunConfig.getActionMethod().getQueryMember(), ShuYunMember.class); + if (r.getCode() == ShuYunHttpStatusConstants.SUCCESS) { + return r.getData(); + } + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + return null; + } + logger.error("请求数云接口-会员信息查询失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-会员信息查询失败"); + } catch (Exception e) { + logger.error("请求数云接口-会员信息查询失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-会员信息查询失败"); + } + } + + /** + * 修改会员信息 + * 注意:手机号不能修改 + * https://open.shuyun.com/#/apidoc?type=41&apiId=36 + */ + public static R modifyMember(ShuYunMember member) { + try { + return httpBodyParamsRequest(HttpMethod.PUT, member, shuYunConfig.getActionMethod().getModifyMember(), Object.class); + } catch (Exception e) { + logger.error("请求数云接口-修改会员信息(除手机号)失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-修改会员信息(除手机号)失败"); + } + } + + /** + * 修改会员手机号 + * https://open.shuyun.com/#/apidoc?type=41&apiId=37 + */ + public static R modifyMemberMobile(String memberId, String platCode, String shopId, String mobile) { + Map params = MapUtil.newHashMap(); + params.put("id", memberId); + params.put("platCode", platCode); + params.put("shopId", shopId); + params.put("mobile", mobile); + try { + return httpBodyParamsRequest(HttpMethod.PUT, params, shuYunConfig.getActionMethod().getModifyMemberMobile(), Object.class); + } catch (Exception e) { + logger.error("请求数云接口-修改会员手机号失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-修改会员手机号失败"); + } + } + + /** + * 解绑会员 + * https://open.shuyun.com/#/apidoc?type=41&apiId=74 + */ + public static R unbindMember(String memberId, String platCode, String shopId) { + Map params = MapUtil.newHashMap(); + params.put("id", memberId); + params.put("platCode", platCode); + params.put("shopId", shopId); + try { + return httpBodyParamsRequest(HttpMethod.POST, params, shuYunConfig.getActionMethod().getUnbindMember(), Object.class); + } catch (Exception e) { + logger.error("请求数云接口-解绑会员失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-解绑会员失败"); + } + } + + /** + * 会员积分变更 + * https://open.shuyun.com/#/apidoc?type=41&apiId=34 + */ + public static R pointChange(ShuYunPointChange shuYunPointChange) { + try { + return httpBodyParamsRequest(HttpMethod.POST, shuYunPointChange, shuYunConfig.getActionMethod().getPointChange(), Object.class); + } catch (Exception e) { + logger.error("请求数云接口-会员积分变更失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-会员积分变更失败"); + } + } + + /** + * 积分变更记录查询(分页) + * https://open.shuyun.com/#/apidoc?type=41&apiId=33 + */ + public static ShuYunPageUtil pointChangeLogSearch(ShuYunPageReq shuYunPageReq) { + try { + R r = httpQueryParamsRequest(HttpMethod.GET, BeanUtil.beanToMap(shuYunPageReq), + shuYunConfig.getActionMethod().getPointChangeLogSearch(), Object.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.info("查询成功,没有数据"); + return new ShuYunPageUtil<>(); + } + if (r.getCode() != ShuYunHttpStatusConstants.SUCCESS) { + logger.error("请求数云接口-会员积分变更记录查询失败:{}", r.getMsg()); + } + return JSON.parseObject(r.getData().toString(), new TypeReference>() { + }); + } catch (Exception e) { + logger.error("请求数云接口-会员积分变更记录查询失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-会员积分变更记录查询失败"); + } + } + + /** + * 查询即将过期积分 + * https://open.shuyun.com/#/apidoc?type=41&apiId=249 + */ + public static Integer pointWillDueSearch(String platId) { + Map params = MapUtil.newHashMap(); + params.put("tenant", shuYunConfig.getTenant()); + params.put("platId", platId); + params.put("platCode", shuYunConfig.getPlatCode()); + params.put("shopId", shuYunConfig.getShopId()); + params.put("cardPlanId", shuYunConfig.getCardPlanId()); + params.put("timeType", "RELATIVE"); + LocalDateTime now = LocalDateTime.now(); + String startTime = now.plusHours(1).format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)); + String endTime = now.with(TemporalAdjusters.lastDayOfYear()).with(LocalTime.MAX).format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)); + params.put("startTime", startTime); + params.put("endTime", endTime); + try { + R r = httpQueryParamsRequest(HttpMethod.GET, params, shuYunConfig.getActionMethod().getPointWillDueSearch(), Integer.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.info("查询成功,没有数据"); + } + if (r.getCode() != ShuYunHttpStatusConstants.SUCCESS) { + logger.error("请求数云接口-查询会员即将过期积分失败:{}", r.getMsg()); + } + return r.getData(); + } catch (Exception e) { + logger.error("请求数云接口-查询会员即将过期积分失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-查询会员即将过期积分失败"); + } + } + + + /** + * 创建标签 + * https://open.shuyun.com/#/apidoc?type=23&apiId=86 + */ + public static Integer tagCreate(ShuYunTag shuYunTag) { + try { + R r = httpBodyParamsRequest(HttpMethod.POST, shuYunTag, shuYunConfig.getActionMethod().getTagCreate(), Map.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.error("请求数云接口-创建标签失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-创建标签失败"); + } + if (r.getData() != null) { + return (Integer) (r.getData().get("tagId")); + } + return null; + } catch (Exception e) { + logger.error("请求数云接口-创建标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-创建标签失败"); + } + } + + /** + * 查询标签 + * https://open.shuyun.com/#/apidoc?type=23&apiId=85 + * + * @param type 标签类型:1(自定义) + * @param allValueType 标签显示:true(全部标签);false(基本标签) + */ + public static List tagSearch(String type, String allValueType) { + Map params = MapUtil.newHashMap(); + params.put("type", type); + params.put("allValueType", allValueType); + try { + R r = httpQueryParamsRequest(HttpMethod.GET, params, shuYunConfig.getActionMethod().getTagSearch(), Object.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.error("请求数云接口-创建标签失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-创建标签失败"); + } + return JSON.parseObject(r.getData().toString(), new TypeReference>() { + }); + } catch (Exception e) { + logger.error("请求数云接口-创建标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-创建标签失败"); + } + } + + /** + * 删除标签 + * https://open.shuyun.com/#/apidoc?type=23&apiId=153 + */ + public static R tagDelete(String tagId) { + Map params = MapUtil.newHashMap(); + params.put("tagId", tagId); + try { + R r = httpBodyParamsRequest(HttpMethod.DELETE, params, + shuYunConfig.getActionMethod().getTagDelete(), Object.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.error("请求数云接口-删除标签失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-删除标签失败"); + } + return r; + } catch (Exception e) { + logger.error("请求数云接口-删除标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-删除标签失败"); + } + } + + /** + * 修改标签 + * https://open.shuyun.com/#/apidoc?type=23&apiId=198 + */ + public static R tagUpdate(ShuYunTag shuYunTag) { + try { + R r = httpBodyParamsRequest(HttpMethod.PUT, shuYunTag, + shuYunConfig.getActionMethod().getTagUpdate(), Object.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.error("请求数云接口-修改标签失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-修改标签失败"); + } + return r; + } catch (Exception e) { + logger.error("请求数云接口-修改标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-修改标签失败"); + } + } + + /** + * 给客户打上单个标签 + * https://open.shuyun.com/#/apidoc?type=23&apiId=87 + */ + public static R markUserTag(ShuYunUserTagReq shuYunUserTagReq) { + try { + R r = httpBodyParamsRequest(HttpMethod.POST, shuYunUserTagReq, + shuYunConfig.getActionMethod().getMarkUserTag(), Object.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.error("请求数云接口-给客户打上单个标签失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-给客户打上单个标签失败"); + } + return r; + } catch (Exception e) { + logger.error("请求数云接口-给客户打上单个标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-给客户打上单个标签失败"); + } + } + + /** + * 给客户打上多个标签 + * https://open.shuyun.com/#/apidoc?type=23&apiId=88 + */ + public static R markUserTagBatch(String memberUnionId, List shuYunUserTagList) { + Map params = MapUtil.newHashMap(); + params.put("platAccount", memberUnionId); + params.put("platCode", shuYunConfig.getPlatCode()); + params.put("createTime", LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS))); + params.put("tagsMark", shuYunUserTagList); + params.put("shopId", shuYunConfig.getMarkTagShopId()); + try { + R r = httpBodyParamsRequest(HttpMethod.POST, params, + shuYunConfig.getActionMethod().getMarkUserTagBatch(), Object.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.error("请求数云接口-给客户打上多个标签失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-给客户打上多个标签失败"); + } + return r; + } catch (Exception e) { + logger.error("请求数云接口-给客户打上多个标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-给客户打上多个标签失败"); + } + } + + /** + * 查询客户已经被打上的标签 + */ + public static List searchUserTag(String tagType, String platCode, String shopId, String memberUnionId, String allValueType) { + Map params = MapUtil.newHashMap(); + // 标签类型:0:云标签, 1:自定义标签 + params.put("tagType", tagType); + // 平台代码 + params.put("platCode", platCode); + // 店铺ID(数云内部店铺ID) + params.put("shopId", shopId); + // 平台账号 + params.put("platAccount", memberUnionId); + // 标签显示:true(全部标签);false(基本标签) + params.put("allValueType", allValueType); + try { + R r = httpQueryParamsRequest(HttpMethod.GET, params, + shuYunConfig.getActionMethod().getSearchUserTag(), Object.class); + if (r.getCode() == ShuYunHttpStatusConstants.HALF_SUCCESS) { + logger.error("请求数云接口-查询客户已经被打上的标签失败:{}", r.getMsg()); + throw new ServiceException("请求数云接口-查询客户已经被打上的标签标签失败"); + } + return JSON.parseObject(r.getData().toString(), new TypeReference>() { + }); + } catch (Exception e) { + logger.error("请求数云接口-查询客户已经被打上的标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-查询客户已经被打上的标签失败"); + } + } + + /** + * 删除客户已经被打上的标签 + * + * @return 返回打标签成功、或者 标签不存在时也返回成功 + */ + public static R deleteUserTag(String memberUnionId, Integer tagId) { + Map params = MapUtil.newHashMap(); + // 平台代码 + params.put("platCode", shuYunConfig.getPlatCode()); + // 店铺ID(数云内部店铺ID) + params.put("shopId", shuYunConfig.getMarkTagShopId()); + // 平台账号 + params.put("platAccount", memberUnionId); + // 标签ID + params.put("tagId", tagId); + try { + R r = httpBodyParamsRequest(HttpMethod.DELETE, params, + shuYunConfig.getActionMethod().getDeleteUserTag(), Object.class); + return r; + } catch (Exception e) { + logger.error("请求数云接口-删除客户已经被打上的标签失败:{}", e.getMessage()); + throw new ServiceException("请求数云接口-删除客户已经被打上的标签失败"); + } + } + +} diff --git a/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ShuYunConfig.java b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ShuYunConfig.java new file mode 100644 index 0000000..9c05ae8 --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/java/com/flossom/common/security/utils/shuyun/ShuYunConfig.java @@ -0,0 +1,157 @@ +package com.flossom.common.security.utils.shuyun; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +/** + * 数云接口配置 + * + * @author flossom + */ +@RefreshScope +@ConfigurationProperties(prefix = "shuyun") +public class ShuYunConfig { + + /** + * 接口地址 + */ + private String url; + + /** + * 数云 appid + */ + private String appid; + + /** + * 数云 security + */ + private String security; + + /** + * 租户名 + */ + private String authValue; + + private String platCode; + + private String shopId; + + private String markTagShopId; + + /** + * 租户名称 + */ + private String tenant; + + /** + * 数云忠诚度卡ID + */ + private String cardPlanId; + + /** + * 标签组ID + */ + private Integer tagGroupId; + + private ActionMethod actionMethod; + + private FixedTagInfo fixedTagInfo; + + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getAppid() { + return appid; + } + + public void setAppid(String appid) { + this.appid = appid; + } + + public String getSecurity() { + return security; + } + + public void setSecurity(String security) { + this.security = security; + } + + public ActionMethod getActionMethod() { + return actionMethod; + } + + public void setActionMethod(ActionMethod actionMethod) { + this.actionMethod = actionMethod; + } + + public String getPlatCode() { + return platCode; + } + + public void setPlatCode(String platCode) { + this.platCode = platCode; + } + + public String getShopId() { + return shopId; + } + + public void setShopId(String shopId) { + this.shopId = shopId; + } + + public String getAuthValue() { + return authValue; + } + + public void setAuthValue(String authValue) { + this.authValue = authValue; + } + + public String getTenant() { + return tenant; + } + + public void setTenant(String tenant) { + this.tenant = tenant; + } + + public String getCardPlanId() { + return cardPlanId; + } + + public void setCardPlanId(String cardPlanId) { + this.cardPlanId = cardPlanId; + } + + public Integer getTagGroupId() { + return tagGroupId; + } + + public void setTagGroupId(Integer tagGroupId) { + this.tagGroupId = tagGroupId; + } + + public String getMarkTagShopId() { + return markTagShopId; + } + + public void setMarkTagShopId(String markTagShopId) { + this.markTagShopId = markTagShopId; + } + + public FixedTagInfo getFixedTagInfo() { + return fixedTagInfo; + } + + public void setFixedTagInfo(FixedTagInfo fixedTagInfo) { + this.fixedTagInfo = fixedTagInfo; + } +} diff --git a/flossom-common/flossom-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/flossom-common/flossom-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 7634505..c4607e9 100644 --- a/flossom-common/flossom-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/flossom-common/flossom-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -3,3 +3,5 @@ com.flossom.common.security.service.TokenService com.flossom.common.security.aspect.PreAuthorizeAspect com.flossom.common.security.aspect.InnerAuthAspect com.flossom.common.security.handler.GlobalExceptionHandler +com.flossom.common.security.utils.shuyun.ShuYunApiUtils +com.flossom.common.security.utils.shuyun.ShuYunConfig diff --git a/flossom-common/flossom-common-security/src/main/resources/lib/open-platform-sdk-1.0.1.jar b/flossom-common/flossom-common-security/src/main/resources/lib/open-platform-sdk-1.0.1.jar new file mode 100644 index 0000000..45e534e Binary files /dev/null and b/flossom-common/flossom-common-security/src/main/resources/lib/open-platform-sdk-1.0.1.jar differ diff --git a/flossom-common/flossom-common-security/src/main/resources/shuyun.properties b/flossom-common/flossom-common-security/src/main/resources/shuyun.properties new file mode 100644 index 0000000..cd255ba --- /dev/null +++ b/flossom-common/flossom-common-security/src/main/resources/shuyun.properties @@ -0,0 +1,3 @@ +http-pool.connect-timeout=60000 +http-pool.connection-request-timeout=60000 +http-pool.socket-timeout=60000 \ No newline at end of file diff --git a/flossom-modules/flossom-mini-program/pom.xml b/flossom-modules/flossom-mini-program/pom.xml index 74bbd7b..d9738a0 100644 --- a/flossom-modules/flossom-mini-program/pom.xml +++ b/flossom-modules/flossom-mini-program/pom.xml @@ -84,13 +84,7 @@ flossom-api-system - - - org.apache.httpcomponents - httpclient - 4.5.2 - - + junit junit @@ -102,14 +96,6 @@ test - - - com.shuyun.open - open-platform-sdk - 1.0.1 - system - ${project.basedir}/src/main/resources/lib/open-platform-sdk-1.0.1.jar - diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/UserMemberController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/UserMemberController.java index d36e2ec..a13126e 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/UserMemberController.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/UserMemberController.java @@ -8,6 +8,8 @@ import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.core.web.controller.BaseController; import com.flossom.common.core.web.domain.AjaxResult; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.miniProgram.domain.vo.LoginUserVo; import com.flossom.miniProgram.domain.vo.UserMemberUpdateVo; import com.flossom.miniProgram.service.IWxUserMemberService; import com.flossom.system.api.RemoteFileService; @@ -64,7 +66,9 @@ public class UserMemberController extends BaseController { logger.error("获取手机号code不能为空"); return AjaxResult.error("获取手机号失败"); } - return AjaxResult.success("获取成功", wxUserMemberService.upgradeMember(code)); + String mobile = wxUserMemberService.upgradeMember(code); + wxUserMemberService.syncMemberInfoToShuYun(); + return AjaxResult.success("获取成功", mobile); } /** @@ -82,7 +86,13 @@ public class UserMemberController extends BaseController { } userMemberUpdateVo.setHeadimg(result.getData().getUrl()); } - return R.ok(wxUserMemberService.updateUser(userMemberUpdateVo)); + LoginUserVo loginUserVo = wxUserMemberService.updateUser(userMemberUpdateVo); + wxUserMemberService.syncUpdateMemberToShuYun(); + if (loginUserVo.getCompleteInformation()) { + wxUserMemberService.syncIntegralToShuYun(loginUserVo); + } + wxUserMemberService.syncMemberAreaToShuYun(); + return R.ok(loginUserVo); } /** diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxClockLogController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxClockLogController.java index 4dd8ccc..33650a1 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxClockLogController.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxClockLogController.java @@ -98,7 +98,13 @@ public class WxClockLogController extends BaseController { logger.error("打卡图片只能上传3张以下"); throw new ServiceException("打卡图片只能上传3张以下"); } - wxClockLogService.insertWxClockLog(wxClockLogReq); + Integer integral = wxClockLogService.insertWxClockLog(wxClockLogReq); + if (integral != null) { + if (integral > 0) { + wxClockLogService.syncIntegralToShuYun(integral); + } + wxClockLogService.syncClockToShuYun(); + } return R.ok(); } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxFindCarouselMiniController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxFindCarouselMiniController.java new file mode 100644 index 0000000..0428021 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxFindCarouselMiniController.java @@ -0,0 +1,35 @@ +package com.flossom.miniProgram.controller; + +import com.flossom.common.core.response.WxFindCarouselListResponse; +import com.flossom.common.core.web.controller.BaseController; +import com.flossom.common.core.web.page.TableDataInfo; +import com.flossom.miniProgram.service.IWxFindCarouselMiniService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 发现轮播图Controller + * + * @author flossom + * @date 2024-04-10 + */ +@RestController +@RequestMapping("/carousel") +public class WxFindCarouselMiniController extends BaseController { + @Autowired + private IWxFindCarouselMiniService wxFindCarouselMiniService; + + /** + * 查询发现轮播图列表 + */ + @GetMapping("/list") + public TableDataInfo list() { + List list = wxFindCarouselMiniService.selectWxFindCarouselList(); + return getDataTable(list); + } + +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxFindProductStrategyMiniController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxFindProductStrategyMiniController.java new file mode 100644 index 0000000..5abb625 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxFindProductStrategyMiniController.java @@ -0,0 +1,34 @@ +package com.flossom.miniProgram.controller; + +import com.flossom.common.core.domain.entity.WxFindProductStrategy; +import com.flossom.common.core.web.controller.BaseController; +import com.flossom.common.core.web.page.TableDataInfo; +import com.flossom.miniProgram.service.IWxFindProductStrategyMiniService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 产品攻略Controller + * + * @author flossom + * @date 2024-04-10 + */ +@RestController +@RequestMapping("/strategy") +public class WxFindProductStrategyMiniController extends BaseController { + @Autowired + private IWxFindProductStrategyMiniService wxFindProductStrategyMiniService; + + /** + * 查询产品攻略列表 + */ + @GetMapping("/list") + public TableDataInfo list() { + List list = wxFindProductStrategyMiniService.selectWxFindProductStrategyList(); + return getDataTable(list); + } +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxInstrumentController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxInstrumentController.java index a884e0b..8f2f48c 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxInstrumentController.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxInstrumentController.java @@ -3,8 +3,11 @@ package com.flossom.miniProgram.controller; import com.flossom.common.core.constant.Constants; import com.flossom.common.core.domain.R; import com.flossom.common.core.domain.SysFile; +import com.flossom.common.core.domain.entity.WxUserInstrument; +import com.flossom.common.core.domain.shuyun.ExchangeBindingUserInstrument; import com.flossom.common.core.enums.InstrumentFileClassifyEnum; import com.flossom.common.core.exception.ServiceException; +import com.flossom.common.core.request.miniProgram.AnswerResultRequest; import com.flossom.common.core.web.controller.BaseController; import com.flossom.miniProgram.service.IWxInstrumentService; import com.flossom.system.api.RemoteFileService; @@ -12,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -36,7 +40,11 @@ public class WxInstrumentController extends BaseController { */ @GetMapping(value = "/isBindingSerial") public R isBindingSerial(@NotBlank(message = "序列号不能为空") @RequestParam("serial") String serial) { - wxInstrumentService.binding(serial, null, false); + WxUserInstrument wxUserInstrument = wxInstrumentService.binding(serial, null, false); + if (wxUserInstrument != null) { + wxInstrumentService.syncIntegralToShuYun(wxUserInstrument); + wxInstrumentService.syncInstrumentInfoToShuYun(wxUserInstrument); + } return R.ok(); } @@ -45,7 +53,11 @@ public class WxInstrumentController extends BaseController { */ @GetMapping(value = "/binding") public R binding(@NotBlank(message = "序列号不能为空") @RequestParam("serial") String serial) { - wxInstrumentService.binding(serial, null, true); + WxUserInstrument wxUserInstrument = wxInstrumentService.binding(serial, null, true); + if (wxUserInstrument != null) { + wxInstrumentService.syncIntegralToShuYun(wxUserInstrument); + wxInstrumentService.syncInstrumentInfoToShuYun(wxUserInstrument); + } return R.ok(); } @@ -54,7 +66,11 @@ public class WxInstrumentController extends BaseController { */ @GetMapping(value = "/exchangeBinding") public R exchangeBinding(@NotBlank(message = "序列号不能为空") @RequestParam("serial") String serial) { - wxInstrumentService.exchangeBinding(serial); + ExchangeBindingUserInstrument exchangeBindingUserInstrument = wxInstrumentService.exchangeBinding(serial); + if (exchangeBindingUserInstrument != null) { + wxInstrumentService.syncUnBindingInstrumentInfoToShuYun(exchangeBindingUserInstrument.getOldUserInstrument()); + wxInstrumentService.syncInstrumentInfoToShuYun(exchangeBindingUserInstrument.getNewUserInstrument()); + } return R.ok(); } @@ -77,7 +93,11 @@ public class WxInstrumentController extends BaseController { serialImage = result.getData().getUrl(); } wxInstrumentService.determineSerialIsSameInstrument(serial, instrumentId); - wxInstrumentService.binding(serial, serialImage, true); + WxUserInstrument wxUserInstrument = wxInstrumentService.binding(serial, serialImage, true); + if (wxUserInstrument != null) { + wxInstrumentService.syncIntegralToShuYun(wxUserInstrument); + wxInstrumentService.syncInstrumentInfoToShuYun(wxUserInstrument); + } return R.ok(); } @@ -139,6 +159,14 @@ public class WxInstrumentController extends BaseController { return R.ok(wxInstrumentService.getInstrumentModeByInstrumentId(instrumentId, liningId)); } + /** + * 获取电流定制答题结果 + */ + @PostMapping(value = "/answerResult") + public R getAnswerResult(@RequestBody @Valid AnswerResultRequest request){ + return R.ok(wxInstrumentService.getAnswerResult(request)); + } + /** * 获取设备升级数据 * 由小程序读取设备版本号,与后管的升级版本号做对比 diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxLiningController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxLiningController.java index c4d5ffa..59b6ead 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxLiningController.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxLiningController.java @@ -1,11 +1,13 @@ package com.flossom.miniProgram.controller; import com.flossom.common.core.domain.R; +import com.flossom.common.core.request.miniProgram.ElectricFormulaRequest; import com.flossom.common.core.web.controller.BaseController; import com.flossom.miniProgram.service.IWxLiningService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import javax.validation.constraints.NotNull; @@ -27,5 +29,12 @@ public class WxLiningController extends BaseController { return R.ok(wxLiningService.selectWxLiningList(instrumentId)); } + /** + * 定制电流配方和频率 + */ + @PostMapping("/electric/formula") + public R electricFormula(@RequestBody @Valid ElectricFormulaRequest request) { + return R.ok(wxLiningService.electricFormula(request.getModeId(), request.getFormula())); + } } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java index 014cd84..fbdda8a 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/controller/WxNursingLogController.java @@ -43,7 +43,9 @@ public class WxNursingLogController extends BaseController { public R add(@Validated @RequestBody WxNursingLogReq wxNursingLogReq) { // 防止前端传输数据进来 wxNursingLogReq.setCompletionPercentage(null); - return R.ok(wxNursingLogService.insertWxNursingLog(wxNursingLogReq)); + Long nursingLogId = wxNursingLogService.insertWxNursingLog(wxNursingLogReq); + wxNursingLogService.syncNursingLogToShuYun(nursingLogId); + return R.ok(nursingLogId); } /* ---------- WL200 -------------------*/ diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/EyeNursingElectricFormulaVo.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/EyeNursingElectricFormulaVo.java new file mode 100644 index 0000000..b14a649 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/EyeNursingElectricFormulaVo.java @@ -0,0 +1,50 @@ +package com.flossom.miniProgram.domain.vo; + +/** + * 眼雕大师模式定制电流配置 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/16 + */ +public class EyeNursingElectricFormulaVo extends LevelVo{ + + /** + * 问题选项描述 + */ + private String requirementSelection; + + /** + * 所属分类 + */ + private String part; + + /** + * 所属维度 + */ + private String CurrentType; + + + public String getRequirementSelection() { + return requirementSelection; + } + + public void setRequirementSelection(String requirementSelection) { + this.requirementSelection = requirementSelection; + } + + public String getPart() { + return part; + } + + public void setPart(String part) { + this.part = part; + } + + public String getCurrentType() { + return CurrentType; + } + + public void setCurrentType(String currentType) { + CurrentType = currentType; + } +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/LevelVo.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/LevelVo.java new file mode 100644 index 0000000..e396f53 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/LevelVo.java @@ -0,0 +1,64 @@ +package com.flossom.miniProgram.domain.vo; + +/** + * 等级通用模型 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/16 + */ +public class LevelVo { + private Integer Lv1; + private Integer Lv2; + private Integer Lv3; + private Integer Lv4; + private Integer Lv5; + private Integer Lv6; + + public Integer getLv1() { + return Lv1; + } + + public void setLv1(Integer lv1) { + Lv1 = lv1; + } + + public Integer getLv2() { + return Lv2; + } + + public void setLv2(Integer lv2) { + Lv2 = lv2; + } + + public Integer getLv3() { + return Lv3; + } + + public void setLv3(Integer lv3) { + Lv3 = lv3; + } + + public Integer getLv4() { + return Lv4; + } + + public void setLv4(Integer lv4) { + Lv4 = lv4; + } + + public Integer getLv5() { + return Lv5; + } + + public void setLv5(Integer lv5) { + Lv5 = lv5; + } + + public Integer getLv6() { + return Lv6; + } + + public void setLv6(Integer lv6) { + Lv6 = lv6; + } +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/LoginUserVo.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/LoginUserVo.java index 4756667..91c7b9a 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/LoginUserVo.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/LoginUserVo.java @@ -103,6 +103,16 @@ public class LoginUserVo { */ private Integer devicesNum; + /** + * 是否首次完善用户信息 + */ + private Boolean isCompleteInformation = false; + + /** + * 首次完善用户信息获取积分值 + */ + private Integer completeInformationIntegral; + public LoginUserVo() { } @@ -261,4 +271,20 @@ public class LoginUserVo { public void setDevicesNum(Integer devicesNum) { this.devicesNum = devicesNum; } + + public Boolean getCompleteInformation() { + return isCompleteInformation; + } + + public void setCompleteInformation(Boolean completeInformation) { + isCompleteInformation = completeInformation; + } + + public Integer getCompleteInformationIntegral() { + return completeInformationIntegral; + } + + public void setCompleteInformationIntegral(Integer completeInformationIntegral) { + this.completeInformationIntegral = completeInformationIntegral; + } } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/RadarProblemVo.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/RadarProblemVo.java new file mode 100644 index 0000000..27b8778 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/domain/vo/RadarProblemVo.java @@ -0,0 +1,63 @@ +package com.flossom.miniProgram.domain.vo; + +/** + * 雷达问题列表 + * @author CGLiang + * @version 2.0.0 + * @date 2024/4/16 + */ +public class RadarProblemVo { + + /** + * 问题选项描述 + */ + private String describe; + + /** + * 所属分类 A, B, C + */ + private String eyetypeOptions; + + /** + * 所属维度 + */ + private String eyeDimensionOptions; + + /** + * 选项分值 + */ + private Integer eyeNumber; + + + public String getDescribe() { + return describe; + } + + public void setDescribe(String describe) { + this.describe = describe; + } + + public String getEyetypeOptions() { + return eyetypeOptions; + } + + public void setEyetypeOptions(String eyetypeOptions) { + this.eyetypeOptions = eyetypeOptions; + } + + public String getEyeDimensionOptions() { + return eyeDimensionOptions; + } + + public void setEyeDimensionOptions(String eyeDimensionOptions) { + this.eyeDimensionOptions = eyeDimensionOptions; + } + + public Integer getEyeNumber() { + return eyeNumber; + } + + public void setEyeNumber(Integer eyeNumber) { + this.eyeNumber = eyeNumber; + } +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxClockLogService.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxClockLogService.java index ba8ce2b..0f81c6f 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxClockLogService.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxClockLogService.java @@ -9,7 +9,9 @@ import java.util.List; public interface IWxClockLogService { - public void insertWxClockLog(WxClockLogReq wxClockLogReq); + public Integer insertWxClockLog(WxClockLogReq wxClockLogReq); + + void syncIntegralToShuYun(Integer firstClockCredit); void addClockInstrument(Long instrumentId); @@ -20,4 +22,7 @@ public interface IWxClockLogService { List clockStatistics(Integer year); void clockStatisticsTimedTask(List userIdList, Integer year, Integer month); + + void syncClockToShuYun(); + } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxFindCarouselMiniService.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxFindCarouselMiniService.java new file mode 100644 index 0000000..c0fde30 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxFindCarouselMiniService.java @@ -0,0 +1,22 @@ +package com.flossom.miniProgram.service; + +import com.flossom.common.core.response.WxFindCarouselListResponse; + +import java.util.List; + +/** + * 发现轮播图Service接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface IWxFindCarouselMiniService { + + /** + * 查询发现轮播图列表 + * + * @return 发现轮播图集合 + */ + List selectWxFindCarouselList(); + +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxFindProductStrategyMiniService.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxFindProductStrategyMiniService.java new file mode 100644 index 0000000..c86b1c8 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxFindProductStrategyMiniService.java @@ -0,0 +1,22 @@ +package com.flossom.miniProgram.service; + +import com.flossom.common.core.domain.entity.WxFindProductStrategy; + +import java.util.List; + +/** + * 产品攻略Service接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface IWxFindProductStrategyMiniService { + + /** + * 查询产品攻略列表 + * + * @return 产品攻略集合 + */ + List selectWxFindProductStrategyList(); + +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxInstrumentService.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxInstrumentService.java index 761c65a..5508d28 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxInstrumentService.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxInstrumentService.java @@ -3,6 +3,9 @@ package com.flossom.miniProgram.service; import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.ret.WxBindingInstrumentInfo; import com.flossom.common.core.domain.ret.WxModeRet; +import com.flossom.common.core.domain.shuyun.ExchangeBindingUserInstrument; +import com.flossom.common.core.request.miniProgram.AnswerResultRequest; +import com.flossom.common.core.response.miniProgram.WxAnswerResponse; import java.util.List; @@ -15,9 +18,11 @@ import java.util.List; public interface IWxInstrumentService { WxInstrumentSerial getInstrumentInfoBySerial(String serial); - void binding(String serial, String serialImage, Boolean isImmediatelyBinding); + WxUserInstrument binding(String serial, String serialImage, Boolean isImmediatelyBinding); - void exchangeBinding(String serial); + void syncIntegralToShuYun(WxUserInstrument wxUserInstrument); + + ExchangeBindingUserInstrument exchangeBinding(String serial); List bindingInstrumentList(); @@ -32,4 +37,15 @@ public interface IWxInstrumentService { String upgrade(Long instrumentId, Boolean isWe200); WxBindingInstrumentInfo bindingInstrumentInfo(Long instrumentId); + + void syncInstrumentInfoToShuYun(WxUserInstrument wxUserInstrument); + + void syncUnBindingInstrumentInfoToShuYun(WxUserInstrument wxUserInstrument); + + /** + * 获取电流定制答题结果 + * @param request 请求参数 + * @return 电流定制答题结果 + */ + WxAnswerResponse getAnswerResult(AnswerResultRequest request); } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxLiningService.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxLiningService.java index 1e7cc2a..40169b5 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxLiningService.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxLiningService.java @@ -3,6 +3,7 @@ package com.flossom.miniProgram.service; import com.flossom.common.core.domain.entity.WxLining; import java.util.List; +import java.util.Map; /** * 膜布Service接口 @@ -17,4 +18,5 @@ public interface IWxLiningService { */ public List selectWxLiningList(Long instrumentId); + Map electricFormula(Long modeId, List formula); } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxNursingLogService.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxNursingLogService.java index e09a97b..fd411fa 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxNursingLogService.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxNursingLogService.java @@ -26,6 +26,8 @@ public interface IWxNursingLogService { */ public Long insertWxNursingLog(WxNursingLogReq wxNursingLogReq); + void syncNursingLogToShuYun(Long nursingLogId); + WxNursingStatisticsRet statistics(Long instrumentId); WxNursingLog selectWxNursingLogById(Long id); diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxUserMemberService.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxUserMemberService.java index bbe5f9b..d7bc3bd 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxUserMemberService.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/IWxUserMemberService.java @@ -16,4 +16,13 @@ public interface IWxUserMemberService { LoginUserVo refreshWxUserInfo(); + void syncMemberInfoToShuYun(); + + void syncUpdateMemberToShuYun(); + + void syncIntegralToShuYun(LoginUserVo loginUserVo); + + + void syncMemberAreaToShuYun(); + } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/SiteInfoServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/SiteInfoServiceImpl.java index dc00086..4ffc61b 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/SiteInfoServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/SiteInfoServiceImpl.java @@ -41,6 +41,10 @@ public class SiteInfoServiceImpl implements ISiteInfoService { @Autowired private SysTagMapper sysTagMapper; + @Autowired + private WxClockLogMapper wxClockLogMapper; + @Autowired + private WxUserInstrumentMapper wxUserInstrumentMapper; @Override @@ -155,7 +159,8 @@ public class SiteInfoServiceImpl implements ISiteInfoService { List userWecomTageIdList = new ArrayList<>(); WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); WxUserTag wxUserTag = new WxUserTag(); - wxUserTag.setUserId(wxUserMember.getId()); + Long userId = wxUserMember.getId(); + wxUserTag.setUserId(userId); wxUserTag.setType(TagTypeStatusEnum.MINI_PROGRAM.getCode()); // 用户拥有的小程序标签 List userMiniProgramTags = wxUserTagMapper.selectWxUserTagList(wxUserTag); @@ -168,10 +173,31 @@ public class SiteInfoServiceImpl implements ISiteInfoService { if (userWecomTags != null && userWecomTags.size() > 0) { userWecomTageIdList = userWecomTags.stream().map(WxUserTag::getTagId).collect(Collectors.toList()); } + // 用户打卡记录 + WxClockLog queryClockLog = new WxClockLog(); + queryClockLog.setUserId(userId); + Long count = wxClockLogMapper.selectCountByUserId(queryClockLog); + // 用户关联仪器 + List instrumentIdList = wxUserInstrumentMapper.selectInstrumentIdListByUserId(userId); + /* 开始判断 */ List resultList = new ArrayList<>(); for (SiteInfo info : siteInfos) { + + // 打卡多少次可见 + if (count < info.getSignNumber()) { + continue; + } + + // 用户拥有设置仪器都不是轮播图的特定仪器 + if (StringUtils.isNotEmpty(info.getInstrumentId())) { + String[] split = info.getInstrumentId().split(","); + if (Arrays.stream(split).map(Long::parseLong).noneMatch(instrumentIdList::contains)) { + continue; + } + } + /* 1、开启结束时间判定 */ Date siteStartTime = info.getSiteStartTime(); Date siteEndTime = info.getSiteEndTime(); @@ -316,14 +342,6 @@ public class SiteInfoServiceImpl implements ISiteInfoService { } } - /** - * TODO: 打卡多少次可见 - */ - - /** - * TODO: 关联仪器 - */ - // 最终符合条件 resultList.add(info); diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java index 1d6a542..3e404a0 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxClockLogServiceImpl.java @@ -5,6 +5,7 @@ import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.req.WxClockLogReq; import com.flossom.common.core.domain.ret.WxClockLogRet; import com.flossom.common.core.domain.shuyun.ShuYunPointChange; +import com.flossom.common.core.domain.shuyun.ShuYunUserTagReq; import com.flossom.common.core.enums.IntegralChangeTypeEnum; import com.flossom.common.core.enums.ShuYunPointSourceEnum; import com.flossom.common.core.enums.Status; @@ -12,9 +13,14 @@ import com.flossom.common.core.mapper.*; import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.uuid.IdUtils; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.ClockTag; +import com.flossom.common.security.utils.shuyun.MemberInfoTag; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; import com.flossom.miniProgram.service.IWxClockLogService; -import com.flossom.miniProgram.utils.shuyun.ShuYunApiUtils; -import com.flossom.miniProgram.utils.shuyun.ShuYunConfig; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -30,6 +36,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -40,6 +47,8 @@ import java.util.stream.Collectors; @RefreshScope public class WxClockLogServiceImpl implements IWxClockLogService { + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired private WxClockLogMapper wxClockLogMapper; @@ -76,7 +85,7 @@ public class WxClockLogServiceImpl implements IWxClockLogService { @Override @Transactional - public void insertWxClockLog(WxClockLogReq wxClockLogReq) { + public Integer insertWxClockLog(WxClockLogReq wxClockLogReq) { WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); LocalDateTime now = LocalDateTime.now(); @@ -105,7 +114,7 @@ public class WxClockLogServiceImpl implements IWxClockLogService { credit += integralClock.getExtraClockCredit(); } } - if (credit != null && credit != 0) { + if (credit != null) { firstClockCredit = credit.intValue(); // 增加积分 WxUserMember query = wxUserMemberMapper.selectWxUserMemberById(wxUserMember.getId()); @@ -131,8 +140,6 @@ public class WxClockLogServiceImpl implements IWxClockLogService { } wxClockLog.setClockContent(wxClockLogReq.getClockContent()); wxClockLog.setUserId(wxUserMember.getId()); - wxClockLog.setCreateBy(wxUserMember.getNickname()); - wxClockLog.setCreateTime(DateUtils.getNowDate()); // 当天使用过的仪器 WxClockInstrumentLog queryInstrumentLog = new WxClockInstrumentLog(); queryInstrumentLog.setUserId(wxUserMember.getId()); @@ -161,6 +168,10 @@ public class WxClockLogServiceImpl implements IWxClockLogService { wxClockLogMapper.updateWxClockLog(wxClockLog); } else { // 当天第一次打卡 + wxClockLog.setCreateBy(wxUserMember.getNickname()); + wxClockLog.setCreateTime(DateUtils.getNowDate()); + wxClockLog.setUpdateBy(SecurityUtils.getLoginUser().getWxUserMember().getNickname()); + wxClockLog.setUpdateTime(DateUtils.getNowDate()); wxClockLogMapper.insertWxClockLog(wxClockLog); /* 保存redis构建排名 */ @@ -210,14 +221,68 @@ public class WxClockLogServiceImpl implements IWxClockLogService { } } - if (isFirstClock && firstClockCredit != null && firstClockCredit > 0) { + if (isFirstClock && firstClockCredit != null) { /** - * TODO:当天首次打卡奖励积分,同步数云(已完成,未保存操作) + * TODO: 记录积分操作记录 和 打卡标签记录 */ - ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), - IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), firstClockCredit, - LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), IntegralChangTextConstants.DAILY_CLOCK); - ShuYunApiUtils.pointChange(shuYunPointChange); + return firstClockCredit; + } + return null; + } + + @Override + public void syncIntegralToShuYun(Integer firstClockCredit) { + /** + * TODO: 修改日志状态 + */ + + /** + * TODO:当天首次打卡奖励积分,同步数云(已完成,未保存操作) + */ + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), + IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), firstClockCredit, + LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), IntegralChangTextConstants.DAILY_CLOCK); + ShuYunApiUtils.pointChange(shuYunPointChange); + } + + @Override + public void syncClockToShuYun() { + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + List userIdList = Arrays.asList(wxUserMember.getId()); + List wxClockStatisticsList = wxClockStatisticsMapper.selectByUserIdAndYearMonth(userIdList, LocalDate.now().getYear(), LocalDate.now().getMonthValue()); + if (wxClockStatisticsList != null && wxClockStatisticsList.size() == 1) { + WxClockStatistics wxClockStatistics = wxClockStatisticsList.get(0); + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:将打卡记录同步到数云 (已完成) + List tagsMark = new ArrayList<>(); + ClockTag clockTag = shuYunConfig.getFixedTagInfo().getClockTag(); + // 累计打卡天数 + List allClockStatisticsList = wxClockStatisticsMapper.selectByUserIdAndYearMonth(userIdList, null, null); + if (allClockStatisticsList != null && allClockStatisticsList.size() > 0) { + int sum = allClockStatisticsList.stream().mapToInt(WxClockStatistics::getClockNum).sum(); + tagsMark.add(new ShuYunUserTagReq<>( + clockTag.getClockDays(), Arrays.asList(sum), + clockTag.getClockTagId(), wxUserMember.getUnionid())); + } + // 本月打卡天数 + tagsMark.add(new ShuYunUserTagReq<>( + clockTag.getClockDaysInMonth(), Arrays.asList(wxClockStatistics.getClockNum()), + clockTag.getClockTagId(), wxUserMember.getUnionid())); + // TODO:本周打卡天数(未完成) + // 最新打卡时间 + tagsMark.add(new ShuYunUserTagReq<>( + clockTag.getClockDaysInLast(), Arrays.asList(DateFormatUtils.format(wxClockStatistics.getCreateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)), + clockTag.getClockTagId(), wxUserMember.getUnionid())); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } } } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxFindCarouselServiceMiniImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxFindCarouselServiceMiniImpl.java new file mode 100644 index 0000000..88ffd25 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxFindCarouselServiceMiniImpl.java @@ -0,0 +1,219 @@ +package com.flossom.miniProgram.service.impl; + +import com.flossom.common.core.domain.entity.*; +import com.flossom.common.core.enums.TagTypeStatusEnum; +import com.flossom.common.core.enums.WxFindEnum; +import com.flossom.common.core.mapper.*; +import com.flossom.common.core.response.WxFindCarouselListResponse; +import com.flossom.common.core.utils.CollectionUtils; +import com.flossom.common.core.utils.StringUtils; +import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.miniProgram.service.IWxFindCarouselMiniService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 发现轮播图Service业务层处理 + * + * @author flossom + * @date 2024-04-10 + */ +@Service +public class WxFindCarouselServiceMiniImpl implements IWxFindCarouselMiniService { + @Autowired + private WxFindCarouselMapper wxFindCarouselMapper; + @Autowired + private WxClockLogMapper wxClockLogMapper; + @Autowired + private WxFindTagMapper wxFindTagMapper; + @Autowired + private WxUserTagMapper wxUserTagMapper; + @Autowired + private WxUserInstrumentMapper wxUserInstrumentMapper; + + /** + * 查询发现轮播图列表 + * + * @return 发现轮播图 + */ + @Override + public List selectWxFindCarouselList() { + WxFindCarousel wxFindCarousel = new WxFindCarousel(); + wxFindCarousel.setOperate(1L); + List wxFindCarousels = wxFindCarouselMapper.selectWxFindCarouselList(wxFindCarousel); + if (CollectionUtils.isNotEmpty(wxFindCarousels)) { + return filterWxFindCarousel(wxFindCarousels); + } + return null; + } + + /** + * 过滤轮播图 + * + * @param wxFindCarousels 发现轮播图列表 + * @return 过滤后的轮播图 + */ + private List filterWxFindCarousel(List wxFindCarousels) { + /* 获取用户拥有的小程序标签和外部标签 */ + List userMiniTageIdList = new ArrayList<>(); + List userWecomTageIdList = new ArrayList<>(); + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + WxUserTag wxUserTag = new WxUserTag(); + Long userId = wxUserMember.getId(); + wxUserTag.setUserId(userId); + List userMiniProgramTags = wxUserTagMapper.selectWxUserTagList(wxUserTag); + Map> userMiniProgramTagMap = userMiniProgramTags.stream().collect(Collectors.groupingBy(WxUserTag::getType)); + // 用户拥有的小程序标签 + List userMiniList = userMiniProgramTagMap.get(TagTypeStatusEnum.MINI_PROGRAM.getCode()); + if (userMiniList != null && userMiniList.size() > 0) { + userMiniTageIdList = userMiniList.stream().map(WxUserTag::getTagId).collect(Collectors.toList()); + } + // 用户拥有的外部标签 + List userWecomTags = userMiniProgramTagMap.get(TagTypeStatusEnum.ENTERPRISE_WECHAT.getCode()); + if (userWecomTags != null && userWecomTags.size() > 0) { + userWecomTageIdList = userWecomTags.stream().map(WxUserTag::getTagId).collect(Collectors.toList()); + } + // 用户打卡记录 + WxClockLog queryClockLog = new WxClockLog(); + queryClockLog.setUserId(userId); + Long count = wxClockLogMapper.selectCountByUserId(queryClockLog); + // 用户关联仪器 + List instrumentIdList = wxUserInstrumentMapper.selectInstrumentIdListByUserId(userId); + + /* 开始判断 */ + List resultList = new ArrayList<>(); + for (WxFindCarousel carousel : wxFindCarousels) { + + // 打卡多少次可见 + if (count < carousel.getSignNumber()) { + continue; + } + + // 用户拥有设置仪器都不是轮播图的特定仪器 + if (StringUtils.isNotEmpty(carousel.getInstrumentId())) { + String[] split = carousel.getInstrumentId().split(","); + if (Arrays.stream(split).map(Long::parseLong).noneMatch(instrumentIdList::contains)) { + continue; + } + } + + /* 1、开启结束时间判定 */ + Date siteStartTime = carousel.getSiteStartTime(); + Date siteEndTime = carousel.getSiteEndTime(); + if (siteStartTime != null && siteEndTime != null) { + LocalDateTime startTime = LocalDateTime.ofInstant(siteStartTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime endTime = LocalDateTime.ofInstant(siteEndTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime now = LocalDateTime.now(); + // 不在时间范围内 + if (!(now.isAfter(startTime) && now.isBefore(endTime))) { + continue; + } + } + + /* 2、投放用户注册时间 */ + Date registerStartTime = carousel.getUserRegisterStartTime(); + Date registerEndTime = carousel.getUserRegisterEndTime(); + if (registerStartTime != null && registerEndTime != null) { + LocalDateTime startTime = LocalDateTime.ofInstant(registerStartTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime endTime = LocalDateTime.ofInstant(registerEndTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime now = LocalDateTime.now(); + // 不在时间范围内 + if (!(now.isAfter(startTime) && now.isBefore(endTime))) { + continue; + } + } + + /* 3、可见用户类型 */ + Long userType = carousel.getUserType(); + // 可见用户类型 0-全部 1-游客 2-会员 + if (userType != 0L) { + Integer loginUserType = SecurityUtils.getLoginUser().getWxUserMember().getUserType(); + // 当用户类型为游客 + if (loginUserType == null || loginUserType == 0) { + if (userType != 1L) { + continue; + } + } + // 当用户类型为会员 + if (Objects.equals(loginUserType, 1)) { + if (userType != 2) { + continue; + } + } + } + + /* 4、弹窗标签判断 */ + // 4.2、禁止标签 + WxFindTag wxFindTag = new WxFindTag(); + wxFindTag.setWxFindId(carousel.getId()); + wxFindTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + wxFindTag.setStatus(1L); + List forbidWxFindTags = wxFindTagMapper.selectWxFindTagList(wxFindTag); + if (forbidWxFindTags != null && forbidWxFindTags.size() > 0) { + List forbidTagIdList = forbidWxFindTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + if (userMiniTageIdList.size() > 0) { + boolean isContinue = false; + for (Long tagid : userMiniTageIdList) { + if (forbidTagIdList.contains(tagid)) { + isContinue = true; + break; + } + } + if (isContinue) { + continue; + } + } + if (userWecomTageIdList.size() > 0) { + boolean isContinue = false; + for (Long tagid : userWecomTageIdList) { + if (forbidTagIdList.contains(tagid)) { + isContinue = true; + break; + } + } + if (isContinue) { + continue; + } + } + } + + // 4.4、可见小程序标签 + wxFindTag.setWxFindId(carousel.getId()); + wxFindTag.setTagType(TagTypeStatusEnum.MINI_PROGRAM.getCode()); + wxFindTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + wxFindTag.setStatus(0L); + List showWechatWxFindTags = wxFindTagMapper.selectWxFindTagList(wxFindTag); + if (showWechatWxFindTags != null && showWechatWxFindTags.size() > 0) { + List showWechatTagIdList = showWechatWxFindTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + if (userMiniTageIdList == null || !userMiniTageIdList.containsAll(showWechatTagIdList)) { + continue; + } + } + // 4.5、可见外部标签 + wxFindTag.setWxFindId(carousel.getId()); + wxFindTag.setTagType(TagTypeStatusEnum.ENTERPRISE_WECHAT.getCode()); + wxFindTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + wxFindTag.setStatus(0L); + List showCompanyWxFindTags = wxFindTagMapper.selectWxFindTagList(wxFindTag); + if (showCompanyWxFindTags != null && showCompanyWxFindTags.size() > 0) { + List showCompanyTagIdList = showCompanyWxFindTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + if (userWecomTageIdList == null || !userWecomTageIdList.containsAll(showCompanyTagIdList)) { + continue; + } + } + + // 最终符合条件 + WxFindCarouselListResponse wxFindCarouselListResponse = new WxFindCarouselListResponse(); + BeanUtils.copyProperties(carousel, wxFindCarouselListResponse); + resultList.add(wxFindCarouselListResponse); + + } + return resultList; + } +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxFindProductStrategyMiniServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxFindProductStrategyMiniServiceImpl.java new file mode 100644 index 0000000..d1ed656 --- /dev/null +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxFindProductStrategyMiniServiceImpl.java @@ -0,0 +1,220 @@ +package com.flossom.miniProgram.service.impl; + +import com.flossom.common.core.domain.entity.*; +import com.flossom.common.core.enums.TagTypeStatusEnum; +import com.flossom.common.core.enums.WxFindEnum; +import com.flossom.common.core.mapper.*; +import com.flossom.common.core.utils.CollectionUtils; +import com.flossom.common.core.utils.StringUtils; +import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.miniProgram.service.IWxFindProductStrategyMiniService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 产品攻略Service业务层处理 + * + * @author flossom + * @date 2024-04-10 + */ +@Service +public class WxFindProductStrategyMiniServiceImpl implements IWxFindProductStrategyMiniService { + + @Autowired + private WxFindProductStrategyMapper wxFindProductStrategyMapper; + @Autowired + private WxClockLogMapper wxClockLogMapper; + @Autowired + private WxFindTagMapper wxFindTagMapper; + @Autowired + private WxUserTagMapper wxUserTagMapper; + @Autowired + private WxUserInstrumentMapper wxUserInstrumentMapper; + + + /** + * 查询产品攻略列表 + * + * @return 产品攻略 + */ + @Override + public List selectWxFindProductStrategyList() { + WxFindProductStrategy wxFindProductStrategy = new WxFindProductStrategy(); + wxFindProductStrategy.setOperate(1L); + List wxFindProductStrategyList = wxFindProductStrategyMapper.selectWxFindProductStrategyList(wxFindProductStrategy); + if (CollectionUtils.isNotEmpty(wxFindProductStrategyList)) { + return fileData(wxFindProductStrategyList); + } + return null; + } + + /** + * 过滤轮播图 + * + * @param wxFindProductStrategyList 产品攻略列表 + * @return 过滤后的轮播图 + */ + private List fileData(List wxFindProductStrategyList) { + /* 获取用户拥有的小程序标签和外部标签 */ + List userMiniTageIdList = new ArrayList<>(); + List userWecomTageIdList = new ArrayList<>(); + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + WxUserTag wxUserTag = new WxUserTag(); + Long userId = wxUserMember.getId(); + wxUserTag.setUserId(userId); + List userMiniProgramTags = wxUserTagMapper.selectWxUserTagList(wxUserTag); + Map> userMiniProgramTagMap = userMiniProgramTags.stream().collect(Collectors.groupingBy(WxUserTag::getType)); + // 用户拥有的小程序标签 + List userMiniList = userMiniProgramTagMap.get(TagTypeStatusEnum.MINI_PROGRAM.getCode()); + if (userMiniList != null && userMiniList.size() > 0) { + userMiniTageIdList = userMiniList.stream().map(WxUserTag::getTagId).collect(Collectors.toList()); + } + // 用户拥有的外部标签 + List userWecomTags = userMiniProgramTagMap.get(TagTypeStatusEnum.ENTERPRISE_WECHAT.getCode()); + if (userWecomTags != null && userWecomTags.size() > 0) { + userWecomTageIdList = userWecomTags.stream().map(WxUserTag::getTagId).collect(Collectors.toList()); + } + // 用户打卡记录 + WxClockLog queryClockLog = new WxClockLog(); + queryClockLog.setUserId(userId); + Long count = wxClockLogMapper.selectCountByUserId(queryClockLog); + // 用户关联仪器 + List instrumentIdList = wxUserInstrumentMapper.selectInstrumentIdListByUserId(userId); + + /* 开始判断 */ + List resultList = new ArrayList<>(); + for (WxFindProductStrategy item : wxFindProductStrategyList) { + + // 打卡多少次可见 + if (count < item.getSignNumber()) { + continue; + } + + // 用户拥有设置仪器都不是轮播图的特定仪器 + if (StringUtils.isNotEmpty(item.getInstrumentId())) { + String[] split = item.getInstrumentId().split(","); + if (Arrays.stream(split).map(Long::parseLong).noneMatch(instrumentIdList::contains)) { + continue; + } + } + + /* 1、开启结束时间判定 */ + Date siteStartTime = item.getSiteStartTime(); + Date siteEndTime = item.getSiteEndTime(); + if (siteStartTime != null && siteEndTime != null) { + LocalDateTime startTime = LocalDateTime.ofInstant(siteStartTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime endTime = LocalDateTime.ofInstant(siteEndTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime now = LocalDateTime.now(); + // 不在时间范围内 + if (!(now.isAfter(startTime) && now.isBefore(endTime))) { + continue; + } + } + + /* 2、投放用户注册时间 */ + Date registerStartTime = item.getUserRegisterStartTime(); + Date registerEndTime = item.getUserRegisterEndTime(); + if (registerStartTime != null && registerEndTime != null) { + LocalDateTime startTime = LocalDateTime.ofInstant(registerStartTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime endTime = LocalDateTime.ofInstant(registerEndTime.toInstant(), ZoneId.systemDefault()); + LocalDateTime now = LocalDateTime.now(); + // 不在时间范围内 + if (!(now.isAfter(startTime) && now.isBefore(endTime))) { + continue; + } + } + + /* 3、可见用户类型 */ + Long userType = item.getUserType(); + // 可见用户类型 0-全部 1-游客 2-会员 + if (userType != 0L) { + Integer loginUserType = SecurityUtils.getLoginUser().getWxUserMember().getUserType(); + // 当用户类型为游客 + if (loginUserType == null || loginUserType == 0) { + if (userType != 1L) { + continue; + } + } + // 当用户类型为会员 + if (Objects.equals(loginUserType, 1)) { + if (userType != 2) { + continue; + } + } + } + + /* 4、弹窗标签判断 */ + // 4.2、禁止标签 + WxFindTag wxFindTag = new WxFindTag(); + wxFindTag.setWxFindId(item.getId()); + wxFindTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + wxFindTag.setStatus(1L); + List forbidWxFindTags = wxFindTagMapper.selectWxFindTagList(wxFindTag); + if (forbidWxFindTags != null && forbidWxFindTags.size() > 0) { + List forbidTagIdList = forbidWxFindTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + if (userMiniTageIdList.size() > 0) { + boolean isContinue = false; + for (Long tagid : userMiniTageIdList) { + if (forbidTagIdList.contains(tagid)) { + isContinue = true; + break; + } + } + if (isContinue) { + continue; + } + } + if (userWecomTageIdList.size() > 0) { + boolean isContinue = false; + for (Long tagid : userWecomTageIdList) { + if (forbidTagIdList.contains(tagid)) { + isContinue = true; + break; + } + } + if (isContinue) { + continue; + } + } + } + + // 4.4、可见小程序标签 + wxFindTag.setWxFindId(item.getId()); + wxFindTag.setTagType(TagTypeStatusEnum.MINI_PROGRAM.getCode()); + wxFindTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + wxFindTag.setStatus(0L); + List showWechatWxFindTags = wxFindTagMapper.selectWxFindTagList(wxFindTag); + if (showWechatWxFindTags != null && showWechatWxFindTags.size() > 0) { + List showWechatTagIdList = showWechatWxFindTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + if (userMiniTageIdList == null || !userMiniTageIdList.containsAll(showWechatTagIdList)) { + continue; + } + } + // 4.5、可见外部标签 + wxFindTag.setWxFindId(item.getId()); + wxFindTag.setTagType(TagTypeStatusEnum.ENTERPRISE_WECHAT.getCode()); + wxFindTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + wxFindTag.setStatus(0L); + List showCompanyWxFindTags = wxFindTagMapper.selectWxFindTagList(wxFindTag); + if (showCompanyWxFindTags != null && showCompanyWxFindTags.size() > 0) { + List showCompanyTagIdList = showCompanyWxFindTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + if (userWecomTageIdList == null || !userWecomTageIdList.containsAll(showCompanyTagIdList)) { + continue; + } + } + + // 前端需要key字段 + item.setKey(item.getId()); + // 最终符合条件 + resultList.add(item); + + } + return resultList; + } + +} diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxInstrumentServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxInstrumentServiceImpl.java index 274c451..452a45c 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxInstrumentServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxInstrumentServiceImpl.java @@ -1,22 +1,36 @@ package com.flossom.miniProgram.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.flossom.common.core.constant.IntegralChangTextConstants; import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.ret.WxBindingInstrumentInfo; import com.flossom.common.core.domain.ret.WxModeRet; +import com.flossom.common.core.domain.shuyun.ExchangeBindingUserInstrument; import com.flossom.common.core.domain.shuyun.ShuYunPointChange; +import com.flossom.common.core.domain.shuyun.ShuYunUserTagReq; import com.flossom.common.core.enums.*; import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.exception.ServiceReturnCodeException; import com.flossom.common.core.mapper.*; +import com.flossom.common.core.request.miniProgram.AnswerResultRequest; +import com.flossom.common.core.response.miniProgram.EyeNursingElectricFormulaResponse; +import com.flossom.common.core.response.miniProgram.RedarScoreResponse; +import com.flossom.common.core.response.miniProgram.WxAnswerResponse; import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.core.utils.uuid.IdUtils; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.InstrumentTag; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; +import com.flossom.miniProgram.domain.vo.EyeNursingElectricFormulaVo; +import com.flossom.miniProgram.domain.vo.LevelVo; +import com.flossom.miniProgram.domain.vo.RadarProblemVo; import com.flossom.miniProgram.service.IWxInstrumentService; -import com.flossom.miniProgram.utils.shuyun.ShuYunApiUtils; -import com.flossom.miniProgram.utils.shuyun.ShuYunConfig; +import org.apache.commons.lang3.time.DateFormatUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -26,7 +40,8 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.FileCopyUtils; import javax.xml.bind.DatatypeConverter; -import java.io.*; +import java.io.FileNotFoundException; +import java.io.IOException; import java.net.URL; import java.time.Instant; import java.time.LocalDateTime; @@ -35,6 +50,7 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoField; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -96,6 +112,9 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { @Autowired private WxModeGearMapper wxModeGearMapper; + @Autowired + private WxModeWe200RelationMapper wxModeWe200RelationMapper; + @Autowired private ShuYunConfig shuYunConfig; @@ -167,7 +186,7 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { */ @Override @Transactional - public void binding(String serial, String serialImage, Boolean isImmediatelyBinding) { + public WxUserInstrument binding(String serial, String serialImage, Boolean isImmediatelyBinding) { WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(SecurityUtils.getLoginUser().getWxUserMember().getId()); /* 1、获取序列号信息 */ WxInstrumentSerial wxInstrumentSerial = getInstrumentInfoBySerial(serial); @@ -325,21 +344,97 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { wxUserScriptLogMapper.insertWxUserScriptLog(wxUserScriptLog); } logger.info("绑定成功,序列号:{},用户ID:{},用户名:{}", serial, wxUserMember.getId(), wxUserMember.getNickname()); - /** - * TODO: 仪器绑定与数云同步积分(已完成,未保存操作记录) + * TODO: 添加积分操作记录(未完成) + * TODO: 添加绑定仪器操作记录(未完成) */ - ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), - IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), wxInstrument.getBindingCredit(), - LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), wxInstrument.getName() + IntegralChangTextConstants.BINDING_INSTRUMENT); - ShuYunApiUtils.pointChange(shuYunPointChange); + return saveEntity; + } + } + return null; + } + + /** + * 用户绑定仪器积分同步 + */ + @Override + @Transactional + public void syncIntegralToShuYun(WxUserInstrument wxUserInstrument) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + /** + * TODO: 仪器绑定与数云同步积分(已完成) + */ + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(wxUserInstrument.getInstrumentId()); + ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), + IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), wxInstrument.getBindingCredit(), + LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), + StrUtil.format(IntegralChangTextConstants.BINDING_INSTRUMENT, wxInstrument.getName())); + ShuYunApiUtils.pointChange(shuYunPointChange); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } + } + + /** + * 同步绑定仪器信息 + */ + @Override + @Transactional + public void syncInstrumentInfoToShuYun(WxUserInstrument wxUserInstrument) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:同步绑定仪器信息 (已完成) + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + List tagsMark = new ArrayList<>(); + InstrumentTag instrumentTag = shuYunConfig.getFixedTagInfo().getInstrumentTag(); + // 序列号 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentBandingTagId(), Arrays.asList(wxUserInstrument.getSerial()), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + // 绑定日期 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentSerialTagId(), Arrays.asList(DateFormatUtils.format(wxUserInstrument.getUpdateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + // 仪器序列号-状态 + WxInstrumentSerial querySerial = new WxInstrumentSerial(); + querySerial.setSerial(wxUserInstrument.getSerial()); + WxInstrumentSerial wxInstrumentSerial = wxInstrumentSerialMapper.selectEntityListBySerial(querySerial); + if (wxInstrumentSerial != null) { + if (wxInstrumentSerial.getValidStatus() != null && wxInstrumentSerial.getValidStatus() == 1) { + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentSerialStatusTagId(), Arrays.asList("有效"), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + } + if (wxInstrumentSerial.getValidStatus() != null && wxInstrumentSerial.getValidStatus() == 0) { + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentSerialStatusTagId(), Arrays.asList("无效"), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + } } + // 仪器名称 + WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(wxUserInstrument.getInstrumentId()); + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentName(), Arrays.asList(wxInstrument.getName()), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); } } @Override @Transactional - public void exchangeBinding(String serial) { + public ExchangeBindingUserInstrument exchangeBinding(String serial) { WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); /* 1、获取序列号信息 */ WxInstrumentSerial newInstrumentSerial = getInstrumentInfoBySerial(serial); @@ -373,6 +468,8 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { throw new ServiceException("换绑失败"); } WxUserInstrument wxUserInstrument = wxUserInstrumentList.get(0); + ExchangeBindingUserInstrument exchangeBindingUserInstrument = new ExchangeBindingUserInstrument(); + exchangeBindingUserInstrument.setOldUserInstrument(wxUserInstrument); // 3.2、更新旧的序列号状态为已解绑 // 当后管解除了用户和仪器的绑定,状态变为已解绑,无需再次修改序列号的绑定状态 @@ -401,6 +498,10 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { updateEntity.setUpdateBy(wxUserMember.getNickname()); updateEntity.setUpdateTime(DateUtils.getNowDate()); wxUserInstrumentMapper.updateWxUserInstrument(updateEntity); + exchangeBindingUserInstrument.setNewUserInstrument(updateEntity); + /** + * TODO: 记录仪器换绑同步数云记录(未完成) + */ // 3.5、用户仪器关联操作日志表 // 当后管解除了用户和仪器的绑定,操作记录已记录,无需再次记录 @@ -435,6 +536,31 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { newUserInstrumentLog.setCreateBy(wxUserMember.getNickname()); newUserInstrumentLog.setCreateTime(DateUtils.getNowDate()); wxUserInstrumentLogMapper.insertWxUserInstrumentLog(newUserInstrumentLog); + + return exchangeBindingUserInstrument; + } + + @Override + @Transactional + public void syncUnBindingInstrumentInfoToShuYun(WxUserInstrument wxUserInstrument) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:同步解绑仪器信息 (已完成) + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + List tagsMark = new ArrayList<>(); + InstrumentTag instrumentTag = shuYunConfig.getFixedTagInfo().getInstrumentTag(); + // 解绑日期 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentUnBandingTagId(), Arrays.asList(DateFormatUtils.format(wxUserInstrument.getUpdateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } } @Override @@ -538,6 +664,12 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { if (wxModeRet.getModeTime() != null) { wxModeRet.setModeTimeStr(DateUtils.formatMS(wxModeRet.getModeTime().getLong(ChronoField.SECOND_OF_DAY))); } + + // 获取 WE200 膜布模式的特有属性 + if (StringUtils.equals(wxMode.getInstrumentModel(), "WE200")) { + WxModeWe200Relation wxModeWe200Relation = wxModeWe200RelationMapper.selectWxModeWe200RelationByModeId(wxMode.getId()); + BeanUtils.copyProperties(wxModeWe200Relation, wxModeRet); + } wxModeRetList.add(wxModeRet); } return wxModeRetList; @@ -619,4 +751,125 @@ public class WxInstrumentServiceImpl implements IWxInstrumentService { wxBindingInstrumentInfo.setBindingDateTime(wxUserInstrument.getUpdateTime()); return wxBindingInstrumentInfo; } + + /** + * 获取电流定制答题结果 + * @param request 请求参数 + * @return 电流定制答题结果 + */ + @Override + public WxAnswerResponse getAnswerResult(AnswerResultRequest request) { + Integer min = request.getMin(); + List electricList = request.getElectricList(); + Integer level = request.getElectricLevel(); + if (1 > level || level > 6) { + throw new ServiceException("电流定制等级必须是1~6级"); + } + Long modeId = request.getModeId(); + // 根据模式获取电流定制模版 + WxModeWe200Relation wxModeWe200Relation = Optional.ofNullable(wxModeWe200RelationMapper.selectWxModeWe200RelationByModeId(modeId)) + .orElseThrow(() -> new ServiceException("根据仪器模式匹配不到定制电流模板")); + + WxAnswerResponse wxAnswerResponse = new WxAnswerResponse(); + // 处理护理时间 + String eyeNursingTimeJson = wxModeWe200Relation.getEyeNursingTime(); + if (StringUtils.isNotEmpty(eyeNursingTimeJson)) { + List eyeNursingTimeList = JSON.parseArray(eyeNursingTimeJson, LevelVo.class); + Integer eyeNursingTime = this.getEyeNursingTime(level, eyeNursingTimeList.get(0)); + wxAnswerResponse.setNursingTime(eyeNursingTime); + } + + // 处理雷达分值 + String eyeNursingRadarJson = wxModeWe200Relation.getEyeNursingRadar(); + if (StringUtils.isNotEmpty(eyeNursingRadarJson)) { + JSONObject jsonObject = JSONObject.parseObject(eyeNursingRadarJson); + JSONArray radarChartTable = jsonObject.getJSONArray("radarChartTable"); + Map radarProblemVoMap = radarChartTable.stream().map(obj -> { + JSONObject radarProblemJson = (JSONObject)obj; + return radarProblemJson.toJavaObject(RadarProblemVo.class); + }).collect(Collectors.toMap(RadarProblemVo::getDescribe, Function.identity(), (v1, v2) -> v1)); + + Map radarChartVoMap = RedarlevelInitEnum.initRedarMap(min); + Set formulaCodeSet = new HashSet<>(); + radarProblemVoMap.forEach((key, value) -> { + String eyeDimensionOptions = value.getEyeDimensionOptions(); + // 是否已经添加过该维度雷达值 + boolean isRedarFlag = radarChartVoMap.containsKey(eyeDimensionOptions); + // 不被选中问题选项 + if (electricList.contains(key)) { + formulaCodeSet.add(value.getEyetypeOptions().substring(0,1)); + // 添加过雷达值相同维度需要累加 + if (isRedarFlag) { + Integer redarValue = radarChartVoMap.get(eyeDimensionOptions); + redarValue += value.getEyeNumber(); + redarValue = redarValue >= 5 ? 5 : redarValue; + redarValue = redarValue <= min ? min : redarValue; + radarChartVoMap.put(eyeDimensionOptions, redarValue); + } + radarChartVoMap.put(eyeDimensionOptions, value.getEyeNumber()); + } + }); + // 处理雷达数据 + List redarScoreResponseList = radarChartVoMap.keySet().stream().map(key -> new RedarScoreResponse(key, radarChartVoMap.get(key))).collect(Collectors.toList()); + wxAnswerResponse.setRedarScoreList(redarScoreResponseList); + + // 专属配方编号 + StringBuilder code = new StringBuilder(); + StringBuilder ordCode = new StringBuilder(); + if (formulaCodeSet.contains("A")) { + code.append("X"); + ordCode.append("A"); + } + if (formulaCodeSet.contains("B")) { + code.append("Y"); + ordCode.append("B"); + } + if (formulaCodeSet.contains("C")) { + code.append("Z"); + ordCode.append("C"); + } + wxAnswerResponse.setFormulaCode(code.toString() + level); + + // 处理电流配置等级数据 + String eyeNursingElectricFormulaJson = wxModeWe200Relation.getEyeNursingElectricFormula(); + if (StringUtils.isNotEmpty(eyeNursingElectricFormulaJson)) { + Map> formulaVoMap = JSONObject.parseArray(eyeNursingElectricFormulaJson, EyeNursingElectricFormulaVo.class) + .stream().collect(Collectors.groupingBy(EyeNursingElectricFormulaVo::getRequirementSelection)); + // 获取制定配置数据 + List electricFormulaResponses = formulaVoMap.get(ordCode.toString()).stream() + .map(item -> { + Integer levelScore = getEyeNursingTime(level, item); + return new EyeNursingElectricFormulaResponse(item.getRequirementSelection(), item.getPart(), item.getCurrentType(), levelScore); + }).collect(Collectors.toList()); + wxAnswerResponse.setElectricFormulaList(electricFormulaResponses); + } + } + return wxAnswerResponse; + } + + + /** + * 根据等级获取对应等级分值 + * @param level 等级 + * @param levelVo 分级分值对象 + * @return 对应等级分值 + */ + private Integer getEyeNursingTime(int level, LevelVo levelVo){ + int result = 0; + switch (level) { + case 1: + result = levelVo.getLv1(); break; + case 2: + result = levelVo.getLv2(); break; + case 3: + result = levelVo.getLv3(); break; + case 4: + result = levelVo.getLv4(); break; + case 5: + result = levelVo.getLv5(); break; + case 6: + result = levelVo.getLv6(); break; + } + return result; + } } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxLiningServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxLiningServiceImpl.java index 7432f4d..48aa8a9 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxLiningServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxLiningServiceImpl.java @@ -1,15 +1,23 @@ package com.flossom.miniProgram.service.impl; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.flossom.common.core.domain.entity.WxInstrumentLining; import com.flossom.common.core.domain.entity.WxLining; +import com.flossom.common.core.domain.entity.WxModeWe200Relation; +import com.flossom.common.core.domain.ret.CustomizationElectricFormulaVo; import com.flossom.common.core.mapper.WxInstrumentLiningMapper; import com.flossom.common.core.mapper.WxLiningMapper; +import com.flossom.common.core.mapper.WxModeWe200RelationMapper; +import com.flossom.common.core.utils.StringUtils; import com.flossom.miniProgram.service.IWxLiningService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 膜布Service业务层处理 @@ -26,6 +34,9 @@ public class WxLiningServiceImpl implements IWxLiningService { @Autowired private WxInstrumentLiningMapper wxInstrumentLiningMapper; + @Autowired + private WxModeWe200RelationMapper wxModeWe200RelationMapper; + /** * 查询膜布列表 * @@ -47,4 +58,87 @@ public class WxLiningServiceImpl implements IWxLiningService { return null; } + /** + * @param modeId 数组 + * @param formula 答题结论数组 + * {1,2,3,4,5,6}:下标 0,1 代表 1,2题,以此类推 + * @return + */ + @Override + public Map electricFormula(Long modeId, List formula) { + Map result = new HashMap<>(); + ArrayList list = new ArrayList(); + Integer weight = 0;//权重 + // 定制电流配置 + WxModeWe200Relation wxModeWe200Relation = wxModeWe200RelationMapper.selectWxModeWe200RelationByModeId(modeId); + if (wxModeWe200Relation != null) { + String customizationElectricFormula = wxModeWe200Relation.getCustomizationElectricFormula(); + if (StringUtils.isNotBlank(customizationElectricFormula)) { + /** + * { + * "target":"都选择了提拉", + * "CurrentType":"提升", + * "L0":0, + * "L1":0, + * "L2":0, + * "L3":0 + * }, + */ + List jsonArray = JSON.parseArray(customizationElectricFormula, JSONObject.class); + CustomizationElectricFormulaVo customizationElectricFormulaVo; + for (int i = 0; i < 3; i++) { + customizationElectricFormulaVo = new CustomizationElectricFormulaVo(); + // 答案 + Integer quest1 = formula.get(i); + Integer quest2 = formula.get(i + 3); + // 计算权重 + weight += formula.get(i + 3); + + // 后端选项值 + JSONObject promote; + JSONObject moisturizing; + if (quest1 == 2) {// 全选时,对应 jsonArray 下标 0,1 + promote = jsonArray.get(0); + moisturizing = jsonArray.get(1); + customizationElectricFormulaVo.setFeelingType("Mix"); + } else if (quest1 == 0) {// 提拉时,对应 jsonArray 下标 2,3 + promote = jsonArray.get(2); + moisturizing = jsonArray.get(3); + customizationElectricFormulaVo.setFeelingType("Pulling"); + } else {// 滋润时,对应 jsonArray 下标 4,5 + promote = jsonArray.get(4); + moisturizing = jsonArray.get(5); + customizationElectricFormulaVo.setFeelingType("Moisturize"); + } + Double promoteForeheadGrade = Double.valueOf((Integer) promote.get("L" + quest2)); + Double moisturizingForeheadGrade = Double.valueOf((Integer) moisturizing.get("L" + quest2)); + customizationElectricFormulaVo.setPullingSeconds(promoteForeheadGrade); + customizationElectricFormulaVo.setMoisturizeSeconds(moisturizingForeheadGrade); + list.add(customizationElectricFormulaVo); + } + } + } + + // 定制电流护理频率 + List> electricFrequency = new ArrayList<>(); + if (wxModeWe200Relation != null) { + String customizationElectricFrequency = wxModeWe200Relation.getCustomizationElectricFrequency(); + if (StringUtils.isNotBlank(customizationElectricFrequency)) { + JSONObject obj = JSON.parseObject(customizationElectricFrequency); + List jsonArray = JSON.parseArray(obj.get("nursingFrequencyTableData").toString(), JSONObject.class); + for (JSONObject jsonObject : jsonArray) { + Integer isSelect = (Integer) jsonObject.get("select"); + // 选中 + Integer value = (Integer) jsonObject.get("weight" + weight); + Map integerMap = new HashMap<>(); + integerMap.put(value, isSelect); + electricFrequency.add(integerMap); + } + } + } + result.put("partitionConfigArray", list); + result.put("electricFrequency", electricFrequency); + return result; + } + } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java index ca89fa4..036f128 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxNursingLogServiceImpl.java @@ -1,33 +1,39 @@ package com.flossom.miniProgram.service.impl; -import java.time.*; -import java.time.temporal.TemporalAdjusters; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.req.WxNursingLogReq; import com.flossom.common.core.domain.ret.WxNursingStatisticsRet; +import com.flossom.common.core.domain.shuyun.ShuYunUserTagReq; +import com.flossom.common.core.enums.BindingStatusEnums; import com.flossom.common.core.enums.Status; import com.flossom.common.core.exception.ServiceException; -import com.flossom.common.core.mapper.WxInstrumentMapper; -import com.flossom.common.core.mapper.WxModeMapper; -import com.flossom.common.core.mapper.WxNursingLogMapper; +import com.flossom.common.core.mapper.*; +import com.flossom.common.core.utils.CollectionUtils; import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.security.utils.DictUtils; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.InstrumentTag; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; import com.flossom.miniProgram.service.IWxNursingLogService; +import org.apache.commons.lang3.time.DateFormatUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.*; +import java.time.temporal.TemporalAdjusters; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.IntStream; /** * 用户护理日志Service业务层处理 @@ -49,6 +55,15 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { @Autowired private WxModeMapper wxModeMapper; + @Autowired + private WxUserInstrumentMapper wxUserInstrumentMapper; + + @Autowired + private WxInstrumentSerialMapper wxInstrumentSerialMapper; + + @Autowired + private ShuYunConfig shuYunConfig; + @Override public WxNursingStatisticsRet statistics(Long instrumentId) { // 排序:最新的护理记录在最上方;图片由后台模式管理-模式封面图片进行配置; @@ -110,12 +125,23 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { // 由于每个模式的护理报告页都不同,加个字段控制页面跳转 // 通过字典的排序值来设定:0(默认列表页),其他数值就是 字典标签 - List fr200ModeList = DictUtils.getDictCache("instrument_model_type_fr200"); if (StringUtils.equals(wxInstrument.getModel(), "FR200")) { - for (SysDictData sysDictData : fr200ModeList) { - if (StringUtils.equals(sysDictData.getDictValue(), wxMode.getModeType())) { - nursingLog.setJumpType(sysDictData.getDictSort().intValue()); - } + List fr200ModeList = DictUtils.getDictCache("instrument_model_type_fr200"); + Map sysDictDataMap = fr200ModeList.stream().collect(Collectors.toMap(SysDictData::getDictValue, Function.identity(), (v1, v2) -> v1)); + SysDictData value = sysDictDataMap.get(wxMode.getModeType()); + Optional.ofNullable(value).ifPresent(item -> { + nursingLog.setJumpType(item.getDictSort().intValue()); + }); + + // 模式类型 + List fr200ModeClassList = DictUtils.getDictCache("instrument_model_class_fr200"); + Map sysDictTypeMap = fr200ModeClassList.stream().collect(Collectors.toMap(SysDictData::getDictValue, Function.identity(), (v1, v2) -> v1)); + if (Objects.nonNull(wxMode.getModeClass())) { + SysDictData sysDictData = sysDictTypeMap.get(wxMode.getModeClass()+""); + Optional.ofNullable(sysDictData).ifPresent(item -> { + nursingLog.setDictTypeName(item.getDictLabel()); + nursingLog.setDictTypeId(Long.parseLong(item.getDictValue())); + }); } } else { //其他仪器类型,暂时都是跳转默认页面 @@ -284,13 +310,17 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { */ @Override public Long insertWxNursingLog(WxNursingLogReq wxNursingLogReq) { + Integer energyValue = wxNursingLogReq.getEnergyValue(); + List gearPositionList = wxNursingLogReq.getGearPositionList(); /* 查询 同一仪器,同一模式 下,是否有相同的记录,如果有合并护理时间 */ WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(wxNursingLogReq.getInstrumentId()); if (wxInstrument == null) { throw new ServiceException("保存失败"); } + Long userId = SecurityUtils.getLoginUser().getWxUserMember().getId(); + String nickname = SecurityUtils.getLoginUser().getWxUserMember().getNickname(); WxNursingLog queryNursingLog = new WxNursingLog(); - queryNursingLog.setUserId(SecurityUtils.getLoginUser().getWxUserMember().getId()); + queryNursingLog.setUserId(userId); queryNursingLog.setInstrumentId(wxNursingLogReq.getInstrumentId()); queryNursingLog.setModeId(wxNursingLogReq.getModeId()); LocalDateTime now = LocalDateTime.now(); @@ -298,7 +328,8 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { queryNursingLog.getParams().put("endTime", LocalDateTime.of(now.toLocalDate(), LocalTime.MAX)); List wxNursingLogList = wxNursingLogMapper.selectWxNursingLogList(queryNursingLog); - if (wxNursingLogList != null && wxNursingLogList.size() > 0) { + // 非水分测试需要合并测试 + if (!Objects.equals(wxNursingLogReq.getWaterTest(), Boolean.TRUE) && wxNursingLogList != null && wxNursingLogList.size() > 0) { // 存在,修改 WxNursingLog updateNursingLog = new WxNursingLog(); WxNursingLog wxNursingLog = wxNursingLogList.get(0); @@ -322,6 +353,12 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { } } } + + // 处理能量总值 + if (Objects.nonNull(energyValue)) { + Optional.ofNullable(updateNursingLog.getEnergyValue()).ifPresent(item -> item += energyValue); + } + /** * 区别点:FR200 能量图谱需要累加,超过丢弃,水分测试直接最新的一条 */ @@ -395,15 +432,30 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { } updateNursingLog.setId(wxNursingLog.getId()); - updateNursingLog.setUpdateBy(SecurityUtils.getLoginUser().getWxUserMember().getNickname()); + updateNursingLog.setUpdateBy(nickname); updateNursingLog.setUpdateTime(DateUtils.getNowDate()); + // 构造护理记录档位参数 + constructionGrade(updateNursingLog, gearPositionList); wxNursingLogMapper.updateWxNursingLog(updateNursingLog); return wxNursingLog.getId(); } else { // 不存在,新增 WxNursingLog wxNursingLog = new WxNursingLog(); BeanUtils.copyProperties(wxNursingLogReq, wxNursingLog); - wxNursingLog.setUserId(SecurityUtils.getLoginUser().getWxUserMember().getId()); + wxNursingLog.setUserId(userId); + // 处理水分测试数据 + if (Objects.equals(wxNursingLogReq.getWaterTest(), Boolean.TRUE)) { + JSONObject jsonObject = JSONObject.parseObject(wxNursingLogReq.getNursingData()); + JSONArray gearDataJsonList = jsonObject.getJSONArray("GearData"); + List gearDataList = gearDataJsonList.stream().map(obj -> { + JSONObject gearDataJson = (JSONObject) obj; + return (Integer) gearDataJson.get("schedule"); + }).collect(Collectors.toList()); + wxNursingLog.setWaterDataOne(gearDataList.get(0)); + wxNursingLog.setWaterDataTwo(gearDataList.get(1)); + wxNursingLog.setWaterDataThree(gearDataList.get(2)); + } + // 非IOT仪器没有护理时间 LocalTime nursingTime = wxInstrument.getNursingTime(); if (nursingTime != null) { @@ -417,34 +469,26 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { Boolean online = true; List nursingOfflineInstrumentModelDict = DictUtils.getDictCache("nursing_offline_instrument_model"); if (nursingOfflineInstrumentModelDict != null && nursingOfflineInstrumentModelDict.size() > 0) { - for (SysDictData sysDictData : nursingOfflineInstrumentModelDict) { - if (StringUtils.equals(sysDictData.getDictType(), wxInstrument.getModel())) { - List nursingOfflineInstrumentModeDict = DictUtils.getDictCache("nursing_offline_instrument_mode"); - if (nursingOfflineInstrumentModeDict != null && nursingOfflineInstrumentModeDict.size() > 0) { - for (SysDictData dictData : nursingOfflineInstrumentModeDict) { - if (StringUtils.equals(dictData.getDictType(), wxNursingLogReq.getModeName())) { - // 离线 - online = false; - wxNursingLog.setOnline(2L); - } - } - } - } + boolean onLineFlag = nursingOfflineInstrumentModelDict.stream().anyMatch(item -> StringUtils.equals(item.getDictType(), wxInstrument.getModel())); + if (onLineFlag) { + // 离线 + online = false; + wxNursingLog.setOnline(2L); } } if (online) { // 在线 wxNursingLog.setOnline(1L); } - wxNursingLog.setCreateBy(SecurityUtils.getLoginUser().getWxUserMember().getNickname()); + wxNursingLog.setCreateBy(nickname); wxNursingLog.setCreateTime(DateUtils.getNowDate()); - wxNursingLog.setUpdateBy(SecurityUtils.getLoginUser().getWxUserMember().getNickname()); + wxNursingLog.setUpdateBy(nickname); wxNursingLog.setUpdateTime(DateUtils.getNowDate()); wxNursingLog.setStatus(Status.OK.getCode().longValue()); /* 护理天数计算 */ // 1、获取最近一条护理记录 - WxNursingLog lastNursingLog = wxNursingLogMapper.selectLastNursingLogByUserId(SecurityUtils.getLoginUser().getWxUserMember().getId(), wxNursingLog.getInstrumentId()); + WxNursingLog lastNursingLog = wxNursingLogMapper.selectLastNursingLogByUserId(userId, wxNursingLog.getInstrumentId()); if (lastNursingLog != null) { // 2、有最近的一条护理记录 // 获取护理时间和当前时间,转为 localDateTime @@ -500,9 +544,82 @@ public class WxNursingLogServiceImpl implements IWxNursingLogService { wxNursingLog.setNursingDaysMonth(1); wxNursingLog.setNursingDaysWeek(1); } + wxNursingLog.setEnergyValue(energyValue); + // 构造护理记录档位参数 + constructionGrade(wxNursingLog, gearPositionList); wxNursingLogMapper.insertWxNursingLog(wxNursingLog); + /** + * TODO: 添加操作日志 + */ return wxNursingLog.getId(); } } + /** + * 构造护理记录档位参数 + * @param wxNursingLog 护理记录 + * @param gearPositionList 档位参数列表 + * @return 护理记录数据 + */ + private void constructionGrade(WxNursingLog wxNursingLog, List gearPositionList) { + if (CollectionUtils.isEmpty(gearPositionList)) { + return; + } + // 处理档位 + Map map = IntStream.range(0, gearPositionList.size()).boxed() + .collect(Collectors.toMap(index -> index, gearPositionList::get)); + + wxNursingLog.setGearPositionOne(map.get(0)); + wxNursingLog.setGearPositionTwo(map.get(1)); + wxNursingLog.setGearPositionThree(map.get(2)); + wxNursingLog.setGearPositionFour(map.get(3)); + } + + @Override + @Transactional + public void syncNursingLogToShuYun(Long nursingLogId) { + WxNursingLog wxNursingLog = wxNursingLogMapper.selectWxNursingLogById(nursingLogId); + WxUserInstrument query = new WxUserInstrument(); + query.setUserId(wxNursingLog.getUserId()); + query.setInstrumentId(wxNursingLog.getInstrumentId()); + query.setBindingStatus(BindingStatusEnums.BINDED.getCode()); + List wxUserInstrumentList = wxUserInstrumentMapper.selectWxUserInstrumentList(query); + WxUserInstrument wxUserInstrument = null; + if (wxUserInstrumentList != null && wxUserInstrumentList.size() > 0) { + wxUserInstrument = wxUserInstrumentList.get(0); + } + if (wxNursingLog != null && wxUserInstrument != null) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:同步绑定仪器信息 (已完成) + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + List tagsMark = new ArrayList<>(); + InstrumentTag instrumentTag = shuYunConfig.getFixedTagInfo().getInstrumentTag(); + // 累计护理天数 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentNursingDays(), Arrays.asList(wxNursingLog.getNursingDays()), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + // 本月护理天数 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentNursingDaysInMonth(), Arrays.asList(wxNursingLog.getNursingDaysMonth()), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + // 本月护理天数 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentNursingDaysInWeek(), Arrays.asList(wxNursingLog.getNursingDaysWeek()), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + // 绑定日期 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentNursingDaysInLast(), Arrays.asList(DateFormatUtils.format(wxNursingLog.getUpdateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } + } + } + } diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserIntegralServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserIntegralServiceImpl.java index c545cd5..838f73c 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserIntegralServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserIntegralServiceImpl.java @@ -13,9 +13,9 @@ import com.flossom.common.core.mapper.WxUserIntegralLogMapper; import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.web.page.TableDataInfo; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; import com.flossom.miniProgram.service.IWxUserIntegralService; -import com.flossom.miniProgram.utils.shuyun.ShuYunApiUtils; -import com.flossom.miniProgram.utils.shuyun.ShuYunConfig; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java index bfa3a5b..17fa400 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/service/impl/WxUserMemberServiceImpl.java @@ -9,6 +9,7 @@ import com.flossom.common.core.domain.R; import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.shuyun.ShuYunMember; import com.flossom.common.core.domain.shuyun.ShuYunPointChange; +import com.flossom.common.core.domain.shuyun.ShuYunUserTagReq; import com.flossom.common.core.enums.IntegralChangeTypeEnum; import com.flossom.common.core.enums.MessageTypeEnum; import com.flossom.common.core.enums.ShuYunPointSourceEnum; @@ -20,11 +21,12 @@ import com.flossom.common.core.utils.StringUtils; import com.flossom.common.core.utils.uuid.IdUtils; import com.flossom.common.redis.service.RedisService; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.MemberInfoTag; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; import com.flossom.miniProgram.domain.vo.*; import com.flossom.miniProgram.service.IWxUserMemberService; import com.flossom.miniProgram.utils.MiniProgramUtils; -import com.flossom.miniProgram.utils.shuyun.ShuYunApiUtils; -import com.flossom.miniProgram.utils.shuyun.ShuYunConfig; import com.flossom.system.api.RemoteAuthService; import com.flossom.system.api.model.LoginUser; import org.slf4j.Logger; @@ -37,6 +39,8 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -188,14 +192,31 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { } /** - * TODO: 1、新用户注册,需要对接数云,将用户信息传给数云(已完成,待添加操作日志) + * TODO: 添加数云操作日志(未完成) */ - WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(SecurityUtils.getLoginUser().getWxUserMember().getId()); - ShuYunApiUtils.registerMember(new ShuYunMember(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), - "用户" + wxUserMember.getId(), wxUserMember.getMobile(), DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, wxUserMember.getCreateTime()))); return wxCode2PhoneRet.getPhoneInfo().getPhoneNumber(); } + @Override + @Transactional + public void syncMemberInfoToShuYun() { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + /** + * TODO: 1、新用户注册,需要对接数云,将用户信息传给数云(已完成,) + */ + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(SecurityUtils.getLoginUser().getWxUserMember().getId()); + ShuYunApiUtils.registerMember(new ShuYunMember(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), + "用户" + wxUserMember.getId(), wxUserMember.getMobile(), DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, wxUserMember.getCreateTime()))); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } + } + @Override @Transactional public LoginUserVo updateUser(UserMemberUpdateVo userMemberUpdateVo) { @@ -249,26 +270,91 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { // 首次完善用户信息,增加积分,刷新了缓存 LoginUserVo loginUserVo = refreshWxUserInfo(); - // TODO: 2、更新用户信息,同步到数云 (已完成,未保存记录) - // 1、完善用户信息 - ShuYunMember member = new ShuYunMember(); - member.setId(wxUserMember.getUnionid()); - member.setPlatCode(shuYunConfig.getPlatCode()); - member.setShopId(shuYunConfig.getShopId()); - member.setName(userMemberUpdateVo.getNickname()); - member.setBirthday(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, userMemberUpdateVo.getBirthday())); - ShuYunApiUtils.modifyMember(member); + // 添加首次完善用户信息积分奖励 if (isCompleteInformation) { + loginUserVo.setCompleteInformation(isCompleteInformation); + loginUserVo.setCompleteInformationIntegral(integralGlobal.getIntegral().intValue()); loginUserVo.setIntegralText("您已完善个人信息,获得" + integralGlobal.getIntegral().intValue() + "积分"); - // TODO: 3、首次完善,通知数云增加积分 (已完成,未保存记录) - // 2、完善会员信息增加积分 - ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), - IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), integralGlobal.getIntegral().intValue(), + } + return loginUserVo; + } + + /** + * 将用户更新信息同步到数云 + */ + @Override + @Transactional + public void syncUpdateMemberToShuYun() { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO: 更新用户信息,同步到数云 (已完成) + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + ShuYunMember member = new ShuYunMember(); + member.setId(wxUserMember.getUnionid()); + member.setPlatCode(shuYunConfig.getPlatCode()); + member.setShopId(shuYunConfig.getShopId()); + member.setName(wxUserMember.getNickname()); + member.setBirthday(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, wxUserMember.getBirthday())); + ShuYunApiUtils.modifyMember(member); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } + } + + /** + * 用户首次完善用户信息积分同步 + */ + @Override + public void syncIntegralToShuYun(LoginUserVo loginUserVo) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:首次完善,通知数云增加积分 (已完成) + ShuYunPointChange shuYunPointChange = new ShuYunPointChange(SecurityUtils.getLoginUser().getWxUserMember().getUnionid(), + shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), IdUtils.generateSequence(), + ShuYunPointSourceEnum.OTHER.getSource(), loginUserVo.getCompleteInformationIntegral(), LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), IntegralChangTextConstants.COMPLETE_INFORMATION); ShuYunApiUtils.pointChange(shuYunPointChange); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } + } + + /** + * 同步用户地区到数云 + */ + @Override + public void syncMemberAreaToShuYun() { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:首次完善,通知数云增加积分 (已完成) + WxUserMember wxUserMember = SecurityUtils.getLoginUser().getWxUserMember(); + List tagsMark = new ArrayList<>(); + MemberInfoTag memberInfoTag = shuYunConfig.getFixedTagInfo().getMemberInfoTag(); + tagsMark.add(new ShuYunUserTagReq<>( + memberInfoTag.getMemberProvinceTagId(), Arrays.asList(wxUserMember.getProvince()), + memberInfoTag.getMemberInfoTagId(), wxUserMember.getUnionid())); + tagsMark.add(new ShuYunUserTagReq<>( + memberInfoTag.getMemberCityTagId(), Arrays.asList(wxUserMember.getCity()), + memberInfoTag.getMemberInfoTagId(), wxUserMember.getUnionid())); + tagsMark.add(new ShuYunUserTagReq<>(memberInfoTag.getMemberAreaTagId(), Arrays.asList(wxUserMember.getArea()), + memberInfoTag.getMemberInfoTagId(), wxUserMember.getUnionid())); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); } - return loginUserVo; } /** @@ -293,13 +379,26 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { BeanUtils.copyProperties(wxUserMember, loginUserVo); loginUserVo.setToken(null); loginUserVo.setIntegralText(null); - // TODO:调用数云接口获取最新的积分值(已完成,未保存操作记录) if (wxUserMember.getUserType() != null && wxUserMember.getUserType() == 1) { - ShuYunMember shuYunMember = ShuYunApiUtils.queryMember(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId()); - loginUserVo.setCredit(Integer.valueOf(shuYunMember.getPoint())); - // TODO: 调用数云接口获取即将过期的积分值(已完成,未保存操作记录) - Integer expireCredit = ShuYunApiUtils.pointWillDueSearch(wxUserMember.getUnionid()); - loginUserVo.setExpireCredit(expireCredit); + // TODO: 调用数云接口获取最新的积分值(已完成) + try { + ShuYunMember shuYunMember = ShuYunApiUtils.queryMember(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId()); + loginUserVo.setCredit(Integer.valueOf(shuYunMember.getPoint())); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } finally { + // 请求失败默认0 + loginUserVo.setCredit(0); + } + try { + // TODO: 调用数云接口获取即将过期的积分值(已完成) + loginUserVo.setExpireCredit(ShuYunApiUtils.pointWillDueSearch(wxUserMember.getUnionid())); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } finally { + // 请求失败默认0 + loginUserVo.setExpireCredit(0); + } } // 刷新缓存信息 diff --git a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/utils/MiniProgramUtils.java b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/utils/MiniProgramUtils.java index 5411824..977c230 100644 --- a/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/utils/MiniProgramUtils.java +++ b/flossom-modules/flossom-mini-program/src/main/java/com/flossom/miniProgram/utils/MiniProgramUtils.java @@ -5,6 +5,7 @@ import com.flossom.common.core.constant.CacheConstants; import com.flossom.common.core.domain.entity.WxParameterSetting; import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.mapper.WxParameterSettingMapper; +import com.flossom.common.core.utils.HttpClientUtils; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.redis.service.RedisService; import com.flossom.miniProgram.config.properties.WxConfig; diff --git a/flossom-modules/flossom-system/pom.xml b/flossom-modules/flossom-system/pom.xml index 9910b41..368ba07 100644 --- a/flossom-modules/flossom-system/pom.xml +++ b/flossom-modules/flossom-system/pom.xml @@ -78,6 +78,7 @@ flossom-common-swagger + junit junit @@ -89,6 +90,7 @@ test + com.google.zxing core @@ -99,15 +101,6 @@ javase 3.5.1 - - - - com.shuyun.open - open-platform-sdk - 1.0.1 - system - ${project.basedir}/src/main/resources/lib/open-platform-sdk-1.0.1.jar - diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/FlossomSystemApplication.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/FlossomSystemApplication.java index 6c71fb1..141130d 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/FlossomSystemApplication.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/FlossomSystemApplication.java @@ -1,5 +1,6 @@ package com.flossom.system; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.flossom.common.security.annotation.EnableCustomConfig; diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunController.java index 52e09e2..25ad264 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/ShuYunController.java @@ -7,8 +7,8 @@ import com.flossom.common.core.domain.shuyun.AccessToken; import com.flossom.common.core.domain.shuyun.ShuYunTagCreateCallbackReq; import com.flossom.common.core.domain.shuyun.ShuYunUserTagCallbackReq; import com.flossom.common.redis.service.RedisService; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; import com.flossom.system.service.IShuYunService; -import com.flossom.system.utils.shuyun.ShuYunConfig; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxClockLogController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxClockLogController.java index 3a4d3b9..62b4de3 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxClockLogController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxClockLogController.java @@ -113,7 +113,7 @@ public class WxClockLogController extends BaseController { List list = wxClockLogService.selectWxClockLogList(userClockLogReq, true); if (list != null && list.size() > 0) { List collect = list.stream().map(wxMemberClockLog -> wxMemberClockLog.getUserId().intValue()).collect(Collectors.toList()); - wxUserMemberService.batchAddMiniProgramTag(tagIdList, collect); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchAddMiniProgramTag(tagIdList, collect, true)); } return R.ok(); } @@ -130,7 +130,7 @@ public class WxClockLogController extends BaseController { List list = wxClockLogService.selectWxClockLogList(userClockLogReq, true); if (list != null && list.size() > 0) { List collect = list.stream().map(wxMemberClockLog -> wxMemberClockLog.getUserId().intValue()).collect(Collectors.toList()); - wxUserMemberService.batchDelMiniProgramTag(tagIdList, collect); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchDelMiniProgramTag(tagIdList, collect, true)); } return R.ok(); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxFindCarouselController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxFindCarouselController.java new file mode 100644 index 0000000..3bd88da --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxFindCarouselController.java @@ -0,0 +1,92 @@ +package com.flossom.system.controller; + +import com.flossom.common.core.domain.entity.WxFindCarousel; +import com.flossom.common.core.utils.poi.ExcelUtil; +import com.flossom.common.core.web.controller.BaseController; +import com.flossom.common.core.web.domain.AjaxResult; +import com.flossom.common.core.web.page.TableDataInfo; +import com.flossom.common.log.annotation.Log; +import com.flossom.common.log.enums.BusinessType; +import com.flossom.common.security.annotation.RequiresPermissions; +import com.flossom.system.service.IWxFindCarouselService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.List; + +/** + * 发现轮播图Controller + * + * @author flossom + * @date 2024-04-10 + */ +@RestController +@RequestMapping("/carousel") +public class WxFindCarouselController extends BaseController { + @Autowired + private IWxFindCarouselService wxFindCarouselService; + + /** + * 查询发现轮播图列表 + */ + @RequiresPermissions("system:carousel:list") + @GetMapping("/list") + public TableDataInfo list(WxFindCarousel wxFindCarousel) { + startPage(); + List list = wxFindCarouselService.selectWxFindCarouselList(wxFindCarousel); + return getDataTable(list); + } + + /** + * 导出发现轮播图列表 + */ + @RequiresPermissions("system:carousel:export") + @Log(title = "发现轮播图", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WxFindCarousel wxFindCarousel) { + List list = wxFindCarouselService.selectWxFindCarouselList(wxFindCarousel); + ExcelUtil util = new ExcelUtil<>(WxFindCarousel.class); + util.exportExcel(response, list, "发现轮播图数据"); + } + + /** + * 获取发现轮播图详细信息 + */ + @RequiresPermissions("system:carousel:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(wxFindCarouselService.selectWxFindCarouselById(id)); + } + + /** + * 新增发现轮播图 + */ + @RequiresPermissions("system:carousel:add") + @Log(title = "新增发现轮播图", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody @Valid WxFindCarousel wxFindCarousel) { + return toAjax(wxFindCarouselService.insertWxFindCarousel(wxFindCarousel)); + } + + /** + * 修改发现轮播图 + */ + @RequiresPermissions("system:carousel:edit") + @Log(title = "修改发现轮播图", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WxFindCarousel wxFindCarousel) { + return toAjax(wxFindCarouselService.updateWxFindCarousel(wxFindCarousel)); + } + + /** + * 删除发现轮播图 + */ + @RequiresPermissions("system:carousel:remove") + @Log(title = "删除发现轮播图", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(wxFindCarouselService.deleteWxFindCarouselByIds(ids)); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxFindProductStrategyController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxFindProductStrategyController.java new file mode 100644 index 0000000..73493b5 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxFindProductStrategyController.java @@ -0,0 +1,92 @@ +package com.flossom.system.controller; + +import com.flossom.common.core.domain.entity.WxFindProductStrategy; +import com.flossom.common.core.utils.poi.ExcelUtil; +import com.flossom.common.core.web.controller.BaseController; +import com.flossom.common.core.web.domain.AjaxResult; +import com.flossom.common.core.web.page.TableDataInfo; +import com.flossom.common.log.annotation.Log; +import com.flossom.common.log.enums.BusinessType; +import com.flossom.common.security.annotation.RequiresPermissions; +import com.flossom.system.service.IWxFindProductStrategyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.util.List; + +/** + * 产品攻略Controller + * + * @author flossom + * @date 2024-04-10 + */ +@RestController +@RequestMapping("/strategy") +public class WxFindProductStrategyController extends BaseController { + @Autowired + private IWxFindProductStrategyService wxFindProductStrategyService; + + /** + * 查询产品攻略列表 + */ + @RequiresPermissions("system:strategy:list") + @GetMapping("/list") + public TableDataInfo list(WxFindProductStrategy wxFindProductStrategy) { + startPage(); + List list = wxFindProductStrategyService.selectWxFindProductStrategyList(wxFindProductStrategy); + return getDataTable(list); + } + + /** + * 导出产品攻略列表 + */ + @RequiresPermissions("system:strategy:export") + @Log(title = "导出产品攻略", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WxFindProductStrategy wxFindProductStrategy) { + List list = wxFindProductStrategyService.selectWxFindProductStrategyList(wxFindProductStrategy); + ExcelUtil util = new ExcelUtil<>(WxFindProductStrategy.class); + util.exportExcel(response, list, "产品攻略数据"); + } + + /** + * 获取产品攻略详细信息 + */ + @RequiresPermissions("system:strategy:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(wxFindProductStrategyService.selectWxFindProductStrategyById(id)); + } + + /** + * 新增产品攻略 + */ + @RequiresPermissions("system:strategy:add") + @Log(title = "新增产品攻略", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody @Valid WxFindProductStrategy wxFindProductStrategy) { + return toAjax(wxFindProductStrategyService.insertWxFindProductStrategy(wxFindProductStrategy)); + } + + /** + * 修改产品攻略 + */ + @RequiresPermissions("system:strategy:edit") + @Log(title = "修改产品攻略", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WxFindProductStrategy wxFindProductStrategy) { + return toAjax(wxFindProductStrategyService.updateWxFindProductStrategy(wxFindProductStrategy)); + } + + /** + * 删除产品攻略 + */ + @RequiresPermissions("system:strategy:remove") + @Log(title = "删除产品攻略", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(wxFindProductStrategyService.deleteWxFindProductStrategyByIds(ids)); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxNursingLogController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxNursingLogController.java index c78b259..74a1b4a 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxNursingLogController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxNursingLogController.java @@ -91,7 +91,7 @@ public class WxNursingLogController extends BaseController { List list = wxNursingLogService.selectWxNursingLogList(userNursingLogReq, false); if (list != null && list.size() > 0) { List collect = list.stream().map(wxNursingLog -> wxNursingLog.getUserId().intValue()).collect(Collectors.toList()); - wxUserMemberService.batchAddMiniProgramTag(tagIdList, collect); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchAddMiniProgramTag(tagIdList, collect, true)); } return R.ok(); } @@ -108,7 +108,7 @@ public class WxNursingLogController extends BaseController { List list = wxNursingLogService.selectWxNursingLogList(userNursingLogReq, false); if (list != null && list.size() > 0) { List collect = list.stream().map(wxNursingLog -> wxNursingLog.getUserId().intValue()).collect(Collectors.toList()); - wxUserMemberService.batchDelMiniProgramTag(tagIdList, collect); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchDelMiniProgramTag(tagIdList, collect, true)); } return R.ok(); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java index 7485b15..528427d 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserInstrumentController.java @@ -11,6 +11,7 @@ import com.flossom.common.core.domain.entity.WxUserInstrument; import com.flossom.common.core.domain.entity.WxUserMember; import com.flossom.common.core.domain.req.WxUserInstrumentExportVm; import com.flossom.common.core.domain.req.WxUserMemberVm; +import com.flossom.common.core.utils.StringUtils; import com.flossom.common.core.utils.poi.ExcelUtil; import com.flossom.common.core.web.controller.BaseController; import com.flossom.common.core.web.domain.AjaxResult; @@ -131,7 +132,10 @@ public class WxUserInstrumentController extends BaseController @PutMapping public AjaxResult edit(@RequestBody WxUserInstrument wxUserInstrument) { - return toAjax(wxUserInstrumentService.updateWxUserInstrument(wxUserInstrument)); + WxUserInstrument result = wxUserInstrumentService.updateWxUserInstrument(wxUserInstrument); + wxUserInstrumentService.syncUnBindingIntegralToShuYun(result); + wxUserInstrumentService.syncUnBindingInstrumentInfoToShuYun(result); + return toAjax(1); } /** @@ -153,6 +157,12 @@ public class WxUserInstrumentController extends BaseController public AjaxResult changeSerial(@RequestBody WxUserInstrument wxUserInstrument) { Map stringStringMap = wxUserInstrumentService.changeSerial(wxUserInstrument); + String userInstrumentId = stringStringMap.get("userInstrumentId"); + if(StringUtils.isNotBlank(userInstrumentId)) { + WxUserInstrument update = wxUserInstrumentService.selectWxUserInstrumentById(Long.valueOf(userInstrumentId)); + wxUserInstrumentService.syncUnBindingInstrumentInfoToShuYun(stringStringMap.get("userId"), stringStringMap.get("oldSerial"), update); + wxUserInstrumentService.syncInstrumentInfoToShuYun(update); + } return AjaxResult.success(stringStringMap); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java index 483d8eb..91a4ede 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserMemberController.java @@ -9,6 +9,8 @@ import com.flossom.common.core.domain.entity.WxUserTag; import com.flossom.common.core.domain.export.WxUserMemberExport; import com.flossom.common.core.domain.req.*; import com.flossom.common.core.domain.ret.WxUserMemberRet; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; +import com.flossom.common.core.domain.shuyun.ShuYunPointChange; import com.flossom.common.core.enums.IntegralChangeTypeEnum; import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.utils.poi.ExcelUtil; @@ -25,6 +27,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -136,8 +139,10 @@ public class WxUserMemberController extends BaseController { @RequiresPermissions("system:member:edit") @Log(title = "用户", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody WxUserMemberReq wxUserMember) { - return toAjax(wxUserMemberService.updateWxUserMember(wxUserMember)); + public AjaxResult edit(@RequestBody WxUserMemberReq wxUserMemberReq) { + ShuYunBatchTagOperation shuYunBatchTagOperation = wxUserMemberService.updateWxUserMember(wxUserMemberReq); + wxUserMemberService.syncShuYunUserTag(Arrays.asList(shuYunBatchTagOperation)); + return AjaxResult.success(); } /** @@ -168,7 +173,7 @@ public class WxUserMemberController extends BaseController { logger.error("参数有误"); throw new ServiceException("参数有误"); } - wxUserMemberService.batchAddMiniProgramTag(tagIdList, userIdList); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchAddMiniProgramTag(tagIdList, userIdList, true)); return R.ok(); } @@ -184,7 +189,7 @@ public class WxUserMemberController extends BaseController { List list = wxUserMemberService.selectWxUserMemberList(wxUserMemberVm); if (list != null && list.size() > 0) { List collect = list.stream().map(wxUserMember -> wxUserMember.getId().intValue()).collect(Collectors.toList()); - wxUserMemberService.batchAddMiniProgramTag(tagIdList, collect); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchAddMiniProgramTag(tagIdList, collect, true)); } return R.ok(); } @@ -200,7 +205,7 @@ public class WxUserMemberController extends BaseController { logger.error("参数有误"); throw new ServiceException("参数有误"); } - wxUserMemberService.batchDelMiniProgramTag(tagIdList, userIdList); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchDelMiniProgramTag(tagIdList, userIdList, true)); return R.ok(); } @@ -216,7 +221,7 @@ public class WxUserMemberController extends BaseController { List list = wxUserMemberService.selectWxUserMemberList(wxUserMemberVm); if (list != null && list.size() > 0) { List collect = list.stream().map(wxUserMember -> wxUserMember.getId().intValue()).collect(Collectors.toList()); - wxUserMemberService.batchDelMiniProgramTag(tagIdList, collect); + wxUserMemberService.syncShuYunUserTag(wxUserMemberService.batchDelMiniProgramTag(tagIdList, collect, true)); } return R.ok(); } @@ -231,9 +236,7 @@ public class WxUserMemberController extends BaseController { logger.error("积分操作类型选择有误"); throw new ServiceException("积分操作类型选择有误"); } - for (Long userId : userIdList) { - wxUserMemberService.changIntegral(wxUserIntegralVm, userId); - } + wxUserMemberService.syncShuYunIntegral(wxUserMemberService.changIntegral(wxUserIntegralVm, userIdList)); return R.ok(); } @@ -248,9 +251,8 @@ public class WxUserMemberController extends BaseController { } List list = wxUserMemberService.selectWxUserMemberList(operateReq.getWxUserMemberVm()); if (list != null && list.size() > 0) { - for (WxUserMember wxUserMember : list) { - wxUserMemberService.changIntegral(operateReq.getWxUserIntegralVm(), wxUserMember.getId()); - } + List userIdList = list.stream().map(WxUserMember::getId).collect(Collectors.toList()); + wxUserMemberService.syncShuYunIntegral(wxUserMemberService.changIntegral(operateReq.getWxUserIntegralVm(), userIdList)); } return R.ok(); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java index 0f1fd35..c8ff143 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/controller/WxUserScriptLogController.java @@ -8,6 +8,7 @@ import com.flossom.common.core.domain.entity.WxUserScriptLog; import com.flossom.common.core.domain.req.AllSendScriptOperateReq; import com.flossom.common.core.domain.req.WxUserMemberVm; import com.flossom.common.core.domain.req.WxUserScriptReq; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.core.utils.poi.ExcelUtil; @@ -174,7 +175,7 @@ public class WxUserScriptLogController extends BaseController { } } } - wxUserScriptLogService.sendScript(wxUserScriptReq); + wxUserMemberService.syncShuYunUserTag(wxUserScriptLogService.sendScript(wxUserScriptReq)); return R.ok(); } @@ -253,7 +254,7 @@ public class WxUserScriptLogController extends BaseController { if (list != null && list.size() > 0) { List collect = list.stream().map(wxUserMember -> wxUserMember.getId()).collect(Collectors.toList()); wxUserScriptReq.setUserIdList(collect); - wxUserScriptLogService.sendScript(wxUserScriptReq); + wxUserMemberService.syncShuYunUserTag(wxUserScriptLogService.sendScript(wxUserScriptReq)); } return R.ok(); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IBatchOperationService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IBatchOperationService.java new file mode 100644 index 0000000..391afcf --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IBatchOperationService.java @@ -0,0 +1,15 @@ +package com.flossom.system.service; + +import com.flossom.common.core.domain.shuyun.ShuYunBatchIntegralOperation; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; +import com.flossom.common.core.domain.shuyun.ShuYunPointChange; + +import java.util.List; + +public interface IBatchOperationService { + + public void syncShuYunUserTag(ShuYunBatchTagOperation shuYunBatchTagOperation); + + public void syncShuYunIntegral(ShuYunPointChange shuYunPointChange); + +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/ISiteInfoService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/ISiteInfoService.java index a64d6d0..85b6f1f 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/ISiteInfoService.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/ISiteInfoService.java @@ -42,7 +42,7 @@ public interface ISiteInfoService * @param siteInfo 站点管理 * @return 结果 */ - public int updateSiteInfo(SiteInfo siteInfo); + public Boolean updateSiteInfo(SiteInfo siteInfo); /** * 批量删除站点管理 diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxFindCarouselService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxFindCarouselService.java new file mode 100644 index 0000000..602b601 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxFindCarouselService.java @@ -0,0 +1,61 @@ +package com.flossom.system.service; + +import com.flossom.common.core.domain.entity.WxFindCarousel; + +import java.util.List; + +/** + * 发现轮播图Service接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface IWxFindCarouselService { + /** + * 查询发现轮播图 + * + * @param id 发现轮播图主键 + * @return 发现轮播图 + */ + WxFindCarousel selectWxFindCarouselById(Long id); + + /** + * 查询发现轮播图列表 + * + * @param wxFindCarousel 发现轮播图 + * @return 发现轮播图集合 + */ + List selectWxFindCarouselList(WxFindCarousel wxFindCarousel); + + /** + * 新增发现轮播图 + * + * @param wxFindCarousel 发现轮播图 + * @return 结果 + */ + int insertWxFindCarousel(WxFindCarousel wxFindCarousel); + + /** + * 修改发现轮播图 + * + * @param wxFindCarousel 发现轮播图 + * @return 结果 + */ + Boolean updateWxFindCarousel(WxFindCarousel wxFindCarousel); + + /** + * 批量删除发现轮播图 + * + * @param ids 需要删除的发现轮播图主键集合 + * @return 结果 + */ + int deleteWxFindCarouselByIds(Long[] ids); + + /** + * 删除发现轮播图信息 + * + * @param id 发现轮播图主键 + * @return 结果 + */ + int deleteWxFindCarouselById(Long id); +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxFindProductStrategyService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxFindProductStrategyService.java new file mode 100644 index 0000000..c6b5fdc --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxFindProductStrategyService.java @@ -0,0 +1,61 @@ +package com.flossom.system.service; + +import com.flossom.common.core.domain.entity.WxFindProductStrategy; + +import java.util.List; + +/** + * 产品攻略Service接口 + * + * @author flossom + * @date 2024-04-10 + */ +public interface IWxFindProductStrategyService { + /** + * 查询产品攻略 + * + * @param id 产品攻略主键 + * @return 产品攻略 + */ + WxFindProductStrategy selectWxFindProductStrategyById(Long id); + + /** + * 查询产品攻略列表 + * + * @param wxFindProductStrategy 产品攻略 + * @return 产品攻略集合 + */ + List selectWxFindProductStrategyList(WxFindProductStrategy wxFindProductStrategy); + + /** + * 新增产品攻略 + * + * @param wxFindProductStrategy 产品攻略 + * @return 结果 + */ + int insertWxFindProductStrategy(WxFindProductStrategy wxFindProductStrategy); + + /** + * 修改产品攻略 + * + * @param wxFindProductStrategy 产品攻略 + * @return 结果 + */ + Boolean updateWxFindProductStrategy(WxFindProductStrategy wxFindProductStrategy); + + /** + * 批量删除产品攻略 + * + * @param ids 需要删除的产品攻略主键集合 + * @return 结果 + */ + int deleteWxFindProductStrategyByIds(Long[] ids); + + /** + * 删除产品攻略信息 + * + * @param id 产品攻略主键 + * @return 结果 + */ + int deleteWxFindProductStrategyById(Long id); +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java index c84a084..7e1f2c3 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserInstrumentService.java @@ -44,7 +44,7 @@ public interface IWxUserInstrumentService * @param wxUserInstrument 用户仪器绑定 * @return 结果 */ - public int updateWxUserInstrument(WxUserInstrument wxUserInstrument); + public WxUserInstrument updateWxUserInstrument(WxUserInstrument wxUserInstrument); /** * 批量删除用户仪器绑定 @@ -68,7 +68,7 @@ public interface IWxUserInstrumentService * @param wxUserInstrument 用户仪器绑定 * @return 结果 */ - public Map changeSerial(WxUserInstrument wxUserInstrument); + public Map changeSerial(WxUserInstrument wxUserInstrument); /** * 变革保修期限 @@ -85,4 +85,12 @@ public interface IWxUserInstrumentService * @return 结果 */ public List findUserInstrumentExportData(WxUserInstrument exportVm); + + public void syncUnBindingInstrumentInfoToShuYun(WxUserInstrument wxUserInstrument); + + public void syncUnBindingIntegralToShuYun(WxUserInstrument wxUserInstrument); + + void syncUnBindingInstrumentInfoToShuYun(String userId, String oldSerial, WxUserInstrument wxUserInstrument); + + void syncInstrumentInfoToShuYun(WxUserInstrument update); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java index 58d1686..55f4141 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserMemberService.java @@ -6,6 +6,8 @@ import com.flossom.common.core.domain.req.WxUserIntegralVm; import com.flossom.common.core.domain.req.WxUserMemberReq; import com.flossom.common.core.domain.req.WxUserMemberVm; import com.flossom.common.core.domain.ret.WxUserMemberRet; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; +import com.flossom.common.core.domain.shuyun.ShuYunPointChange; import com.flossom.common.core.domain.vo.WxUserMemberVo; import java.util.List; @@ -69,7 +71,7 @@ IWxUserMemberService * @param wxUserMember 用户 * @return 结果 */ - public int updateWxUserMember(WxUserMemberReq wxUserMember); + public ShuYunBatchTagOperation updateWxUserMember(WxUserMemberReq wxUserMember); /** * 批量删除用户 @@ -89,11 +91,11 @@ IWxUserMemberService List selectUserCount(); - public void batchAddWecomTag(List tagIdList, List userIdList); + List batchAddWecomTag(List tagIdList, List userIdList, Boolean isWriteLog); - void batchAddMiniProgramTag(List tagId, List userIds); + List batchAddMiniProgramTag(List tagId, List userIds, Boolean isWriteLog); - void batchDelMiniProgramTag(List tagIdList, List userIdList); + List batchDelMiniProgramTag(List tagIdList, List userIdList, Boolean isWriteLog); void batchChangIntegral(WxUserIntegralVm wxUserIntegralVm, List userIdList); @@ -105,5 +107,9 @@ IWxUserMemberService List selectWxUserMemberByIdList(List userIdList); - void changIntegral(WxUserIntegralVm wxUserIntegralVm, Long userId); + List changIntegral(WxUserIntegralVm wxUserIntegralVm, List userIdList); + + void syncShuYunUserTag(List shuYunBatchTagOperationList); + + void syncShuYunIntegral(List shuYunPointChangeList); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserScriptLogService.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserScriptLogService.java index bb735c9..4d8de66 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserScriptLogService.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/IWxUserScriptLogService.java @@ -2,6 +2,7 @@ package com.flossom.system.service; import com.flossom.common.core.domain.entity.WxUserScriptLog; import com.flossom.common.core.domain.req.WxUserScriptReq; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; import java.util.List; @@ -60,5 +61,5 @@ public interface IWxUserScriptLogService { */ public int deleteWxUserScriptLogById(Long id); - void sendScript(WxUserScriptReq wxUserScriptReq); + List sendScript(WxUserScriptReq wxUserScriptReq); } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/BatchOperationServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/BatchOperationServiceImpl.java new file mode 100644 index 0000000..d68fafe --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/BatchOperationServiceImpl.java @@ -0,0 +1,71 @@ +package com.flossom.system.service.impl; + +import com.flossom.common.core.domain.entity.*; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; +import com.flossom.common.core.domain.shuyun.ShuYunPointChange; +import com.flossom.common.core.domain.shuyun.ShuYunUserTagReq; +import com.flossom.common.core.mapper.*; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.system.service.IBatchOperationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * 批量操作 Service业务层处理 + */ +@Service +public class BatchOperationServiceImpl implements IBatchOperationService { + + @Autowired + private SysTagMapper sysTagMapper; + + /** + * 需要通过日志记录操作,如果数据不一致,人工修复 + * + * 批量同步标签(小程序标签和外部标签) + */ + @Override + @Transactional + public void syncShuYunUserTag(ShuYunBatchTagOperation shuYunBatchTagOperation) { + // TODO: 1、每请求完一次,修改一次同步日志(未完成) + + /** + * TODO: 2、对接数赢:批量删除标签(已完成) + */ + if (shuYunBatchTagOperation.getNeedDelTagIdList() != null && shuYunBatchTagOperation.getNeedDelTagIdList().size() > 0) { + for (Integer delTagId : shuYunBatchTagOperation.getNeedDelTagIdList()) { + ShuYunApiUtils.deleteUserTag(shuYunBatchTagOperation.getUnionId(), delTagId); + } + } + + /** + * TODO: 3、对接数赢:批量添加标签(已完成) + */ + List shuYunUserTagList = new ArrayList<>(); + if (shuYunBatchTagOperation.getNeedAddTagIdList() != null && shuYunBatchTagOperation.getNeedAddTagIdList().size() > 0) { + for (Integer tagId : shuYunBatchTagOperation.getNeedAddTagIdList()) { + SysTag sysTag = sysTagMapper.selectDeptById(tagId.longValue()); + shuYunUserTagList.add(new ShuYunUserTagReq<>(sysTag.getShuyunTagId(), Arrays.asList("1"))); + } + } + if (shuYunUserTagList != null && shuYunUserTagList.size() > 0) { + ShuYunApiUtils.markUserTagBatch(shuYunBatchTagOperation.getUnionId(), shuYunUserTagList); + } + } + + @Override + @Transactional + public void syncShuYunIntegral(ShuYunPointChange shuYunPointChange) { + // TODO: 1、每请求完一次,修改一次同步日志(未完成) + + /** + * TODO:2、积分操作,同步数云(已完成) + */ + ShuYunApiUtils.pointChange(shuYunPointChange); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/ShuYunServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/ShuYunServiceImpl.java index f0605f6..f3ec022 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/ShuYunServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/ShuYunServiceImpl.java @@ -15,6 +15,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; @@ -54,6 +55,7 @@ public class ShuYunServiceImpl implements IShuYunService { } @Override + @Transactional public void markUserTag(ShuYunUserTagCallbackReq shuYunUserTag) { // 查询会员信息 WxUserMember wxUserMember = wxUserMemberMapper.selectUserMemberByUnionId(shuYunUserTag.getPlatAccount()); @@ -67,10 +69,11 @@ public class ShuYunServiceImpl implements IShuYunService { logger.info("外部标签不存在"); throw new ServiceException("外部标签不存在"); } - wxUserMemberService.batchAddWecomTag(Arrays.asList(sysTag.getId().intValue()), Arrays.asList(wxUserMember.getId().intValue())); + wxUserMemberService.batchAddWecomTag(Arrays.asList(sysTag.getId().intValue()), Arrays.asList(wxUserMember.getId().intValue()), false); } @Override + @Transactional public void delUserTag(ShuYunUserTagCallbackReq shuYunUserTag) { // 查询会员信息 WxUserMember wxUserMember = wxUserMemberMapper.selectUserMemberByUnionId(shuYunUserTag.getPlatAccount()); @@ -84,6 +87,6 @@ public class ShuYunServiceImpl implements IShuYunService { logger.info("外部标签不存在"); throw new ServiceException("外部标签不存在"); } - wxUserMemberService.batchDelMiniProgramTag(Arrays.asList(sysTag.getId().intValue()), Arrays.asList(wxUserMember.getId().intValue())); + wxUserMemberService.batchDelMiniProgramTag(Arrays.asList(sysTag.getId().intValue()), Arrays.asList(wxUserMember.getId().intValue()), false); } } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SiteInfoServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SiteInfoServiceImpl.java index 4ad1678..75335ce 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SiteInfoServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SiteInfoServiceImpl.java @@ -1,22 +1,20 @@ package com.flossom.system.service.impl; -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.enums.SitePushTypeEnum; import com.flossom.common.core.mapper.*; +import com.flossom.common.core.utils.CollectionUtils; import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.system.service.ISiteInfoService; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.flossom.system.service.ISiteInfoService; -import org.springframework.util.CollectionUtils; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; /** * 站点管理Service业务层处理 @@ -150,9 +148,16 @@ public class SiteInfoServiceImpl implements ISiteInfoService * @return 站点管理 */ @Override - public List selectSiteInfoList(SiteInfo siteInfo) - { - return siteInfoMapper.selectSiteInfoList(siteInfo); + public List selectSiteInfoList(SiteInfo siteInfo) { + return siteInfoMapper.selectSiteInfoList(siteInfo).stream() + .map(item-> { + String instrumentId = item.getInstrumentId(); + if (StringUtils.isNotEmpty(instrumentId)) { + List machineArray = Arrays.stream(instrumentId.split(",")).map(Long::parseLong).collect(Collectors.toList()); + item.setMachineArray(machineArray); + } + return item; + }).collect(Collectors.toList()); } /** @@ -166,12 +171,12 @@ public class SiteInfoServiceImpl implements ISiteInfoService { siteInfo.setCreateTime(DateUtils.getNowDate()); siteInfo.setCreateBy(SecurityUtils.getUsername()); - List showWechatTagNew = Lists.newArrayList(); - List showCompanyTagNew = Lists.newArrayList(); - List forbidWechatTagNew = Lists.newArrayList(); - List forbidCompanyTagNew = Lists.newArrayList(); - List handlerWechatTagNew = Lists.newArrayList(); - List handlerCompanyTagNew = Lists.newArrayList(); + List showWechatTagNew = Lists.newArrayList(); + List showCompanyTagNew = Lists.newArrayList(); + List forbidWechatTagNew = Lists.newArrayList(); + List forbidCompanyTagNew = Lists.newArrayList(); + List handlerWechatTagNew = Lists.newArrayList(); + List handlerCompanyTagNew = Lists.newArrayList(); List channelListNew = Lists.newArrayList(); List wxInstrumentsListNew = Lists.newArrayList(); this.commonHandler(siteInfo,showWechatTagNew,showCompanyTagNew,forbidWechatTagNew,forbidCompanyTagNew,channelListNew,handlerWechatTagNew,handlerCompanyTagNew,wxInstrumentsListNew); @@ -185,50 +190,51 @@ public class SiteInfoServiceImpl implements ISiteInfoService } // 新增、更新统一处理关联关系 - private void commonHandlerRelation(SiteInfo siteInfo,List showWechatTagNew,List showCompanyTagNew,List forbidWechatTagNew,List forbidCompanyTagNew,List channelListNew,List handlerWechatTagNew,List handlerCompanyTagNew, List wxInstrumentsListNew){ + private void commonHandlerRelation(SiteInfo siteInfo,List showWechatTagNew,List showCompanyTagNew,List forbidWechatTagNew,List forbidCompanyTagNew,List channelListNew,List handlerWechatTagNew,List handlerCompanyTagNew, List wxInstrumentsListNew){ + List infoTagList = new ArrayList<>(); // 保存可见小程序标签关联关系 - for (SysTag tag: showWechatTagNew) { + for (Long tag: showWechatTagNew) { SiteInfoTag infoTag = new SiteInfoTag(); infoTag.setSiteId(siteInfo.getId()); - infoTag.setTagId(tag.getId()); + infoTag.setTagId(tag); infoTag.setTagType(1); infoTag.setStatus(0l); infoTag.setCreateBy(SecurityUtils.getUsername()); infoTag.setCreateTime(DateUtils.getNowDate()); - siteInfoTagMapper.insertSiteInfoTag(infoTag); + infoTagList.add(infoTag); } // 保存可见外部标签关联关系 - for (SysTag tag: showCompanyTagNew) { + for (Long tag: showCompanyTagNew) { SiteInfoTag infoTag = new SiteInfoTag(); infoTag.setSiteId(siteInfo.getId()); - infoTag.setTagId(tag.getId()); + infoTag.setTagId(tag); infoTag.setTagType(2); infoTag.setStatus(0l); infoTag.setCreateBy(SecurityUtils.getUsername()); infoTag.setCreateTime(DateUtils.getNowDate()); - siteInfoTagMapper.insertSiteInfoTag(infoTag); + infoTagList.add(infoTag); } // 保存禁用小程序关联关系 - for (SysTag tag: forbidWechatTagNew) { + for (Long tag: forbidWechatTagNew) { SiteInfoTag infoTag = new SiteInfoTag(); infoTag.setSiteId(siteInfo.getId()); - infoTag.setTagId(tag.getId()); + infoTag.setTagId(tag); infoTag.setTagType(1); infoTag.setStatus(1l); infoTag.setCreateBy(SecurityUtils.getUsername()); infoTag.setCreateTime(DateUtils.getNowDate()); - siteInfoTagMapper.insertSiteInfoTag(infoTag); + infoTagList.add(infoTag); } // 保存禁用外部标签关联关系 - for (SysTag tag: forbidCompanyTagNew) { + for (Long tag: forbidCompanyTagNew) { SiteInfoTag infoTag = new SiteInfoTag(); infoTag.setSiteId(siteInfo.getId()); - infoTag.setTagId(tag.getId()); + infoTag.setTagId(tag); infoTag.setTagType(2); infoTag.setStatus(1l); infoTag.setCreateBy(SecurityUtils.getUsername()); infoTag.setCreateTime(DateUtils.getNowDate()); - siteInfoTagMapper.insertSiteInfoTag(infoTag); + infoTagList.add(infoTag); } // 保存渠道关联关系 for (ActivityChannelInfo channel: channelListNew) { @@ -241,27 +247,35 @@ public class SiteInfoServiceImpl implements ISiteInfoService siteInfoChannelMapper.insertSiteInfoChannel(channelInfo); } // 保存获得小程序关联关系 - for (SysTag tag: handlerWechatTagNew) { + for (Long tag: handlerWechatTagNew) { SiteInfoTag infoTag = new SiteInfoTag(); infoTag.setSiteId(siteInfo.getId()); - infoTag.setTagId(tag.getId()); + infoTag.setTagId(tag); infoTag.setTagType(1); infoTag.setStatus(2l); infoTag.setCreateBy(SecurityUtils.getUsername()); infoTag.setCreateTime(DateUtils.getNowDate()); - siteInfoTagMapper.insertSiteInfoTag(infoTag); + infoTagList.add(infoTag); } // 保存获得外部标签关联关系 - for (SysTag tag: handlerCompanyTagNew) { + for (Long tag: handlerCompanyTagNew) { SiteInfoTag infoTag = new SiteInfoTag(); infoTag.setSiteId(siteInfo.getId()); - infoTag.setTagId(tag.getId()); + infoTag.setTagId(tag); infoTag.setTagType(2); infoTag.setStatus(2l); infoTag.setCreateBy(SecurityUtils.getUsername()); infoTag.setCreateTime(DateUtils.getNowDate()); - siteInfoTagMapper.insertSiteInfoTag(infoTag); + infoTagList.add(infoTag); } + + // 批量保存数据 + if (CollectionUtils.isNotEmpty(infoTagList)) { + CollectionUtils.split(infoTagList, 1000).forEach(subList -> { + siteInfoTagMapper.inserts(subList); + }); + } + // 保存仪器关联信息 for (WxInstrument wxInstrument: wxInstrumentsListNew) { SiteInfoInstrument infoInstrument = new SiteInfoInstrument(); @@ -273,136 +287,133 @@ public class SiteInfoServiceImpl implements ISiteInfoService } } // 新增、更新统一调用汇总 - private void commonHandler(SiteInfo siteInfo,List showWechatTagNew,List showCompanyTagNew,List forbidWechatTagNew,List forbidCompanyTagNew,List channelListNew,List handlerWechatTagNew,List handlerCompanyTagNew,List wxInstrumentsListNew){ + private void commonHandler(SiteInfo siteInfo,List showWechatTagNew,List showCompanyTagNew,List forbidWechatTagNew,List forbidCompanyTagNew,List channelListNew,List handlerWechatTagNew,List handlerCompanyTagNew,List wxInstrumentsListNew){ // 如果是自定义频次,则需要保存推送时间 周一到周日 - if (!CollectionUtils.isEmpty(siteInfo.getPushTimerArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getPushTimerArray())) { siteInfo.setPushTimer(StringUtils.join(siteInfo.getPushTimerArray(),",")); } + // 保存可见小程序标签 - if (!CollectionUtils.isEmpty(siteInfo.getShowWechatTagArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getShowWechatTagArray())) { List showWechatTagArray = siteInfo.getShowWechatTagArray(); - for(long tagId : showWechatTagArray) { - SysTag sysTag = sysTagMapper.selectDeptById(tagId); - if (Objects.nonNull(sysTag)) { - showWechatTagNew.add(sysTag); - } + List sysTagList = sysTagMapper.selectDataListByIds(showWechatTagArray); + if (CollectionUtils.isNotEmpty(sysTagList)) { + List tagNameList = new ArrayList<>(); + List tagidList = new ArrayList<>(); + sysTagList.forEach(item -> { + tagidList.add(item.getId()); + tagNameList.add(item.getTagName()); + }); + showWechatTagNew.addAll(tagidList); + siteInfo.setShowWechatTagId(StringUtils.join(tagidList, ",")); + siteInfo.setShowWechatTag(StringUtils.join(tagNameList, ",")); } } - if (!CollectionUtils.isEmpty(showWechatTagNew)) { - String tagNames = showWechatTagNew.stream().map(SysTag::getTagName).collect(Collectors.joining(",")); - siteInfo.setShowWechatTag(tagNames); - List resultList = showWechatTagNew.stream().map(SysTag::getId).collect(Collectors.toList()); - String ids = StringUtils.join(resultList, ","); - siteInfo.setShowWechatTagId(ids); - } + // 保存可见外部标签 - if (!CollectionUtils.isEmpty(siteInfo.getShowCompanyTagArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getShowCompanyTagArray())) { List showCompanyTagArray = siteInfo.getShowCompanyTagArray(); - for(long tagId : showCompanyTagArray) { - SysTag sysTag = sysTagMapper.selectDeptById(tagId); - if (Objects.nonNull(sysTag)) { - showCompanyTagNew.add(sysTag); - } + List sysTagList = sysTagMapper.selectDataListByIds(showCompanyTagArray); + if (CollectionUtils.isNotEmpty(sysTagList)) { + List tagNameList = new ArrayList<>(); + List tagidList = new ArrayList<>(); + sysTagList.forEach(item -> { + tagidList.add(item.getId()); + tagNameList.add(item.getTagName()); + }); + showCompanyTagNew.addAll(tagidList); + siteInfo.setShowCompanyTagId(StringUtils.join(tagidList, ",")); + siteInfo.setShowCompanyTag(StringUtils.join(tagNameList, ",")); } } - if (!CollectionUtils.isEmpty(showCompanyTagNew)) { - String tagNames = showCompanyTagNew.stream().map(SysTag::getTagName).collect(Collectors.joining(",")); - siteInfo.setShowCompanyTag(tagNames); - List resultList = showCompanyTagNew.stream().map(SysTag::getId).collect(Collectors.toList()); - String ids = StringUtils.join(resultList, ","); - siteInfo.setShowCompanyTagId(ids); - } + // 保存禁用小程序标签 - if (!CollectionUtils.isEmpty(siteInfo.getForbidWechatTagArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getForbidWechatTagArray())) { List forbidWechatTagArray = siteInfo.getForbidWechatTagArray(); - for(long tagId : forbidWechatTagArray) { - SysTag sysTag = sysTagMapper.selectDeptById(tagId); - if (Objects.nonNull(sysTag)) { - forbidWechatTagNew.add(sysTag); - } + List sysTagList = sysTagMapper.selectDataListByIds(forbidWechatTagArray); + if (CollectionUtils.isNotEmpty(sysTagList)) { + List tagNameList = new ArrayList<>(); + List tagidList = new ArrayList<>(); + sysTagList.forEach(item -> { + tagidList.add(item.getId()); + tagNameList.add(item.getTagName()); + }); + forbidWechatTagNew.addAll(tagidList); + siteInfo.setForbidWechatTagId(StringUtils.join(tagidList, ",")); + siteInfo.setForbidWechatTag(StringUtils.join(tagNameList, ",")); } } - if (!CollectionUtils.isEmpty(forbidWechatTagNew)) { - String tagNames = forbidWechatTagNew.stream().map(SysTag::getTagName).collect(Collectors.joining(",")); - siteInfo.setForbidWechatTag(tagNames); - List resultList = forbidWechatTagNew.stream().map(SysTag::getId).collect(Collectors.toList()); - String ids = StringUtils.join(resultList, ","); - siteInfo.setForbidWechatTagId(ids); - } + // 保存禁用外部标签 - if (!CollectionUtils.isEmpty(siteInfo.getForbidCompanyTagArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getForbidCompanyTagArray())) { List forbidCompanyTagArray = siteInfo.getForbidCompanyTagArray(); - for(long tagId : forbidCompanyTagArray) { - SysTag sysTag = sysTagMapper.selectDeptById(tagId); - if (Objects.nonNull(sysTag)) { - forbidCompanyTagNew.add(sysTag); - } + List sysTagList = sysTagMapper.selectDataListByIds(forbidCompanyTagArray); + if (CollectionUtils.isNotEmpty(sysTagList)) { + List tagNameList = new ArrayList<>(); + List tagidList = new ArrayList<>(); + sysTagList.forEach(item -> { + tagidList.add(item.getId()); + tagNameList.add(item.getTagName()); + }); + forbidCompanyTagNew.addAll(tagidList); + siteInfo.setForbidCompanyTagId(StringUtils.join(tagidList, ",")); + siteInfo.setForbidCompanyTag(StringUtils.join(tagNameList, ",")); } } - if (!CollectionUtils.isEmpty(forbidCompanyTagNew)) { - String tagNames = forbidCompanyTagNew.stream().map(SysTag::getTagName).collect(Collectors.joining(",")); - siteInfo.setForbidCompanyTag(tagNames); - List resultList = forbidCompanyTagNew.stream().map(SysTag::getId).collect(Collectors.toList()); - String ids = StringUtils.join(resultList, ","); - siteInfo.setForbidCompanyTagId(ids); - } // 保存获得外部标签 - if (!CollectionUtils.isEmpty(siteInfo.getHandlerCompanyTagArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getHandlerCompanyTagArray())) { List handlerCompanyTagArray = siteInfo.getHandlerCompanyTagArray(); - for(long tagId : handlerCompanyTagArray) { - SysTag sysTag = sysTagMapper.selectDeptById(tagId); - if (Objects.nonNull(sysTag)) { - handlerCompanyTagNew.add(sysTag); - } + List sysTagList = sysTagMapper.selectDataListByIds(handlerCompanyTagArray); + if (CollectionUtils.isNotEmpty(sysTagList)) { + List tagNameList = new ArrayList<>(); + List tagidList = new ArrayList<>(); + sysTagList.forEach(item -> { + tagidList.add(item.getId()); + tagNameList.add(item.getTagName()); + }); + handlerCompanyTagNew.addAll(tagidList); + siteInfo.setHandlerCompanyTagId(StringUtils.join(tagidList, ",")); + siteInfo.setHandlerCompanyTag(StringUtils.join(tagNameList, ",")); } } - if (!CollectionUtils.isEmpty(handlerCompanyTagNew)) { - String tagNames = handlerCompanyTagNew.stream().map(SysTag::getTagName).collect(Collectors.joining(",")); - siteInfo.setHandlerCompanyTag(tagNames); - List resultList = handlerCompanyTagNew.stream().map(SysTag::getId).collect(Collectors.toList()); - String ids = StringUtils.join(resultList, ","); - siteInfo.setHandlerCompanyTagId(ids); - } // 保存获得小程序标签 - if (!CollectionUtils.isEmpty(siteInfo.getHandlerWechatTagArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getHandlerWechatTagArray())) { List handlerWechatTagArray = siteInfo.getHandlerWechatTagArray(); - for(long tagId : handlerWechatTagArray) { - SysTag sysTag = sysTagMapper.selectDeptById(tagId); - if (Objects.nonNull(sysTag)) { - handlerWechatTagNew.add(sysTag); - } + List sysTagList = sysTagMapper.selectDataListByIds(handlerWechatTagArray); + if (CollectionUtils.isNotEmpty(sysTagList)) { + List tagNameList = new ArrayList<>(); + List tagidList = new ArrayList<>(); + sysTagList.forEach(item -> { + tagidList.add(item.getId()); + tagNameList.add(item.getTagName()); + }); + handlerWechatTagNew.addAll(tagidList); + siteInfo.setHandlerWechatTagId(StringUtils.join(tagidList, ",")); + siteInfo.setHandlerWechatTag(StringUtils.join(tagNameList, ",")); } } - if (!CollectionUtils.isEmpty(handlerWechatTagNew)) { - String tagNames = handlerWechatTagNew.stream().map(SysTag::getTagName).collect(Collectors.joining(",")); - siteInfo.setHandlerWechatTag(tagNames); - List resultList = handlerWechatTagNew.stream().map(SysTag::getId).collect(Collectors.toList()); - String ids = StringUtils.join(resultList, ","); - siteInfo.setHandlerWechatTagId(ids); - } - // 保存渠道信息 - if (!CollectionUtils.isEmpty(siteInfo.getChannelArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getChannelArray())) { List channelArray = siteInfo.getChannelArray(); - for(long channelId : channelArray) { - ActivityChannelInfo channelInfo = activityChannelInfoMapper.selectActivityChannelInfoById(channelId); - if (Objects.nonNull(channelInfo)) { - channelListNew.add(channelInfo); - } + List activityChannelInfos = activityChannelInfoMapper.selectActivityChannelInfoByIdList(channelArray); + if (CollectionUtils.isNotEmpty(activityChannelInfos)) { + List channelNames = new ArrayList<>(); + List channelids = new ArrayList<>(); + activityChannelInfos.forEach(item -> { + channelids.add(item.getId()); + channelNames.add(item.getChannelName()); + }); + channelListNew.addAll(activityChannelInfos); + siteInfo.setChannelName(StringUtils.join(channelNames, ",")); + siteInfo.setChannelId(StringUtils.join(channelids, ",")); } } - if (!CollectionUtils.isEmpty(channelListNew)) { - String channelNames = channelListNew.stream().map(ActivityChannelInfo::getChannelName).collect(Collectors.joining(",")); - siteInfo.setChannelName(channelNames); - List resultList = channelListNew.stream().map(ActivityChannelInfo::getId).collect(Collectors.toList()); - String ids = StringUtils.join(resultList, ","); - siteInfo.setChannelId(ids); - } + // 保存仪器信息 - if (!CollectionUtils.isEmpty(siteInfo.getMachineArray())) { + if (CollectionUtils.isNotEmpty(siteInfo.getMachineArray())) { List machineArray = siteInfo.getMachineArray(); for(long instrumentId : machineArray) { WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(instrumentId); @@ -411,7 +422,7 @@ public class SiteInfoServiceImpl implements ISiteInfoService } } } - if (!CollectionUtils.isEmpty(wxInstrumentsListNew)) { + if (CollectionUtils.isNotEmpty(wxInstrumentsListNew)) { String channelNames = wxInstrumentsListNew.stream().map(WxInstrument::getName).collect(Collectors.joining(",")); siteInfo.setInstrumentName(channelNames); List resultList = wxInstrumentsListNew.stream().map(WxInstrument::getId).collect(Collectors.toList()); @@ -427,10 +438,16 @@ public class SiteInfoServiceImpl implements ISiteInfoService * @return 结果 */ @Override - public int updateSiteInfo(SiteInfo siteInfo) - { - siteInfo.setUpdateTime(DateUtils.getNowDate()); - siteInfo.setUpdateBy(SecurityUtils.getUsername()); + public Boolean updateSiteInfo(SiteInfo siteInfo) { + Date updateTime = DateUtils.getNowDate(); + String updateName = SecurityUtils.getUsername(); + // 是否为修改排序 + if (Objects.equals(siteInfo.getSortAndOpen(), Boolean.TRUE)) { + siteInfoMapper.updateSort(siteInfo.getOperate(), siteInfo.getOrderNumber(), siteInfo.getId(), updateTime, updateName); + return true; + } + siteInfo.setUpdateTime(updateTime); + siteInfo.setUpdateBy(updateName); siteInfo.setForbidCompanyTag(""); siteInfo.setForbidCompanyTagId(""); siteInfo.setForbidWechatTag(""); @@ -443,13 +460,13 @@ public class SiteInfoServiceImpl implements ISiteInfoService siteInfo.setShowCompanyTag(""); siteInfo.setInstrumentId(""); siteInfo.setInstrumentName(""); - List showWechatTagNew = Lists.newArrayList(); - List showCompanyTagNew = Lists.newArrayList(); - List forbidWechatTagNew = Lists.newArrayList(); - List forbidCompanyTagNew = Lists.newArrayList(); + List showWechatTagNew = Lists.newArrayList(); + List showCompanyTagNew = Lists.newArrayList(); + List forbidWechatTagNew = Lists.newArrayList(); + List forbidCompanyTagNew = Lists.newArrayList(); List channelListNew = Lists.newArrayList(); - List handlerWechatTagNew = Lists.newArrayList(); - List handlerCompanyTagNew = Lists.newArrayList(); + List handlerWechatTagNew = Lists.newArrayList(); + List handlerCompanyTagNew = Lists.newArrayList(); List wxInstrumentList = Lists.newArrayList(); SiteInfo oldSiteInfo = siteInfoMapper.selectSiteInfoById(siteInfo.getId()); @@ -496,7 +513,8 @@ public class SiteInfoServiceImpl implements ISiteInfoService siteInfo.setPushTimer(null); siteInfo.setPushTimerArray(null); } - return siteInfoMapper.updateSiteInfo(siteInfo); + siteInfoMapper.updateSiteInfo(siteInfo); + return true; } /** diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysTagServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysTagServiceImpl.java index 52f355d..2d802f2 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysTagServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/SysTagServiceImpl.java @@ -4,7 +4,9 @@ import com.flossom.common.core.constant.UserConstants; import com.flossom.common.core.domain.entity.SysRole; import com.flossom.common.core.domain.entity.SysTag; import com.flossom.common.core.domain.entity.SysUser; +import com.flossom.common.core.domain.shuyun.ShuYunTag; import com.flossom.common.core.domain.vo.TreeSelect; +import com.flossom.common.core.enums.Status; import com.flossom.common.core.enums.TagTypeStatusEnum; import com.flossom.common.core.exception.ServiceException; import com.flossom.common.core.mapper.SysRoleMapper; @@ -14,9 +16,12 @@ import com.flossom.common.core.utils.SpringUtils; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.datascope.annotation.DataScope; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; import com.flossom.system.service.ISysTagService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; @@ -34,6 +39,9 @@ public class SysTagServiceImpl implements ISysTagService { @Autowired private SysRoleMapper roleMapper; + @Autowired + private ShuYunConfig shuYunConfig; + /** * 查询标签管理数据 * @@ -191,6 +199,7 @@ public class SysTagServiceImpl implements ISysTagService { * @return 结果 */ @Override + @Transactional public int insertDept(SysTag tag) { SysTag info = tagMapper.selectDeptById(tag.getParentId()); // 如果父节点不为正常状态,则不允许新增子节点 @@ -204,8 +213,20 @@ public class SysTagServiceImpl implements ISysTagService { } else { tag.setParentName(info.getTagName()); } + int i = tagMapper.insertDept(tag); - return tagMapper.insertDept(tag); + /** + * TODO: 标签新增同步数云(已完成) + */ + if (!Objects.isNull(info)) { + ShuYunTag shuYunTag = new ShuYunTag(shuYunConfig.getTagGroupId(), tag.getTagName()); + Integer shuYunTagId = ShuYunApiUtils.tagCreate(shuYunTag); + SysTag updateTag = new SysTag(); + updateTag.setId(tag.getId()); + updateTag.setShuyunTagId(shuYunTagId); + tagMapper.updateDept(updateTag); + } + return i; } /** @@ -215,6 +236,7 @@ public class SysTagServiceImpl implements ISysTagService { * @return 结果 */ @Override + @Transactional public int updateDept(SysTag tag) { SysTag newParentDept = tagMapper.selectDeptById(tag.getParentId()); SysTag oldDept = tagMapper.selectDeptById(tag.getId()); @@ -224,13 +246,25 @@ public class SysTagServiceImpl implements ISysTagService { tag.setAncestors(newAncestors); updateDeptChildren(tag.getId(), newAncestors, oldAncestors); } - tag.setParentName(newParentDept.getTagName()); + if(newParentDept != null) { + tag.setParentName(newParentDept.getTagName()); + } int result = tagMapper.updateDept(tag); if (UserConstants.DEPT_NORMAL.equals(tag.getStatus()) && StringUtils.isNotEmpty(tag.getAncestors()) && !StringUtils.equals("0", tag.getAncestors())) { // 如果该标签是启用状态,则启用该标签的所有上级标签 updateParentDeptStatusNormal(tag); } + + if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) { + /** + * TODO: 标签修改同步数云(已完成) + */ + ShuYunTag shuYunTag = new ShuYunTag(); + shuYunTag.setTagId(oldDept.getShuyunTagId()); + shuYunTag.setTagName(tag.getTagName()); + ShuYunApiUtils.tagUpdate(shuYunTag); + } return result; } @@ -269,8 +303,17 @@ public class SysTagServiceImpl implements ISysTagService { * @return 结果 */ @Override + @Transactional public int deleteDeptById(Long id) { - return tagMapper.deleteDeptById(id); + int i = tagMapper.deleteDeptById(id); + SysTag sysTag = tagMapper.selectSysTagById(id, Status.DELETED.getCode()); + if(sysTag != null && sysTag.getShuyunTagId() != null) { + /** + * TODO: 标签删除同步数云(已完成) + */ + ShuYunApiUtils.tagDelete(String.valueOf(sysTag.getShuyunTagId())); + } + return i; } @Override diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxFindCarouselServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxFindCarouselServiceImpl.java new file mode 100644 index 0000000..63042f4 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxFindCarouselServiceImpl.java @@ -0,0 +1,435 @@ +package com.flossom.system.service.impl; + +import com.flossom.common.core.domain.entity.WxFindCarousel; +import com.flossom.common.core.domain.entity.WxFindInstrument; +import com.flossom.common.core.domain.entity.WxFindTag; +import com.flossom.common.core.domain.entity.WxInstrument; +import com.flossom.common.core.enums.WxFindEnum; +import com.flossom.common.core.exception.ServiceException; +import com.flossom.common.core.mapper.*; +import com.flossom.common.core.utils.CollectionUtils; +import com.flossom.common.core.utils.DateUtils; +import com.flossom.common.core.utils.StringUtils; +import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.system.service.IWxFindCarouselService; +import org.apache.commons.compress.utils.Lists; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 发现轮播图Service业务层处理 + * + * @author flossom + * @date 2024-04-10 + */ +@Service +public class WxFindCarouselServiceImpl implements IWxFindCarouselService { + @Autowired + private SysTagMapper sysTagMapper; + @Autowired + private WxFindTagMapper wxFindTagMapper; + @Autowired + private WxInstrumentMapper wxInstrumentMapper; + @Autowired + private WxFindCarouselMapper wxFindCarouselMapper; + @Autowired + private WxFindInstrumentMapper wxFindInstrumentMapper; + + /** + * 查询发现轮播图 + * + * @param id 发现轮播图主键 + * @return 发现轮播图 + */ + @Override + public WxFindCarousel selectWxFindCarouselById(Long id) { + WxFindCarousel wxFindCarousel = Optional.ofNullable(wxFindCarouselMapper.selectWxFindCarouselById(id)) + .orElseThrow(() -> new ServiceException("发现轮播图数据不存在")); + // 处理时间 + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if(Objects.nonNull(wxFindCarousel.getSiteStartTime())) { + wxFindCarousel.getStartTime().add(sd.format(wxFindCarousel.getSiteStartTime())); + } + if(Objects.nonNull(wxFindCarousel.getSiteEndTime())) { + wxFindCarousel.getStartTime().add(sd.format(wxFindCarousel.getSiteEndTime())); + } + if(Objects.nonNull(wxFindCarousel.getUserRegisterStartTime())) { + wxFindCarousel.getRegisterTime().add(sd.format(wxFindCarousel.getUserRegisterStartTime())); + } + if(Objects.nonNull(wxFindCarousel.getUserRegisterEndTime())) { + wxFindCarousel.getRegisterTime().add(sd.format(wxFindCarousel.getUserRegisterEndTime())); + } + WxFindTag findTag = new WxFindTag(); + findTag.setWxFindId(id); + // 处理禁用外部标签数组 + if (StringUtils.isNotEmpty(wxFindCarousel.getForbidCompanyTagId())) { + // 关联表查询数据 + findTag.setTagType(2); + findTag.setStatus(1L); + findTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List forbidCompanyList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindCarousel.setForbidCompanyTagArray(forbidCompanyList); + } + // 处理禁用小程序标签数组 + if (StringUtils.isNotEmpty(wxFindCarousel.getForbidWechatTagId())) { + // 关联表查询数据 + findTag.setTagType(1); + findTag.setStatus(1L); + findTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List forbidWechatList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindCarousel.setForbidWechatTagArray(forbidWechatList); + } + // 处理可见小程序标签数组 + if (StringUtils.isNotEmpty(wxFindCarousel.getShowWechatTagId())) { + // 关联表查询数据 + findTag.setTagType(1); + findTag.setStatus(0L); + findTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List showWechatList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindCarousel.setShowWechatTagArray(showWechatList); + } + // 处理可见外部标签数组 + if (StringUtils.isNotEmpty(wxFindCarousel.getShowCompanyTagId())) { + // 关联表查询数据 + findTag.setTagType(2); + findTag.setStatus(0l); + findTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List showCompanyList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindCarousel.setShowCompanyTagArray(showCompanyList); + } + // 处理弹窗获得小程序标签 + if (StringUtils.isNotEmpty(wxFindCarousel.getHandlerWechatTagId())) { + // 关联表查询数据 + findTag.setTagType(1); + findTag.setStatus(2L); + findTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List handlerWechatList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindCarousel.setHandlerWechatTagArray(handlerWechatList); + } + // 处理弹窗获得外部标签 + if (StringUtils.isNotEmpty(wxFindCarousel.getHandlerCompanyTagId())) { + // 关联表查询数据 + findTag.setTagType(2); + findTag.setStatus(2L); + findTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List handlerCompanyList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindCarousel.setHandlerCompanyTagArray(handlerCompanyList); + } + // 处理仪器展示 + if (StringUtils.isNotEmpty(wxFindCarousel.getInstrumentId())) { + List instrumentList = Arrays.stream(wxFindCarousel.getInstrumentId().split(",")).map(Long::parseLong).collect(Collectors.toList()); + wxFindCarousel.setMachineArray(instrumentList); + } + return wxFindCarousel; + } + + /** + * 查询发现轮播图列表 + * + * @param wxFindCarousel 发现轮播图 + * @return 发现轮播图 + */ + @Override + public List selectWxFindCarouselList(WxFindCarousel wxFindCarousel) { + return wxFindCarouselMapper.selectWxFindCarouselList(wxFindCarousel).stream() + .map(item-> { + String instrumentId = item.getInstrumentId(); + if (StringUtils.isNotEmpty(instrumentId)) { + List machineArray = Arrays.stream(instrumentId.split(",")).map(Long::parseLong).collect(Collectors.toList()); + item.setMachineArray(machineArray); + } + return item; + }).collect(Collectors.toList()); + } + + /** + * 新增发现轮播图 + * + * @param wxFindCarousel 发现轮播图 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertWxFindCarousel(WxFindCarousel wxFindCarousel) { + wxFindCarousel.setCreateTime(DateUtils.getNowDate()); + wxFindCarousel.setCreateBy(SecurityUtils.getUsername()); + List showWechatTagNew = Lists.newArrayList(); + List showCompanyTagNew = Lists.newArrayList(); + List forbidWechatTagNew = Lists.newArrayList(); + List forbidCompanyTagNew = Lists.newArrayList(); + List handlerWechatTagNew = Lists.newArrayList(); + List handlerCompanyTagNew = Lists.newArrayList(); + List wxInstrumentsListNew = Lists.newArrayList(); + this.commonHandler(wxFindCarousel, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, + handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentsListNew); + + // 开始保存关联关系 + int i = wxFindCarouselMapper.insertWxFindCarousel(wxFindCarousel); + + // 保存标签&仪器数据 + this.commonHandlerRelation(wxFindCarousel, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentsListNew); + + return i; + } + + /** + * 保存标签&仪器数据 + */ + private void commonHandlerRelation(WxFindCarousel wxFindCarousel, List showWechatTagNew, List showCompanyTagNew, List forbidWechatTagNew, List forbidCompanyTagNew, List handlerWechatTagNew, List handlerCompanyTagNew, List wxInstrumentsListNew) { + List wxFindTagList = new ArrayList<>(); + + // 保存可见小程序标签关联关系 + for (Long tag : showWechatTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindCarousel.getId()); + infoTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(1); + infoTag.setStatus(0l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存可见外部标签关联关系 + for (Long tag : showCompanyTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindCarousel.getId()); + infoTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(2); + infoTag.setStatus(0l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存禁用小程序关联关系 + for (Long tag : forbidWechatTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindCarousel.getId()); + infoTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(1); + infoTag.setStatus(1l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存禁用外部标签关联关系 + for (Long tag : forbidCompanyTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindCarousel.getId()); + infoTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(2); + infoTag.setStatus(1l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存获得小程序关联关系 + for (Long tag : handlerWechatTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindCarousel.getId()); + infoTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(1); + infoTag.setStatus(2l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存获得外部标签关联关系 + for (Long tag : handlerCompanyTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindCarousel.getId()); + infoTag.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(2); + infoTag.setStatus(2l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 批量保存数据 + if (CollectionUtils.isNotEmpty(wxFindTagList)) { + CollectionUtils.split(wxFindTagList, 1000).forEach(subList -> { + wxFindTagMapper.inserts(subList); + }); + } + // 保存仪器关联信息 + for (WxInstrument wxInstrument : wxInstrumentsListNew) { + WxFindInstrument infoInstrument = new WxFindInstrument(); + infoInstrument.setInstrumentId(wxInstrument.getId()); + infoInstrument.setWxFindId(wxFindCarousel.getId()); + infoInstrument.setWxFindType(WxFindEnum.CAROUSEL_IMAGE.getType()); + infoInstrument.setCreateBy(SecurityUtils.getUsername()); + infoInstrument.setCreateTime(DateUtils.getNowDate()); + wxFindInstrumentMapper.insertWxFindInstrument(infoInstrument); + } + } + + /** + * 组装标签和仪器 + */ + private void commonHandler(WxFindCarousel wxFindCarousel, List showWechatTagNew, List showCompanyTagNew, List forbidWechatTagNew, List forbidCompanyTagNew, List handlerWechatTagNew, List handlerCompanyTagNew, List wxInstrumentsListNew) { + // 保存可见小程序标签 + if (CollectionUtils.isNotEmpty(wxFindCarousel.getShowWechatTagArray())) { + List showWechatTagArray = wxFindCarousel.getShowWechatTagArray(); + List ids = sysTagMapper.selectDeptByIds(showWechatTagArray); + if (CollectionUtils.isNotEmpty(ids)) { + showWechatTagNew.addAll(ids); + wxFindCarousel.setShowWechatTagId(StringUtils.join(ids, ",")); + } + } + + // 保存可见外部标签 + if (CollectionUtils.isNotEmpty(wxFindCarousel.getShowCompanyTagArray())) { + List showCompanyTagArray = wxFindCarousel.getShowCompanyTagArray(); + List ids = sysTagMapper.selectDeptByIds(showCompanyTagArray); + if (CollectionUtils.isNotEmpty(ids)) { + showCompanyTagNew.addAll(ids); + wxFindCarousel.setShowCompanyTagId(StringUtils.join(ids, ",")); + } + } + + // 保存禁用小程序标签 + if (CollectionUtils.isNotEmpty(wxFindCarousel.getForbidWechatTagArray())) { + List forbidWechatTagArray = wxFindCarousel.getForbidWechatTagArray(); + List ids = sysTagMapper.selectDeptByIds(forbidWechatTagArray); + if (CollectionUtils.isNotEmpty(ids)) { + forbidWechatTagNew.addAll(ids); + wxFindCarousel.setForbidWechatTagId(StringUtils.join(ids, ",")); + } + } + + // 保存禁用小程序标签 + if (CollectionUtils.isNotEmpty(wxFindCarousel.getForbidCompanyTagArray())) { + List forbidCompanyTagArray = wxFindCarousel.getForbidCompanyTagArray(); + List ids = sysTagMapper.selectDeptByIds(forbidCompanyTagArray); + if (CollectionUtils.isNotEmpty(ids)) { + forbidCompanyTagNew.addAll(ids); + wxFindCarousel.setForbidCompanyTagId(StringUtils.join(ids, ",")); + } + } + + // 保存获得外部标签 + if (CollectionUtils.isNotEmpty(wxFindCarousel.getHandlerCompanyTagArray())) { + List handlerCompanyTagArray = wxFindCarousel.getHandlerCompanyTagArray(); + List ids = sysTagMapper.selectDeptByIds(handlerCompanyTagArray); + if (CollectionUtils.isNotEmpty(ids)) { + handlerCompanyTagNew.addAll(ids); + wxFindCarousel.setHandlerCompanyTagId(StringUtils.join(ids, ",")); + } + } + + // 保存获得外部标签 + if (CollectionUtils.isNotEmpty(wxFindCarousel.getHandlerWechatTagArray())) { + List handlerWechatTagArray = wxFindCarousel.getHandlerWechatTagArray(); + List ids = sysTagMapper.selectDeptByIds(handlerWechatTagArray); + if (CollectionUtils.isNotEmpty(ids)) { + handlerWechatTagNew.addAll(ids); + wxFindCarousel.setHandlerWechatTagId(StringUtils.join(ids, ",")); + } + } + + // 保存仪器信息 + if (!CollectionUtils.isEmpty(wxFindCarousel.getMachineArray())) { + List machineArray = wxFindCarousel.getMachineArray(); + for (long instrumentId : machineArray) { + WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(instrumentId); + if (Objects.nonNull(wxInstrument)) { + wxInstrumentsListNew.add(wxInstrument); + } + } + } + if (!CollectionUtils.isEmpty(wxInstrumentsListNew)) { + List resultList = wxInstrumentsListNew.stream().map(WxInstrument::getId).collect(Collectors.toList()); + String ids = StringUtils.join(resultList, ","); + wxFindCarousel.setInstrumentId(ids); + } + } + + /** + * 修改发现轮播图 + * + * @param wxFindCarousel 发现轮播图 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateWxFindCarousel(WxFindCarousel wxFindCarousel) { + Date updateDate = DateUtils.getNowDate(); + String updateName = SecurityUtils.getUsername(); + // 是否为修改排序 + if (Objects.equals(wxFindCarousel.getSortAndOpen(), Boolean.TRUE)) { + wxFindCarouselMapper.updateSortOrOpen(wxFindCarousel.getOperate(), wxFindCarousel.getOrderNumber(), wxFindCarousel.getId(), updateDate, updateName); + return true; + } + wxFindCarousel.setUpdateTime(updateDate); + wxFindCarousel.setUpdateBy(updateName); + wxFindCarousel.setForbidCompanyTagId(""); + wxFindCarousel.setForbidWechatTagId(""); + wxFindCarousel.setChannelId(""); + wxFindCarousel.setShowWechatTagId(""); + wxFindCarousel.setShowCompanyTagId(""); + wxFindCarousel.setInstrumentId(""); + List showWechatTagNew = Lists.newArrayList(); + List showCompanyTagNew = Lists.newArrayList(); + List forbidWechatTagNew = Lists.newArrayList(); + List forbidCompanyTagNew = Lists.newArrayList(); + List handlerWechatTagNew = Lists.newArrayList(); + List handlerCompanyTagNew = Lists.newArrayList(); + List wxInstrumentList = Lists.newArrayList(); + + // 保存标签关系 + this.commonHandler(wxFindCarousel, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentList); + // 删除标签关联关系 + wxFindTagMapper.deleteWxFindTagByWxFindId(wxFindCarousel.getId(), updateDate, updateName, WxFindEnum.CAROUSEL_IMAGE.getType()); + // 删除仪器关联关系 + wxFindInstrumentMapper.deleteWxFindInstrumentByWxFindId(wxFindCarousel.getId(), updateDate, updateName, WxFindEnum.CAROUSEL_IMAGE.getType()); + + // 保存新的关联关系 + this.commonHandlerRelation(wxFindCarousel, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentList); + wxFindCarouselMapper.updateWxFindCarousel(wxFindCarousel); + return true; + } + + /** + * 批量删除发现轮播图 + * + * @param ids 需要删除的发现轮播图主键 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteWxFindCarouselByIds(Long[] ids) { + Date updateDate = DateUtils.getNowDate(); + String updateName = SecurityUtils.getUsername(); + return wxFindCarouselMapper.deleteWxFindCarouselByIds(ids, updateDate, updateName); + } + + /** + * 删除发现轮播图信息 + * + * @param id 发现轮播图主键 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteWxFindCarouselById(Long id) { + Date updateDate = DateUtils.getNowDate(); + String updateName = SecurityUtils.getUsername(); + return wxFindCarouselMapper.deleteWxFindCarouselById(id, updateDate, updateName); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxFindProductStrategyServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxFindProductStrategyServiceImpl.java new file mode 100644 index 0000000..dcfeff5 --- /dev/null +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxFindProductStrategyServiceImpl.java @@ -0,0 +1,439 @@ +package com.flossom.system.service.impl; + +import com.flossom.common.core.domain.entity.WxFindInstrument; +import com.flossom.common.core.domain.entity.WxFindProductStrategy; +import com.flossom.common.core.domain.entity.WxFindTag; +import com.flossom.common.core.domain.entity.WxInstrument; +import com.flossom.common.core.enums.WxFindEnum; +import com.flossom.common.core.exception.ServiceException; +import com.flossom.common.core.mapper.*; +import com.flossom.common.core.utils.CollectionUtils; +import com.flossom.common.core.utils.DateUtils; +import com.flossom.common.core.utils.StringUtils; +import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.system.service.IWxFindProductStrategyService; +import org.apache.commons.compress.utils.Lists; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 产品攻略Service业务层处理 + * + * @author flossom + * @date 2024-04-10 + */ +@Service +public class WxFindProductStrategyServiceImpl implements IWxFindProductStrategyService { + + @Autowired + private SysTagMapper sysTagMapper; + @Autowired + private WxFindTagMapper wxFindTagMapper; + @Autowired + private WxInstrumentMapper wxInstrumentMapper; + @Autowired + private WxFindInstrumentMapper wxFindInstrumentMapper; + @Autowired + private WxFindProductStrategyMapper wxFindProductStrategyMapper; + + /** + * 查询产品攻略 + * + * @param id 产品攻略主键 + * @return 产品攻略 + */ + @Override + public WxFindProductStrategy selectWxFindProductStrategyById(Long id) { + WxFindProductStrategy wxFindProductStrategy = Optional.ofNullable(wxFindProductStrategyMapper.selectWxFindProductStrategyById(id)) + .orElseThrow(() -> new ServiceException("产品攻略数据不存在")); + // 处理时间 + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if(Objects.nonNull(wxFindProductStrategy.getSiteStartTime())) { + wxFindProductStrategy.getStartTime().add(sd.format(wxFindProductStrategy.getSiteStartTime())); + } + if(Objects.nonNull(wxFindProductStrategy.getSiteEndTime())) { + wxFindProductStrategy.getStartTime().add(sd.format(wxFindProductStrategy.getSiteEndTime())); + } + if(Objects.nonNull(wxFindProductStrategy.getUserRegisterStartTime())) { + wxFindProductStrategy.getRegisterTime().add(sd.format(wxFindProductStrategy.getUserRegisterStartTime())); + } + if(Objects.nonNull(wxFindProductStrategy.getUserRegisterEndTime())) { + wxFindProductStrategy.getRegisterTime().add(sd.format(wxFindProductStrategy.getUserRegisterEndTime())); + } + // 查询用的标签关联实体 + WxFindTag findTag = new WxFindTag(); + findTag.setWxFindId(id); + // 处理禁用外部标签数组 + if (StringUtils.isNotEmpty(wxFindProductStrategy.getForbidCompanyTagId())) { + // 关联表查询数据 + findTag.setTagType(2); + findTag.setStatus(1L); + findTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List forbidCompanyList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindProductStrategy.setForbidCompanyTagArray(forbidCompanyList); + } + // 处理禁用小程序标签数组 + if (StringUtils.isNotEmpty(wxFindProductStrategy.getForbidWechatTagId())) { + // 关联表查询数据 + findTag.setTagType(1); + findTag.setStatus(1L); + findTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List forbidWechatList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindProductStrategy.setForbidWechatTagArray(forbidWechatList); + } + // 处理可见小程序标签数组 + if (StringUtils.isNotEmpty(wxFindProductStrategy.getShowWechatTagId())) { + // 关联表查询数据 + findTag.setTagType(1); + findTag.setStatus(0L); + findTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List showWechatList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindProductStrategy.setShowWechatTagArray(showWechatList); + } + // 处理可见外部标签数组 + if (StringUtils.isNotEmpty(wxFindProductStrategy.getShowCompanyTagId())) { + // 关联表查询数据 + findTag.setTagType(2); + findTag.setStatus(0l); + findTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List showCompanyList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindProductStrategy.setShowCompanyTagArray(showCompanyList); + } + // 处理弹窗获得小程序标签 + if (StringUtils.isNotEmpty(wxFindProductStrategy.getHandlerWechatTagId())) { + // 关联表查询数据 + findTag.setTagType(1); + findTag.setStatus(2L); + findTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List handlerWechatList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindProductStrategy.setHandlerWechatTagArray(handlerWechatList); + } + // 处理弹窗获得外部标签 + if (StringUtils.isNotEmpty(wxFindProductStrategy.getHandlerCompanyTagId())) { + // 关联表查询数据 + findTag.setTagType(2); + findTag.setStatus(2L); + findTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + List siteInfoTags = wxFindTagMapper.selectWxFindTagList(findTag); + List handlerCompanyList = siteInfoTags.stream().map(WxFindTag::getTagId).collect(Collectors.toList()); + wxFindProductStrategy.setHandlerCompanyTagArray(handlerCompanyList); + } + // 处理仪器展示 + if (StringUtils.isNotEmpty(wxFindProductStrategy.getInstrumentId())) { + List instrumentList = Arrays.stream(wxFindProductStrategy.getInstrumentId().split(",")).map(Long::parseLong).collect(Collectors.toList()); + wxFindProductStrategy.setMachineArray(instrumentList); + } + return wxFindProductStrategy; + } + + /** + * 查询产品攻略列表 + * + * @param wxFindProductStrategy 产品攻略 + * @return 产品攻略 + */ + @Override + public List selectWxFindProductStrategyList(WxFindProductStrategy wxFindProductStrategy) { + return wxFindProductStrategyMapper.selectWxFindProductStrategyList(wxFindProductStrategy); + } + + /** + * 新增产品攻略 + * + * @param wxFindProductStrategy 产品攻略 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int insertWxFindProductStrategy(WxFindProductStrategy wxFindProductStrategy) { + wxFindProductStrategy.setCreateTime(DateUtils.getNowDate()); + wxFindProductStrategy.setCreateBy(SecurityUtils.getUsername()); + List showWechatTagNew = Lists.newArrayList(); + List showCompanyTagNew = Lists.newArrayList(); + List forbidWechatTagNew = Lists.newArrayList(); + List forbidCompanyTagNew = Lists.newArrayList(); + List handlerWechatTagNew = Lists.newArrayList(); + List handlerCompanyTagNew = Lists.newArrayList(); + List wxInstrumentsListNew = Lists.newArrayList(); + + // 拆解标签和仪器数据 + this.commonHandler(wxFindProductStrategy, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, + handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentsListNew); + + // 保存数据 + int i = wxFindProductStrategyMapper.insertWxFindProductStrategy(wxFindProductStrategy); + + // 保存标签和仪器数据 + this.commonHandlerRelation(wxFindProductStrategy, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentsListNew); + + return i; + } + + /** + * 组装标签和仪器 + */ + private void commonHandler(WxFindProductStrategy wxFindProductStrategy, List showWechatTagNew, List showCompanyTagNew, List forbidWechatTagNew, List forbidCompanyTagNew, List handlerWechatTagNew, List handlerCompanyTagNew, List wxInstrumentsListNew) { + // 保存可见小程序标签 + if (CollectionUtils.isNotEmpty(wxFindProductStrategy.getShowWechatTagArray())) { + List showWechatTagArray = wxFindProductStrategy.getShowWechatTagArray(); + List ids = sysTagMapper.selectDeptByIds(showWechatTagArray); + List newIds = showWechatTagArray.stream().filter(ids::contains).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(newIds)) { + showWechatTagNew.addAll(newIds); + wxFindProductStrategy.setShowWechatTagId(StringUtils.join(newIds, ",")); + } + } + + // 保存可见外部标签 + if (CollectionUtils.isNotEmpty(wxFindProductStrategy.getShowCompanyTagArray())) { + List showCompanyTagArray = wxFindProductStrategy.getShowCompanyTagArray(); + List ids = sysTagMapper.selectDeptByIds(showCompanyTagArray); + List newIds = showCompanyTagArray.stream().filter(ids::contains).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(newIds)) { + showCompanyTagNew.addAll(newIds); + wxFindProductStrategy.setShowCompanyTagId(StringUtils.join(newIds, ",")); + } + } + + // 保存禁用小程序标签 + if (CollectionUtils.isNotEmpty(wxFindProductStrategy.getForbidWechatTagArray())) { + List forbidWechatTagArray = wxFindProductStrategy.getForbidWechatTagArray(); + List ids = sysTagMapper.selectDeptByIds(forbidWechatTagArray); + List newIds = forbidWechatTagArray.stream().filter(ids::contains).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(newIds)) { + forbidWechatTagNew.addAll(newIds); + wxFindProductStrategy.setForbidWechatTagId(StringUtils.join(newIds, ",")); + } + } + + // 保存禁用小程序标签 + if (CollectionUtils.isNotEmpty(wxFindProductStrategy.getForbidCompanyTagArray())) { + List forbidCompanyTagArray = wxFindProductStrategy.getForbidCompanyTagArray(); + List ids = sysTagMapper.selectDeptByIds(forbidCompanyTagArray); + List newIds = forbidCompanyTagArray.stream().filter(ids::contains).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(newIds)) { + forbidCompanyTagNew.addAll(newIds); + wxFindProductStrategy.setForbidCompanyTagId(StringUtils.join(newIds, ",")); + } + } + + // 保存获得外部标签 + if (CollectionUtils.isNotEmpty(wxFindProductStrategy.getHandlerCompanyTagArray())) { + List handlerCompanyTagArray = wxFindProductStrategy.getHandlerCompanyTagArray(); + List ids = sysTagMapper.selectDeptByIds(handlerCompanyTagArray); + List newIds = handlerCompanyTagArray.stream().filter(ids::contains).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(newIds)) { + handlerCompanyTagNew.addAll(newIds); + wxFindProductStrategy.setHandlerCompanyTagId(StringUtils.join(newIds, ",")); + } + } + + // 保存获得外部标签 + if (CollectionUtils.isNotEmpty(wxFindProductStrategy.getHandlerWechatTagArray())) { + List handlerWechatTagArray = wxFindProductStrategy.getHandlerWechatTagArray(); + List ids = sysTagMapper.selectDeptByIds(handlerWechatTagArray); + List newIds = handlerWechatTagArray.stream().filter(ids::contains).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(newIds)) { + handlerWechatTagNew.addAll(newIds); + wxFindProductStrategy.setHandlerWechatTagId(StringUtils.join(newIds, ",")); + } + } + + // 保存仪器信息 + if (CollectionUtils.isNotEmpty(wxFindProductStrategy.getMachineArray())) { + List machineArray = wxFindProductStrategy.getMachineArray(); + for (long instrumentId : machineArray) { + WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(instrumentId); + if (Objects.nonNull(wxInstrument)) { + wxInstrumentsListNew.add(wxInstrument); + } + } + } + if (CollectionUtils.isNotEmpty(wxInstrumentsListNew)) { + List resultList = wxInstrumentsListNew.stream().map(WxInstrument::getId).collect(Collectors.toList()); + String ids = StringUtils.join(resultList, ","); + wxFindProductStrategy.setInstrumentId(ids); + } + } + + /** + * 保存标签&仪器数据 + */ + private void commonHandlerRelation(WxFindProductStrategy wxFindProductStrategy, List showWechatTagNew, List showCompanyTagNew, List forbidWechatTagNew, List forbidCompanyTagNew, List handlerWechatTagNew, List handlerCompanyTagNew, List wxInstrumentsListNew) { + List wxFindTagList = new ArrayList<>(); + + // 保存可见小程序标签关联关系 + for (Long tag : showWechatTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindProductStrategy.getId()); + infoTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(1); + infoTag.setStatus(0l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存可见外部标签关联关系 + for (Long tag : showCompanyTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindProductStrategy.getId()); + infoTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(2); + infoTag.setStatus(0l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存禁用小程序关联关系 + for (Long tag : forbidWechatTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindProductStrategy.getId()); + infoTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(1); + infoTag.setStatus(1l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存禁用外部标签关联关系 + for (Long tag : forbidCompanyTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindProductStrategy.getId()); + infoTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(2); + infoTag.setStatus(1l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存获得小程序关联关系 + for (Long tag : handlerWechatTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindProductStrategy.getId()); + infoTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(1); + infoTag.setStatus(2l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 保存获得外部标签关联关系 + for (Long tag : handlerCompanyTagNew) { + WxFindTag infoTag = new WxFindTag(); + infoTag.setWxFindId(wxFindProductStrategy.getId()); + infoTag.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + infoTag.setTagId(tag); + infoTag.setTagType(2); + infoTag.setStatus(2l); + infoTag.setCreateBy(SecurityUtils.getUsername()); + infoTag.setCreateTime(DateUtils.getNowDate()); + wxFindTagList.add(infoTag); + } + // 批量保存数据 + if (CollectionUtils.isNotEmpty(wxFindTagList)) { + CollectionUtils.split(wxFindTagList, 1000).forEach(subList -> { + wxFindTagMapper.inserts(subList); + }); + } + // 保存仪器关联信息 + for (WxInstrument wxInstrument : wxInstrumentsListNew) { + WxFindInstrument infoInstrument = new WxFindInstrument(); + infoInstrument.setInstrumentId(wxInstrument.getId()); + infoInstrument.setWxFindId(wxFindProductStrategy.getId()); + infoInstrument.setWxFindType(WxFindEnum.PRODUCT_STARTEGY.getType()); + infoInstrument.setCreateBy(SecurityUtils.getUsername()); + infoInstrument.setCreateTime(DateUtils.getNowDate()); + wxFindInstrumentMapper.insertWxFindInstrument(infoInstrument); + } + } + + /** + * 修改产品攻略 + * + * @param strategy 产品攻略 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateWxFindProductStrategy(WxFindProductStrategy strategy) { + Date updateDate = DateUtils.getNowDate(); + String updateName = SecurityUtils.getUsername(); + Date updateTime = DateUtils.getNowDate(); + String updateUser = SecurityUtils.getUsername(); + // 是否为修改排序 + if (Objects.equals(strategy.getSortAndOpen(), Boolean.TRUE)) { + wxFindProductStrategyMapper.updateSort(strategy.getOperate(), strategy.getOrderNumber(), strategy.getId(), updateTime, updateUser); + return true; + } + strategy.setUpdateTime(updateDate); + strategy.setUpdateBy(updateName); + strategy.setForbidCompanyTagId(""); + strategy.setForbidWechatTagId(""); + strategy.setChannelId(""); + strategy.setShowWechatTagId(""); + strategy.setShowCompanyTagId(""); + strategy.setInstrumentId(""); + List showWechatTagNew = Lists.newArrayList(); + List showCompanyTagNew = Lists.newArrayList(); + List forbidWechatTagNew = Lists.newArrayList(); + List forbidCompanyTagNew = Lists.newArrayList(); + List handlerWechatTagNew = Lists.newArrayList(); + List handlerCompanyTagNew = Lists.newArrayList(); + List wxInstrumentList = Lists.newArrayList(); + // 构造标签关系 + this.commonHandler(strategy, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentList); + // 删除标签关联关系 + wxFindTagMapper.deleteWxFindTagByWxFindId(strategy.getId(), updateDate, updateName, WxFindEnum.PRODUCT_STARTEGY.getType()); + // 删除仪器关联关系 + wxFindInstrumentMapper.deleteWxFindInstrumentByWxFindId(strategy.getId(), updateDate, updateName, WxFindEnum.PRODUCT_STARTEGY.getType()); + + // 保存新的关联关系 + this.commonHandlerRelation(strategy, showWechatTagNew, showCompanyTagNew, forbidWechatTagNew, forbidCompanyTagNew, handlerWechatTagNew, handlerCompanyTagNew, wxInstrumentList); + + wxFindProductStrategyMapper.updateWxFindProductStrategy(strategy); + return true; + } + + /** + * 批量删除产品攻略 + * + * @param ids 需要删除的产品攻略主键 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteWxFindProductStrategyByIds(Long[] ids) { + Date updateDate = DateUtils.getNowDate(); + String updateName = SecurityUtils.getUsername(); + return wxFindProductStrategyMapper.deleteWxFindProductStrategyByIds(ids, updateDate, updateName); + } + + /** + * 删除产品攻略信息 + * + * @param id 产品攻略主键 + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int deleteWxFindProductStrategyById(Long id) { + Date updateDate = DateUtils.getNowDate(); + String updateName = SecurityUtils.getUsername(); + return wxFindProductStrategyMapper.deleteWxFindProductStrategyById(id, updateDate, updateName); + } +} diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxInstrumentInstructionsServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxInstrumentInstructionsServiceImpl.java index 85daf0a..665fc9f 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxInstrumentInstructionsServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxInstrumentInstructionsServiceImpl.java @@ -69,7 +69,8 @@ public class WxInstrumentInstructionsServiceImpl implements IWxInstrumentInstruc public int insertWxInstrumentInstructions(WxInstrumentInstructions wxInstrumentInstructions) { wxInstrumentInstructions.setCreateTime(DateUtils.getNowDate()); WxInstrumentInstructions query = new WxInstrumentInstructions(); - query.setName(wxInstrumentInstructions.getName()); + query.setNameCongruent(wxInstrumentInstructions.getName()); + query.setInstrumentId(wxInstrumentInstructions.getInstrumentId()); query.setStatus(Status.OK.getCode().longValue()); List instructions = wxInstrumentInstructionsMapper.selectWxInstrumentInstructionsList(query); if(instructions != null && instructions.size() > 0) { diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxModeServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxModeServiceImpl.java index ef57cab..451cd19 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxModeServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxModeServiceImpl.java @@ -12,6 +12,7 @@ import com.flossom.common.core.enums.TagTypeStatusEnum; import com.flossom.common.core.mapper.*; import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.StringUtils; +import com.flossom.common.core.utils.bean.BeanUtils; import com.flossom.common.security.utils.SecurityUtils; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.factory.annotation.Autowired; @@ -26,8 +27,7 @@ import org.springframework.transaction.annotation.Transactional; * @date 2024-01-17 */ @Service -public class WxModeServiceImpl implements IWxModeService -{ +public class WxModeServiceImpl implements IWxModeService { @Autowired private WxModeMapper wxModeMapper; @Autowired @@ -40,6 +40,8 @@ public class WxModeServiceImpl implements IWxModeService private WxModeCombineInfoMapper wxModeCombineInfoMapper; @Autowired private WxModeGearMapper wxModeGearMapper; + @Autowired + private WxModeWe200RelationMapper wxModeWe200RelationMapper; /** * 查询模式列 @@ -48,8 +50,7 @@ public class WxModeServiceImpl implements IWxModeService * @return 模式列 */ @Override - public WxMode selectWxModeById(Long id) - { + public WxMode selectWxModeById(Long id) { WxMode wxMode = wxModeMapper.selectWxModeById(id); // 处理标签回显 WxModeTag wxModeTag = new WxModeTag(); @@ -76,7 +77,7 @@ public class WxModeServiceImpl implements IWxModeService WxModeServiceInfo serviceInfo = new WxModeServiceInfo(); serviceInfo.setModeId(id); List wxModeServiceInfos = wxModeServiceInfoMapper.selectWxModeServiceInfoList(serviceInfo); - for (WxModeServiceInfo wxModeServiceInfo: wxModeServiceInfos) { + for (WxModeServiceInfo wxModeServiceInfo : wxModeServiceInfos) { List queryDate = Lists.newArrayList(); queryDate.add(wxModeServiceInfo.getServiceStartTime()); queryDate.add(wxModeServiceInfo.getServiceEndTime()); @@ -88,7 +89,7 @@ public class WxModeServiceImpl implements IWxModeService WxModeCombineInfo modeCombineInfo = new WxModeCombineInfo(); modeCombineInfo.setModeId(id); List wxModeCombineInfos = wxModeCombineInfoMapper.selectWxModeCombineInfoList(modeCombineInfo); - for(WxModeCombineInfo wxModeCombineInfo:wxModeCombineInfos) { + for (WxModeCombineInfo wxModeCombineInfo : wxModeCombineInfos) { String technologyInfo = wxModeCombineInfo.getTechnologyInfo(); if (StringUtils.isNotEmpty(technologyInfo)) { List technologyList = Arrays.asList(technologyInfo.split(",")).stream().map(String::valueOf).collect(Collectors.toList()); @@ -100,11 +101,16 @@ public class WxModeServiceImpl implements IWxModeService WxModeGear query = new WxModeGear(); query.setModeId(wxMode.getId()); List wxModeGearList = wxModeGearMapper.selectWxModeGearList(query); - if(wxModeGearList != null && wxModeGearList.size() > 0) { + if (wxModeGearList != null && wxModeGearList.size() > 0) { wxMode.setModeGear(wxModeGearList.stream().filter(wxModeGear -> wxModeGear.getType() == 1).collect(Collectors.toList())); wxMode.setModeBuzzing(wxModeGearList.stream().filter(wxModeGear -> wxModeGear.getType() == 2).collect(Collectors.toList())); wxMode.setModeVibrate(wxModeGearList.stream().filter(wxModeGear -> wxModeGear.getType() == 3).collect(Collectors.toList())); } + // 获取 WE200 膜布模式的特有属性 + if (StringUtils.equals(wxMode.getInstrumentModel(), "WE200")) { + WxModeWe200Relation wxModeWe200Relation = wxModeWe200RelationMapper.selectWxModeWe200RelationByModeId(wxMode.getId()); + BeanUtils.copyBeanProp(wxMode, wxModeWe200Relation); + } return wxMode; } @@ -115,8 +121,7 @@ public class WxModeServiceImpl implements IWxModeService * @return 模式列 */ @Override - public List selectWxModeList(WxMode wxMode) - { + public List selectWxModeList(WxMode wxMode) { return wxModeMapper.selectWxModeList(wxMode); } @@ -127,8 +132,8 @@ public class WxModeServiceImpl implements IWxModeService * @return 结果 */ @Override - public int insertWxMode(WxMode wxMode) - { + @Transactional + public int insertWxMode(WxMode wxMode) { wxMode.setCreateTime(DateUtils.getNowDate()); int i = wxModeMapper.insertWxMode(wxMode); // 插入企微关联关系 @@ -158,7 +163,7 @@ public class WxModeServiceImpl implements IWxModeService // 插入弹出资源数据 if (CollectionUtils.isNotEmpty(wxMode.getOpenSourceData())) { List openSourceData = wxMode.getOpenSourceData(); - for(WxModeOpenSource openSource: openSourceData) { + for (WxModeOpenSource openSource : openSourceData) { openSource.setCreateTime(DateUtils.getNowDate()); openSource.setModeId(wxMode.getId()); wxModeOpenSourceMapper.insertWxModeOpenSource(openSource); @@ -167,7 +172,7 @@ public class WxModeServiceImpl implements IWxModeService // 插入服务时间内容 if (CollectionUtils.isNotEmpty(wxMode.getServiceData())) { List serviceData = wxMode.getServiceData(); - for (WxModeServiceInfo wxModeServiceInfo: serviceData) { + for (WxModeServiceInfo wxModeServiceInfo : serviceData) { wxModeServiceInfo.setModeId(wxMode.getId()); wxModeServiceInfo.setCreateTime(DateUtils.getNowDate()); List startTimeArray = wxModeServiceInfo.getStartTimeArray(); @@ -177,9 +182,9 @@ public class WxModeServiceImpl implements IWxModeService } } // 插入组合数据 - if(CollectionUtils.isNotEmpty(wxMode.getCombineData())) { + if (CollectionUtils.isNotEmpty(wxMode.getCombineData())) { List combineData = wxMode.getCombineData(); - for (WxModeCombineInfo wxModeCombineInfo: combineData) { + for (WxModeCombineInfo wxModeCombineInfo : combineData) { wxModeCombineInfo.setModeId(wxMode.getId()); wxModeCombineInfo.setCreateTime(DateUtils.getNowDate()); if (CollectionUtils.isNotEmpty(wxModeCombineInfo.getTechnologyArray())) { @@ -190,9 +195,9 @@ public class WxModeServiceImpl implements IWxModeService } } // 保存换挡时间设置 - if(CollectionUtils.isNotEmpty(wxMode.getModeGear())) { + if (CollectionUtils.isNotEmpty(wxMode.getModeGear())) { List modeGearList = wxMode.getModeGear(); - for (WxModeGear wxModeGear: modeGearList) { + for (WxModeGear wxModeGear : modeGearList) { wxModeGear.setModeId(wxMode.getId()); wxModeGear.setType(1); wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername()); @@ -200,9 +205,9 @@ public class WxModeServiceImpl implements IWxModeService wxModeGearMapper.insertWxModeGear(wxModeGear); } } - if(CollectionUtils.isNotEmpty(wxMode.getModeBuzzing())) { + if (CollectionUtils.isNotEmpty(wxMode.getModeBuzzing())) { List modeGearList = wxMode.getModeGear(); - for (WxModeGear wxModeGear: modeGearList) { + for (WxModeGear wxModeGear : modeGearList) { wxModeGear.setModeId(wxMode.getId()); wxModeGear.setType(2); wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername()); @@ -210,9 +215,9 @@ public class WxModeServiceImpl implements IWxModeService wxModeGearMapper.insertWxModeGear(wxModeGear); } } - if(CollectionUtils.isNotEmpty(wxMode.getModeVibrate())) { + if (CollectionUtils.isNotEmpty(wxMode.getModeVibrate())) { List modeGearList = wxMode.getModeGear(); - for (WxModeGear wxModeGear: modeGearList) { + for (WxModeGear wxModeGear : modeGearList) { wxModeGear.setModeId(wxMode.getId()); wxModeGear.setType(3); wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername()); @@ -220,6 +225,13 @@ public class WxModeServiceImpl implements IWxModeService wxModeGearMapper.insertWxModeGear(wxModeGear); } } + // 保存 WE200 膜布模式的特有属性 + if (StringUtils.equals(wxMode.getInstrumentModel(), "WE200")) { + WxModeWe200Relation wxModeWe200Relation = new WxModeWe200Relation(); + BeanUtils.copyBeanProp(wxModeWe200Relation, wxMode); + wxModeWe200Relation.setModeId(wxMode.getId()); + wxModeWe200RelationMapper.insertWxModeWe200Relation(wxModeWe200Relation); + } return i; } @@ -230,8 +242,8 @@ public class WxModeServiceImpl implements IWxModeService * @return 结果 */ @Override - public int updateWxMode(WxMode wxMode) - { + @Transactional + public int updateWxMode(WxMode wxMode) { wxMode.setUpdateTime(DateUtils.getNowDate()); // 先删除关联关系 wxModeTagMapper.deleteWxModeTagByModeId(wxMode.getId()); @@ -268,7 +280,7 @@ public class WxModeServiceImpl implements IWxModeService // 插入弹出资源数据 if (CollectionUtils.isNotEmpty(wxMode.getOpenSourceData())) { List openSourceData = wxMode.getOpenSourceData(); - for(WxModeOpenSource openSource: openSourceData) { + for (WxModeOpenSource openSource : openSourceData) { openSource.setCreateTime(DateUtils.getNowDate()); openSource.setModeId(wxMode.getId()); wxModeOpenSourceMapper.insertWxModeOpenSource(openSource); @@ -277,7 +289,7 @@ public class WxModeServiceImpl implements IWxModeService // 插入服务时间已经内容 if (CollectionUtils.isNotEmpty(wxMode.getServiceData())) { List serviceData = wxMode.getServiceData(); - for (WxModeServiceInfo wxModeServiceInfo: serviceData) { + for (WxModeServiceInfo wxModeServiceInfo : serviceData) { wxModeServiceInfo.setModeId(wxMode.getId()); wxModeServiceInfo.setCreateTime(DateUtils.getNowDate()); List startTimeArray = wxModeServiceInfo.getStartTimeArray(); @@ -287,9 +299,9 @@ public class WxModeServiceImpl implements IWxModeService } } // 插入组合数据 - if(CollectionUtils.isNotEmpty(wxMode.getCombineData())) { + if (CollectionUtils.isNotEmpty(wxMode.getCombineData())) { List combineData = wxMode.getCombineData(); - for (WxModeCombineInfo wxModeCombineInfo: combineData) { + for (WxModeCombineInfo wxModeCombineInfo : combineData) { wxModeCombineInfo.setModeId(wxMode.getId()); wxModeCombineInfo.setCreateTime(DateUtils.getNowDate()); if (CollectionUtils.isNotEmpty(wxModeCombineInfo.getTechnologyArray())) { @@ -301,10 +313,10 @@ public class WxModeServiceImpl implements IWxModeService } // 保存换挡时间设置 wxModeGearMapper.deleteWxModeGearByModeId(wxMode.getId()); - if(CollectionUtils.isNotEmpty(wxMode.getModeGear())) { + if (CollectionUtils.isNotEmpty(wxMode.getModeGear())) { List modeGearList = wxMode.getModeGear(); - for (WxModeGear wxModeGear: modeGearList) { - if(wxModeGear.getId() == null) { + for (WxModeGear wxModeGear : modeGearList) { + if (wxModeGear.getId() == null) { wxModeGear.setModeId(wxMode.getId()); wxModeGear.setType(1); wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername()); @@ -313,10 +325,10 @@ public class WxModeServiceImpl implements IWxModeService } } } - if(CollectionUtils.isNotEmpty(wxMode.getModeBuzzing())) { + if (CollectionUtils.isNotEmpty(wxMode.getModeBuzzing())) { List modeGearList = wxMode.getModeBuzzing(); - for (WxModeGear wxModeGear: modeGearList) { - if(wxModeGear.getId() == null) { + for (WxModeGear wxModeGear : modeGearList) { + if (wxModeGear.getId() == null) { wxModeGear.setModeId(wxMode.getId()); wxModeGear.setType(2); wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername()); @@ -325,10 +337,10 @@ public class WxModeServiceImpl implements IWxModeService } } } - if(CollectionUtils.isNotEmpty(wxMode.getModeVibrate())) { + if (CollectionUtils.isNotEmpty(wxMode.getModeVibrate())) { List modeGearList = wxMode.getModeVibrate(); - for (WxModeGear wxModeGear: modeGearList) { - if(wxModeGear.getId() == null) { + for (WxModeGear wxModeGear : modeGearList) { + if (wxModeGear.getId() == null) { wxModeGear.setModeId(wxMode.getId()); wxModeGear.setType(3); wxModeGear.setCreateBy(SecurityUtils.getLoginUser().getUsername()); @@ -337,6 +349,22 @@ public class WxModeServiceImpl implements IWxModeService } } } + // 保存 WE200 膜布模式的特有属性 + if (StringUtils.equals(wxMode.getInstrumentModel(), "WE200")) { + WxModeWe200Relation wxModeWe200Relation = wxModeWe200RelationMapper.selectWxModeWe200RelationByModeId(wxMode.getId()); + if (wxModeWe200Relation != null) { + WxModeWe200Relation update = new WxModeWe200Relation(); + BeanUtils.copyBeanProp(update, wxMode); + update.setModeId(wxMode.getId()); + wxModeWe200RelationMapper.updateWxModeWe200Relation(update); + } else { + WxModeWe200Relation save = new WxModeWe200Relation(); + BeanUtils.copyBeanProp(save, wxMode); + save.setModeId(wxMode.getId()); + wxModeWe200RelationMapper.insertWxModeWe200Relation(save); + } + } + return wxModeMapper.updateWxMode(wxMode); } @@ -348,9 +376,9 @@ public class WxModeServiceImpl implements IWxModeService */ @Override @Transactional - public int deleteWxModeByIds(Long[] ids) - { + public int deleteWxModeByIds(Long[] ids) { for (Long modeId : ids) { + wxModeWe200RelationMapper.deleteWxModeWe200RelationById(modeId); wxModeGearMapper.deleteWxModeGearByModeId(modeId); } return wxModeMapper.deleteWxModeByIds(ids); @@ -363,8 +391,10 @@ public class WxModeServiceImpl implements IWxModeService * @return 结果 */ @Override - public int deleteWxModeById(Long id) - { + @Transactional + public int deleteWxModeById(Long id) { + WxMode wxMode = wxModeMapper.selectWxModeById(id); + wxModeWe200RelationMapper.deleteWxModeWe200RelationById(wxMode.getId()); return wxModeMapper.deleteWxModeById(id); } } diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java index d16d0b3..fc94289 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserInstrumentServiceImpl.java @@ -1,16 +1,30 @@ package com.flossom.system.service.impl; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; +import cn.hutool.core.util.StrUtil; import com.alibaba.nacos.shaded.com.google.common.collect.Maps; +import com.flossom.common.core.constant.IntegralChangTextConstants; import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.req.WxUserInstrumentExportVm; +import com.flossom.common.core.domain.shuyun.ShuYunPointChange; +import com.flossom.common.core.domain.shuyun.ShuYunUserTagReq; import com.flossom.common.core.enums.BindingStatusEnums; +import com.flossom.common.core.enums.ShuYunPointSourceEnum; import com.flossom.common.core.mapper.*; import com.flossom.common.core.utils.DateUtils; +import com.flossom.common.core.utils.uuid.IdUtils; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.InstrumentTag; +import com.flossom.common.security.utils.shuyun.ShuYunApiUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -25,8 +39,10 @@ import org.springframework.util.CollectionUtils; * @date 2024-01-10 */ @Service -public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService -{ +public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService { + + protected final Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired private WxUserInstrumentMapper wxUserInstrumentMapper; @Autowired @@ -39,6 +55,10 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService private WxInstrumentSerialLogMapper instrumentSerialLogMapper; @Autowired private WxUserInstrumentLogMapper wxUserInstrumentLogMapper; + @Autowired + private WxInstrumentSerialMapper wxInstrumentSerialMapper; + @Autowired + private ShuYunConfig shuYunConfig; /** * 查询用户仪器绑定 @@ -47,8 +67,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService * @return 用户仪器绑定 */ @Override - public WxUserInstrument selectWxUserInstrumentById(Long id) - { + public WxUserInstrument selectWxUserInstrumentById(Long id) { return wxUserInstrumentMapper.selectWxUserInstrumentById(id); } @@ -59,8 +78,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService * @return 用户仪器绑定 */ @Override - public List selectWxUserInstrumentList(WxUserInstrument wxUserInstrument) - { + public List selectWxUserInstrumentList(WxUserInstrument wxUserInstrument) { // 处理仪器字段 if (!CollectionUtils.isEmpty(wxUserInstrument.getInstrumentIdArray())) { String instrumentIds = wxUserInstrument.getInstrumentIdArray().stream().map(String::valueOf).collect(Collectors.joining(",")); @@ -82,8 +100,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService * @return 结果 */ @Override - public int insertWxUserInstrument(WxUserInstrument wxUserInstrument) - { + public int insertWxUserInstrument(WxUserInstrument wxUserInstrument) { wxUserInstrument.setCreateTime(DateUtils.getNowDate()); return wxUserInstrumentMapper.insertWxUserInstrument(wxUserInstrument); } @@ -95,13 +112,12 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService * @return 结果 */ @Override - public int updateWxUserInstrument(WxUserInstrument wxUserInstrument) - { + public WxUserInstrument updateWxUserInstrument(WxUserInstrument wxUserInstrument) { wxUserInstrument.setUpdateTime(DateUtils.getNowDate()); if (BindingStatusEnums.UN_BOUND.getCode() == wxUserInstrument.getBindingStatus()) { // 如果操作解绑,用户绑定仪器需要减一 WxUserInstrument userInstrument = wxUserInstrumentMapper.selectWxUserInstrumentById(wxUserInstrument.getId()); - if(Objects.nonNull(userInstrument)) { + if (Objects.nonNull(userInstrument)) { // 获取绑定的用户 Long userId = userInstrument.getUserId(); if (Objects.nonNull(userId)) { @@ -127,7 +143,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService wxInstrumentSerialLog.setUserHeadimg(userMember.getHeadimg()); wxInstrumentSerialLog.setInstrumentId(userInstrument.getInstrumentId()); WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(userInstrument.getInstrumentId()); - if(wxInstrument != null) { + if (wxInstrument != null) { wxInstrumentSerialLog.setInstrumentName(wxInstrument.getName()); } wxInstrumentSerialLog.setSerial(userInstrument.getSerial()); @@ -138,7 +154,59 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService } } } - return wxUserInstrumentMapper.updateWxUserInstrument(wxUserInstrument); + + /** + * TODO: 记录操作日志 + */ + wxUserInstrumentMapper.updateWxUserInstrument(wxUserInstrument); + return wxUserInstrumentMapper.selectWxUserInstrumentById(wxUserInstrument.getId()); + } + + @Transactional + public void syncUnBindingInstrumentInfoToShuYun(WxUserInstrument wxUserInstrument) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:同步解绑仪器信息 (已完成) + List tagsMark = new ArrayList<>(); + InstrumentTag instrumentTag = shuYunConfig.getFixedTagInfo().getInstrumentTag(); + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(wxUserInstrument.getUserId()); + // 解绑日期 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentUnBandingTagId(), Arrays.asList(DateFormatUtils.format(wxUserInstrument.getUpdateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } + } + + @Transactional + public void syncUnBindingIntegralToShuYun(WxUserInstrument wxUserInstrument) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + /** + * TODO: 仪器绑定与数云同步积分(已完成) + */ + WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(wxUserInstrument.getInstrumentId()); + if (wxInstrument.getBindingCredit() > 0) { + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(wxUserInstrument.getUserId()); + ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), + IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), -wxInstrument.getBindingCredit(), + LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), + StrUtil.format(IntegralChangTextConstants.UNBINDING_INSTRUMENT, wxInstrument.getName(), wxInstrument.getBindingCredit())); + ShuYunApiUtils.pointChange(shuYunPointChange); + } + } catch (Exception exception) { + logger.error(exception.getMessage()); + } } /** @@ -148,8 +216,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService * @return 结果 */ @Override - public int deleteWxUserInstrumentByIds(Long[] ids) - { + public int deleteWxUserInstrumentByIds(Long[] ids) { return wxUserInstrumentMapper.deleteWxUserInstrumentByIds(ids); } @@ -160,22 +227,21 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService * @return 结果 */ @Override - public int deleteWxUserInstrumentById(Long id) - { + public int deleteWxUserInstrumentById(Long id) { return wxUserInstrumentMapper.deleteWxUserInstrumentById(id); } @Override @Transactional - public Map changeSerial(WxUserInstrument wxUserInstrument) { - Map resultMap = Maps.newHashMap(); + public Map changeSerial(WxUserInstrument wxUserInstrument) { + Map resultMap = Maps.newHashMap(); // 查询序列号是否有效存在 WxInstrumentSerial serial = new WxInstrumentSerial(); serial.setSerial(wxUserInstrument.getSerial()); serial.setValidStatus(1); // 有效 WxInstrumentSerial wxInstrumentSerial = instrumentSerialMapper.selectEntityListBySerial(serial); if (wxInstrumentSerial == null) { - resultMap.put("message","序列号无效,请确定后再绑定"); + resultMap.put("message", "序列号无效,请确定后再绑定"); resultMap.put("code", "500"); return resultMap; } @@ -185,27 +251,29 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService userInstrument.setBindingStatus(BindingStatusEnums.BINDED.getCode()); Integer count = wxUserInstrumentMapper.selectUiByInstrumentId(userInstrument); if (count != null && count > 0) { - resultMap.put("message","该序列号已经被绑定"); + resultMap.put("message", "该序列号已经被绑定"); resultMap.put("code", "500"); return resultMap; } // 开始绑定 WxUserInstrument userInstrumentRecord = wxUserInstrumentMapper.selectWxUserInstrumentById(wxUserInstrument.getId()); String oldSerial = userInstrumentRecord.getSerial(); + resultMap.put("oldSerial", oldSerial); + resultMap.put("userId", String.valueOf(userInstrumentRecord.getUserId())); // 操作变更日记 // 是否已经绑定 if (0 == userInstrumentRecord.getBindingStatus()) { // 已经绑定的情况下,先解绑,再绑定 0-已绑 2-解绑 - this.saveLog(userInstrumentRecord,2); + this.saveLog(userInstrumentRecord, 2); } else { // 处于未绑定的情况下,需要用户仪器加 1,已绑定的情况下不需要变动 - if(Objects.nonNull(userInstrumentRecord)) { + if (Objects.nonNull(userInstrumentRecord)) { // 获取绑定的用户 Long userId = userInstrumentRecord.getUserId(); if (Objects.nonNull(userId)) { WxUserMember userMember = wxUserMemberMapper.selectWxUserMemberById(userId); if (Objects.nonNull(userMember)) { - userMember.setDevicesNum(userMember.getDevicesNum() + 1 ); + userMember.setDevicesNum(userMember.getDevicesNum() + 1); wxUserMemberMapper.updateWxUserMember(userMember); } } @@ -217,7 +285,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService userInstrumentRecord.setSerial(instrumentSerialVo.getSerial()); // userInstrumentRecord.setSerialImage(userInstrument.getSerialImage()); // 从新绑定 - this.saveLog(userInstrumentRecord,0); + this.saveLog(userInstrumentRecord, 0); // 更新绑定数据 WxInstrumentSerial oldUpdate = new WxInstrumentSerial(); @@ -239,9 +307,85 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService userInstrumentRecord.setInstrumentId(null); userInstrumentRecord.setBindingStatus(BindingStatusEnums.BINDED.getCode()); wxUserInstrumentMapper.updateWxUserInstrument(userInstrumentRecord); - resultMap.put("message","换绑序列号成功"); + + /** + * TODO: 添加操作日志 + */ + resultMap.put("message", "换绑序列号成功"); resultMap.put("code", "200"); - return resultMap ; + resultMap.put("userInstrumentId", String.valueOf(wxUserInstrument.getId())); + return resultMap; + } + + @Override + @Transactional + public void syncUnBindingInstrumentInfoToShuYun(String userId, String oldSerial, WxUserInstrument wxUserInstrument) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:同步解绑仪器信息 (已完成) + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(Long.valueOf(userId)); + List tagsMark = new ArrayList<>(); + InstrumentTag instrumentTag = shuYunConfig.getFixedTagInfo().getInstrumentTag(); + // 解绑日期 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentUnBandingTagId(), Arrays.asList(DateFormatUtils.format(wxUserInstrument.getUpdateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + oldSerial)); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } + } + + @Override + @Transactional + public void syncInstrumentInfoToShuYun(WxUserInstrument wxUserInstrument) { + // 拦截数云同步异常 + try { + /** + * TODO: 修改操作日志状态(未完成) + */ + + // TODO:同步绑定仪器信息 (已完成) + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(wxUserInstrument.getUserId()); + List tagsMark = new ArrayList<>(); + InstrumentTag instrumentTag = shuYunConfig.getFixedTagInfo().getInstrumentTag(); + // 序列号 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentBandingTagId(), Arrays.asList(wxUserInstrument.getSerial()), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + // 绑定日期 + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentSerialTagId(), Arrays.asList(DateFormatUtils.format(wxUserInstrument.getUpdateTime(), DateUtils.YYYY_MM_DD_HH_MM_SS)), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + // 仪器序列号-状态 + WxInstrumentSerial querySerial = new WxInstrumentSerial(); + querySerial.setSerial(wxUserInstrument.getSerial()); + WxInstrumentSerial wxInstrumentSerial = wxInstrumentSerialMapper.selectEntityListBySerial(querySerial); + if (wxInstrumentSerial != null) { + if (wxInstrumentSerial.getValidStatus() != null && wxInstrumentSerial.getValidStatus() == 1) { + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentSerialStatusTagId(), Arrays.asList("有效"), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + } + if (wxInstrumentSerial.getValidStatus() != null && wxInstrumentSerial.getValidStatus() == 0) { + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentSerialStatusTagId(), Arrays.asList("无效"), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + } + } + // 仪器名称 + WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(wxUserInstrument.getInstrumentId()); + tagsMark.add(new ShuYunUserTagReq<>( + instrumentTag.getInstrumentName(), Arrays.asList(wxInstrument.getName()), + instrumentTag.getInstrumentTagId(), wxUserMember.getUnionid() + wxUserInstrument.getSerial())); + ShuYunApiUtils.markUserTagBatch(wxUserMember.getUnionid(), tagsMark); + } catch (Exception exception) { + logger.error(exception.getMessage()); + } } @Override @@ -254,7 +398,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService // 设置到期时间 Calendar calendar = Calendar.getInstance(); // 将当前时间加多少年 - calendar.add(Calendar.YEAR, wxUserInstrument.getGuarantee().intValue()); + calendar.add(Calendar.YEAR, wxUserInstrument.getGuarantee().intValue()); Date lastYear = calendar.getTime(); userInstrumentRecord.setGuaranteeEndtime(lastYear); wxUserInstrumentMapper.updateWxUserInstrument(userInstrumentRecord); @@ -269,7 +413,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService List wxUserInstruments = Lists.newArrayList(); // 判断是不是全量导出 - if(CollectionUtils.isEmpty(exportVm.getUserInstrumentIdList())) { + if (CollectionUtils.isEmpty(exportVm.getUserInstrumentIdList())) { // 全量导出 wxUserInstruments = this.selectWxUserInstrumentList(exportVm); } else { @@ -287,20 +431,20 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService } // 处理导出需要的数据 - private List handleExportData(List wxUserInstruments, String flag){ + private List handleExportData(List wxUserInstruments, String flag) { List resultList = Lists.newArrayList(); - for (WxUserInstrument wxUserInstrument: wxUserInstruments) { + for (WxUserInstrument wxUserInstrument : wxUserInstruments) { WxUserInstrumentLog userInstrumentLog = new WxUserInstrumentLog(); userInstrumentLog.setUserInstrumentId(wxUserInstrument.getId()); List wxUserInstrumentLogList = wxUserInstrumentLogMapper.selectWxUserInstrumentLogList(userInstrumentLog); - if ("all".equals(flag)) { + if ("all".equals(flag)) { // 补充日志详情数据 - if (!CollectionUtils.isEmpty(wxUserInstrumentLogList)){ + if (!CollectionUtils.isEmpty(wxUserInstrumentLogList)) { for (WxUserInstrumentLog userInstrumentLogRecord : wxUserInstrumentLogList) { // 组装响应数据 WxUserInstrumentExportVm exportVm = new WxUserInstrumentExportVm(); // 先复制数据 - BeanUtils.copyProperties(wxUserInstrument,exportVm); + BeanUtils.copyProperties(wxUserInstrument, exportVm); if (wxUserInstrument.getBindingStatus() == 0) { exportVm.setBindingStatus("已绑定"); } else { @@ -323,7 +467,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService // 组装响应数据 WxUserInstrumentExportVm exportVm = new WxUserInstrumentExportVm(); // 先复制数据 - BeanUtils.copyProperties(wxUserInstrument,exportVm); + BeanUtils.copyProperties(wxUserInstrument, exportVm); if (wxUserInstrument.getBindingStatus() == 0) { exportVm.setBindingStatus("已绑定"); } else { @@ -336,7 +480,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService exportVm.setMobile(userMember.getMobile()); } // 补充日志详情数据 - if (!CollectionUtils.isEmpty(wxUserInstrumentLogList)){ + if (!CollectionUtils.isEmpty(wxUserInstrumentLogList)) { WxUserInstrumentLog userInstrumentLogRecord = wxUserInstrumentLogList.get(0); exportVm.setUserInstrumentLogSerial(userInstrumentLogRecord.getSerial()); exportVm.setUserInstrumentLogBingStatus(userInstrumentLogRecord.getBindingStatus() == 0 ? "已绑定" : "已解绑"); @@ -351,7 +495,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService } // 默认加上详情的字段 - private void addDetailExportFields(WxUserInstrument exportVm){ + private void addDetailExportFields(WxUserInstrument exportVm) { List exportFields = exportVm.getExportFields(); exportFields.add("userInstrumentLogId"); exportFields.add("userInstrumentLogSerial"); @@ -359,7 +503,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService exportFields.add("userInstrumentLogCreateTime"); } - public int saveLog(WxUserInstrument userInstrumentRecord, int status){ + public int saveLog(WxUserInstrument userInstrumentRecord, int status) { WxUserInstrumentLog log = new WxUserInstrumentLog(); log.setUserInstrumentId(userInstrumentRecord.getId()); log.setBindingStatus(status); @@ -367,7 +511,7 @@ public class WxUserInstrumentServiceImpl implements IWxUserInstrumentService log.setInstrumentId(userInstrumentRecord.getInstrumentId()); log.setUserId(userInstrumentRecord.getUserId()); WxInstrument wxInstrument = wxInstrumentMapper.selectWxInstrumentById(userInstrumentRecord.getInstrumentId()); - if(wxInstrument != null) { + if (wxInstrument != null) { log.setInstrumentName(wxInstrument.getName()); } log.setSerialImage(userInstrumentRecord.getSerialImage()); diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java index 049aa29..3851cd7 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserMemberServiceImpl.java @@ -7,12 +7,12 @@ import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; -import com.flossom.common.core.constant.IntegralChangTextConstants; import com.flossom.common.core.domain.entity.*; import com.flossom.common.core.domain.req.WxUserIntegralVm; import com.flossom.common.core.domain.req.WxUserMemberReq; import com.flossom.common.core.domain.req.WxUserMemberVm; import com.flossom.common.core.domain.ret.WxUserMemberRet; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; import com.flossom.common.core.domain.shuyun.ShuYunPointChange; import com.flossom.common.core.domain.vo.WxUserMemberVo; import com.flossom.common.core.enums.*; @@ -22,9 +22,9 @@ import com.flossom.common.core.utils.DateUtils; import com.flossom.common.core.utils.StringUtils; import com.flossom.common.core.utils.uuid.IdUtils; import com.flossom.common.security.utils.SecurityUtils; +import com.flossom.common.security.utils.shuyun.ShuYunConfig; +import com.flossom.system.service.IBatchOperationService; import com.flossom.system.service.ISysUserService; -import com.flossom.system.utils.shuyun.ShuYunApiUtils; -import com.flossom.system.utils.shuyun.ShuYunConfig; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -45,9 +45,6 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { @Autowired private WxUserTagMapper wxUserTagMapper; - @Autowired - private SysTagMapper sysTagMapper; - @Autowired private WxUserIntegralLogMapper wxUserIntegralLogMapper; @@ -81,6 +78,9 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { @Autowired private ShuYunConfig shuYunConfig; + @Autowired + private IBatchOperationService batchOperationService; + /** * 查询用户 * @@ -164,7 +164,8 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { * @return 结果 */ @Override - public int updateWxUserMember(WxUserMemberReq wxUserMemberReq) { + @Transactional + public ShuYunBatchTagOperation updateWxUserMember(WxUserMemberReq wxUserMemberReq) { wxUserMemberReq.setUpdateTime(DateUtils.getNowDate()); WxUserMember wxUserMember = new WxUserMember(); BeanUtils.copyProperties(wxUserMemberReq, wxUserMember); @@ -182,19 +183,68 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { wxUserMember.setArea(area.getName()); } - // 删除用户与标签的关联关系 - wxUserTagMapper.deleteWxUserTagByUserId(wxUserMemberReq.getId()); - // 添加用户与小程序标签关联 - List userIdList = new ArrayList<>(); - userIdList.add(wxUserMemberReq.getId().intValue()); - if (wxUserMemberReq.getMiniProgramTags() != null && wxUserMemberReq.getMiniProgramTags().size() > 0) { - batchAddMiniProgramTag(wxUserMemberReq.getMiniProgramTags(), userIdList); + // 1、查询该用户拥有的标签 + List existedTagIdList = wxUserTagMapper.selectWxUserTagByUserId(wxUserMemberReq.getId().intValue(), null); + // 计算新增加元素 + List needAddTagIdList = new ArrayList<>(); + // 计算要删除的元素 + List needDelTagIdList = new ArrayList<>(); + List miniTagIdList = wxUserMemberReq.getMiniProgramTags(); + List wecomTagIdList = wxUserMemberReq.getWecomTags(); + if (existedTagIdList != null && existedTagIdList.size() > 0) { + if (miniTagIdList != null && miniTagIdList.size() > 0) { + needAddTagIdList.addAll(miniTagIdList.stream().filter(obj -> !existedTagIdList.contains(obj)).collect(Collectors.toList())); + needDelTagIdList.addAll(existedTagIdList.stream().filter(obj -> !miniTagIdList.contains(obj)).collect(Collectors.toList())); + } + if (wecomTagIdList != null && wecomTagIdList.size() > 0) { + needAddTagIdList.addAll(wecomTagIdList.stream().filter(obj -> !existedTagIdList.contains(obj)).collect(Collectors.toList())); + needDelTagIdList.addAll(existedTagIdList.stream().filter(obj -> !wecomTagIdList.contains(obj)).collect(Collectors.toList())); + } + } else { + needAddTagIdList.addAll(miniTagIdList); + needAddTagIdList.addAll(wecomTagIdList); } - // 添加用户与外部标签关联 - if (wxUserMemberReq.getWecomTags() != null && wxUserMemberReq.getWecomTags().size() > 0) { - batchAddWecomTag(wxUserMemberReq.getWecomTags(), userIdList); + + // 2、删除被去除了标签 + wxUserTagMapper.deleteBatch(needDelTagIdList, wxUserMemberReq.getId().intValue(), null); + + // 3、添加用户与标签的关联 + List list = new ArrayList<>(); + WxUserTag wxUserTag; + if (needAddTagIdList != null && needAddTagIdList.size() > 0) { + for (Integer addTagId : needAddTagIdList) { + wxUserTag = new WxUserTag(null, wxUserMember.getId().longValue(), null, addTagId.longValue(), TagTypeStatusEnum.MINI_PROGRAM.getCode(), null); + wxUserTag.setCreateTime(DateUtils.getNowDate()); + list.add(wxUserTag); + } + wxUserTagMapper.insertBatch(list); + } + wxUserMemberMapper.updateWxUserMember(wxUserMember); + // TODO: 补充下一步数云同步日志(未完成) + return new ShuYunBatchTagOperation(needAddTagIdList, needDelTagIdList, wxUserMemberReq.getId(), wxUserMember.getUnionid()); + } + + /** + * 将修改 小程序标签和企微标签同步到数云 + * + * @param shuYunBatchTagOperationList + */ + @Override + public void syncShuYunUserTag(List shuYunBatchTagOperationList) { + if (shuYunBatchTagOperationList != null && shuYunBatchTagOperationList.size() > 0) { + for (ShuYunBatchTagOperation shuYunBatchTagOperation : shuYunBatchTagOperationList) { + batchOperationService.syncShuYunUserTag(shuYunBatchTagOperation); + } + } + } + + @Override + public void syncShuYunIntegral(List shuYunPointChangeList) { + if (shuYunPointChangeList != null && shuYunPointChangeList.size() > 0) { + for (ShuYunPointChange shuYunPointChange : shuYunPointChangeList) { + batchOperationService.syncShuYunIntegral(shuYunPointChange); + } } - return wxUserMemberMapper.updateWxUserMember(wxUserMember); } /** @@ -269,76 +319,89 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { /** * 批量添加外部标签 - * - * @param tagIdList - * @param userIdList */ @Override - public void batchAddWecomTag(List tagIdList, List userIdList) { - batchAddTag(tagIdList, userIdList, TagTypeStatusEnum.ENTERPRISE_WECHAT.getCode()); + @Transactional + public List batchAddWecomTag(List tagIdList, List userIdList, Boolean isWriteLog) { + return batchAddTag(tagIdList, userIdList, TagTypeStatusEnum.ENTERPRISE_WECHAT.getCode(), true); } /** * 批量添加小程序标签 - * - * @param tagIdList - * @param userIdList */ @Override - public void batchAddMiniProgramTag(List tagIdList, List userIdList) { - batchAddTag(tagIdList, userIdList, TagTypeStatusEnum.MINI_PROGRAM.getCode()); + @Transactional + public List batchAddMiniProgramTag(List tagIdList, List userIdList, Boolean isWriteLog) { + return batchAddTag(tagIdList, userIdList, TagTypeStatusEnum.MINI_PROGRAM.getCode(), true); } /** - * 批量添加标签 - * code 标签类型 {@link TagTypeStatusEnum} + * 给用户标记标签 * - * @param tagIdList - * @param userIdList + * @param isWriteLog 是否写入操作日志。写入操作日志后,后面需要调用数云接口,修改操作日志状态 */ - public void batchAddTag(List tagIdList, List userIdList, Integer code) { - // 对单个标签操作 - for (Integer tagId : tagIdList) { - SysTag sysTag = sysTagMapper.selectDeptById(tagId.longValue()); - if (sysTag != null) { - List needAddIdList = new ArrayList<>(); - // 1、查询该标签下,有那些用户关联 - List existedUserList = wxUserTagMapper.selectWxUserTagByTagId(tagId, code); - Iterator iterator = userIdList.iterator(); + @Transactional + public List batchAddTag(List tagIdList, List userIdList, Integer type, Boolean isWriteLog) { + if (type == null) { + throw new ServiceException("标签类型不能为空"); + } + List shuYunBatchTagOperationList = new ArrayList<>(); + for (Integer userId : userIdList) { + // 1、查询该用户拥有的标签 + List existedTagIdList = wxUserTagMapper.selectWxUserTagByUserId(userId, type); + List needAddTagIdList = new ArrayList<>();// 需要添加的标签ID + if (existedTagIdList != null && existedTagIdList.size() > 0) { + Iterator iterator = tagIdList.iterator(); while (iterator.hasNext()) { - Integer element = iterator.next(); - if (!existedUserList.contains(element)) { - needAddIdList.add(element); + Integer addTagId = iterator.next(); + if (!existedTagIdList.contains(addTagId)) { + needAddTagIdList.add(addTagId); } } - - // 2、添加用户与标签的关联 - List list = new ArrayList<>(); - WxUserTag wxUserTag; - if (needAddIdList != null && needAddIdList.size() > 0) { - for (Integer userId : needAddIdList) { - wxUserTag = new WxUserTag(null, userId.longValue(), sysTag.getTagName(), tagId.longValue(), code, null); - wxUserTag.setCreateTime(DateUtils.getNowDate()); - list.add(wxUserTag); - } - wxUserTagMapper.insertBatch(list); + } else { + needAddTagIdList.containsAll(tagIdList); + } + // 2、添加用户与标签的关联 + List list = new ArrayList<>(); + WxUserTag wxUserTag; + if (needAddTagIdList != null && needAddTagIdList.size() > 0) { + for (Integer addTagId : needAddTagIdList) { + wxUserTag = new WxUserTag(null, userId.longValue(), null, addTagId.longValue(), type, null); + wxUserTag.setCreateTime(DateUtils.getNowDate()); + list.add(wxUserTag); } + wxUserTagMapper.insertBatch(list); + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(userId.longValue()); + shuYunBatchTagOperationList.add(new ShuYunBatchTagOperation(needAddTagIdList, null, userId.longValue(), wxUserMember.getUnionid())); } } - // TODO: 对接数赢:批量添加小程序标签 + if (isWriteLog) { + // TODO: 添加数云操作日志(未完成) + } + return shuYunBatchTagOperationList; } /** * 批量删除小程序标签 - * - * @param tagIdList - * @param userIdList */ @Override - public void batchDelMiniProgramTag(List tagIdList, List userIdList) { - wxUserTagMapper.deleteBatch(tagIdList, userIdList); - // TODO: 对接数赢:批量删除小程序标签 + @Transactional + public List batchDelMiniProgramTag(List tagIdList, List userIdList, Boolean isWriteLog) { + List shuYunBatchTagOperationList = new ArrayList<>(); + if (userIdList != null && userIdList.size() > 0) { + for (Integer userId : userIdList) { + if (tagIdList != null && tagIdList.size() > 0) { + wxUserTagMapper.deleteBatch(tagIdList, userId, TagTypeStatusEnum.MINI_PROGRAM.getCode()); + } + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(userId.longValue()); + shuYunBatchTagOperationList.add(new ShuYunBatchTagOperation(null, tagIdList, userId.longValue(), wxUserMember.getUnionid())); + } + } + if (isWriteLog) { + // TODO: 添加数云操作日志(未完成) + } + return shuYunBatchTagOperationList; } /** @@ -385,52 +448,57 @@ public class WxUserMemberServiceImpl implements IWxUserMemberService { * 增加/减少 积分 * * @param wxUserIntegralVm - * @param userId + * @param userIdList */ - @Transactional @Override - public void changIntegral(WxUserIntegralVm wxUserIntegralVm, Long userId) { - // 1、记录积分操作日志 - WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(userId); - if (wxUserMember != null) { - WxUserIntegralLog wxUserIntegralLog = new WxUserIntegralLog(); - wxUserIntegralLog.setUserId(userId); - wxUserIntegralLog.setUserName(wxUserMember.getNickname()); - wxUserIntegralLog.setUserPhone(wxUserMember.getMobile()); - BeanUtils.copyProperties(wxUserIntegralVm, wxUserIntegralLog); - wxUserIntegralLog.setCreateTime(DateUtils.getNowDate()); - wxUserIntegralLog.setCreateBy(SecurityUtils.getUsername()); - wxUserIntegralLogMapper.insertWxUserIntegralLog(wxUserIntegralLog); - } - // 2、变更总积分 - WxUserMember changeUserMember = new WxUserMember(); - if (wxUserIntegralVm.getSource().equals(IntegralChangeTypeEnum.INCREASE.getCode())) { - changeUserMember.setCredit(wxUserMember.getCredit() + wxUserIntegralVm.getFloatScore().intValue()); - } else if (wxUserIntegralVm.getSource().equals(IntegralChangeTypeEnum.REDUCE.getCode())) { - if (wxUserMember.getCredit() >= wxUserIntegralVm.getFloatScore().intValue()) { - changeUserMember.setCredit(wxUserMember.getCredit() - wxUserIntegralVm.getFloatScore().intValue()); + @Transactional + public List changIntegral(WxUserIntegralVm wxUserIntegralVm, List userIdList) { + List shuYunPointChangeList = new ArrayList<>(); + for (Long userId : userIdList) { + // 1、记录积分操作日志 + WxUserMember wxUserMember = wxUserMemberMapper.selectWxUserMemberById(userId); + if (wxUserMember != null) { + WxUserIntegralLog wxUserIntegralLog = new WxUserIntegralLog(); + wxUserIntegralLog.setUserId(userId); + wxUserIntegralLog.setUserName(wxUserMember.getNickname()); + wxUserIntegralLog.setUserPhone(wxUserMember.getMobile()); + BeanUtils.copyProperties(wxUserIntegralVm, wxUserIntegralLog); + wxUserIntegralLog.setCreateTime(DateUtils.getNowDate()); + wxUserIntegralLog.setCreateBy(SecurityUtils.getUsername()); + wxUserIntegralLogMapper.insertWxUserIntegralLog(wxUserIntegralLog); + } + // 2、变更总积分 + WxUserMember changeUserMember = new WxUserMember(); + if (wxUserIntegralVm.getSource().equals(IntegralChangeTypeEnum.INCREASE.getCode())) { + changeUserMember.setCredit(wxUserMember.getCredit() + wxUserIntegralVm.getFloatScore().intValue()); + } else if (wxUserIntegralVm.getSource().equals(IntegralChangeTypeEnum.REDUCE.getCode())) { + if (wxUserMember.getCredit() >= wxUserIntegralVm.getFloatScore().intValue()) { + changeUserMember.setCredit(wxUserMember.getCredit() - wxUserIntegralVm.getFloatScore().intValue()); + } else { + changeUserMember.setCredit(0); + } + } + changeUserMember.setId(wxUserMember.getId()); + changeUserMember.setUpdateTime(DateUtils.getNowDate()); + changeUserMember.setUpdateBy(SecurityUtils.getUsername()); + wxUserMemberMapper.updateWxUserMember(changeUserMember); + + // 积分操作对象 + Integer credit; + if (StringUtils.equals(IntegralChangeTypeEnum.INCREASE.getCode(), wxUserIntegralVm.getSource())) { + credit = wxUserIntegralVm.getFloatScore().intValue(); } else { - changeUserMember.setCredit(0); + credit = -wxUserIntegralVm.getFloatScore().intValue(); } + shuYunPointChangeList.add(new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), + IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), credit, + LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), wxUserIntegralVm.getRemarkContent())); } - changeUserMember.setId(wxUserMember.getId()); - changeUserMember.setUpdateTime(DateUtils.getNowDate()); - changeUserMember.setUpdateBy(SecurityUtils.getUsername()); - wxUserMemberMapper.updateWxUserMember(changeUserMember); + /** - * TODO:批量积分操作,同步数云(已完成,未保存操作) + * TODO:积分操作日志(未完成) */ - Integer credit; - if (StringUtils.equals(IntegralChangeTypeEnum.INCREASE.getCode(), wxUserIntegralVm.getSource())) { - credit = wxUserIntegralVm.getFloatScore().intValue(); - } else { - credit = -wxUserIntegralVm.getFloatScore().intValue(); - } - ShuYunPointChange shuYunPointChange = new ShuYunPointChange(wxUserMember.getUnionid(), shuYunConfig.getPlatCode(), shuYunConfig.getShopId(), - IdUtils.generateSequence(), ShuYunPointSourceEnum.OTHER.getSource(), credit, - LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS)), IntegralChangTextConstants.DAILY_CLOCK); - ShuYunApiUtils.pointChange(shuYunPointChange); - + return shuYunPointChangeList; } @Override diff --git a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserScriptLogServiceImpl.java b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserScriptLogServiceImpl.java index 731d466..dd64bdd 100644 --- a/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserScriptLogServiceImpl.java +++ b/flossom-modules/flossom-system/src/main/java/com/flossom/system/service/impl/WxUserScriptLogServiceImpl.java @@ -1,5 +1,6 @@ package com.flossom.system.service.impl; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -7,6 +8,7 @@ import com.flossom.common.core.domain.entity.WxScriptTag; import com.flossom.common.core.domain.entity.WxScriptTemplate; import com.flossom.common.core.domain.entity.WxUserScriptLog; import com.flossom.common.core.domain.req.WxUserScriptReq; +import com.flossom.common.core.domain.shuyun.ShuYunBatchTagOperation; import com.flossom.common.core.enums.IsScriptTemplateEnum; import com.flossom.common.core.enums.Status; import com.flossom.common.core.enums.TagTypeStatusEnum; @@ -110,7 +112,8 @@ public class WxUserScriptLogServiceImpl implements IWxUserScriptLogService { @Override @Transactional - public void sendScript(WxUserScriptReq wxUserScriptReq) { + public List sendScript(WxUserScriptReq wxUserScriptReq) { + List shuYunBatchTagOperationList = new ArrayList<>();// 需要外部调用数云接口同步的数据 List userIdList = wxUserScriptReq.getUserIdList(); // 1、话术模板 if (IsScriptTemplateEnum.SCRIPT_TEMPLATE.getCode() == wxUserScriptReq.getIsCustom()) { @@ -156,8 +159,8 @@ public class WxUserScriptLogServiceImpl implements IWxUserScriptLogService { .collect(Collectors.toList()); // 用户id集合 List collect = userIdList.stream().map(Long::intValue).collect(Collectors.toList()); - wxUserMemberService.batchAddMiniProgramTag(miniProgramTagIdList, collect); - wxUserMemberService.batchAddWecomTag(wecomTagIdList, collect); + shuYunBatchTagOperationList.addAll(wxUserMemberService.batchAddMiniProgramTag(miniProgramTagIdList, collect, true)); + shuYunBatchTagOperationList.addAll(wxUserMemberService.batchAddWecomTag(wecomTagIdList, collect, true)); } } @@ -180,9 +183,9 @@ public class WxUserScriptLogServiceImpl implements IWxUserScriptLogService { if (wxUserScriptReq.getTagIds() != null && wxUserScriptReq.getTagIds().size() > 0) { List tagList = wxUserScriptReq.getTagIds().stream().map(Integer::parseInt).collect(Collectors.toList()); List collect = userIdList.stream().map(Long::intValue).collect(Collectors.toList()); - wxUserMemberService.batchAddMiniProgramTag(tagList, collect); + shuYunBatchTagOperationList.addAll(wxUserMemberService.batchAddMiniProgramTag(tagList, collect, true)); } } - + return shuYunBatchTagOperationList; } } diff --git a/flossom-ui/src/api/system/findCarouselImage.js b/flossom-ui/src/api/system/findCarouselImage.js new file mode 100644 index 0000000..16a87fe --- /dev/null +++ b/flossom-ui/src/api/system/findCarouselImage.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询发现轮播图列表 +export function listCarousel(query) { + return request({ + url: '/system/carousel/list', + method: 'get', + params: query + }) +} + +// 查询发现轮播图详细 +export function getCarousel(id) { + return request({ + url: '/system/carousel/' + id, + method: 'get' + }) +} + +// 新增发现轮播图 +export function addCarousel(data) { + return request({ + url: '/system/carousel', + method: 'post', + data: data + }) +} + +// 修改发现轮播图 +export function updateCarousel(data) { + return request({ + url: '/system/carousel', + method: 'put', + data: data + }) +} + +// 删除发现轮播图 +export function delCarousel(id) { + return request({ + url: '/system/carousel/' + id, + method: 'delete' + }) +} diff --git a/flossom-ui/src/api/system/findProductStrategy.js b/flossom-ui/src/api/system/findProductStrategy.js new file mode 100644 index 0000000..eeb419b --- /dev/null +++ b/flossom-ui/src/api/system/findProductStrategy.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询产品攻略列表 +export function listStrategy(query) { + return request({ + url: '/system/strategy/list', + method: 'get', + params: query + }) +} + +// 查询产品攻略详细 +export function getStrategy(id) { + return request({ + url: '/system/strategy/' + id, + method: 'get' + }) +} + +// 新增产品攻略 +export function addStrategy(data) { + return request({ + url: '/system/strategy', + method: 'post', + data: data + }) +} + +// 修改产品攻略 +export function updateStrategy(data) { + return request({ + url: '/system/strategy', + method: 'put', + data: data + }) +} + +// 删除产品攻略 +export function delStrategy(id) { + return request({ + url: '/system/strategy/' + id, + method: 'delete' + }) +} diff --git a/flossom-ui/src/api/system/table.js b/flossom-ui/src/api/system/table.js new file mode 100644 index 0000000..9fd774a --- /dev/null +++ b/flossom-ui/src/api/system/table.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询【请填写功能名称】列表 +export function listTable(query) { + return request({ + url: '/system/table/list', + method: 'get', + params: query + }) +} + +// 查询【请填写功能名称】详细 +export function getTable(cl1) { + return request({ + url: '/system/table/' + cl1, + method: 'get' + }) +} + +// 新增【请填写功能名称】 +export function addTable(data) { + return request({ + url: '/system/table', + method: 'post', + data: data + }) +} + +// 修改【请填写功能名称】 +export function updateTable(data) { + return request({ + url: '/system/table', + method: 'put', + data: data + }) +} + +// 删除【请填写功能名称】 +export function delTable(cl1) { + return request({ + url: '/system/table/' + cl1, + method: 'delete' + }) +} diff --git a/flossom-ui/src/views/system/findCarouselImage/index.vue b/flossom-ui/src/views/system/findCarouselImage/index.vue new file mode 100644 index 0000000..7f3647e --- /dev/null +++ b/flossom-ui/src/views/system/findCarouselImage/index.vue @@ -0,0 +1,738 @@ + + + diff --git a/flossom-ui/src/views/system/findProductStrategy/index.vue b/flossom-ui/src/views/system/findProductStrategy/index.vue new file mode 100644 index 0000000..dcb0dcf --- /dev/null +++ b/flossom-ui/src/views/system/findProductStrategy/index.vue @@ -0,0 +1,728 @@ + + + + diff --git a/flossom-ui/src/views/system/instrument/index.vue b/flossom-ui/src/views/system/instrument/index.vue index 8185779..9b6b8ff 100644 --- a/flossom-ui/src/views/system/instrument/index.vue +++ b/flossom-ui/src/views/system/instrument/index.vue @@ -156,7 +156,7 @@ -
只能上传jpg/png文件
+
只能上传jpg/png文件, 建议主图尺寸195px*160px
@@ -185,7 +185,7 @@ -
只能上传jpg/png文件
+
只能上传jpg/png文件, 建议主图尺寸195px*160px
@@ -214,7 +214,7 @@ -
只能上传jpg/png文件
+
只能上传jpg/png文件, 建议主图尺寸195px*160px
@@ -303,7 +303,7 @@ - + @@ -481,10 +481,10 @@ - + - + - + - + - + - + - + - +
@@ -1231,7 +1231,7 @@ export default { this.Modetions = [] this.NewOptions = [] this.ClothOptions = [] - + // debugger this.reset() this.open = true @@ -1334,6 +1334,15 @@ export default { ], } } + // /* WE200IOT升级数据文件 */ + if (this.form.we200IotUpgradeData != null) { + this.we200IotUpgradeFile = { + uploadHide: true, + fileList: [ + { name: 'We200iot升级数据文件', url: this.form.we200IotUpgradeData }, + ], + } + } /* 蓝牙连接文件 */ if (this.form.bluetoothConnecting != null) { @@ -1598,6 +1607,7 @@ export default { this.logoFile.uploadHide = this.logoFile.fileList.length >= 1 }, logoUploadSuccess(response, file) { + console.log(111111111111111,response); if (response.code == 200) { this.form.logo = response.data.url } else { @@ -1757,7 +1767,11 @@ export default { // IOT仪器,模型默认 WL200 if (this.form.type == 2) { + console.log('进来了'); this.form.model = 'WL200'; + + }else{ + this.form.model = null } /* 模式选项 */ // 模式清空 @@ -1777,7 +1791,7 @@ export default { this.mode.modeIdsOptions = response.data }) // 仪器数据清空 - this.form.model = null + // this.form.model = null this.form.nursingTime = '00:00:00' this.form.bluetoothConnecting = null this.form.bluetoothConnectingTitle = null diff --git a/flossom-ui/src/views/system/mode/index.vue b/flossom-ui/src/views/system/mode/index.vue index 469d434..506364a 100644 --- a/flossom-ui/src/views/system/mode/index.vue +++ b/flossom-ui/src/views/system/mode/index.vue @@ -1,1473 +1,8058 @@ diff --git a/flossom-ui/src/views/system/nursingLog/index.vue b/flossom-ui/src/views/system/nursingLog/index.vue index d1a521a..71492f0 100644 --- a/flossom-ui/src/views/system/nursingLog/index.vue +++ b/flossom-ui/src/views/system/nursingLog/index.vue @@ -99,8 +99,8 @@ style="border-left: solid 2px #419eff;padding-left: 10px;font-size: 18px;color: #000;margin-bottom: 10px;">批量操作
- - + + @@ -166,7 +166,7 @@ - @@ -180,7 +180,7 @@ @@ -384,7 +384,14 @@ export default { getList() { this.loading = true; listNursingLog(this.queryParams).then(response => { - this.nursingLogList = response.rows; + console.log(response,'response'); + this.nursingLogList =[] + + response.rows.forEach(e =>{ + e.accompanyMode ='陪伴' + this.nursingLogList.push(e) + + }) this.total = response.total; this.loading = false; }); @@ -439,6 +446,7 @@ export default { }, /** 批量操作按钮,显示批量操作弹窗 */ batchOperatePop() { + if (this.batchOperate.operateValue == null) { this.$message({ message: '请选择要批量操作类型', @@ -455,13 +463,14 @@ export default { }) return } + if (this.batchOperate.operateValue == 1) { this.batchOperate.title = '批量添加小程序标签'; // 获取标签树 this.getTagTree(); this.batchOperate.tagOperateVisible = true; } - + if (this.batchOperate.operateValue == 2) { this.batchOperate.title = '批量删除小程序标签'; // 获取标签树 @@ -480,6 +489,7 @@ export default { this.batchOperate.exportFieldsVisible = true } } else { + /* 全量操作 */ if (this.batchOperate.operateValue == 3) { this.batchOperate.title = '全量添加小程序标签'; @@ -630,6 +640,7 @@ export default { isExportAllFields() { if (this.allFields) { this.exportFieldList.nickname = 'nickname'; + this.exportFieldList.id = 'id'; this.exportFieldList.userId = 'userId'; this.exportFieldList.mobile = 'mobile'; this.exportFieldList.nursingDays = 'nursingDays'; @@ -654,6 +665,7 @@ export default { this.exportFieldList.miniProgramTagListStr = null; this.exportFieldList.instrumentBindingTime = null; this.exportFieldList.userMemberCreateTime = null; + this.exportFieldList.id = null; } }, // 查询仪器列表 diff --git a/flossom-ui/src/views/system/siteCarouselInfo/index.vue b/flossom-ui/src/views/system/siteCarouselInfo/index.vue index 100f9b7..02ea8c1 100644 --- a/flossom-ui/src/views/system/siteCarouselInfo/index.vue +++ b/flossom-ui/src/views/system/siteCarouselInfo/index.vue @@ -174,7 +174,7 @@ 关闭 - +