Commit 69874815 by songyinghui

Merge remote-tracking branch 'origin/master' into feature-content2

# Conflicts:
#	haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/NoticeMessageCategoryTypeEnum.java
#	haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/enums/NoticeMessageTypeEnum.java
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/impl/MaterialServiceImpl.java
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/notify/impl/NoticeMessageServiceImpl.java
#	haoban-manage3-wx/pom.xml
#	haoban-manage3-wx/src/main/java/com/gic/haoban/manage/web/controller/WxStaffController.java
#	haoban-manage3-wx/src/main/webapp/WEB-INF/dubbo-haoban-manage-wx.xml
parents f279ff56 39b1657f
package com.gic.haoban.manage.api.dto;
import java.io.Serializable ;
/**
*
* @ClassName: TabHaobanExternalMemberLog
* @Description: TODO
* @Author 徐高华
* @Date 2023年04月04日 10:19:47
* @Modify
* @CopyRight
*/
public class ExternalMemberLogDTO implements Serializable{
private static final long serialVersionUID = 1709395027793900L;
private Long logId;
private String enterpriseId;
private String unionid;
private String relationKey;
private Integer deleteFlag;
private java.util.Date createTime;
private java.util.Date updateTime;
/**1有效 0无效*/
private Integer statusFlag;
private String memberId ;
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public void setLogId(Long logId){
this.logId = logId;
}
public Long getLogId(){
return logId;
}
public void setEnterpriseId(String enterpriseId){
this.enterpriseId = enterpriseId;
}
public String getEnterpriseId(){
return enterpriseId;
}
public void setUnionid(String unionid){
this.unionid = unionid;
}
public String getUnionid(){
return unionid;
}
public void setRelationKey(String relationKey){
this.relationKey = relationKey;
}
public String getRelationKey(){
return relationKey;
}
public void setDeleteFlag(Integer deleteFlag){
this.deleteFlag = deleteFlag;
}
public Integer getDeleteFlag(){
return deleteFlag;
}
public void setCreateTime(java.util.Date createTime){
this.createTime = createTime;
}
public java.util.Date getCreateTime(){
return createTime;
}
public void setUpdateTime(java.util.Date updateTime){
this.updateTime = updateTime;
}
public java.util.Date getUpdateTime(){
return updateTime;
}
public void setStatusFlag(Integer statusFlag){
this.statusFlag = statusFlag;
}
public Integer getStatusFlag(){
return statusFlag;
}
}
\ No newline at end of file
......@@ -72,6 +72,18 @@ public class MiniprogramSettingDTO implements Serializable {
private Date updateTime;
private Integer miniprogramType;
/**
* 是否同步更新欢迎语 0否1是
*/
public Integer renewWelcome;
public Integer getRenewWelcome() {
return renewWelcome;
}
public void setRenewWelcome(Integer renewWelcome) {
this.renewWelcome = renewWelcome;
}
public Integer getMiniprogramType() {
return miniprogramType;
......
package com.gic.haoban.manage.api.dto.licence;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
public class LicenceOrderDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单id
*/
private Long orderId;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* gic品牌名称
*/
private String enterpriseName;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 微信商户名称
*/
private String wxEnterpriseName;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
/**
* 基础帐号个数
*/
private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 订单编号
*/
private String orderNumber;
/**
* 上传凭证url
*/
private String voucher;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 订单状态更改原因
*/
private String orderStatusReason;
/**
* 支付时间 支付类型为1:微信支付时间 2:上传凭证时间
*/
private Date payTime;
/**
* 退款时间
*/
private Date refundTime;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 企业微信订单更改原因
*/
private String qywxOrderStatusReason;
/**
* 企业微信支付时间
*/
private Date qywxPayTime;
/**
* 企业微信退款时间
*/
private Date qywxRefundTime;
/**
* 审核不通过原因
*/
private String reason;
/**
* 创建时间
*/
private Date createTime;
/**
* 到期时间
*/
private Date expireTime;
/**
* 当前时间
*/
private Date nowTime;
/**
* 订单进度list
*/
private List<LicenceOrderProgressDTO> OrderProgressList;
/**
* 微信url
*/
private String wxUrl;
public String getWxUrl() {
return wxUrl;
}
public void setWxUrl(String wxUrl) {
this.wxUrl = wxUrl;
}
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxEnterpriseName() {
return wxEnterpriseName;
}
public void setWxEnterpriseName(String wxEnterpriseName) {
this.wxEnterpriseName = wxEnterpriseName;
}
public Integer getOrderType() {
return orderType;
}
public void setOrderType(Integer orderType) {
this.orderType = orderType;
}
public Integer getExternalContactCount() {
return externalContactCount;
}
public void setExternalContactCount(Integer externalContactCount) {
this.externalContactCount = externalContactCount;
}
public Integer getBaseCount() {
return baseCount;
}
public void setBaseCount(Integer baseCount) {
this.baseCount = baseCount;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public Integer getTimeType() {
return timeType;
}
public void setTimeType(Integer timeType) {
this.timeType = timeType;
}
public Integer getTimeValue() {
return timeValue;
}
public void setTimeValue(Integer timeValue) {
this.timeValue = timeValue;
}
public Integer getPayType() {
return payType;
}
public void setPayType(Integer payType) {
this.payType = payType;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public String getVoucher() {
return voucher;
}
public void setVoucher(String voucher) {
this.voucher = voucher;
}
public Integer getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(Integer orderStatus) {
this.orderStatus = orderStatus;
}
public String getOrderStatusReason() {
return orderStatusReason;
}
public void setOrderStatusReason(String orderStatusReason) {
this.orderStatusReason = orderStatusReason;
}
public Date getPayTime() {
return payTime;
}
public void setPayTime(Date payTime) {
this.payTime = payTime;
}
public Date getRefundTime() {
return refundTime;
}
public void setRefundTime(Date refundTime) {
this.refundTime = refundTime;
}
public String getQywxOrderId() {
return qywxOrderId;
}
public void setQywxOrderId(String qywxOrderId) {
this.qywxOrderId = qywxOrderId;
}
public Integer getQywxOrderStatus() {
return qywxOrderStatus;
}
public void setQywxOrderStatus(Integer qywxOrderStatus) {
this.qywxOrderStatus = qywxOrderStatus;
}
public String getQywxOrderStatusReason() {
return qywxOrderStatusReason;
}
public void setQywxOrderStatusReason(String qywxOrderStatusReason) {
this.qywxOrderStatusReason = qywxOrderStatusReason;
}
public Date getQywxPayTime() {
return qywxPayTime;
}
public void setQywxPayTime(Date qywxPayTime) {
this.qywxPayTime = qywxPayTime;
}
public Date getQywxRefundTime() {
return qywxRefundTime;
}
public void setQywxRefundTime(Date qywxRefundTime) {
this.qywxRefundTime = qywxRefundTime;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}
public Date getNowTime() {
return nowTime;
}
public void setNowTime(Date nowTime) {
this.nowTime = nowTime;
}
public List<LicenceOrderProgressDTO> getOrderProgressList() {
return OrderProgressList;
}
public void setOrderProgressList(List<LicenceOrderProgressDTO> orderProgressList) {
OrderProgressList = orderProgressList;
}
}
package com.gic.haoban.manage.api.dto.licence;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
public class LicenceOrderPageDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单id
*/
private Long orderId;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
/**
* 基础帐号个数
*/
private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 订单状态更改原因
*/
private String orderStatusReason;
/**
* 支付时间 支付类型为1:微信支付时间 2:审核确认通过的时间
*/
private Date payTime;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 企业微信订单更改原因
*/
private String qywxOrderStatusReason;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 到期时间
*/
private Date expireTime;
/**
* 企业微信支付时间
*/
private Date qywxPayTime;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* gic品牌名称
*/
private String enterpriseName;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 微信商户名称
*/
private String wxEnterpriseName;
/**
* 微信订单id
*/
private String wxOrderId;
public String getWxOrderId() {
return wxOrderId;
}
public void setWxOrderId(String wxOrderId) {
this.wxOrderId = wxOrderId;
}
public Date getQywxPayTime() {
return qywxPayTime;
}
public void setQywxPayTime(Date qywxPayTime) {
this.qywxPayTime = qywxPayTime;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxEnterpriseName() {
return wxEnterpriseName;
}
public void setWxEnterpriseName(String wxEnterpriseName) {
this.wxEnterpriseName = wxEnterpriseName;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public Integer getOrderType() {
return orderType;
}
public void setOrderType(Integer orderType) {
this.orderType = orderType;
}
public Integer getExternalContactCount() {
return externalContactCount;
}
public void setExternalContactCount(Integer externalContactCount) {
this.externalContactCount = externalContactCount;
}
public Integer getBaseCount() {
return baseCount;
}
public void setBaseCount(Integer baseCount) {
this.baseCount = baseCount;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public Integer getTimeType() {
return timeType;
}
public void setTimeType(Integer timeType) {
this.timeType = timeType;
}
public Integer getTimeValue() {
return timeValue;
}
public void setTimeValue(Integer timeValue) {
this.timeValue = timeValue;
}
public Integer getPayType() {
return payType;
}
public void setPayType(Integer payType) {
this.payType = payType;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public Integer getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(Integer orderStatus) {
this.orderStatus = orderStatus;
}
public String getOrderStatusReason() {
return orderStatusReason;
}
public void setOrderStatusReason(String orderStatusReason) {
this.orderStatusReason = orderStatusReason;
}
public Date getPayTime() {
return payTime;
}
public void setPayTime(Date payTime) {
this.payTime = payTime;
}
public String getQywxOrderId() {
return qywxOrderId;
}
public void setQywxOrderId(String qywxOrderId) {
this.qywxOrderId = qywxOrderId;
}
public Integer getQywxOrderStatus() {
return qywxOrderStatus;
}
public void setQywxOrderStatus(Integer qywxOrderStatus) {
this.qywxOrderStatus = qywxOrderStatus;
}
public String getQywxOrderStatusReason() {
return qywxOrderStatusReason;
}
public void setQywxOrderStatusReason(String qywxOrderStatusReason) {
this.qywxOrderStatusReason = qywxOrderStatusReason;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
}
package com.gic.haoban.manage.api.dto.licence;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
public class LicenceOrderProgressDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private Long id;
/**
* 订单状态
*/
private String orderStatus;
/**
* 标记字段 1好办后台
*/
private Integer type;
/**
* 上传凭证url
*/
private String voucher;
/**
* 原因
*/
private String reason;
/**
* 创建时间
*/
private Date createTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(String orderStatus) {
this.orderStatus = orderStatus;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getVoucher() {
return voucher;
}
public void setVoucher(String voucher) {
this.voucher = voucher;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
......@@ -19,6 +19,16 @@ public class NoticeMessageQDTO implements Serializable {
private String title;
private Map<String, String> contentMap;
// 是否校验gic企业
private boolean checkFlag =false ;
public boolean isCheckFlag() {
return checkFlag;
}
public void setCheckFlag(boolean checkFlag) {
this.checkFlag = checkFlag;
}
public NoticeMessageQDTO() {
}
......
package com.gic.haoban.manage.api.dto.qdto.licence;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
public class LicenceOrderPageQDTO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 订单创建开始时间
*/
private String startTime;
/**
* 订单创建结束时间
*/
private String endTime;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 支付方式 1在线支付 2对公转账
*/
private Integer payType;
/**
* gic商户查询id
*/
private String enterpriseIdParam;
/**
* 微信订单id
*/
private String wxOrderId;
/**
* 1 好办后台 0 运维后台
*/
private Integer type;
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getWxOrderId() {
return wxOrderId;
}
public void setWxOrderId(String wxOrderId) {
this.wxOrderId = wxOrderId;
}
public String getEnterpriseIdParam() {
return enterpriseIdParam;
}
public void setEnterpriseIdParam(String enterpriseIdParam) {
this.enterpriseIdParam = enterpriseIdParam;
}
public Integer getPayType() {
return payType;
}
public void setPayType(Integer payType) {
this.payType = payType;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public String getOrderNumber() {
return orderNumber;
}
public void setOrderNumber(String orderNumber) {
this.orderNumber = orderNumber;
}
public Integer getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(Integer orderStatus) {
this.orderStatus = orderStatus;
}
public String getQywxOrderId() {
return qywxOrderId;
}
public void setQywxOrderId(String qywxOrderId) {
this.qywxOrderId = qywxOrderId;
}
public Integer getQywxOrderStatus() {
return qywxOrderStatus;
}
public void setQywxOrderStatus(Integer qywxOrderStatus) {
this.qywxOrderStatus = qywxOrderStatus;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
}
package com.gic.haoban.manage.api.dto.qdto.licence;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
public class LicenceOrderQDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单id
*/
private Long orderId;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
/**
* 基础帐号个数
*/
private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 订单编号
*/
private String transactionId;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 逻辑删除,0未删除,1删除
*/
private Integer deleteFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 过期时间 类型为在线支付 30分钟;类型为对公转账 3天
*/
private Date expireTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getOrderType() {
return orderType;
}
public void setOrderType(Integer orderType) {
this.orderType = orderType;
}
public Integer getExternalContactCount() {
return externalContactCount;
}
public void setExternalContactCount(Integer externalContactCount) {
this.externalContactCount = externalContactCount;
}
public Integer getBaseCount() {
return baseCount;
}
public void setBaseCount(Integer baseCount) {
this.baseCount = baseCount;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
public Integer getTimeType() {
return timeType;
}
public void setTimeType(Integer timeType) {
this.timeType = timeType;
}
public Integer getTimeValue() {
return timeValue;
}
public void setTimeValue(Integer timeValue) {
this.timeValue = timeValue;
}
public Integer getPayType() {
return payType;
}
public void setPayType(Integer payType) {
this.payType = payType;
}
public String getTransactionId() {
return transactionId;
}
public void setTransactionId(String transactionId) {
this.transactionId = transactionId;
}
public Integer getOrderStatus() {
return orderStatus;
}
public void setOrderStatus(Integer orderStatus) {
this.orderStatus = orderStatus;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
}
......@@ -10,6 +10,8 @@ public enum NoticeMessageCategoryTypeEnum {
CUSTOMER(0, "客户相关"),
TASK(1, "任务相关"),
ACTIVITY(2, "活动相关"),
ORDER(4, "订单相关"),
REFUND(5, "售后相关"),
MATERIAL(6, "素材相关"),
POTENTIAL_CUSTOMER(7, "销售线索"),
OTHER(3, "其它"),;
......
......@@ -58,12 +58,21 @@ public enum NoticeMessageTypeEnum {
CUSTOMER_APPLY_ORDER_REFUND(4005, "客户申请退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_apply_order_refund", "/pages/route/index?pageType=", "hbapp_customer_order_detail"),
CUSTOMER_SUCCESS_ORDER_REFUND(4006, "客户成功退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_success_order_refund", "/pages/route/index?pageType=", "hbapp_user_bill_detail"),
// 订单- 待发货订单提醒
ORDER_TAKE(5000, "待自提订单提醒", NoticeMessageCategoryTypeEnum.ORDER.getType(), "order_take", "/pages/route/index?pageType=", "hbapp_order_verfication"),
ORDER_PAY(5001, "待发货订单提醒", NoticeMessageCategoryTypeEnum.ORDER.getType(), "order_pay", "/pages/route/index?pageType=", "hbapp_order_center"),
REFUND_AUDIT(5010, "售后待审核提醒", NoticeMessageCategoryTypeEnum.REFUND.getType(), "refund_audit", "/pages/route/index?pageType=", "hbapp_order_center"),
REFUND_MEMBER_CANCEL(5011, "买家取消售后提醒", NoticeMessageCategoryTypeEnum.REFUND.getType(), "refund_member_cancel", "/pages/route/index?pageType=", "hbapp_order_center"),
REFUND_DELIVER(5013, "买家寄出退换货提醒", NoticeMessageCategoryTypeEnum.REFUND.getType(), "refund_deliver", "/pages/route/index?pageType=", "hbapp_order_center"),
MATERIAL_NEW_NOTIFY(6001, "素材上新通知", NoticeMessageCategoryTypeEnum.MATERIAL.getType(), "material_new_notify", "/pages/route/index?pageType=", "hbapp_material_center"),
MATERIAL_REPORT_NOTIFY(6002, "素材周报/月报通知", NoticeMessageCategoryTypeEnum.MATERIAL.getType(), "material_week_notify", "/pages/route/index?pageType=", "hbapp_mate_report"),
POTENTIAL_CUSTOMER_NOTIFY(6003, "销售线索通知", NoticeMessageCategoryTypeEnum.POTENTIAL_CUSTOMER.getType(), "potential_customer_notify", "/pages/route/index?pageType=", "hbapp_sales_clue_center");
;
/**
* 消息类型
*/
......
......@@ -18,4 +18,6 @@ public interface HaobanCommonMQApiService {
public void commonHandler(String message);
public void welcomeMQ(String params) ;
}
......@@ -100,4 +100,9 @@ public interface HaobanTimerApiService {
*/
public ServiceResponse<Void> ownerDimission(String params);
/**
* 定时处理欢迎语后的好友
*/
public ServiceResponse<Void> welcomeForMember(String params);
}
......@@ -216,16 +216,13 @@ public interface MemberUnionidRelatedApiService {
*/
void addMemberUnionidWechatAccountByClerk(String res);
/**
* 事件订阅test
*
* @param param 参数
* @author mozhu
* @date 2022-09-09 14:18:34
* @Title: saveExternalMemberLog
* @Description: 欢迎语业务
* @author xugh
* @param memberLog
* @throws
*/
//无效接口
// void addDelFriendEventTest(String param);
void saveExternalMemberLog(ExternalMemberLogDTO memberLog);
}
package com.gic.haoban.manage.api.service;
import java.util.List;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.QywxCallBackDTO;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;
import java.util.List;
......@@ -26,40 +29,6 @@ public interface MessageApiService {
void dealWxMessage(String param);
/**
* 发送消费消息
*
* @param clerkId
* @param memberId
* @param memberName
* @param arrivalTime
* @param storeId
* @return
*/
Boolean sendFaceMessage(String clerkId, String memberId, String memberName, String arrivalTime, String storeId);
/**
* 发送完善标签信息
*
* @param clerkId
* @param clerkId
* @param memberName
* @param customerTime
* @param orderId
* @param storeId
*/
Boolean sendPerfectRemarkMessage(String clerkId, String memberId, String memberName, String customerTime, String orderId, String storeId);
/**
* 通用发送企业微信消息
*
* @param param 参数
* @author xuwenqian
* @date 2021-07-16 10:09:00
*/
void sendWxMessage(String param);
/**
* 获取新的微信用户id
*
* @param wxEnterpriseId 微信企业id
......@@ -81,6 +50,18 @@ public interface MessageApiService {
* @return
* @throws
*/
ServiceResponse<Void> sendPreMessage(String enterpriseId ,String storeId , String message) ;
ServiceResponse<Void> sendPreMessage(String enterpriseId, String storeId, String message);
/**
*
* @Title: sendOrderMessage
* @Description: 订单发送好办通知
* @param relationId 关联ID
* @param valueList 有变量的情况按顺序传参
* @return clerkId 归属导购 refundStoreId 退款收货门店
* @throws
*/
ServiceResponse<Void> sendOrderMessage(String enterpriseId, NoticeMessageTypeEnum noticeType, String relationId,
String refundStoreId , String clerkId, String memberId, List<String> valueList);
}
......@@ -330,4 +330,11 @@ public interface StaffApiService {
* 转移员工许可
*/
com.gic.api.base.commons.ServiceResponse<TransferActiveCodeDTO> batchTransferLicense(List<TransferActiveCodeQDTO> transferActiveCodeQOList,String wxEnterpriseId);
/**
* 企业微信自动激活回调通知
* @param params 回调参数
* @return
*/
com.gic.api.base.commons.ServiceResponse<Boolean> autoActivateCallBack(String params) ;
}
......@@ -54,10 +54,6 @@ public interface StaffDepartmentRelatedApiService {
List<StaffDepartmentRelatedDTO> listByStaffIds(List<String> staffIds);
void sendClerkBind(String staffId, String clerkCode, String storeId, int auditStatus, String auditReason);
void sendStaffBind(String staffId, String clerkCode, String storeId, int auditStatus, String auditReason);
void sendClerkAdd(String clerkName, String clerkCode, String storeId, int auditStatus, String auditReason);
void sendClerkDel(String clerkName, String clerkCode, String storeId, int auditStatus, String auditReason);
......
package com.gic.haoban.manage.api.service.licence;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderDTO;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderPageQDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderQDTO;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author jx
* @since 2023-03-09
*/
public interface LicenceOrderApiService {
/**
* 获取订单详情
*
* @param orderId 订单id
* @return LicenceOrderDTO
*/
ServiceResponse<LicenceOrderDTO> getLicenceOrderDetail(Long orderId, Integer type);
/**
* 删除订单
*
* @param orderId 订单id
* @return
*/
ServiceResponse<Boolean> deleteLicenceOrder(Long orderId);
/**
* 新增或者修改订单详情
*
* @param licenceOrderQDTO
* @return
*/
ServiceResponse<String> saveOrUpdateLicenceOrder(LicenceOrderQDTO licenceOrderQDTO);
/**
* 分页查询订单数据
*
* @param licenceOrderPageQDTO
* @return
*/
ServiceResponse<Page<LicenceOrderPageDTO>> getLicenceOrderPage(LicenceOrderPageQDTO licenceOrderPageQDTO);
/**
* 更新订单状态
*
* @param orderId 订单id
* @param type 订单状态
* @param wxFlag 1微信订单状态 0 企业微信订单状态
* @return
*/
ServiceResponse<Boolean> updateLicenceOrderType(Long orderId, Integer type, String enterpriseId, String wxEnterpriseId, String creatorName, Integer wxFlag);
/**
* 订单凭证上传
*
* @param orderId 订单id
* @param voucher 凭证url
* @return
*/
ServiceResponse<Boolean> uploadLicenceOrderVoucher(Long orderId, String voucher, String enterpriseId, String wxEnterpriseId, String creatorName);
/**
* 订单支付接口
*
* @param orderId 订单id
* @return
*/
ServiceResponse<String> payLicenceOrder(Long orderId);
/**
* 查询企业是否存在订单未支付接口
*
* @param wxEnterpriseId 企业微信id
* @return
*/
ServiceResponse<String> isPayLicenceOrder(String wxEnterpriseId);
/**
* 微信通知回调接口
*/
ServiceResponse<Boolean> wxCallBack(String params);
/**
* 企业微信通知回调接口
*/
ServiceResponse<Boolean> qywxCallBack(String params);
/**
* 保存微信交易信息
*
* @param orderId 订单id
* @param transactionCode 订单编号
* @param prepayId 微信预支付id
* @param wxOrderId 微信支付id
* @return
*/
ServiceResponse<Boolean> saveTransactionCode(Long orderId, String transactionCode, String prepayId, String wxOrderId, Date payTime,String wxUrl);
/**
* 查询订单编号id
*
* @param param 查询参数
* @param type 0 订单编号 1 企业微信订单编号 2微信订单编号
* @param wxEnterpriseId
* @return
*/
ServiceResponse<List<String>> getOrderIdList(String param, Integer type, String wxEnterpriseId);
/**
* 审核订单
*
* @param orderId 订单id
* @param flag 是否通过 0 否 1是
* @param reason 不通过原因
* @return
*/
ServiceResponse<Boolean> checkLicenceOrder(Long orderId, Integer flag, String reason, String creatorName);
/**
* 微信退款
*
* @return
*/
ServiceResponse<Boolean> wxRefund(Long orderId);
/**
* 查询开户信息
*/
ServiceResponse<HashMap<String, String>> getAccountInfo();
/**
* 取消企业微信订单
*/
ServiceResponse<Boolean> cancelQywxOrder(Long orderId);
/**
* 是否显示弹窗 true 显示 false 不显示
* @param wxEnterpriseId
* @return
*/
ServiceResponse<HashMap<String, Integer>> hasPopup(String wxEnterpriseId);
}
package com.gic.haoban.manage.web.config;
import com.ctrip.framework.apollo.spring.annotation.EnableApolloConfig;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableApolloConfig
public class Config {
@Value("${corpid}")
private String corpid;
@Value("${suiteid}")
private String suiteId;
@Value("${host}")
private String host;
@Value("${wxSuiteid}")
private String wxSuiteid;
@Value("${accountName}")
private String accountName;
@Value("${accountNumber}")
private String accountNumber;
@Value("${bankName}")
private String bankName;
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getCorpid() {
return corpid;
}
public void setCorpid(String corpid) {
this.corpid = corpid;
}
public String getSuiteId() {
return suiteId;
}
public void setSuiteId(String suiteId) {
this.suiteId = suiteId;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getWxSuiteid() {
return wxSuiteid;
}
public void setWxSuiteid(String wxSuiteid) {
this.wxSuiteid = wxSuiteid;
}
}
package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.authcenter.commons.dto.AuthcenterUserDetails;
import com.gic.authcenter.commons.util.SessionContextUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderDTO;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderPageQDTO;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.licence.LicenceOrderApiService;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.licence.LicenceOrderPageQO;
import com.gic.haoban.manage.web.vo.licence.LicenceOrderPageVO;
import com.gic.haoban.manage.web.vo.licence.LicenceOrderVO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
/**
* 企业微信许可账号购买
*
* @author jx
* @since 2023-03-09
*/
@RestController
@RequestMapping("/operation-licence-order")
public class LicenceOrderController {
private static Logger logger = LogManager.getLogger(LicenceOrderController.class);
@Autowired
private LicenceOrderApiService licenceOrderApiService;
@Autowired
private EnterpriseService enterpriseService;
@Autowired
private WxEnterpriseApiService wxEnterpriseApiService;
/**
* 查询订单详情
*/
@RequestMapping("licence-order-detail")
public RestResponse<LicenceOrderVO> getLicenceOrderDetail(@RequestParam Long orderId, HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
ServiceResponse<LicenceOrderDTO> licenceOrderDetail = licenceOrderApiService.getLicenceOrderDetail(orderId, null);
LicenceOrderVO licenceOrderVO = JSONObject.parseObject(JSONObject.toJSONString(licenceOrderDetail.getResult()), LicenceOrderVO.class);
return RestResponse.successResult(licenceOrderVO);
}
/**
* 分页查询订单列表
*/
@RequestMapping("licence-order-page")
public RestResponse<Page<LicenceOrderPageVO>> getLicenceOrderPage(@RequestBody LicenceOrderPageQO licenceOrderPageQO, HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
LicenceOrderPageQDTO qdto = JSONObject.parseObject(JSONObject.toJSONString(licenceOrderPageQO), LicenceOrderPageQDTO.class);
qdto.setType(0);
ServiceResponse<Page<LicenceOrderPageDTO>> licenceOrderPage = licenceOrderApiService.getLicenceOrderPage(qdto);
Page<LicenceOrderPageVO> result = PageHelperUtils.changePageToCurrentPage(licenceOrderPage.getResult(), LicenceOrderPageVO.class);
if (CollUtil.isNotEmpty(result.getResult())) {
for (LicenceOrderPageVO vo : result.getResult()) {
//查询gic品牌名称
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(vo.getEnterpriseId());
if (ObjectUtil.isNotNull(enterpriseDTO)) {
vo.setEnterpriseName(enterpriseDTO.getEnterpriseName());
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(vo.getWxEnterpriseId());
if (ObjectUtil.isNotNull(wxEnterpriseDTO)) {
vo.setWxEnterpriseName(wxEnterpriseDTO.getCorpName());
}
}
}
return RestResponse.successResult(result);
}
/**
* 取消订单
*/
@RequestMapping("licence-order-cancel")
public RestResponse<Boolean> cancelLicenceOrder(@RequestParam Long orderId, HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
ServiceResponse<Boolean> response = licenceOrderApiService.cancelQywxOrder(orderId);
if (!response.isSuccess()) {
return RestResponse.failure(response.getCode(), response.getMessage());
}
return RestResponse.successResult(true);
}
/**
* 支付订单
*/
@RequestMapping("licence-order-pay")
public RestResponse<String> payLicenceOrder(@RequestParam Long orderId, HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
ServiceResponse<String> response = licenceOrderApiService.payLicenceOrder(orderId);
if (response.isSuccess()) {
return RestResponse.successResult(response.getResult());
}
return RestResponse.failure(response.getCode(), response.getMessage());
}
/**
* 审核订单
*
* @param orderId 订单id
* @param flag 是否通过 0 否 1是
* @param reason 不通过原因
* @return
*/
@RequestMapping("licence-order-check")
public RestResponse<Boolean> checkLicenceOrder(@RequestParam Long orderId, Integer flag, String reason, HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
String clerkName = loginUser.getLoginName();
Boolean result = licenceOrderApiService.checkLicenceOrder(orderId, flag, reason, clerkName).getResult();
return RestResponse.successResult(result);
}
/**
* 订单编号和企业微信订单编号模糊搜索
*
* @param param 模糊查询
* @param type 0 订单编号 1 企业微信订单编号 2微信订单编号
* @return
*/
@RequestMapping("get-order-id-list")
public RestResponse<List<String>> getOrderIdList(String param, Integer type, HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
ServiceResponse<List<String>> orderIdList = licenceOrderApiService.getOrderIdList(param, type, null);
return RestResponse.successResult(orderIdList.getResult());
}
/**
* 查询开户信息
*/
@RequestMapping("get-account-info")
public RestResponse<HashMap<String, String>> getAccountInfo(HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
HashMap<String, String> result = licenceOrderApiService.getAccountInfo().getResult();
return RestResponse.successResult(result);
}
/**
* 申请退款
*/
@RequestMapping("licence-order-wxRefoud")
public RestResponse<Boolean> wxRefund(@RequestParam Long orderId, HttpServletRequest request) {
AuthcenterUserDetails loginUser = (AuthcenterUserDetails) SessionContextUtil.getUser(request);
if (loginUser == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_4.getCode()), HaoBanErrCode.ERR_4.getMsg());
}
ServiceResponse<Boolean> response = licenceOrderApiService.wxRefund(orderId);
if (response.isSuccess()){
return RestResponse.successResult(true);
}
return RestResponse.failure(response.getCode(), response.getMessage());
}
}
package com.gic.haoban.manage.web.qo.licence;
import com.gic.api.base.commons.BasePageInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderPageQO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 订单创建开始时间
*/
private String startTime;
/**
* 订单创建结束时间
*/
private String endTime;
/**
* 支付方式 1在线支付 2对公转账
*/
private Integer payType;
/**
* gic商户查询id
*/
private String enterpriseIdParam;
/**
* 微信订单id
*/
private String wxOrderId;
}
package com.gic.haoban.manage.web.qo.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderQO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
// /**
// * 基础帐号个数
// */
// private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 校验金额
*/
public Integer checkPrice(){
if (this.externalContactCount ==null || this.externalContactCount<0){
return -1;
}
Integer myPrice=0;
//根据企业微信的计费规则计算
if (this.externalContactCount<=5){
myPrice = 50*this.externalContactCount;
} else if (this.externalContactCount<=200) {
myPrice = 250+40*(this.externalContactCount-5);
} else if (this.externalContactCount<=500) {
myPrice = 8050+30*(this.externalContactCount-200);
} else if (this.externalContactCount<=1000) {
myPrice = 17050+20*(this.externalContactCount-500);
} else if (this.externalContactCount<=10000) {
myPrice = 27050+10*(this.externalContactCount-1000);
}else {
return -1;
}
//转化为分
myPrice = myPrice*this.timeValue*100;
if (this.timeType == 1){
//企业微信的规则: 12.312,最终保留的是12.32
if (myPrice%12==0){
myPrice = myPrice/12;
}else {
myPrice = myPrice/12+1;
}
}else {
if (myPrice%372==0){
myPrice = myPrice/372;
}else {
myPrice = myPrice/372+1;
}
}
if (!this.price .equals(myPrice)){
return 0;
}
return 1;
}
}
package com.gic.haoban.manage.web.vo.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderPageVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单id
*/
private Long orderId;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
/**
* 基础帐号个数
*/
private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 订单状态更改原因
*/
private String orderStatusReason;
/**
* 支付时间 支付类型为1:微信支付时间 2:审核确认通过的时间
*/
private Date payTime;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 企业微信订单更改原因
*/
private String qywxOrderStatusReason;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 企业微信支付时间
*/
private Date qywxPayTime;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* gic品牌名称
*/
private String enterpriseName;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 微信商户名称
*/
private String wxEnterpriseName;
/**
* 微信订单id
*/
private String wxOrderId;
}
package com.gic.haoban.manage.web.vo.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderProgressVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private Long id;
/**
* 订单状态
*/
private String orderStatus;
/**
* 标记字段 1好办后台
*/
private Integer type;
/**
* 上传凭证url
*/
private String voucher;
/**
* 原因
*/
private String reason;
/**
* 创建时间
*/
private Date createTime;
}
package com.gic.haoban.manage.web.vo.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单id
*/
private Long orderId;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* gic品牌名称
*/
private String enterpriseName;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 企业微信商户名称
*/
private String wxEnterpriseName;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
/**
* 基础帐号个数
*/
private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 订单编号
*/
private String orderNumber;
/**
* 上传凭证url
*/
private String voucher;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 订单状态更改原因
*/
private String orderStatusReason;
/**
* 支付时间 支付类型为1:微信支付时间 2:上传凭证时间
*/
private Date payTime;
/**
* 退款时间
*/
private Date refundTime;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 企业微信订单更改原因
*/
private String qywxOrderStatusReason;
/**
* 企业微信支付时间
*/
private Date qywxPayTime;
/**
* 企业微信退款时间
*/
private Date qywxRefundTime;
/**
* 审核不通过原因
*/
private String reason;
/**
* 创建时间
*/
private Date createTime;
/**
* 到期时间
*/
private Date expireTime;
/**
* 当前时间
*/
private Date nowTime;
/**
* 订单进度list
*/
private List<LicenceOrderProgressVO> OrderProgressList;
}
......@@ -67,4 +67,5 @@
<dubbo:reference interface="com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService" id="haobanQywxFeeApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.role.HaobanRoleApiService" id="haobanRoleApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.role.HaobanMenuApiService" id="haobanMenuApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.licence.LicenceOrderApiService" id="licenceOrderApiService"/>
</beans>
......@@ -29,6 +29,61 @@ public class Config {
@Value("${addDelFriendEvent}")
private String addDelFriendEvent;
@Value("${buyerUserid}")
private String buyerUserid;
/**
* 企业微信许可账号购买信息
*/
@Value("${accountName}")
private String accountName;
@Value("${accountNumber}")
private String accountNumber;
@Value("${bankName}")
private String bankName;
@Value("${dingUrl}")
private String dingUrl;
public String getDingUrl() {
return dingUrl;
}
public void setDingUrl(String dingUrl) {
this.dingUrl = dingUrl;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getBuyerUserid() {
return buyerUserid;
}
public void setBuyerUserid(String buyerUserid) {
this.buyerUserid = buyerUserid;
}
public String getHmLinkUrl() {
return hmLinkUrl;
}
......
package com.gic.haoban.manage.service.dao.mapper;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.service.entity.TabExternalMemberLog;
/**
*
* @ClassName: TabHaobanExternalMemberLogMapper
* @Description: TODO
* @Author 徐高华
* @Date 2023年04月04日 10:19:47
* @Modify
* @CopyRight
*/
public interface ExternalMemberLogMapper {
public int insert(TabExternalMemberLog log);
public int updateStatus(@Param("enterpriseId") String enterpriseId, @Param("id")long id,
@Param("statusFlag") int statusFlag);
public TabExternalMemberLog selectRelationKey(@Param("enterpriseId") String enterpriseId,
@Param("relationKey") String relationKey);
public List<TabExternalMemberLog> listForTimer(@Param("start")Date start , @Param("end")Date end) ;
}
\ No newline at end of file
......@@ -82,21 +82,10 @@ public interface TabHaobanExternalClerkRelatedMapper {
@Param("unionId") String unionId);
/**
* 外部联系人的unionid
*
* @param enterpriseId
* @param unionId
* @return
*/
// TabHaobanExternalClerkRelated getClerkExternalByUnionId(@Param("enterpriseId") String enterpriseId,
// @Param("clerkId") String clerkId,
// @Param("unionId") String unionId);
/**
* @param relationKey
* @return
*/
TabHaobanExternalClerkRelated getByRelationKey(@Param("relationKey") String relationKey);
TabHaobanExternalClerkRelated getByRelationKey(@Param("relationKey") String relationKey , @Param("filterMember")int filterMember);
/**
* 列表数据 根据状态 时间倒序
......
......@@ -57,4 +57,6 @@ public interface TabHaobanWelcomeMediaMapper {
*/
List<TabHaobanWelcomeMedia> listByWelcomeId(@Param("welcomeId") String welcomeId);
int updateByMiniProgramId(@Param("mediaUrl") String mediaUrl,@Param("miniProgramId") String miniProgramId);
}
package com.gic.haoban.manage.service.dao.mapper.licence;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderPageQDTO;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author jx
* @since 2023-03-09
*/
public interface TabHaobanLicenceOrderMapper {
/**
* 获取订单详情
*
* @param orderId
* @return
*/
TabHaobanLicenceOrder selectById(@Param("orderId") Long orderId);
/**
* 新增订单
*
* @param tabHaobanLicenceOrder
* @return
*/
Integer insert(TabHaobanLicenceOrder tabHaobanLicenceOrder);
/**
* 删除订单
*
* @param orderId
* @return
*/
Integer deleteById(@Param("orderId") Long orderId);
/**
* 跟新订单状态
*
* @param orderId
* @param type
* @return
*/
Integer updateLicenceOrderType(@Param("orderId") Long orderId, @Param("type") Integer type);
/**
* 跟新企业微信订单状态
*
* @param orderId
* @param type
* @return
*/
Integer updateQywxOrderType(@Param("orderId") Long orderId, @Param("type") Integer type);
/**
* 上传订单支付凭证
*
* @param orderId
* @param voucher
* @return
*/
Integer uploadLicenceOrderVoucher(@Param("orderId") Long orderId, @Param("voucher") String voucher);
/**
* 根据wxEnterpriseId查询企业是否存在未支付订单
*
* @param wxEnterpriseId
* @return order_id
*/
String selectByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 分页查询订单列表
*
* @param licenceOrderPageQDTO
* @return
*/
List<TabHaobanLicenceOrder> getLicenceOrderPage(LicenceOrderPageQDTO licenceOrderPageQDTO);
Integer saveTransactionCode(@Param("orderId") Long orderId, @Param("orderNumber") String orderNumber, @Param("prepayId") String prepayId,
@Param("wxOrderId") String wxOrderId, @Param("payTime") Date payTime, @Param("wxUrl") String wxUrl);
/**
* 获取订单详情
*
* @param orderNumber 订单编号
* @return
*/
TabHaobanLicenceOrder selectByTransactionId(@Param("orderNumber") String orderNumber);
/**
* @param qywxOrderId 企业微信订单id
* @return
*/
TabHaobanLicenceOrder selectByQywxOrderId(@Param("qywxOrderId") String qywxOrderId);
/**
* 保存企业微信订单id
*
* @param orderId
* @param qywxOrderId
* @return
*/
Integer saveQywxOrderId(@Param("orderId") Long orderId, @Param("qywxOrderId") String qywxOrderId);
List<String> getTransactionIdList(@Param("orderNumber") String orderNumber, @Param("wxEnterpriseId") String wxEnterpriseId);
List<String> getQywxOrderId(@Param("qywxOrderId") String qywxOrderId, @Param("wxEnterpriseId") String wxEnterpriseId);
List<String> getWxOrderId(@Param("wxOrderId") String wxOrderId, @Param("wxEnterpriseId") String wxEnterpriseId);
Integer saveOrderCheckReason(@Param("orderId") Long orderId, @Param("reason") String reason, @Param("type") Integer type);
/**
* 记录回调时间
*
* @param orderId 订单id
* @param type 0 微信支付时间 1 微信退款时间 2 企业微信支付时间 3企业微信退款时间
* @param time
* @return
*/
Integer saveCallBackTime(@Param("orderId") Long orderId, @Param("type") Integer type, @Param("time") Date time);
/**
* 根据wxEnterpriseId查询企业订单已支付数量
*
* @param wxEnterpriseId
*/
Integer selectCountByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
}
package com.gic.haoban.manage.service.dao.mapper.licence;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author jx
* @since 2023-03-09
*/
public interface TabHaobanLicenceOrderProgressMapper {
/**
* 插入订单进度数据
* @param tabHaobanLicenceOrderProgress
* @return
*/
Integer insert(TabHaobanLicenceOrderProgress tabHaobanLicenceOrderProgress);
List<TabHaobanLicenceOrderProgress> getListByOrderId(@Param("orderId") Long orderId,@Param("type") Integer type);
Integer deleteByOrderId(@Param("orderId") Long orderId);
Integer uploadLicenceOrderVoucher(@Param("orderId")Long orderId, @Param("voucher")String voucher);
}
......@@ -58,6 +58,6 @@ public interface TabHaobanRoleMenuMapper {
@Param("roleId") Long roleId,
@Param("menuCodes") List<String> menuCodes);
int deleteByMenuCode(@Param("menuCode") String menuCode, @Param("wxEnterpriseId") String wxEnterpriseId);
int deleteByMenuCodeAndRoleId(@Param("menuCode") String menuCode, @Param("wxEnterpriseId") String wxEnterpriseId,@Param("roleId") Long roleId);
}
package com.gic.haoban.manage.service.entity;
import java.io.Serializable ;
/**
*
* @ClassName: TabHaobanExternalMemberLog
* @Description: TODO
* @Author 徐高华
* @Date 2023年04月04日 10:19:47
* @Modify
* @CopyRight
*/
public class TabExternalMemberLog implements Serializable{
private static final long serialVersionUID = 1709395027793900L;
private Long logId;
private String enterpriseId;
private String unionid;
private String relationKey;
private Integer deleteFlag;
private java.util.Date createTime;
private java.util.Date updateTime;
/**1有效 0无效*/
private Integer statusFlag;
private String memberId ;
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public void setLogId(Long logId){
this.logId = logId;
}
public Long getLogId(){
return logId;
}
public void setEnterpriseId(String enterpriseId){
this.enterpriseId = enterpriseId;
}
public String getEnterpriseId(){
return enterpriseId;
}
public void setUnionid(String unionid){
this.unionid = unionid;
}
public String getUnionid(){
return unionid;
}
public void setRelationKey(String relationKey){
this.relationKey = relationKey;
}
public String getRelationKey(){
return relationKey;
}
public void setDeleteFlag(Integer deleteFlag){
this.deleteFlag = deleteFlag;
}
public Integer getDeleteFlag(){
return deleteFlag;
}
public void setCreateTime(java.util.Date createTime){
this.createTime = createTime;
}
public java.util.Date getCreateTime(){
return createTime;
}
public void setUpdateTime(java.util.Date updateTime){
this.updateTime = updateTime;
}
public java.util.Date getUpdateTime(){
return updateTime;
}
public void setStatusFlag(Integer statusFlag){
this.statusFlag = statusFlag;
}
public Integer getStatusFlag(){
return statusFlag;
}
}
\ No newline at end of file
......@@ -72,6 +72,18 @@ public class TabMiniprogramSetting implements Serializable {
private Date updateTime;
private Integer miniprogramType;
/**
* 是否同步更新欢迎语 0否1是
*/
public Integer renewWelcome;
public Integer getRenewWelcome() {
return renewWelcome;
}
public void setRenewWelcome(Integer renewWelcome) {
this.renewWelcome = renewWelcome;
}
public Integer getMiniprogramType() {
return miniprogramType;
......
package com.gic.haoban.manage.service.entity.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class TabHaobanLicenceOrder implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单id
*/
private Long orderId;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
/**
* 基础帐号个数
*/
private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 订单编号
*/
private String orderNumber;
/**
* 上传凭证url
*/
private String voucher;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 订单状态更改原因
*/
private String orderStatusReason;
/**
* 支付类型为1:微信支付时间 2:上传凭证时间
*/
private Date payTime;
/**
* 退款时间
*/
private Date refundTime;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 企业微信订单更改原因
*/
private String qywxOrderStatusReason;
/**
* 企业微信支付时间
*/
private Date qywxPayTime;
/**
* 企业微信退款时间
*/
private Date qywxRefundTime;
/**
* 审核不通过原因
*/
private String reason;
/**
* 逻辑删除,0未删除,1删除
*/
private Integer deleteFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 到期时间
*/
private Date expireTime;
/**
* 微信预支付交易id
*/
private String prepayId;
/**
* 微信支付id
*/
private String wxOrderId;
/**
* 微信url
*/
private String wxUrl;
}
package com.gic.haoban.manage.service.entity.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class TabHaobanLicenceOrderProgress implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private Long id;
/**
* gic商户Id
*/
private String enterpriseId;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 订单id
*/
private Long orderId;
/**
* 订单状态
*/
private String orderStatus;
/**
* 标记字段 1好办后台
*/
private Integer type;
/**
* 上传凭证url
*/
private String voucher;
/**
* 原因
*/
private String reason;
/**
* 逻辑删除,0未删除,1删除
*/
private Integer deleteFlag;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人名称
*/
private String creatorName;
}
......@@ -9,6 +9,7 @@ public enum HaoBanErrCode {
ERR_10012("10012","企业微信不存在"),
ERR_OTHER("9999","业务异常"),
ERR_100033("100033", "活码分组已经被关联,不可删除"),
ERR_100034("100034", "无法删除该分组"),
ERR_2000("2000", "企微接口调用次数限制-月"),
ERR_2001("2001", "企微接口调用次数限制-天"),
ERR_2002("2002", "企微接口调用次数限制-小时"),
......
package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.api.dto.ExternalMemberLogDTO;
import com.gic.haoban.manage.service.entity.TabExternalMemberLog;
public interface ExternalMemberService {
public int updateStatus(String enterpriseId, long id, int statusFlag);
public int insert(ExternalMemberLogDTO log);
public TabExternalMemberLog selectRelationKey(String enterpriseId, String relationKey);
public void welcomeForMember();
}
package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.api.dto.hm.HmQrcodeDTO;
public interface WelcomeSendService {
/**
* @Description: 发送欢迎语
*/
public void sendWelcome(String params);
/**
* @Title: sendWelcome
* @Description: 发送欢迎语
* @throws
*/
public void sendWelcome(String corpid, String externalUserId, String welcomeCode, String wxUserId, String state);
public String getHmClerk(HmQrcodeDTO hmDTO, String wxEnterpriseId, String staffId);
}
package com.gic.haoban.manage.service.service.impl;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.api.dto.ExternalMemberLogDTO;
import com.gic.haoban.manage.service.dao.mapper.ExternalMemberLogMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.entity.TabExternalMemberLog;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.service.ExternalMemberService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberOpenCardBusinessService;
import com.gic.member.api.service.MemberService;
@Service
public class ExternalMemberServiceImpl implements ExternalMemberService {
private static final Logger logger = LoggerFactory.getLogger(ExternalMemberService.class);
@Autowired
private ExternalMemberLogMapper externalMemberLogMapper;
@Autowired
private MemberOpenCardBusinessService memberOpenCardBusinessService ;
@Autowired
private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper ;
@Autowired
private MemberService memberService ;
@Override
public int insert(ExternalMemberLogDTO log) {
TabExternalMemberLog entity = EntityUtil.changeEntity(TabExternalMemberLog.class, log);
TabExternalMemberLog old = this.externalMemberLogMapper.selectRelationKey(log.getEnterpriseId(),
log.getRelationKey());
if (null != old) {
return 0;
}
entity.setLogId(UniqueIdUtils.uniqueLong());
this.externalMemberLogMapper.insert(entity);
return 0;
}
public int updateStatus(String enterpriseId, long id, int statusFlag) {
return this.externalMemberLogMapper.updateStatus(enterpriseId, id, statusFlag);
}
@Override
public TabExternalMemberLog selectRelationKey(String enterpriseId, String relationKey) {
TabExternalMemberLog log = this.externalMemberLogMapper.selectRelationKey(enterpriseId, relationKey);
return log;
}
@Override
public void welcomeForMember() {
logger.info("欢迎语处理会员定时");
Date end = DateUtil.getStartTimeOfDay() ;
Date start = DateUtil.addNumForDay(end, -1) ;
List<TabExternalMemberLog> list = this.externalMemberLogMapper.listForTimer(start, end) ;
for(TabExternalMemberLog log : list) {
String relationKey = log.getRelationKey() ;
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey,0);
if (related == null) {
logger.info("好友记录不存在relationKey={}",relationKey);
continue ;
}
String enterpriseId = log.getEnterpriseId() ;
if(StringUtils.isNotEmpty(related.getMemberId())) {
this.externalMemberLogMapper.updateStatus(enterpriseId, log.getLogId(), 2) ;
continue ;
}
String unionid = log.getUnionid() ;
MemberDTO member = this.memberService.getMemberByUnionid(unionid, enterpriseId) ;
if(null == member) {
logger.info("会员记录不存在relationKey={},{}",relationKey,unionid);
continue ;
}
String memberId =member.getMemberId() ;
this.memberOpenCardBusinessService.memberClerkProcessByQywxFriend(enterpriseId, memberId, unionid, relationKey);
this.externalMemberLogMapper.updateStatus(enterpriseId, log.getLogId(), 2) ;
}
}
}
......@@ -163,6 +163,7 @@ public class MaterialServiceImpl implements MaterialService {
JSONResponse jp = new JSONResponse() ;
MaterialDTO old = null ;
TabMaterialContent entity =null ;
int qwUploadFrom = 1 ;
if(from == 1) {
old = this.selectMaterialById(materialId);
}
......@@ -172,7 +173,7 @@ public class MaterialServiceImpl implements MaterialService {
old = EntityUtil.changeEntityByJSON(MaterialDTO.class, entity) ;
}
// 1群发 2朋友圈
from = entity.getMediaType() ;
qwUploadFrom = entity.getMediaType() ;
}
Integer type = old.getMaterialType();
if (type == null) {
......@@ -215,7 +216,7 @@ public class MaterialServiceImpl implements MaterialService {
arr = url.split("/");
}
int count = arr.length;
if(from==2) {
if(qwUploadFrom==2) {
// 朋友圈上传接口
if (type == 2) {
if(url.contains("?")) {
......@@ -224,8 +225,8 @@ public class MaterialServiceImpl implements MaterialService {
}
url+= "?imageView2/2/w/1440/h/1080" ;
logger.info("url={}",url);
jp = qywxSuiteApiService.uploadAttachment(qwDTO.getThirdCorpid(), config.getWxSuiteid(), CommonUtil.getFileByte(url), arr[count - 1], fileType.getCode());
}
jp = qywxSuiteApiService.uploadAttachment(qwDTO.getThirdCorpid(), config.getWxSuiteid(), CommonUtil.getFileByte(url), arr[count - 1], fileType.getCode());
}else {
// 群发上传
jp = qywxSuiteApiService.uploadMedia(qwDTO.getThirdCorpid(), config.getWxSuiteid(), CommonUtil.getFileByte(url), arr[count - 1], fileType.getCode());
......
......@@ -3,7 +3,6 @@ package com.gic.haoban.manage.service.service.impl;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.enterprise.api.service.LinkService;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.welcome.dto.WelcomeRemoveCheckDTO;
import com.gic.haoban.manage.api.dto.welcome.qdto.QueryWelcomeQDTO;
......@@ -40,7 +39,6 @@ import com.gic.haoban.manage.service.pojo.bo.welcome.WelcomeSuitDepartmentBO;
import com.gic.haoban.manage.service.pojo.bo.welcome.WelcomeSuitStaffBO;
import com.gic.haoban.manage.service.pojo.qo.WelcomeInfoQO;
import com.gic.haoban.manage.service.pojo.qo.WelcomeRelationQO;
import com.gic.haoban.manage.service.service.KeyDataService;
import com.gic.haoban.manage.service.service.WelcomeService;
import com.gic.haoban.manage.service.service.WelcomeSuitRangService;
import com.gic.haoban.manage.service.service.hm.HmLinkService;
......
package com.gic.haoban.manage.service.service.licence;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author jx
* @since 2023-03-09
*/
public interface LicenceOrderProgressService {
Integer insert(TabHaobanLicenceOrderProgress tabHaobanLicenceOrderProgress);
List<TabHaobanLicenceOrderProgress> getListByOrderId(Long orderId,Integer type);
Integer deleteByOrderId(Long orderId);
}
package com.gic.haoban.manage.service.service.licence;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderPageQDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderQDTO;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* 企业微信许可账号购买
* </p>
*
* @author jx
* @since 2023-03-09
*/
public interface LicenceOrderService {
/**
* 查询企业微信订单详情
*
* @param orderId 订单id
* @return
*/
TabHaobanLicenceOrder getLicenceOrderDetail(Long orderId);
/**
* 删除订单
*
* @param orderId 订单id
* @return
*/
Integer deleteLicenceOrder(Long orderId);
/**
* 新增或者修改订单
*
* @param licenceOrderQDTO
* @return orderId
*/
String saveOrUpdateLicenceOrder(LicenceOrderQDTO licenceOrderQDTO);
/**
* 更新订单状态
*
* @param orderId 订单id
* @param type 订单状态
* @param wxFlag 1微信订单状态 0 企业微信订单状态
* @return
*/
Boolean updateLicenceOrderType(Long orderId, Integer type, String enterpriseId, String wxEnterpriseId, String creatorName, Integer wxFlag);
/**
* 上次订单支付凭证
*
* @param orderId 订单id
* @param voucher 凭证url
* @return
*/
Boolean uploadLicenceOrderVoucher(Long orderId, String voucher, String enterpriseId, String wxEnterpriseId, String creatorName);
/**
* 查询企业是否存在订单未支付接口
*
* @param wxEnterpriseId 企业微信id
* @return
*/
String isPayLicenceOrder(String wxEnterpriseId);
/**
* 分页查询订单列表
*
* @param licenceOrderPageQDTO
* @return
*/
Page<LicenceOrderPageDTO> getLicenceOrderPage(LicenceOrderPageQDTO licenceOrderPageQDTO);
/**
* 保存微信交易信息
*
* @param orderId 订单id
* @param transactionCode 订单编号
* @param prepayId 微信预支付id
* @param wxOrderId 微信支付id
* @return
*/
Integer saveTransactionCode(Long orderId, String transactionCode, String prepayId, String wxOrderId, Date payTime,String wxUrl);
/**
* 查询微信订单详情
*
* @param transactionId 订单编号
* @return
*/
TabHaobanLicenceOrder selectByTransactionId(String transactionId);
/**
* 查询订单详情
* @param qywxOrderId 企业微信订单id
* @return
*/
TabHaobanLicenceOrder selectByQywxOrderId(String qywxOrderId);
/**
* 保存企业微信订单id
*
* @param orderId
* @param qywxOrderId
* @return
*/
Integer saveQywxOrderId(Long orderId, String qywxOrderId);
/**
* 查询订单编号id
* @param param 查询参数
* @param type 0 微信订单编号 1 企业微信订单编号
* @param wxEnterpriseId
* @return
*/
List<String> getOrderIdList(String param, Integer type, String wxEnterpriseId);
/**
* 审核订单
* @param orderId 订单id
* @param flag 是否通过 0 否 1是
* @param reason 不通过原因
* @return
*/
Boolean checkLicenceOrder(Long orderId,Integer flag,String reason,String creatorName);
/**
* 记录回调时间
* @param orderId 订单id
* @param type 0 微信支付时间 1 微信退款时间 2 企业微信支付时间 3企业微信退款时间
* @param time
* @return
*/
Boolean saveCallBackTime(Long orderId,Integer type,Date time);
/**
* 根据wxEnterpriseId查询企业订单已支付数量
*
* @param wxEnterpriseId
*/
Integer selectCountByWxEnterpriseId(String wxEnterpriseId);
}
package com.gic.haoban.manage.service.service.licence.impl;
import com.gic.haoban.manage.service.dao.mapper.licence.TabHaobanLicenceOrderProgressMapper;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress;
import com.gic.haoban.manage.service.service.licence.LicenceOrderProgressService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @Author: wenhua
* @Date: 2023/3/9 17:02
*/
@Service
public class LicenceOrderProgressServiceImpl implements LicenceOrderProgressService {
@Autowired
private TabHaobanLicenceOrderProgressMapper tabHaobanLicenceOrderProgressMapper;
@Override
public Integer insert(TabHaobanLicenceOrderProgress tabHaobanLicenceOrderProgress) {
Integer insert = tabHaobanLicenceOrderProgressMapper.insert(tabHaobanLicenceOrderProgress);
return insert;
}
@Override
public List<TabHaobanLicenceOrderProgress> getListByOrderId(Long orderId,Integer type) {
List<TabHaobanLicenceOrderProgress> list = tabHaobanLicenceOrderProgressMapper.getListByOrderId(orderId,type);
return list;
}
@Override
public Integer deleteByOrderId(Long orderId) {
return tabHaobanLicenceOrderProgressMapper.deleteByOrderId(orderId);
}
}
......@@ -58,9 +58,11 @@ public class NoticeMessageServiceImpl implements NoticeMessageService {
}
@Override
public Page<NoticeMessageBO> pageNoticeMessage(String enterpriseId, String storeId, String clerkId, int categoryType, BasePageInfo pageInfo) {
public Page<NoticeMessageBO> pageNoticeMessage(String enterpriseId, String storeId, String clerkId,
int categoryType, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo);
List<TabNoticeMessage> list = noticeMessageMapper.listNoticeMessage(enterpriseId, storeId, clerkId, categoryType);
List<TabNoticeMessage> list = noticeMessageMapper.listNoticeMessage(enterpriseId, storeId, clerkId,
categoryType);
Page<NoticeMessageBO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list, NoticeMessageBO.class);
return retPage;
}
......
......@@ -132,7 +132,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Override
public ExternalClerkRelatedDTO getExternalClerkByRelationKeyAndPre(String relationKey) {
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey);
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey,0);
return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, related);
}
......@@ -166,7 +166,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Override
public ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid) {
ServiceResponse<ExternalClerkRelatedDTO> resp = new ServiceResponse<>();
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey);
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey,1);
if (null == externalClerkRelated) {
log.error("relationKey对应的关联关系不存在或删除:relationKey:{},memberId:{},unionid:{}", relationKey, memberId, unionid);
resp.setCode(0);
......
......@@ -137,6 +137,14 @@ public class HandoverOperationApiServiceImpl implements HandoverOperationApiServ
try {
TabHaobanStaff handover = staffService.selectById(dto.getHandoverStaffId());
TabHaobanStaff takeover = staffService.selectById(dto.getTakeoverStaffId());
if(null == handover) {
logger.info("handover is null={}",dto.getHandoverStaffId());
return;
}
if(null == takeover) {
logger.info("takeover is null={}",dto.getTakeoverStaffId());
return;
}
QywxTransferCustomerDTO customerDTO = qywxUserApiService.transferResult(qwDTO.getThirdCorpid(), config.getWxSuiteid(), handover.getWxUserId(), takeover.getWxUserId(), true);
if (customerDTO.getErrcode() != 0) {
return;
......
......@@ -14,6 +14,7 @@ import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.manage.api.dto.CommonMQDTO;
import com.gic.haoban.manage.api.service.HaobanCommonMQApiService;
import com.gic.haoban.manage.service.service.StaffDepartmentRelatedService;
import com.gic.haoban.manage.service.service.WelcomeSendService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.quartz.api.dto.QuartzTaskDTO;
import com.gic.quartz.api.service.QuartzService;
......@@ -26,14 +27,16 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
private static GicMQClient mqClient = GICMQClientUtil.getClientInstance();
@Autowired
private QuartzService quartzService ;
private QuartzService quartzService;
@Autowired
private StaffDepartmentRelatedService staffDepartmentRelatedService ;
private StaffDepartmentRelatedService staffDepartmentRelatedService;
@Autowired
private WelcomeSendService welcomeSendService;
@Override
public void putCommonMessage(CommonMQDTO dto) {
String message = JSONObject.toJSONString(dto);
log.info("加入好办通用队列params={}",message);
log.info("加入好办通用队列params={}", message);
try {
mqClient.sendCommonMessage("haobanCommonRouter", message,
"com.gic.haoban.manage.api.service.HaobanCommonMQApiService", "commonHandler");
......@@ -44,9 +47,9 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
}
@Override
public void putCommonDelayMessage(CommonMQDTO dto , int delay) {
public void putCommonDelayMessage(CommonMQDTO dto, int delay) {
String message = JSONObject.toJSONString(dto);
log.info("加入好办延时通用队列params={}",message);
log.info("加入好办延时通用队列params={}", message);
try {
mqClient.sendMessage("haobanDelayMQ", message, delay);
} catch (Exception e) {
......@@ -57,18 +60,18 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
@Override
public void commonHandler(String message) {
log.info("接收好办通用队列params={}",message);
log.info("接收好办通用队列params={}", message);
CommonMQDTO dto = JSON.parseObject(message, CommonMQDTO.class);
// 好办停用,删除定时
Map<String,String> map = (Map<String, String>) dto.getParams() ;
Map<String, String> map = (Map<String, String>) dto.getParams();
switch (dto.getType()) {
case 1:
String enterpriseId = map.get("enterpriseId") ;
String enterpriseId = map.get("enterpriseId");
this.deleteQuartz(enterpriseId);
break;
case 2:
String staffId = map.get("staffId") ;
if(StringUtils.isNotBlank(staffId)) {
String staffId = map.get("staffId");
if (StringUtils.isNotBlank(staffId)) {
this.staffDepartmentRelatedService.repairStaffDepart(staffId);
}
default:
......@@ -77,10 +80,10 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
}
private void deleteQuartz(String enterpriseId) {
if(StringUtils.isBlank(enterpriseId)) {
return ;
if (StringUtils.isBlank(enterpriseId)) {
return;
}
log.info("删除好办定时eid={}",enterpriseId);
log.info("删除好办定时eid={}", enterpriseId);
// 日报
QuartzTaskDTO task = new QuartzTaskDTO();
task.setTaskService("com.gic.haoban.app.daily.api.service.DailyReportTaskApiService");
......@@ -88,4 +91,9 @@ public class HaobanCommonMQApiServiceImpl implements HaobanCommonMQApiService {
task.setReferId(enterpriseId);
this.quartzService.delQuartzTask(task);
}
@Override
public void welcomeMQ(String params) {
this.welcomeSendService.sendWelcome(params);
}
}
......@@ -6,6 +6,7 @@ import org.springframework.stereotype.Service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.service.HaobanTimerApiService;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.ExternalMemberService;
import com.gic.haoban.manage.service.service.StaffDepartmentRelatedService;
import com.gic.haoban.manage.service.service.chat.GroupChatService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeTempService;
......@@ -21,6 +22,9 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
private StaffDepartmentRelatedService staffDepartmentRelatedService;
@Autowired
private GroupChatService groupChatService;
@Autowired
private ExternalMemberService externalMemberService ;
@Override
public ServiceResponse<Void> deleteTempWxHm(String params) {
......@@ -69,4 +73,10 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
this.groupChatService.ownerDimission();
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> welcomeForMember(String params) {
this.externalMemberService.welcomeForMember() ;
return ServiceResponse.success();
}
}
......@@ -4,6 +4,7 @@ import java.util.Date;
import java.util.List;
import java.util.Objects;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanWelcomeMediaMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -42,6 +43,9 @@ public class MiniprogramSettingServiceImpl implements MiniprogramSettingService
@Autowired
private WxEnterpriseService wxEnterpriseService;
@Autowired
private TabHaobanWelcomeMediaMapper tabHaobanWelcomeMediaMapper;
@Override
public TabMiniprogramSetting getById(String miniprogramSettingId) {
TabMiniprogramSetting miniprogramSetting = tabMiniprogramSettingMapper.selectByPrimaryKey(miniprogramSettingId);
......@@ -84,6 +88,10 @@ public class MiniprogramSettingServiceImpl implements MiniprogramSettingService
miniprogramSetting.setMediaTime(date);
miniprogramSetting.setUpdateTime(new Date());
tabMiniprogramSettingMapper.updateByPrimaryKeySelective(miniprogramSetting);
//判断是否需要更新欢迎语里面冗余小程序的封面
if(null!=miniprogramSetting.getRenewWelcome() && miniprogramSetting.getRenewWelcome()==1){
tabHaobanWelcomeMediaMapper.updateByMiniProgramId(miniprogramSetting.getImageUrl(),miniprogramSetting.getMiniprogramSettingId());
}
}
}
......
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.service.out.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Constant;
......@@ -9,6 +10,7 @@ import com.gic.api.base.commons.Page;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.clerk.api.service.PowerService;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.ImageUtil;
import com.gic.enterprise.api.dto.EnterpriseSettingDTO;
......@@ -31,11 +33,9 @@ import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.StaffDepartmentRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.entity.TabHaobanDepartment;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffDepartmentRelated;
import com.gic.haoban.manage.service.entity.TabHaobanSyncErrorLog;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.service.chat.GroupChatService;
import com.gic.haoban.manage.service.util.EmojiFilterUtil;
import com.gic.redis.data.util.RedisUtil;
import com.gic.thirdparty.cloudfile.CloudFileUtil;
......@@ -56,6 +56,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -104,6 +105,8 @@ public class StaffApiServiceImpl implements StaffApiService {
private Config config;
@Autowired
private QywxOrderApiService qywxOrderApiService;
@Autowired
private GroupChatService groupChatService;
@Override
public StaffDTO selectById(String staffId) {
......@@ -139,6 +142,9 @@ public class StaffApiServiceImpl implements StaffApiService {
List<String> staffIds = new ArrayList<>();
if (relationFlag != null) {
staffIds = staffClerkRelationService.listByWxEnterpriseId(wxEnterpriseId);
if (CollectionUtils.isEmpty(staffIds) && relationFlag == 1){
return new Page<>();
}
}
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
Page<StaffDTO> page = PageUtil.changePageHelperToCurrentPage(staffService.pageStaff(staffIds, activeFlag, keyword, departmentIds, wxEnterpriseId, relationFlag,permitState,occupy), StaffDTO.class);
......@@ -993,6 +999,8 @@ public class StaffApiServiceImpl implements StaffApiService {
successMap.put("takeoverStaffName",takeOverStaff.getStaffName());
successMap.put("takeoverStaffPhone",takeOverStaff.getPhoneNumber());
successList.add(successMap);
//更新成员群列表 todo
groupChatService.initStaffGroupChat(takeOverStaff.getStaffId());
}else{
//企微转移失败,记录失败明细
......@@ -1028,4 +1036,47 @@ public class StaffApiServiceImpl implements StaffApiService {
result.setFailedList(failedList);
return com.gic.api.base.commons.ServiceResponse.failure(listServiceResponse.getCode(),listServiceResponse.getMessage(),result);
}
@Override
public com.gic.api.base.commons.ServiceResponse<Boolean> autoActivateCallBack(String params) {
logger.info("接收企业微信自动激活回调通知:{}",JSON.toJSONString(params));
if (StrUtil.isBlank(params)) {
return com.gic.api.base.commons.ServiceResponse.success(false);
}
//1、解析参数 2、刷新企业微信群列表 3、更新成员信息
JSONObject object = JSONObject.parseObject(params, JSONObject.class);
String infoType = object.getString("infoType");
String authCorpId = object.getString("authCorpId");
String timeStamp = object.getString("timeStamp");
Object accountList = object.get("accountList");
JSONObject obj = JSONObject.parseObject(JSON.toJSONString(accountList), JSONObject.class);
String activeCode = obj.getString("ActiveCode");
String expireTime = obj.getString("ExpireTime");
String userId = obj.getString("UserId");
//将秒级时间戳转换位Date类型
SimpleDateFormat formatter = new SimpleDateFormat(DateUtil.FORMAT_DATETIME_19);
String date_time = formatter.format(new Date(Long.valueOf(timeStamp) * 1000L));
Date timeStampDate = DateUtil.strToDate(date_time, DateUtil.FORMAT_DATETIME_19);
String date_time1 = formatter.format(new Date(Long.valueOf(expireTime) * 1000L));
Date expireTimeDate = DateUtil.strToDate(date_time1, DateUtil.FORMAT_DATETIME_19);
if ("auto_activate".equals(infoType)){
// 成员许可自动激活回调通知
TabHaobanWxEnterprise wxEnterprise = this.wxEnterpriseService.getEnterpriseBycorpId(authCorpId);
if (wxEnterprise==null){
logger.info("微信企业id—>{}不存在",authCorpId);
return com.gic.api.base.commons.ServiceResponse.failure("-9999","微信企业id不存在!");
}
TabHaobanStaff staff = staffService.selectByUserIdAndEnterpriseId(userId, wxEnterprise.getWxEnterpriseId());
if (null == staff){
logger.info("成员userid—>{}不存在",userId);
return com.gic.api.base.commons.ServiceResponse.failure("-9999","成员userid不存在!");
}
String staffId = staff.getStaffId();
groupChatService.initStaffGroupChat(staffId);
staffMapper.updateActiveStatusById(staffId,timeStampDate,expireTimeDate,activeCode);
}
return com.gic.api.base.commons.ServiceResponse.success(true);
}
}
......@@ -154,84 +154,6 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
return map;
}
//导购绑定,,审核记录,,消息发送
@Override
public void sendStaffBind(String staffId, String clerkCode, String storeId, int auditStatus, String auditReason) {
StaffDTO staffDTO = staffApiService.selectById(staffId);
if (staffDTO == null) {
logger.info("staff不存在,发送消息失败{}", staffId);
return;
}
String messageTitle = "账号申请";
String content = staffDTO.getStaffName() + "关联导购code(" + clerkCode + ")";
JSONObject jsonObject = new JSONObject();
jsonObject.put("storeId", storeId);
String data = jsonObject.toJSONString();
String pageUrl = this.getPageUrl(AppPageType.MY_RELATED_RECORD.getCode(), data);
String name = staffDTO.getStaffName();
if (content.length() > 30) {
content = content.substring(0, 26);
content = content + "...";
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(staffDTO.getWxEnterpriseId());
String wxUserId = "";
if (qwDTO.needOpenUserId3th()) {
wxUserId = staffDTO.getWxOpenUseId();
} else {
wxUserId = staffDTO.getWxUserId();
}
//先发送下,试试
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
List<ItemDTO> items = new ArrayList<>();
ItemDTO dto1 = new ItemDTO();
ItemDTO dto2 = new ItemDTO();
ItemDTO dto3 = new ItemDTO();
ItemDTO dto4 = new ItemDTO();
dto1.setKey("接收人");
dto1.setValue(name);
dto2.setKey("接收事件");
dto2.setValue(content);
dto3.setKey("结果");
dto3.setValue(auditStatus == 1 ? "已同意" : "已拒绝");
items.add(dto1);
items.add(dto2);
items.add(dto3);
if (StringUtils.isNotEmpty(auditReason)) {
dto4.setKey("理由");
dto4.setValue(auditReason);
items.add(dto4);
}
ArrayList<String> list = new ArrayList<>();
list.add(wxUserId);
messageDTO.setAppid(config.getAppid());
messageDTO.setUserIds(list);
messageDTO.setPage(pageUrl);
messageDTO.setTitle(messageTitle);
messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},", qwDTO.getThirdCorpid(), config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(qwDTO.getThirdCorpid(), config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}", b);
}
//导购绑定,,审核记录,,消息发送
@Override
public void sendClerkBind(String staffId, String clerkCode, String storeId, int auditStatus, String auditReason) {
StaffDTO staffDTO = staffApiService.selectById(staffId);
if (staffDTO == null) {
logger.info("staff不存在,发送消息失败{}", staffId);
return;
}
String messageTitle = "账号申请";
String messageContent = staffDTO.getStaffName() + "申请关联导购code(" + clerkCode + ")";
JSONObject jsonObject = new JSONObject();
jsonObject.put("storeId", storeId);
String data = jsonObject.toJSONString();
String pageUrl = this.getPageUrl(AppPageType.MY_RELATED_RECORD.getCode(), data);
this.sendAuditMessage(staffId, messageTitle, messageContent, pageUrl, auditStatus, auditReason);
}
//导购新增,,审核记录,,消息发送
@Override
public void sendClerkAdd(String clerkName, String clerkCode, String storeId, int auditStatus, String auditReason) {
......
......@@ -430,7 +430,7 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
Map<String, StoreSimpleDTO> storeIdMap = storeDtos.stream().collect(Collectors.toMap(dto -> dto.getStoreId(), dto -> dto));
//获取所有门店分组
List<PowerStoreGroupDTO> storeGroupList = storeGroupService.getStoreGroupList(enterpriseId, null);
List<PowerStoreGroupDTO> storeGroupList = storeGroupService.getStoreGroupList(enterpriseId, "");
Map<String, Set<String>> storeGroupChainMap = storeGroupList.stream().collect(Collectors.toMap(dto -> dto.getStoreGroupId(),
dto -> Arrays.stream(dto.getStoreGroupChain().split("_")).filter(str -> StringUtils.isNotBlank(str)).collect(Collectors.toSet())));
......
......@@ -15,17 +15,21 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.constants.Manage3Constants;
import com.gic.haoban.manage.api.dto.AlertMessageDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.fee.HaobanQywxFeeAccountInterceptLogDTO;
import com.gic.haoban.manage.api.dto.fee.HaobanQywxFeeDTO;
import com.gic.haoban.manage.api.dto.fee.HaobanQywxFeeDetailDTO;
import com.gic.haoban.manage.api.dto.qdto.QywxFeeListQDTO;
import com.gic.haoban.manage.api.enums.AlertTypeEnum;
import com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
......@@ -227,12 +231,12 @@ public class HaobanQywxFeeApiServiceImpl implements HaobanQywxFeeApiService {
// 统计 haobanQywxFeeDetailDTO 30天内最新过期的时间和人数
HaobanQywxFeeDetailDTO haobanQywxFeeDetailDTO = haobanQywxFeeAccountStaffService.feeIntercept(wxEnterpriseId);
// 未激活数(状态1)
// 剩余可用数量(状态1)
int permissionUserNum = haobanQywxFeeOrderAccountService.countOrderAccountStatus(1, wxEnterpriseId);
// 待转移数(状态4)
int transferUserNum = haobanQywxFeeOrderAccountService.countOrderAccountStatus(4, wxEnterpriseId);
int totalCount = this.haobanQywxFeeOrderService.countExternalContactCount(wxEnterpriseId);
if (haobanQywxFeeDetailDTO != null && permissionUserNum > 0) {
if (haobanQywxFeeDetailDTO != null) {
TabHaobanQywxFee tabHaobanQywxFee = new TabHaobanQywxFee();
tabHaobanQywxFee.setQwFeeId(UniqueIdUtils.uniqueLong());
tabHaobanQywxFee.setCorpName(corpName);
......@@ -246,15 +250,11 @@ public class HaobanQywxFeeApiServiceImpl implements HaobanQywxFeeApiService {
tabHaobanQywxFee.setInterceptFlag(0);
haobanQywxFeeService.insert(tabHaobanQywxFee);
// 判断今天是否是本月最后一天
if (DateUtil.isSameDay(DateUtil.endOfMonth(new Date()), new Date())) {
// int monthWillInterceptNum =
// haobanQywxFeeAccountStaffService.monthWillInterceptNum(wxEnterpriseId);
// String content = "30天将有" + monthWillInterceptNum +
// "个接口许可证即将过期,您总共还剩余" + permissionUserNum +
// "个可用的接口许可证,请保证数量充足,如需增加请及时联系相关人员续费,避免影响使用";
// 告警
// messageAlert(wxEnterpriseId, corpName, corpid,
// AlertTypeEnum.FEE_ALARM.getName(), content);
if (DateUtil.isSameDay(DateUtil.endOfMonth(new Date()), new Date()) || "ca66a01b79474c40b3e7c7f93daf1a3b".equals(wxEnterpriseId)) {
int monthWillInterceptNum = haobanQywxFeeDetailDTO.getInterceptUserNum() ;
String content = "30天将有" + monthWillInterceptNum + "个接口许可证即将过期,您总共还剩余" + permissionUserNum
+ "个可用的接口许可证,请保证数量充足,如需增加请及时联系相关人员续费,避免影响使用";
messageAlert(wxEnterpriseId, corpName, corpid, AlertTypeEnum.FEE_ALARM.getName(), content);
}
}
......@@ -359,4 +359,25 @@ public class HaobanQywxFeeApiServiceImpl implements HaobanQywxFeeApiService {
return EntityUtil.changeEntityNew(HaobanQywxFeeDTO.class,
haobanQywxFeeService.queryByWxEnterpriseId(wxEnterpriseId));
}
private void messageAlert(String wxEnterpriseId, String corpName, String corpid, String titleSub, String content) {
ProviderLocalTag providerLocalTag = ProviderLocalTag.tag.get();
String traceId = providerLocalTag.traceId;
AlertMessageDTO messageDTO = new AlertMessageDTO();
messageDTO.setAlertTitle(titleSub);
messageDTO.setAlertType(AlertTypeEnum.FEE_ALARM.getType());
messageDTO.setWxEnterpriseId(wxEnterpriseId);
Map<String, Object> map = new HashMap<>();
map.put("企业名称", corpName);
map.put("企业id", corpid);
map.put("内容", content);
messageDTO.setContentMap(map);
messageDTO.setTraceId(traceId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendMessage("haobanAlertMq", JSONObject.toJSONString(messageDTO), 6 * 3600);
} catch (Exception e) {
logger.info("异常:{}", e.getMessage(), e);
}
}
}
......@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
......@@ -181,6 +182,13 @@ public class HmGroupApiServiceImpl implements HmGroupApiService {
if (groupSettingBo.getReferNum() != null && groupSettingBo.getReferNum() > 0) {
return ServiceResponse.failure(HaoBanErrCode.ERR_100033.getCode(), HaoBanErrCode.ERR_100033.getMsg());
}
List<HmQrcodeGroupNumBO> qrcodeGroupNumBoList = qrcodeService.getGroupIdNumByEnterpriseId(groupSettingBo.getWxEnterpriseId(), groupSettingBo.getEnterpriseId(), Arrays.asList(groupDTO.getGroupId()), null);
if (CollectionUtils.isNotEmpty(qrcodeGroupNumBoList)) {
if(qrcodeGroupNumBoList.get(0).getNum() > 0) {
return ServiceResponse.failure(HaoBanErrCode.ERR_100034.getCode(), HaoBanErrCode.ERR_100034.getMsg());
}
}
groupService.deleteGroupSetting(groupDTO);
return ServiceResponse.success(Boolean.TRUE);
}
......
......@@ -161,7 +161,11 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
if (systemFlag == 0 && !"-1".equals(wxEnterpriseId)) {
List<String> delMenuCodes = clerkMenus.getDelMenuCodes();
for (String delMenuCode : delMenuCodes) {
haobanRoleMenuService.deleteByMenuCode(delMenuCode, wxEnterpriseId);
//需要删除好办后台的菜单按钮
HaobanRoleBO haobanRoleBO = haobanRoleService.getByWxEnterpriseIdAndClerkType(wxEnterpriseId, 0, 1);
if (haobanRoleBO != null){
haobanRoleMenuService.deleteByMenuCodeAndRoleId(delMenuCode, wxEnterpriseId,haobanRoleBO.getRoleId());
}
}
}
}
......@@ -176,7 +180,11 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
if (systemFlag == 0 && !"-1".equals(wxEnterpriseId)) {
List<String> delMenuCodes = manegeClerkMenus.getDelMenuCodes();
for (String delMenuCode : delMenuCodes) {
haobanRoleMenuService.deleteByMenuCode(delMenuCode, wxEnterpriseId);
//需要删除好办后台的菜单按钮
HaobanRoleBO haobanRoleBO = haobanRoleService.getByWxEnterpriseIdAndClerkType(wxEnterpriseId, 1, 1);
if (haobanRoleBO != null){
haobanRoleMenuService.deleteByMenuCodeAndRoleId(delMenuCode, wxEnterpriseId,haobanRoleBO.getRoleId());
}
}
}
}
......@@ -191,7 +199,11 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
if (systemFlag == 0 && !"-1".equals(wxEnterpriseId)) {
List<String> delMenuCodes = managerMenus.getDelMenuCodes();
for (String delMenuCode : delMenuCodes) {
haobanRoleMenuService.deleteByMenuCode(delMenuCode, wxEnterpriseId);
//需要删除好办后台的菜单按钮
HaobanRoleBO haobanRoleBO = haobanRoleService.getByWxEnterpriseIdAndClerkType(wxEnterpriseId, 2, 1);
if (haobanRoleBO != null){
haobanRoleMenuService.deleteByMenuCodeAndRoleId(delMenuCode, wxEnterpriseId,haobanRoleBO.getRoleId());
}
}
}
}
......
......@@ -73,10 +73,11 @@ public interface HaobanRoleMenuService {
*
* @param menuCode 菜单代码
* @param wxEnterpriseId wx企业标识
* @param roleId 角色id
* @return boolean
* @author mozhu
* @date 2022-10-10 10:44:23
*/
boolean deleteByMenuCode(String menuCode,String wxEnterpriseId);
boolean deleteByMenuCodeAndRoleId(String menuCode,String wxEnterpriseId,Long roleId);
}
......@@ -50,7 +50,7 @@ public class HaobanRoleMenuServiceImpl implements HaobanRoleMenuService {
@Override
public boolean deleteByMenuCode(String menuCode, String wxEnterpriseId) {
return tabHaobanRoleMenuMapper.deleteByMenuCode(menuCode, wxEnterpriseId) > 0;
public boolean deleteByMenuCodeAndRoleId(String menuCode, String wxEnterpriseId,Long roleId) {
return tabHaobanRoleMenuMapper.deleteByMenuCodeAndRoleId(menuCode, wxEnterpriseId,roleId) > 0;
}
}
......@@ -200,6 +200,9 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
*/
private void dealStoreGroup(GroupSyncPojo syncPojo) {
logger.info("门店分组变更binlog监听:{}", JSONObject.toJSONString(syncPojo));
if(null != syncPojo && (null == syncPojo.getOldStatus() || null == syncPojo.getStatus())) {
return ;
}
//删除 同步绑定门店
if (syncPojo!= null && syncPojo.getOldStatus() == 1 && syncPojo.getStatus() == 0) {
logger.info("门店分组变更,同步绑定门店:{}", JSONObject.toJSONString(syncPojo));
......
......@@ -132,6 +132,8 @@
timeout="10000"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.ValidationCodeApiService" ref="validationCodeApiServiceImpl"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.licence.LicenceOrderApiService" ref="licenceOrderApiServiceImpl"/>
<dubbo:reference interface="com.gic.enterprise.api.service.EnterpriseUseForbidService" id="enterpriseUseForbidService"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.role.HaobanMenuApiService" ref="haobanMenuApiServiceImpl"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.role.HaobanRoleApiService" ref="haobanRoleApiServiceImpl"/>
......@@ -203,6 +205,7 @@
<dubbo:reference interface="com.gic.member.tag.api.service.MemberTagGroupApiService" id="memberTagGroupApiService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.enterprise.api.service.ScreeningDetailService" id="screeningDetailService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.wechat.api.service.qywx.QywxOrderApiService" id="qywxOrderApiService" timeout="10000" retries="0"/>
<dubbo:reference id="pay4WXService" interface="com.gic.thirdparty.api.service.Pay4WXService" timeout="10000" retries="0" check="false"/>
<dubbo:service interface="com.gic.haoban.manage.api.service.content.MaterialShareLogApiService"
ref="materialShareLogApiServiceImpl" timeout="10000" />
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.ExternalMemberLogMapper">
<resultMap type="com.gic.haoban.manage.service.entity.TabExternalMemberLog" id="result-map-tabHaobanExternalMemberLog">
<result column="log_id" property="logId"/>
<result column="enterprise_id" property="enterpriseId"/>
<result column="unionid" property="unionid"/>
<result column="member_id" property="memberId"/>
<result column="relation_key" property="relationKey"/>
<result column="delete_flag" property="deleteFlag"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="status_flag" property="statusFlag"/>
</resultMap>
<sql id="Base_Column_List">
log_id,
enterprise_id,
unionid,
member_id ,
relation_key,
delete_flag,
create_time,
update_time,
status_flag
</sql>
<!-- ===================== 新增 ======================== -->
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabExternalMemberLog">
<![CDATA[
INSERT INTO tab_haoban_external_member_log(
log_id,
enterprise_id,
unionid,
member_id ,
relation_key,
delete_flag,
create_time,
update_time,
status_flag
)VALUES(
#{logId,jdbcType=BIGINT},
#{enterpriseId,jdbcType=CHAR},
#{unionid,jdbcType=VARCHAR},
#{memberId} ,
#{relationKey,jdbcType=VARCHAR},
0,
now(),
now(),
1
)
]]>
</insert>
<update id="updateStatus">
<![CDATA[
UPDATE tab_haoban_external_member_log SET
update_time=now() ,
status_flag= #{statusFlag}
where enterprise_id = #{enterpriseId} and log_id=#{id}
]]>
</update>
<!-- ============ 查询=============-->
<select id="selectRelationKey" resultMap="result-map-tabHaobanExternalMemberLog">
SELECT <include refid="Base_Column_List" /> FROM tab_haoban_external_member_log
where enterprise_id = #{enterpriseId} and relation_key=#{relationKey} limit 1
</select>
<select id="listForTimer" resultMap="result-map-tabHaobanExternalMemberLog">
SELECT <include refid="Base_Column_List" /> FROM tab_haoban_external_member_log
where create_time >= #{start} and create_time <![CDATA[ < ]]> #{end} and status_flag = 1
</select>
</mapper>
\ No newline at end of file
......@@ -598,7 +598,7 @@
wx_user_id in
</if>
<if test="mixFlag==1">
open_concat_flag in
wx_open_user_id in
</if>
<foreach collection="wxUserIdList" index="index" item="id" close=")" open="(" separator=",">
#{id}
......
......@@ -392,22 +392,17 @@
and status_flag = 1
</select>
<!-- <select id="getClerkExternalByUnionId" resultMap="BaseResultMap">-->
<!-- select-->
<!-- <include refid="Base_Column_List"/>-->
<!-- from tab_haoban_external_clerk_related-->
<!-- where enterprise_id = #{enterpriseId}-->
<!-- and unionid = #{unionId}-->
<!-- and clerk_id = #{clerkId}-->
<!-- and status_flag = 1-->
<!-- </select>-->
<select id="getByRelationKey" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_external_clerk_related
where
relation_key = #{relationKey} and member_id is null
relation_key = #{relationKey}
<if test="filterMember==1">
and member_id is null
</if>
and status_flag != 2
order by create_time desc limit 1
</select>
......
......@@ -122,4 +122,10 @@
where welcome_id = #{welcomeId}
</update>
<update id="updateByMiniProgramId">
update tab_haoban_welcome_media
set media_url = #{mediaUrl}
where mini_program_id = #{miniProgramId} and media_type = 5
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.licence.TabHaobanLicenceOrderProgressMapper">
<resultMap type="com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress" id="BaseResultMap">
<result column="id" property="id"/>
<result column="enterprise_id" property="enterpriseId"/>
<result column="wx_enterprise_id" property="wxEnterpriseId"/>
<result column="order_id" property="orderId"/>
<result column="order_status" property="orderStatus"/>
<result column="type" property="type"/>
<result column="voucher" property="voucher"/>
<result column="reason" property="reason"/>
<result column="delete_flag" property="deleteFlag"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="creator_name" property="creatorName"/>
</resultMap>
<sql id="Base_Column_List">
id,
enterprise_id,
wx_enterprise_id,
order_id,
order_status,
type,
voucher,
reason,
delete_flag,
create_time,
update_time,
creator_name
</sql>
<!-- ===================== 新增 ======================== -->
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress"
useGeneratedKeys="true" keyProperty="id">
INSERT INTO tab_haoban_licence_order_progress(id,
enterprise_id,
wx_enterprise_id,
order_id,
order_status,
type,
voucher,
reason,
delete_flag,
create_time,
update_time,
creator_name)
VALUES (#{id,jdbcType=BIGINT},
#{enterpriseId,jdbcType=VARCHAR},
#{wxEnterpriseId,jdbcType=VARCHAR},
#{orderId,jdbcType=BIGINT},
#{orderStatus,jdbcType=VARCHAR},
#{type,jdbcType=INTEGER},
#{voucher,jdbcType=VARCHAR},
#{reason,jdbcType=VARCHAR},
0,
now(),
now(),
#{creatorName,jdbcType=VARCHAR})
</insert>
<!-- =====================删除==================== -->
<update id="deleteByPrimaryKey" parameterType="long">
UPDATE tab_haoban_licence_order_progress
SET delete_flag = 1
WHERE id = #{id}
</update>
<!-- ==================更新 ========== -->
<update id="updateByPrimaryKey"
parameterType="com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrderProgress">
UPDATE tab_haoban_licence_order_progress
SET id=#{id,jdbcType=BIGINT},
enterprise_id=#{enterpriseId,jdbcType=VARCHAR},
wx_enterprise_id=#{wxEnterpriseId,jdbcType=VARCHAR},
order_id=#{orderId,jdbcType=BIGINT},
order_status=#{orderStatus,jdbcType=VARCHAR},
type=#{type,jdbcType=INTEGER},
voucher=#{voucher,jdbcType=VARCHAR},
reason=#{reason,jdbcType=VARCHAR},
delete_flag=#{deleteFlag,jdbcType=INTEGER},
create_time=#{createTime,jdbcType=TIMESTAMP},
update_time=#{updateTime,jdbcType=TIMESTAMP},
creator_name=#{creatorName,jdbcType=VARCHAR}
where id = #{id}
</update>
<!-- ============ 查询=============-->
<select id="selectById" parameterType="long" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM tab_haoban_licence_order_progress WHERE id = #{id} and delete_flag=0
</select>
<select id="getListByOrderId" parameterType="long" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM tab_haoban_licence_order_progress WHERE order_id = #{orderId}
<if test="type != null">
and type=#{type}
</if>
and delete_flag=0 order by create_time desc
</select>
<update id="deleteByOrderId" parameterType="long">
UPDATE tab_haoban_licence_order_progress
SET delete_flag = 1
WHERE order_id = #{orderId}
</update>
<update id="uploadLicenceOrderVoucher" >
UPDATE tab_haoban_licence_order_progress
SET voucher = #{voucher}
WHERE order_id = #{orderId} and delete_flag = 0
</update>
</mapper>
\ No newline at end of file
......@@ -24,8 +24,6 @@
</foreach>
</insert>
<delete id="deleteByRoleId">
delete from tab_haoban_role_menu where role_id = #{roleId}
</delete>
......@@ -54,8 +52,8 @@
</foreach>
</select>
<delete id="deleteByMenuCode">
delete from tab_haoban_role_menu where wx_enterprise_id = #{wxEnterpriseId} and menu_code = #{menuCode}
<delete id="deleteByMenuCodeAndRoleId">
delete from tab_haoban_role_menu where wx_enterprise_id = #{wxEnterpriseId} and menu_code = #{menuCode} and role_id = #{roleId}
</delete>
</mapper>
......
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderDTO;
import com.gic.haoban.manage.api.dto.licence.LicenceOrderPageDTO;
import com.gic.haoban.manage.api.dto.qdto.licence.LicenceOrderPageQDTO;
import com.gic.haoban.manage.api.service.licence.LicenceOrderApiService;
import com.gic.haoban.manage.service.entity.licence.TabHaobanLicenceOrder;
import com.gic.haoban.manage.service.service.licence.LicenceOrderService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @description:
* @Author: wenhua
* @Date: 2023/3/22 11:37
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext-conf.xml" })
public class LicenceOrderServiceTest {
@Autowired
private LicenceOrderService licenceOrderService;
@Autowired
private LicenceOrderApiService licenceOrderApiService;
@Test
public void test1(){
Boolean qweqwe = licenceOrderService.uploadLicenceOrderVoucher(1L, "qweqwe","111","111","jx");
}
@Test
public void test2(){
LicenceOrderPageQDTO qdto = new LicenceOrderPageQDTO();
Page<LicenceOrderPageDTO> licenceOrderPage = licenceOrderService.getLicenceOrderPage(qdto);
}
@Test
public void test3(){
ServiceResponse<LicenceOrderDTO> licenceOrderDetail = licenceOrderApiService.getLicenceOrderDetail(1L, null);
}
@Test
public void test4(){
ServiceResponse<String> result = licenceOrderApiService.payLicenceOrder(512360219787935783L);
}
@Test
public void test5(){
ServiceResponse<Boolean> booleanServiceResponse = licenceOrderApiService.wxRefund(513736803677659139L);
}
@Test
public void test6(){
JSONObject json = new JSONObject();
json.put("infoType","license_refund");
json.put("openCorpId","wp59NLDQAAWfAU-uhldYZyNZnPXz_1xg");
json.put("orderId","OI00000D4BD3E76423DDEB15475B1T");
json.put("timeStamp","1680072171");
json.put("orderStatus",1);
json.put("buyerUserId","WangJianFeng");
licenceOrderApiService.qywxCallBack(JSON.toJSONString(json));
}
@Test
public void test7(){
licenceOrderApiService.hasPopup("ca66a01b79474c40b3e7c7f93daf1a3b");
}
}
......@@ -19,6 +19,40 @@ public class Config {
@Value("${wxSuiteid}")
private String wxSuiteid;
/**
* 企业微信许可账号购买信息
*/
@Value("${accountName}")
private String accountName;
@Value("${accountNumber}")
private String accountNumber;
@Value("${bankName}")
private String bankName;
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public String getBankName() {
return bankName;
}
public void setBankName(String bankName) {
this.bankName = bankName;
}
public String getCorpid() {
return corpid;
}
......
......@@ -476,9 +476,7 @@ public class StaffController extends WebBaseController {
public HaobanResponse staffExport(HttpServletRequest request, HttpServletResponse response, String departmentId, Integer activeFlag, Integer relationFlag, String keyWord, String permitState,BasePageInfo pageInfo) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
boolean needDep = true ;
if(StringUtils.isBlank(departmentId)){
needDep = false ;
DepartmentDTO dto = this.departmentApiService.getRootByEnterpriseId(wxEnterpriseId) ;
departmentId = dto.getDepartmentId() ;
}
......@@ -486,10 +484,8 @@ public class StaffController extends WebBaseController {
departmentIdSet.add(departmentId);
List<DepartmentDTO> relationList = departmentApiService.listSonByDepartmentIds(departmentIdSet, wxEnterpriseId);
Map<String, DepartmentDTO> departmentMap = relationList.stream().collect(Collectors.toMap(DepartmentDTO::getDepartmentId, s -> s));
List<String> departmentIds = new ArrayList<>();
if(needDep) {
List<String> departmentIds ;
departmentIds = relationList.stream().map(DepartmentDTO::getDepartmentId).collect(Collectors.toList());
}
List<StaffDTO> staffAllList = Lists.newArrayListWithCapacity(5000);
pageInfo.setPageSize(Integer.MAX_VALUE);
int pageNum = 1;
......
......@@ -6,6 +6,8 @@ import com.gic.clerk.api.dto.AuthorizedUser;
import com.gic.commons.util.DateUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.common.utils.UploadUtils;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
......@@ -48,12 +50,15 @@ public class UploadController extends WebBaseController {
@RequestMapping("/upload-file")
@ResponseBody
public HaobanResponse upload(@RequestParam MultipartFile file, @RequestParam String fileType) throws Exception {
public HaobanResponse upload(@RequestParam MultipartFile file) throws Exception {
if (file == null || file.isEmpty()) {
return resultResponse(HaoBanErrCode.ERR_2);
}
//获取登录人信息
final AuthorizedUser au = SessionContextUtils.getLoginUser();
WebLoginDTO au = AuthWebRequestUtil.getLoginUser();
if(null == au){
return resultResponse(HaoBanErrCode.ERR_4);
}
EnterpriseDTO enterprise = this.enterpriseService.getEnterpriseById(au.getEnterpriseId());
if (null == enterprise) {
return resultResponse(HaoBanErrCode.ERR_OTHER, "商户不存在");
......@@ -77,7 +82,6 @@ public class UploadController extends WebBaseController {
String dayFilePath = LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtil.FORMAT_DATETIME_14));
String nameUpload = mediaName + "." + suffix;
String key = "haoban/" + dayFilePath + "/" + nameUpload;
fileType = FILE_TYPE.contains(fileType) ? fileType : BucketNameEnum.OTHER_90000.getName();
try {
//替换新的上传接口
// String url = FileUploadUtil.simpleUploadFileFromLocal(templateFile, key, fileType);
......
......@@ -131,6 +131,7 @@ public enum HaoBanErrCode {
*
*/
ERR_100033(100033, "分组被关联,不可删除"),
ERR_100034(100034, "微信预支付订单生成失败!"),
;
private int code;
private String msg;
......
......@@ -35,7 +35,7 @@ public class MyApplicationContextAware implements ApplicationContextAware {
//// taskDTO.setTaskTimeInfo("0 0/5 * * * *");
// quartzService.addOrUpdateQuartzTask(taskDTO);
QuartzTaskDTO memberExportTask =buildMemberExportQuartzTaskDTO("haoban-member-export3");
/*QuartzTaskDTO memberExportTask =buildMemberExportQuartzTaskDTO("haoban-member-export3");
memberExportTask.setTaskParam("-1");
memberExportTask.setTaskStatus(1);
memberExportTask.setTaskTimeInfo("0 0/15 * * * *");
......@@ -46,7 +46,7 @@ public class MyApplicationContextAware implements ApplicationContextAware {
taskDTO.setTaskParam("-1");
taskDTO.setTaskStatus(1);
taskDTO.setTaskTimeInfo("0 0 4 * * *");
quartzService.addOrUpdateQuartzTask(taskDTO);
quartzService.addOrUpdateQuartzTask(taskDTO);*/
}
// private QuartzTaskDTO buildQuartzMessageDTO(String id) {
......
......@@ -49,6 +49,18 @@ public class MiniprogramSettingQo implements Serializable {
* 类型 0默认 1自定义
*/
private Integer miniprogramType = 0;
/**
* 是否同步更新欢迎语 0否1是
*/
public Integer renewWelcome;
public Integer getRenewWelcome() {
return renewWelcome;
}
public void setRenewWelcome(Integer renewWelcome) {
this.renewWelcome = renewWelcome;
}
public Integer getMiniprogramType() {
return miniprogramType;
......
package com.gic.haoban.manage.web.qo.licence;
import com.gic.api.base.commons.BasePageInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderPageQO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 订单创建开始时间
*/
private String startTime;
/**
* 订单创建结束时间
*/
private String endTime;
}
package com.gic.haoban.manage.web.qo.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderQO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
// /**
// * 基础帐号个数
// */
// private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 校验金额
*/
public Integer checkPrice(){
if (this.externalContactCount ==null || this.externalContactCount<0){
return -1;
}
Integer myPrice=0;
//根据企业微信的计费规则计算
if (this.externalContactCount<=5){
myPrice = 50*this.externalContactCount;
} else if (this.externalContactCount<=200) {
myPrice = 250+40*(this.externalContactCount-5);
} else if (this.externalContactCount<=500) {
myPrice = 8050+30*(this.externalContactCount-200);
} else if (this.externalContactCount<=1000) {
myPrice = 17050+20*(this.externalContactCount-500);
} else if (this.externalContactCount<=10000) {
myPrice = 27050+10*(this.externalContactCount-1000);
}else {
return -1;
}
//转化为分
myPrice = myPrice*this.timeValue*100;
if (this.timeType == 1){
//企业微信的规则: 12.312,最终保留的是12.32
if (myPrice%12==0){
myPrice = myPrice/12;
}else {
myPrice = myPrice/12+1;
}
}else {
if (myPrice%372==0){
myPrice = myPrice/372;
}else {
myPrice = myPrice/372+1;
}
}
if (!this.price .equals(myPrice)){
return 0;
}
return 1;
}
}
package com.gic.haoban.manage.web.vo.licence;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jx
* @since 2023-03-09
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class LicenceOrderPageVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 订单id
*/
private Long orderId;
/**
* 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
/**
* 互通帐号个数
*/
private Integer externalContactCount;
/**
* 基础帐号个数
*/
private Integer baseCount;
/**
* 订单金额,单位分
*/
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买
*/
private Integer timeType;
/**
* 购买的时间数值
*/
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账
*/
private Integer payType;
/**
* 订单编号
*/
private String orderNumber;
/**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/
private Integer orderStatus;
/**
* 订单状态更改原因
*/
private String orderStatusReason;
/**
* 支付时间 支付类型为1:微信支付时间 2:审核确认通过的时间
*/
private Date payTime;
/**
* 企业微信订单id
*/
private String qywxOrderId;
/**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/
private Integer qywxOrderStatus;
/**
* 企业微信订单更改原因
*/
private String qywxOrderStatusReason;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private String creatorId;
/**
* 创建人名称
*/
private String creatorName;
/**
* 企业微信支付时间
*/
private Date qywxPayTime;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment