Commit de822efb by jinxin

Merge remote-tracking branch 'origin/feature/六月需求' into developer

# Conflicts:
#	haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/qdto/licence/LicenceOrderPageQDTO.java
#	haoban-manage3-operation-web/src/main/java/com/gic/haoban/manage/web/qo/licence/LicenceOrderPageQO.java
#	haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/qo/licence/LicenceOrderPageQO.java
#	haoban-manage3-web/src/main/java/com/gic/haoban/manage/web/qo/licence/LicenceOrderQO.java
parents c54c8643 3ccdd174
...@@ -50,6 +50,18 @@ public class StaffActiveDataDTO implements Serializable { ...@@ -50,6 +50,18 @@ public class StaffActiveDataDTO implements Serializable {
* 已合并许可总数 * 已合并许可总数
*/ */
private Integer merged; private Integer merged;
/**
* 即将过期的许可总数
*/
private Integer expiring;
public Integer getExpiring() {
return expiring;
}
public void setExpiring(Integer expiring) {
this.expiring = expiring;
}
public Integer getMerged() { public Integer getMerged() {
return merged; return merged;
......
...@@ -60,6 +60,30 @@ public class StaffListDTO implements Serializable { ...@@ -60,6 +60,30 @@ public class StaffListDTO implements Serializable {
* 部门id数组 * 部门id数组
*/ */
private List<String> departmentIds; private List<String> departmentIds;
/**
* 许可到期时间区间查询
*/
private String startTime;
/**
* 许可到期时间区间查询
*/
private String endTime;
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;
}
public List<String> getDepartmentIds() { public List<String> getDepartmentIds() {
return departmentIds; return departmentIds;
......
package com.gic.haoban.manage.api.dto.licence;
import java.io.Serializable;
/**
* @description:
* @Author: wenhua
* @Date: 2023/6/12 15:25
*/
public class InvalidUserInfoDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 微信userId
*/
private String wxUserId;
/**
* 电话
*/
private String phone;
/**
* 名称
*/
private String name;
/**
* 不合法错误码
*/
private String invalidCode;
/**
* 不合法错误描述
*/
private String invalidMsg;
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInvalidCode() {
return invalidCode;
}
public void setInvalidCode(String invalidCode) {
this.invalidCode = invalidCode;
}
public String getInvalidMsg() {
return invalidMsg;
}
public void setInvalidMsg(String invalidMsg) {
this.invalidMsg = invalidMsg;
}
}
package com.gic.haoban.manage.api.dto.qdto.licence; package com.gic.haoban.manage.api.dto.qdto.licence;
import com.gic.api.base.commons.BasePageInfo; import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable; import java.io.Serializable;
/** /**
* <p> * <p>
* *
* </p> * </p>
* *
* @author jx * @author jx
* @since 2023-03-09 * @since 2023-03-09
*/ */
public class LicenceOrderPageQDTO extends BasePageInfo implements Serializable { public class LicenceOrderPageQDTO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 订单编号 * 订单编号
*/ */
private String orderNumber; private String orderNumber;
/** /**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中 * 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/ */
private Integer orderStatus; private Integer orderStatus;
/** /**
* 企业微信订单id * 企业微信订单id
*/ */
private String qywxOrderId; private String qywxOrderId;
/** /**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效 * 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/ */
private Integer qywxOrderStatus; private Integer qywxOrderStatus;
/** /**
* 订单创建开始时间 * 订单创建开始时间
*/ */
private String startTime; private String startTime;
/** /**
* 订单创建结束时间 * 订单创建结束时间
*/ */
private String endTime; private String endTime;
/** /**
* gic商户Id * gic商户Id
*/ */
private String enterpriseId; private String enterpriseId;
/** /**
* wx企业Id * wx企业Id
*/ */
private String wxEnterpriseId; private String wxEnterpriseId;
/** /**
* 创建人名称 * 创建人名称
*/ */
private String creatorName; private String creatorName;
/** /**
* 支付方式 1在线支付 2对公转账 * 支付方式 1在线支付 2对公转账
*/ */
private Integer payType; private Integer payType;
/** /**
* gic商户查询id * gic商户查询id
*/ */
private String enterpriseIdParam; private String enterpriseIdParam;
/** /**
* 微信订单id * 微信订单id
*/ */
private String wxOrderId; private String wxOrderId;
/** /**
* 1 好办后台 0 运维后台 * 1 好办后台 0 运维后台
*/ */
private Integer type; private Integer type;
/**
public Integer getType() { * 订单类型,1:购买帐号,2:续期帐号
return type; */
} private Integer orderType;
public void setType(Integer type) { public Integer getOrderType() {
this.type = type; return orderType;
} }
public String getWxOrderId() { public void setOrderType(Integer orderType) {
return wxOrderId; this.orderType = orderType;
} }
public void setWxOrderId(String wxOrderId) { public Integer getType() {
this.wxOrderId = wxOrderId; return type;
} }
public String getEnterpriseIdParam() { public void setType(Integer type) {
return enterpriseIdParam; this.type = type;
} }
public void setEnterpriseIdParam(String enterpriseIdParam) { public String getWxOrderId() {
this.enterpriseIdParam = enterpriseIdParam; return wxOrderId;
} }
public Integer getPayType() { public void setWxOrderId(String wxOrderId) {
return payType; this.wxOrderId = wxOrderId;
} }
public void setPayType(Integer payType) {
this.payType = payType; public String getEnterpriseIdParam() {
} return enterpriseIdParam;
public String getEnterpriseId() { }
return enterpriseId;
} public void setEnterpriseIdParam(String enterpriseIdParam) {
this.enterpriseIdParam = enterpriseIdParam;
public void setEnterpriseId(String enterpriseId) { }
this.enterpriseId = enterpriseId;
} public Integer getPayType() {
return payType;
public String getWxEnterpriseId() { }
return wxEnterpriseId; public void setPayType(Integer payType) {
} this.payType = payType;
}
public void setWxEnterpriseId(String wxEnterpriseId) { public String getEnterpriseId() {
this.wxEnterpriseId = wxEnterpriseId; return enterpriseId;
} }
public String getCreatorName() { public void setEnterpriseId(String enterpriseId) {
return creatorName; this.enterpriseId = enterpriseId;
} }
public void setCreatorName(String creatorName) { public String getWxEnterpriseId() {
this.creatorName = creatorName; return wxEnterpriseId;
} }
public String getOrderNumber() { public void setWxEnterpriseId(String wxEnterpriseId) {
return orderNumber; this.wxEnterpriseId = wxEnterpriseId;
} }
public void setOrderNumber(String orderNumber) { public String getCreatorName() {
this.orderNumber = orderNumber; return creatorName;
} }
public Integer getOrderStatus() { public void setCreatorName(String creatorName) {
return orderStatus; this.creatorName = creatorName;
} }
public void setOrderStatus(Integer orderStatus) { public String getOrderNumber() {
this.orderStatus = orderStatus; return orderNumber;
} }
public String getQywxOrderId() { public void setOrderNumber(String orderNumber) {
return qywxOrderId; this.orderNumber = orderNumber;
} }
public void setQywxOrderId(String qywxOrderId) { public Integer getOrderStatus() {
this.qywxOrderId = qywxOrderId; return orderStatus;
} }
public Integer getQywxOrderStatus() { public void setOrderStatus(Integer orderStatus) {
return qywxOrderStatus; this.orderStatus = orderStatus;
} }
public void setQywxOrderStatus(Integer qywxOrderStatus) { public String getQywxOrderId() {
this.qywxOrderStatus = qywxOrderStatus; return qywxOrderId;
} }
public String getStartTime() { public void setQywxOrderId(String qywxOrderId) {
return startTime; this.qywxOrderId = qywxOrderId;
} }
public void setStartTime(String startTime) { public Integer getQywxOrderStatus() {
this.startTime = startTime; return qywxOrderStatus;
} }
public String getEndTime() { public void setQywxOrderStatus(Integer qywxOrderStatus) {
return endTime; this.qywxOrderStatus = qywxOrderStatus;
} }
public void setEndTime(String endTime) { public String getStartTime() {
this.endTime = endTime; return startTime;
} }
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
}
...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.api.dto.qdto.licence; ...@@ -2,6 +2,7 @@ package com.gic.haoban.manage.api.dto.qdto.licence;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* <p> * <p>
...@@ -51,7 +52,7 @@ public class LicenceOrderQDTO implements Serializable { ...@@ -51,7 +52,7 @@ public class LicenceOrderQDTO implements Serializable {
private Integer price; private Integer price;
/** /**
* 购买时间类型 1:按月购买,2:按天购买 * 购买时间类型 1:按月购买,2:按天购买,3:指定到期时间(仅续期订单有此类型)
*/ */
private Integer timeType; private Integer timeType;
...@@ -105,6 +106,18 @@ public class LicenceOrderQDTO implements Serializable { ...@@ -105,6 +106,18 @@ public class LicenceOrderQDTO implements Serializable {
* 企业微信订单id * 企业微信订单id
*/ */
private String qywxOrderId; private String qywxOrderId;
/**
* 续期成员staffIdList
*/
private List<String> staffIdList;
public List<String> getStaffIdList() {
return staffIdList;
}
public void setStaffIdList(List<String> staffIdList) {
this.staffIdList = staffIdList;
}
public String getQywxOrderId() { public String getQywxOrderId() {
return qywxOrderId; return qywxOrderId;
......
package com.gic.haoban.manage.web.qo.licence; package com.gic.haoban.manage.web.qo.licence;
import com.gic.api.base.commons.BasePageInfo; import com.gic.api.base.commons.BasePageInfo;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable; import java.io.Serializable;
/** /**
* <p> * <p>
* *
* </p> * </p>
* *
* @author jx * @author jx
* @since 2023-03-09 * @since 2023-03-09
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class LicenceOrderPageQO extends BasePageInfo implements Serializable { public class LicenceOrderPageQO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 订单编号 * 订单编号
*/ */
private String orderNumber; private String orderNumber;
/** /**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中 * 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/ */
private Integer orderStatus; private Integer orderStatus;
/** /**
* 企业微信订单id * 企业微信订单id
*/ */
private String qywxOrderId; private String qywxOrderId;
/** /**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效 * 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/ */
private Integer qywxOrderStatus; private Integer qywxOrderStatus;
/** /**
* 订单创建开始时间 * 订单创建开始时间
*/ */
private String startTime; private String startTime;
/** /**
* 订单创建结束时间 * 订单创建结束时间
*/ */
private String endTime; private String endTime;
/** /**
* 支付方式 1在线支付 2对公转账 * 支付方式 1在线支付 2对公转账
*/ */
private Integer payType; private Integer payType;
/** /**
* gic商户查询id * gic商户查询id
*/ */
private String enterpriseIdParam; private String enterpriseIdParam;
/** /**
* 微信订单id * 微信订单id
*/ */
private String wxOrderId; private String wxOrderId;
/**
} * 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
}
...@@ -167,6 +167,13 @@ public interface StaffMapper { ...@@ -167,6 +167,13 @@ public interface StaffMapper {
Integer getOccupyNum(@Param("wxEnterpriseId") String wxEnterpriseId); Integer getOccupyNum(@Param("wxEnterpriseId") String wxEnterpriseId);
/** /**
* 查询即将过期的许可总数
* @param wxEnterpriseId
* @return
*/
Integer getExpiringNum(@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 通过wxOpenUserId更新企业成员许可信息 * 通过wxOpenUserId更新企业成员许可信息
*/ */
void updateStaffInfoByStaffId(@Param("staffId") String staffId, void updateStaffInfoByStaffId(@Param("staffId") String staffId,
......
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabHaobanRenewalUser;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.Pageable;
import java.util.List;
/**
* (TabHaobanRenewalUser)表数据库访问层
*
* @author makejava
* @since 2023-06-08 15:11:49
*/
public interface TabHaobanRenewalUserDao {
/**
* 通过ID查询单条数据
*
* @param renewalId 主键
* @return 实例对象
*/
TabHaobanRenewalUser queryById(Long renewalId);
/**
* 查询指定行数据
*
* @param tabHaobanRenewalUser 查询条件
* @param pageable 分页对象
* @return 对象列表
*/
List<TabHaobanRenewalUser> queryAllByLimit(TabHaobanRenewalUser tabHaobanRenewalUser, @Param("pageable") Pageable pageable);
/**
* 统计总行数
*
* @param tabHaobanRenewalUser 查询条件
* @return 总行数
*/
long count(TabHaobanRenewalUser tabHaobanRenewalUser);
/**
* 新增数据
*
* @param tabHaobanRenewalUser 实例对象
* @return 影响行数
*/
int insert(TabHaobanRenewalUser tabHaobanRenewalUser);
/**
* 批量新增数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanRenewalUser> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TabHaobanRenewalUser> entities);
/**
* 批量新增或按主键更新数据(MyBatis原生foreach方法)
*
* @param entities List<TabHaobanRenewalUser> 实例对象列表
* @return 影响行数
* @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
*/
int insertOrUpdateBatch(@Param("entities") List<TabHaobanRenewalUser> entities);
/**
* 修改数据
*
* @param tabHaobanRenewalUser 实例对象
* @return 影响行数
*/
int update(TabHaobanRenewalUser tabHaobanRenewalUser);
/**
* 通过主键删除数据
*
* @param renewalId 主键
* @return 影响行数
*/
int deleteById(Long renewalId);
}
package com.gic.haoban.manage.service.entity;
import java.util.Date;
import java.io.Serializable;
/**
* (TabHaobanRenewalUser)实体类
*
* @author makejava
* @since 2023-06-08 15:11:49
*/
public class TabHaobanRenewalUser implements Serializable {
private static final long serialVersionUID = -16922328852683963L;
/**
* id
*/
private Long renewalId;
/**
* wx企业Id
*/
private String wxEnterpriseId;
/**
* 微信userId
*/
private String wxUserId;
/**
* 订单id
*/
private Long orderId;
/**
* 电话
*/
private String phone;
/**
* 名称
*/
private String name;
/**
* 职位
*/
private String postion;
/**
* 续期是否合法 0 否 1是
*/
private Integer invalidFlag;
/**
* 不合法错误码
*/
private String invalidCode;
/**
* 不合法错误描述
*/
private String invalidMsg;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建时间
*/
private Date createTime;
/**
* 逻辑删除,0未删除,1删除
*/
private Integer deleteFlag;
public Long getRenewalId() {
return renewalId;
}
public void setRenewalId(Long renewalId) {
this.renewalId = renewalId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
public Long getOrderId() {
return orderId;
}
public void setOrderId(Long orderId) {
this.orderId = orderId;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPostion() {
return postion;
}
public void setPostion(String postion) {
this.postion = postion;
}
public Integer getInvalidFlag() {
return invalidFlag;
}
public void setInvalidFlag(Integer invalidFlag) {
this.invalidFlag = invalidFlag;
}
public String getInvalidCode() {
return invalidCode;
}
public void setInvalidCode(String invalidCode) {
this.invalidCode = invalidCode;
}
public String getInvalidMsg() {
return invalidMsg;
}
public void setInvalidMsg(String invalidMsg) {
this.invalidMsg = invalidMsg;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
}
...@@ -64,6 +64,30 @@ public class StaffListBO implements Serializable { ...@@ -64,6 +64,30 @@ public class StaffListBO implements Serializable {
* 关联成员id数组 * 关联成员id数组
*/ */
private List<String> staffIds; private List<String> staffIds;
/**
* 许可到期时间区间查询
*/
private String startTime;
/**
* 许可到期时间区间查询
*/
private String endTime;
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;
}
public List<String> getStaffIds() { public List<String> getStaffIds() {
return staffIds; return staffIds;
......
...@@ -134,6 +134,11 @@ public interface StaffService { ...@@ -134,6 +134,11 @@ public interface StaffService {
*/ */
Integer getOccupyNum(String wxEnterpriseId); Integer getOccupyNum(String wxEnterpriseId);
/**
* 查询即将过期的许可总数
*/
Integer getExpiringNum(String wxEnterpriseId);
/** /**
* 查询成员列表 * 查询成员列表
......
package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.service.entity.TabHaobanRenewalUser;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
/**
* (TabHaobanRenewalUser)表服务接口
*
* @author makejava
* @since 2023-06-08 15:11:49
*/
public interface TabHaobanRenewalUserService {
/**
* 通过ID查询单条数据
*
* @param renewalId 主键
* @return 实例对象
*/
TabHaobanRenewalUser queryById(Long renewalId);
/**
* 分页查询
*
* @param tabHaobanRenewalUser 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
Page<TabHaobanRenewalUser> queryByPage(TabHaobanRenewalUser tabHaobanRenewalUser, PageRequest pageRequest);
/**
* 新增数据
*
* @param tabHaobanRenewalUser 实例对象
* @return 实例对象
*/
TabHaobanRenewalUser insert(TabHaobanRenewalUser tabHaobanRenewalUser);
void insertBatch(List<TabHaobanRenewalUser> tabHaobanRenewalUserList);
/**
* 修改数据
*
* @param tabHaobanRenewalUser 实例对象
* @return 实例对象
*/
TabHaobanRenewalUser update(TabHaobanRenewalUser tabHaobanRenewalUser);
/**
* 通过主键删除数据
*
* @param renewalId 主键
* @return 是否成功
*/
boolean deleteById(Long renewalId);
}
package com.gic.haoban.manage.service.service; package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.api.dto.StaffActiveDataDTO; import com.gic.haoban.manage.api.dto.StaffActiveDataDTO;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseActiveData;
/** /**
* @description: 通讯录数据总览内部service * @description: 通讯录数据总览内部service
...@@ -17,4 +18,8 @@ public interface WxEnterpriseActiveDataService { ...@@ -17,4 +18,8 @@ public interface WxEnterpriseActiveDataService {
Integer saveOrUpdate(String wxEnterpriseId); Integer saveOrUpdate(String wxEnterpriseId);
StaffActiveDataDTO getWxEnterpriseActiveDataByWxEnterpriseId(String wxEnterpriseId); StaffActiveDataDTO getWxEnterpriseActiveDataByWxEnterpriseId(String wxEnterpriseId);
void updateByStaffActiveDataDTO(StaffActiveDataDTO dto);
void insert(TabHaobanWxEnterpriseActiveData data);
} }
package com.gic.haoban.manage.service.service.impl; package com.gic.haoban.manage.service.service.impl;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.gic.haoban.manage.service.pojo.bo.StaffListBO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.UniqueIdUtils; import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.common.utils.StringUtil; import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.StaffDTO; import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.service.config.Config; import com.gic.haoban.manage.service.config.Config;
...@@ -26,6 +14,7 @@ import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper; ...@@ -26,6 +14,7 @@ import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaff; import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise; import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.fee.TabHaobanQywxFeeAccountStaff; import com.gic.haoban.manage.service.entity.fee.TabHaobanQywxFeeAccountStaff;
import com.gic.haoban.manage.service.pojo.bo.StaffListBO;
import com.gic.haoban.manage.service.service.StaffService; import com.gic.haoban.manage.service.service.StaffService;
import com.gic.haoban.manage.service.service.fee.HaobanQywxFeeAccountStaffService; import com.gic.haoban.manage.service.service.fee.HaobanQywxFeeAccountStaffService;
import com.gic.wechat.api.dto.qywx.fee.AccountListDTO; import com.gic.wechat.api.dto.qywx.fee.AccountListDTO;
...@@ -34,10 +23,16 @@ import com.gic.wechat.api.dto.qywx.fee.ActiveInfoUserResponseDTO; ...@@ -34,10 +23,16 @@ import com.gic.wechat.api.dto.qywx.fee.ActiveInfoUserResponseDTO;
import com.gic.wechat.api.service.qywx.QywxOrderApiService; import com.gic.wechat.api.service.qywx.QywxOrderApiService;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import org.apache.commons.collections.CollectionUtils;
import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.hutool.core.date.DateUtil; import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service @Service
public class StaffServiceImpl implements StaffService { public class StaffServiceImpl implements StaffService {
...@@ -55,7 +50,7 @@ public class StaffServiceImpl implements StaffService { ...@@ -55,7 +50,7 @@ public class StaffServiceImpl implements StaffService {
private HaobanQywxFeeAccountStaffService haobanQywxFeeAccountStaffService; private HaobanQywxFeeAccountStaffService haobanQywxFeeAccountStaffService;
@Autowired @Autowired
private QywxUserApiService qywxUserApiService ; private QywxUserApiService qywxUserApiService ;
@Override @Override
public TabHaobanStaff selectById(String id) { public TabHaobanStaff selectById(String id) {
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
...@@ -98,6 +93,13 @@ public class StaffServiceImpl implements StaffService { ...@@ -98,6 +93,13 @@ public class StaffServiceImpl implements StaffService {
String s = "ISNULL("+sortField+"),"+sortField; String s = "ISNULL("+sortField+"),"+sortField;
staffListBO.setSortField(s); staffListBO.setSortField(s);
} }
//时间处理
if (StrUtil.isNotBlank(staffListBO.getStartTime())) {
staffListBO.setStartTime(staffListBO.getStartTime() + " 00:00:00");
}
if (StrUtil.isNotBlank(staffListBO.getEndTime())) {
staffListBO.setEndTime(staffListBO.getEndTime() + " 23:59:59");
}
return mapper.pageStaff(staffListBO); return mapper.pageStaff(staffListBO);
} }
...@@ -169,13 +171,13 @@ public class StaffServiceImpl implements StaffService { ...@@ -169,13 +171,13 @@ public class StaffServiceImpl implements StaffService {
public int resetAddNum() { public int resetAddNum() {
return mapper.resetAddNum(); return mapper.resetAddNum();
} }
@Override @Override
public int updateActiveStatusById(String staffId, Date activeTime, Date expireTime, public int updateActiveStatusById(String staffId, Date activeTime, Date expireTime,
String activeCode) { String activeCode) {
return mapper.updateActiveStatusById(staffId, activeTime, expireTime, activeCode) ; return mapper.updateActiveStatusById(staffId, activeTime, expireTime, activeCode) ;
} }
@Override @Override
public void updateOpenConcatFlag(List<String> wxUserIdList,int mixFlag) { public void updateOpenConcatFlag(List<String> wxUserIdList,int mixFlag) {
if(CollectionUtils.isEmpty(wxUserIdList)) { if(CollectionUtils.isEmpty(wxUserIdList)) {
...@@ -183,14 +185,14 @@ public class StaffServiceImpl implements StaffService { ...@@ -183,14 +185,14 @@ public class StaffServiceImpl implements StaffService {
} }
this.mapper.updateOpenConcatFlag(wxUserIdList,mixFlag); this.mapper.updateOpenConcatFlag(wxUserIdList,mixFlag);
} }
@Override @Override
public void activedAccountTimer(String wxEid) { public void activedAccountTimer(String wxEid) {
log.info("开始查询激活账号,wxEid={}", wxEid); log.info("开始查询激活账号,wxEid={}", wxEid);
TabHaobanWxEnterprise wxEnterprise = this.wxEnterpriseMapper.selectByPrimaryKey(wxEid) ; TabHaobanWxEnterprise wxEnterprise = this.wxEnterpriseMapper.selectByPrimaryKey(wxEid) ;
if(wxEnterprise.getWxSecurityType()>0 && StringUtils.isNotEmpty(wxEnterprise.getOpenCorpid()) && wxEnterprise.getStatusFlag()==1) { if(wxEnterprise.getWxSecurityType()>0 && StringUtils.isNotEmpty(wxEnterprise.getOpenCorpid()) && wxEnterprise.getStatusFlag()==1) {
this.haobanQywxFeeAccountStaffService.deleteAll(wxEid) ; this.haobanQywxFeeAccountStaffService.deleteAll(wxEid) ;
this.mapper.deleteActivieInfo(wxEid); this.mapper.deleteActivieInfo(wxEid);
this.listAccount(wxEnterprise, 500, null); this.listAccount(wxEnterprise, 500, null);
} }
} }
...@@ -200,6 +202,11 @@ public class StaffServiceImpl implements StaffService { ...@@ -200,6 +202,11 @@ public class StaffServiceImpl implements StaffService {
return mapper.getOccupyNum(wxEnterpriseId); return mapper.getOccupyNum(wxEnterpriseId);
} }
@Override
public Integer getExpiringNum(String wxEnterpriseId) {
return mapper.getExpiringNum(wxEnterpriseId);
}
private void listAccount(TabHaobanWxEnterprise wxEnterprise , int limit , String cursor) { private void listAccount(TabHaobanWxEnterprise wxEnterprise , int limit , String cursor) {
String wxEnterpriseId = wxEnterprise.getWxEnterpriseId() ; String wxEnterpriseId = wxEnterprise.getWxEnterpriseId() ;
String openCorpid = wxEnterprise.getOpenCorpid() ; String openCorpid = wxEnterprise.getOpenCorpid() ;
...@@ -218,7 +225,7 @@ public class StaffServiceImpl implements StaffService { ...@@ -218,7 +225,7 @@ public class StaffServiceImpl implements StaffService {
} }
} }
} }
private void updateAccount(String wxEnterpriseId , String openCorpid ,List<AccountListDTO> list) { private void updateAccount(String wxEnterpriseId , String openCorpid ,List<AccountListDTO> list) {
for(AccountListDTO item : list) { for(AccountListDTO item : list) {
String userId = item.getUserid() ; String userId = item.getUserid() ;
......
package com.gic.haoban.manage.service.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.gic.haoban.manage.service.entity.TabHaobanRenewalUser;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanRenewalUserDao;
import com.gic.haoban.manage.service.service.TabHaobanRenewalUserService;
import org.springframework.stereotype.Service;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import javax.annotation.Resource;
import java.util.List;
/**
* (TabHaobanRenewalUser)表服务实现类
*
* @author makejava
* @since 2023-06-08 15:11:49
*/
@Service("tabHaobanRenewalUserService")
public class TabHaobanRenewalUserServiceImpl implements TabHaobanRenewalUserService {
@Resource
private TabHaobanRenewalUserDao tabHaobanRenewalUserDao;
/**
* 通过ID查询单条数据
*
* @param renewalId 主键
* @return 实例对象
*/
@Override
public TabHaobanRenewalUser queryById(Long renewalId) {
return this.tabHaobanRenewalUserDao.queryById(renewalId);
}
/**
* 分页查询
*
* @param tabHaobanRenewalUser 筛选条件
* @param pageRequest 分页对象
* @return 查询结果
*/
@Override
public Page<TabHaobanRenewalUser> queryByPage(TabHaobanRenewalUser tabHaobanRenewalUser, PageRequest pageRequest) {
long total = this.tabHaobanRenewalUserDao.count(tabHaobanRenewalUser);
return new PageImpl<>(this.tabHaobanRenewalUserDao.queryAllByLimit(tabHaobanRenewalUser, pageRequest), pageRequest, total);
}
/**
* 新增数据
*
* @param tabHaobanRenewalUser 实例对象
* @return 实例对象
*/
@Override
public TabHaobanRenewalUser insert(TabHaobanRenewalUser tabHaobanRenewalUser) {
this.tabHaobanRenewalUserDao.insert(tabHaobanRenewalUser);
return tabHaobanRenewalUser;
}
@Override
public void insertBatch(List<TabHaobanRenewalUser> tabHaobanRenewalUserList) {
if (CollUtil.isEmpty(tabHaobanRenewalUserList)){
return;
}
this.tabHaobanRenewalUserDao.insertBatch(tabHaobanRenewalUserList);
}
/**
* 修改数据
*
* @param tabHaobanRenewalUser 实例对象
* @return 实例对象
*/
@Override
public TabHaobanRenewalUser update(TabHaobanRenewalUser tabHaobanRenewalUser) {
this.tabHaobanRenewalUserDao.update(tabHaobanRenewalUser);
return this.queryById(tabHaobanRenewalUser.getRenewalId());
}
/**
* 通过主键删除数据
*
* @param renewalId 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Long renewalId) {
return this.tabHaobanRenewalUserDao.deleteById(renewalId) > 0;
}
}
...@@ -119,6 +119,28 @@ public class WxEnterpriseActiveDataServiceImpl implements WxEnterpriseActiveData ...@@ -119,6 +119,28 @@ public class WxEnterpriseActiveDataServiceImpl implements WxEnterpriseActiveData
Integer occupy=0; Integer occupy=0;
occupy=staffService.getOccupyNum(wxEnterpriseId); occupy=staffService.getOccupyNum(wxEnterpriseId);
staffActiveDataDTO.setOccupy(occupy); staffActiveDataDTO.setOccupy(occupy);
//查询即将过期的许可总数
Integer expiringNum = 0;
expiringNum = staffService.getExpiringNum(wxEnterpriseId);
staffActiveDataDTO.setExpiring(expiringNum);
return staffActiveDataDTO; return staffActiveDataDTO;
} }
@Override
public void updateByStaffActiveDataDTO(StaffActiveDataDTO dto) {
if (null == dto){
return;
}
TabHaobanWxEnterpriseActiveData tabHaobanWxEnterpriseActiveData = EntityUtil.changeEntityByJSON(TabHaobanWxEnterpriseActiveData.class, dto);
tabHaobanWxEnterpriseActiveDataMapper.updateActiveDataByWxEnterpriseId(tabHaobanWxEnterpriseActiveData);
}
@Override
public void insert(TabHaobanWxEnterpriseActiveData data) {
if(null == data){
log.info("新增许可账号统计参数不能为空!");
return;
}
tabHaobanWxEnterpriseActiveDataMapper.insert(data);
}
} }
...@@ -119,6 +119,8 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -119,6 +119,8 @@ public class StaffApiServiceImpl implements StaffApiService {
private DealSyncOperationApiService dealSyncOperationApiService; private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired @Autowired
private ExternalClerkRelatedService externalClerkRelatedService; private ExternalClerkRelatedService externalClerkRelatedService;
@Autowired
private WxEnterpriseActiveDataService wxEnterpriseActiveDataService;
@Override @Override
public StaffDTO selectById(String staffId) { public StaffDTO selectById(String staffId) {
...@@ -1132,7 +1134,7 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -1132,7 +1134,7 @@ public class StaffApiServiceImpl implements StaffApiService {
if (StrUtil.isBlank(params)) { if (StrUtil.isBlank(params)) {
return com.gic.api.base.commons.ServiceResponse.success(false); return com.gic.api.base.commons.ServiceResponse.success(false);
} }
//1、解析参数 2、刷新企业微信群列表 3、更新成员信息 //1、解析参数 2、刷新企业微信群列表 3、更新成员信息 4、实时统计许可总数
JSONObject object = JSONObject.parseObject(params, JSONObject.class); JSONObject object = JSONObject.parseObject(params, JSONObject.class);
String infoType = object.getString("infoType"); String infoType = object.getString("infoType");
String authCorpId = object.getString("authCorpId"); String authCorpId = object.getString("authCorpId");
...@@ -1165,6 +1167,24 @@ public class StaffApiServiceImpl implements StaffApiService { ...@@ -1165,6 +1167,24 @@ public class StaffApiServiceImpl implements StaffApiService {
String staffId = staff.getStaffId(); String staffId = staff.getStaffId();
groupChatService.initStaffGroupChat(staffId); groupChatService.initStaffGroupChat(staffId);
staffMapper.updateActiveStatusById(staffId,timeStampDate,expireTimeDate,activeCode); staffMapper.updateActiveStatusById(staffId,timeStampDate,expireTimeDate,activeCode);
StaffActiveDataDTO activeDataDTO = wxEnterpriseActiveDataService.getWxEnterpriseActiveDataByWxEnterpriseId(wxEnterprise.getWxEnterpriseId());
if (null == activeDataDTO){
logger.info("查询不到企业微信id->{}的许可账号统计信息!",wxEnterprise.getWxEnterpriseId());
}else {
//已使用的加1,已激活的加1,未激活的减1
Integer used = activeDataDTO.getUsed();
Integer inactive = activeDataDTO.getInactive();
Integer activated = activeDataDTO.getActivated();
used++;
activated++;
if(null != inactive && inactive > 0){
inactive--;
}
activeDataDTO.setUsed(used);
activeDataDTO.setInactive(inactive);
activeDataDTO.setActivated(activated);
wxEnterpriseActiveDataService.updateByStaffActiveDataDTO(activeDataDTO);
}
} }
return com.gic.api.base.commons.ServiceResponse.success(true); return com.gic.api.base.commons.ServiceResponse.success(true);
} }
......
...@@ -329,7 +329,7 @@ ...@@ -329,7 +329,7 @@
<if test="occupy != null and 2==occupy"> <if test="occupy != null and 2==occupy">
and ( a.expire_time is null or a.expire_time <![CDATA[<]]> now() ) and ( a.expire_time is null or a.expire_time <![CDATA[<]]> now() )
</if> </if>
<!-- 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期,可多传,按‘,’隔开 --> <!-- 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期,4 查询可以续期的成员(即状态是1、2、3的成员) -->
<if test="null != permitState and '' != permitState"> <if test="null != permitState and '' != permitState">
<if test="permitState==0"> <if test="permitState==0">
and a.expire_time is null and a.expire_time is null
...@@ -345,6 +345,9 @@ ...@@ -345,6 +345,9 @@
<if test="permitState==3"> <if test="permitState==3">
and a.expire_time <![CDATA[<]]> now() and a.expire_time <![CDATA[<]]> now()
</if> </if>
<if test="permitState==4">
and a.expire_time is not null
</if>
</if> </if>
<if test="departmentIds != null and departmentIds.size() > 0"> <if test="departmentIds != null and departmentIds.size() > 0">
...@@ -616,6 +619,10 @@ ...@@ -616,6 +619,10 @@
SELECT count(*) FROM tab_haoban_staff WHERE status_flag = 0 and del_time >= DATE_FORMAT(NOW(),'%Y-%m-%d') and expire_time >= DATE_FORMAT(NOW(),'%Y-%m-%d') and wx_enterprise_id = #{wxEnterpriseId} SELECT count(*) FROM tab_haoban_staff WHERE status_flag = 0 and del_time >= DATE_FORMAT(NOW(),'%Y-%m-%d') and expire_time >= DATE_FORMAT(NOW(),'%Y-%m-%d') and wx_enterprise_id = #{wxEnterpriseId}
</select> </select>
<select id="getExpiringNum" resultType="java.lang.Integer">
SELECT count(*) FROM tab_haoban_staff WHERE status_flag = 1 and expire_time > now() and expire_time <![CDATA[<=]]> DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 30 DAY) and wx_enterprise_id = #{wxEnterpriseId}
</select>
<update id="updateStaffInfoByStaffId"> <update id="updateStaffInfoByStaffId">
update tab_haoban_staff set update tab_haoban_staff set
......
<?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.TabHaobanRenewalUserDao">
<resultMap type="com.gic.haoban.manage.service.entity.TabHaobanRenewalUser" id="TabHaobanRenewalUserMap">
<result property="renewalId" column="renewal_id" jdbcType="INTEGER"/>
<result property="wxEnterpriseId" column="wx_enterprise_id" jdbcType="VARCHAR"/>
<result property="wxUserId" column="wx_user_id" jdbcType="VARCHAR"/>
<result property="orderId" column="order_id" jdbcType="INTEGER"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="postion" column="postion" jdbcType="VARCHAR"/>
<result property="invalidFlag" column="invalid_flag" jdbcType="INTEGER"/>
<result property="invalidCode" column="invalid_code" jdbcType="VARCHAR"/>
<result property="invalidMsg" column="invalid_msg" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="deleteFlag" column="delete_flag" jdbcType="INTEGER"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="TabHaobanRenewalUserMap">
select
renewal_id, wx_enterprise_id, wx_user_id, order_id, phone, name, postion, invalid_flag, invalid_code, invalid_msg, update_time, create_time, delete_flag
from tab_haoban_renewal_user
where renewal_id = #{renewalId}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="TabHaobanRenewalUserMap">
select
renewal_id, wx_enterprise_id, wx_user_id, order_id, phone, name, postion, invalid_flag, invalid_code, invalid_msg, update_time, create_time, delete_flag
from tab_haoban_renewal_user
<where>
<if test="renewalId != null">
and renewal_id = #{renewalId}
</if>
<if test="wxEnterpriseId != null and wxEnterpriseId != ''">
and wx_enterprise_id = #{wxEnterpriseId}
</if>
<if test="wxUserId != null and wxUserId != ''">
and wx_user_id = #{wxUserId}
</if>
<if test="orderId != null">
and order_id = #{orderId}
</if>
<if test="phone != null and phone != ''">
and phone = #{phone}
</if>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="postion != null and postion != ''">
and postion = #{postion}
</if>
<if test="invalidFlag != null">
and invalid_flag = #{invalidFlag}
</if>
<if test="invalidCode != null and invalidCode != ''">
and invalid_code = #{invalidCode}
</if>
<if test="invalidMsg != null and invalidMsg != ''">
and invalid_msg = #{invalidMsg}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="deleteFlag != null">
and delete_flag = #{deleteFlag}
</if>
</where>
limit #{pageable.offset}, #{pageable.pageSize}
</select>
<!--统计总行数-->
<select id="count" resultType="java.lang.Long">
select count(1)
from tab_haoban_renewal_user
<where>
<if test="renewalId != null">
and renewal_id = #{renewalId}
</if>
<if test="wxEnterpriseId != null and wxEnterpriseId != ''">
and wx_enterprise_id = #{wxEnterpriseId}
</if>
<if test="wxUserId != null and wxUserId != ''">
and wx_user_id = #{wxUserId}
</if>
<if test="orderId != null">
and order_id = #{orderId}
</if>
<if test="phone != null and phone != ''">
and phone = #{phone}
</if>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="postion != null and postion != ''">
and postion = #{postion}
</if>
<if test="invalidFlag != null">
and invalid_flag = #{invalidFlag}
</if>
<if test="invalidCode != null and invalidCode != ''">
and invalid_code = #{invalidCode}
</if>
<if test="invalidMsg != null and invalidMsg != ''">
and invalid_msg = #{invalidMsg}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="deleteFlag != null">
and delete_flag = #{deleteFlag}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="renewalId" useGeneratedKeys="true">
insert into tab_haoban_renewal_user(wx_enterprise_id, wx_user_id, order_id, phone, name, postion, invalid_flag, invalid_code, invalid_msg, update_time, create_time, delete_flag)
values (#{wxEnterpriseId}, #{wxUserId}, #{orderId}, #{phone}, #{name}, #{postion}, #{invalidFlag}, #{invalidCode}, #{invalidMsg}, #{updateTime}, #{createTime}, #{deleteFlag})
</insert>
<insert id="insertBatch" keyProperty="renewalId" useGeneratedKeys="true">
insert into tab_haoban_renewal_user(wx_enterprise_id, wx_user_id, order_id, phone, name, postion, invalid_flag, invalid_code, invalid_msg, update_time, create_time, delete_flag)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.wxEnterpriseId}, #{entity.wxUserId}, #{entity.orderId}, #{entity.phone}, #{entity.name}, #{entity.postion}, #{entity.invalidFlag}, #{entity.invalidCode}, #{entity.invalidMsg}, #{entity.updateTime}, #{entity.createTime}, #{entity.deleteFlag})
</foreach>
</insert>
<insert id="insertOrUpdateBatch" keyProperty="renewalId" useGeneratedKeys="true">
insert into tab_haoban_renewal_user(wx_enterprise_id, wx_user_id, order_id, phone, name, postion, invalid_flag, invalid_code, invalid_msg, update_time, create_time, delete_flag)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.wxEnterpriseId}, #{entity.wxUserId}, #{entity.orderId}, #{entity.phone}, #{entity.name}, #{entity.postion}, #{entity.invalidFlag}, #{entity.invalidCode}, #{entity.invalidMsg}, #{entity.updateTime}, #{entity.createTime}, #{entity.deleteFlag})
</foreach>
on duplicate key update
wx_enterprise_id = values(wx_enterprise_id),
wx_user_id = values(wx_user_id),
order_id = values(order_id),
phone = values(phone),
name = values(name),
postion = values(postion),
invalid_flag = values(invalid_flag),
invalid_code = values(invalid_code),
invalid_msg = values(invalid_msg),
update_time = values(update_time),
create_time = values(create_time),
delete_flag = values(delete_flag)
</insert>
<!--通过主键修改数据-->
<update id="update">
update tab_haoban_renewal_user
<set>
<if test="wxEnterpriseId != null and wxEnterpriseId != ''">
wx_enterprise_id = #{wxEnterpriseId},
</if>
<if test="wxUserId != null and wxUserId != ''">
wx_user_id = #{wxUserId},
</if>
<if test="orderId != null">
order_id = #{orderId},
</if>
<if test="phone != null and phone != ''">
phone = #{phone},
</if>
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="postion != null and postion != ''">
postion = #{postion},
</if>
<if test="invalidFlag != null">
invalid_flag = #{invalidFlag},
</if>
<if test="invalidCode != null and invalidCode != ''">
invalid_code = #{invalidCode},
</if>
<if test="invalidMsg != null and invalidMsg != ''">
invalid_msg = #{invalidMsg},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="deleteFlag != null">
delete_flag = #{deleteFlag},
</if>
</set>
where renewal_id = #{renewalId}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from tab_haoban_renewal_user where renewal_id = #{renewalId}
</delete>
</mapper>
...@@ -250,6 +250,9 @@ ...@@ -250,6 +250,9 @@
<if test="type != null and type ==1 "> <if test="type != null and type ==1 ">
and wx_enterprise_id = #{wxEnterpriseId} and wx_enterprise_id = #{wxEnterpriseId}
</if> </if>
<if test="orderType != null">
and order_type = #{orderType}
</if>
order by create_time desc order by create_time desc
</select> </select>
......
...@@ -136,6 +136,13 @@ public class StaffController extends WebBaseController { ...@@ -136,6 +136,13 @@ public class StaffController extends WebBaseController {
StaffListDTO dto = EntityUtil.changeEntityByJSON(StaffListDTO.class, qo); StaffListDTO dto = EntityUtil.changeEntityByJSON(StaffListDTO.class, qo);
dto.setWxEnterpriseId(wxEnterpriseId); dto.setWxEnterpriseId(wxEnterpriseId);
dto.setDepartmentIds(departmentIds); dto.setDepartmentIds(departmentIds);
if (qo.getGetAllFlag() == 1){
//续期订单需要查询所有数据
BasePageInfo basePageInfo = new BasePageInfo();
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(Integer.MAX_VALUE);
dto.setPageInfo(basePageInfo);
}
Page<StaffDTO> page = staffApiService.pageStaff(dto); Page<StaffDTO> page = staffApiService.pageStaff(dto);
logger.info("pages={},totalPage={}", page.getCurrentPage(), page.getTotalPage()); logger.info("pages={},totalPage={}", page.getCurrentPage(), page.getTotalPage());
...@@ -465,7 +472,7 @@ public class StaffController extends WebBaseController { ...@@ -465,7 +472,7 @@ public class StaffController extends WebBaseController {
@RequestMapping("staff-export") @RequestMapping("staff-export")
public HaobanResponse staffExport(HttpServletRequest request, HttpServletResponse response,String departmentId, Integer activeFlag, Integer relationFlag, public HaobanResponse staffExport(HttpServletRequest request, HttpServletResponse response,String departmentId, Integer activeFlag, Integer relationFlag,
String keyWord, String permitState,BasePageInfo pageInfo,@RequestParam(defaultValue = "create_time") String sortField, String keyWord, String permitState,BasePageInfo pageInfo,@RequestParam(defaultValue = "create_time") String sortField,
@RequestParam(defaultValue = "desc") String sortType,String enterpriseIdParam) { @RequestParam(defaultValue = "desc") String sortType,String enterpriseIdParam,String startTime,String endTime) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser(); WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId(); String wxEnterpriseId = login.getWxEnterpriseId();
if(StringUtils.isBlank(departmentId)){ if(StringUtils.isBlank(departmentId)){
...@@ -490,6 +497,8 @@ public class StaffController extends WebBaseController { ...@@ -490,6 +497,8 @@ public class StaffController extends WebBaseController {
dto.setSortField(sortField); dto.setSortField(sortField);
dto.setSortType(sortType); dto.setSortType(sortType);
dto.setEnterpriseIdParam(enterpriseIdParam); dto.setEnterpriseIdParam(enterpriseIdParam);
dto.setStartTime(startTime);
dto.setEndTime(endTime);
pageInfo.setPageSize(Integer.MAX_VALUE); pageInfo.setPageSize(Integer.MAX_VALUE);
int pageNum = 1; int pageNum = 1;
while (true) { while (true) {
......
...@@ -27,7 +27,7 @@ public class StaffListQO implements Serializable { ...@@ -27,7 +27,7 @@ public class StaffListQO implements Serializable {
*/ */
private String keyWord; private String keyWord;
/** /**
* 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期,可多传,按‘,’隔开 * 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期,4 查询可以续期的成员(即状态是1、2、3的成员)
*/ */
private String permitState; private String permitState;
/** /**
...@@ -50,6 +50,42 @@ public class StaffListQO implements Serializable { ...@@ -50,6 +50,42 @@ public class StaffListQO implements Serializable {
* 分页参数 * 分页参数
*/ */
private BasePageInfo pageInfo; private BasePageInfo pageInfo;
/**
* 许可到期时间区间查询
*/
private String startTime;
/**
* 许可到期时间区间查询
*/
private String endTime;
/**
* 是否查询全部 0 否 1是 默认0
*/
private Integer getAllFlag = 0;
public Integer getGetAllFlag() {
return getAllFlag;
}
public void setGetAllFlag(Integer getAllFlag) {
this.getAllFlag = getAllFlag;
}
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;
}
public String getDepartmentId() { public String getDepartmentId() {
return departmentId; return departmentId;
......
package com.gic.haoban.manage.web.qo.licence; package com.gic.haoban.manage.web.qo.licence;
import com.gic.api.base.commons.BasePageInfo; import com.gic.api.base.commons.BasePageInfo;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable; import java.io.Serializable;
/** /**
* <p> * <p>
* *
* </p> * </p>
* *
* @author jx * @author jx
* @since 2023-03-09 * @since 2023-03-09
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class LicenceOrderPageQO extends BasePageInfo implements Serializable { public class LicenceOrderPageQO extends BasePageInfo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 订单编号 * 订单编号
*/ */
private String orderNumber; private String orderNumber;
/** /**
* 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中 * 订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:已退款,5:审核中
*/ */
private Integer orderStatus; private Integer orderStatus;
/** /**
* 企业微信订单id * 企业微信订单id
*/ */
private String qywxOrderId; private String qywxOrderId;
/** /**
* 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效 * 企业微信订单状态,0:待支付,1:已支付,2:已取消,3:已过期,4:退款中,5:退款被拒绝,6:已退款,7已失效
*/ */
private Integer qywxOrderStatus; private Integer qywxOrderStatus;
/** /**
* 订单创建开始时间 * 订单创建开始时间
*/ */
private String startTime; private String startTime;
/** /**
* 订单创建结束时间 * 订单创建结束时间
*/ */
private String endTime; private String endTime;
/**
} * 订单类型,1:购买帐号,2:续期帐号
*/
private Integer orderType;
}
package com.gic.haoban.manage.web.qo.licence; package com.gic.haoban.manage.web.qo.licence;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/**
* <p> /**
* * <p>
* </p> *
* * </p>
* @author jx *
* @since 2023-03-09 * @author jx
*/ * @since 2023-03-09
@Data */
@EqualsAndHashCode(callSuper = false) @Data
public class LicenceOrderQO implements Serializable { @EqualsAndHashCode(callSuper = false)
public class LicenceOrderQO implements Serializable {
private static final long serialVersionUID = 1L;
/** private static final long serialVersionUID = 1L;
* 订单类型,1:购买帐号,2:续期帐号 /**
*/ * 订单类型,1:购买帐号,2:续期帐号
private Integer orderType; */
private Integer orderType;
/**
* 互通帐号个数 /**
*/ * 互通帐号个数
private Integer externalContactCount; */
private Integer externalContactCount;
// /**
// * 基础帐号个数 // /**
// */ // * 基础帐号个数
// private Integer baseCount; // */
// private Integer baseCount;
/**
* 订单金额,单位分 /**
*/ * 订单金额,单位分
private Integer price; */
private Integer price;
/**
* 购买时间类型 1:按月购买,2:按天购买 /**
*/ * 购买时间类型 1:按月购买,2:按天购买
private Integer timeType; */
private Integer timeType;
/**
* 购买的时间数值 /**
*/ * 购买的时间数值
private Integer timeValue; */
private Integer timeValue;
/**
* 支付类型 1在线支付 2对公转账 /**
*/ * 支付类型 1在线支付 2对公转账
private Integer payType; */
private Integer payType;
/** /**
* 校验金额 * 续期成员staffIdList
*/ */
public Integer checkPrice(){ private List<String> staffIdList;
if (this.externalContactCount ==null || this.externalContactCount<0){ /**
return -1; * 校验金额
} */
Integer myPrice=0; public Integer checkPrice(){
//根据企业微信的计费规则计算 if (this.externalContactCount ==null || this.externalContactCount<0){
if (this.externalContactCount<=5){ return -1;
myPrice = 50*this.externalContactCount; }
} else if (this.externalContactCount<=200) { Integer myPrice=0;
myPrice = 250+40*(this.externalContactCount-5); //根据企业微信的计费规则计算
} else if (this.externalContactCount<=500) { if (this.externalContactCount<=5){
myPrice = 8050+30*(this.externalContactCount-200); myPrice = 50*this.externalContactCount;
} else if (this.externalContactCount<=1000) { } else if (this.externalContactCount<=200) {
myPrice = 17050+20*(this.externalContactCount-500); myPrice = 250+40*(this.externalContactCount-5);
} else if (this.externalContactCount<=10000) { } else if (this.externalContactCount<=500) {
myPrice = 27050+10*(this.externalContactCount-1000); myPrice = 8050+30*(this.externalContactCount-200);
}else { } else if (this.externalContactCount<=1000) {
return -1; myPrice = 17050+20*(this.externalContactCount-500);
} } else if (this.externalContactCount<=10000) {
//转化为分 myPrice = 27050+10*(this.externalContactCount-1000);
myPrice = myPrice*this.timeValue*100; }else {
if (this.timeType == 1){ return -1;
//企业微信的规则: 12.312,最终保留的是12.32 }
if (myPrice%12==0){ //转化为分
myPrice = myPrice/12; myPrice = myPrice*this.timeValue*100;
}else { if (this.timeType == 1){
myPrice = myPrice/12+1; //企业微信的规则: 12.312,最终保留的是12.32
} if (myPrice%12==0){
}else { myPrice = myPrice/12;
if (myPrice%372==0){ }else {
myPrice = myPrice/372; myPrice = myPrice/12+1;
}else { }
myPrice = myPrice/372+1; }else {
} if (myPrice%372==0){
} myPrice = myPrice/372;
if (!this.price .equals(myPrice)){ }else {
return 0; myPrice = myPrice/372+1;
} }
return 1; }
} if (!this.price .equals(myPrice)){
} return 0;
}
return 1;
}
}
...@@ -50,6 +50,18 @@ public class StaffActiveDataVO implements Serializable { ...@@ -50,6 +50,18 @@ public class StaffActiveDataVO implements Serializable {
* 已合并许可总数 * 已合并许可总数
*/ */
private Integer merged; private Integer merged;
/**
* 即将过期的许可总数
*/
private Integer expiring;
public Integer getExpiring() {
return expiring;
}
public void setExpiring(Integer expiring) {
this.expiring = expiring;
}
public Integer getMerged() { public Integer getMerged() {
return merged; return merged;
......
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