Commit 9dcd3190 by 徐高华

Merge branch 'feature/xgh/2406企微托管' into 'master'

Feature/xgh/2406企微托管

See merge request !2018
parents febd5e40 65e8a3f5
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* tab_haoban_open_staff
*/
public class OpenStaffDTO implements Serializable {
/**
* 主键
*/
private Long openStaffId;
/**
* 企微id
*/
private String wxEnterpriseId;
private String enterpriseId ;
/**
* 成员id
*/
private String staffId;
/**
* 成员名称
*/
private String staffName ;
/**
* 成员头像
*/
private String staffHeadImg ;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 客户端id
*/
private String uuid;
/**
* 是否删除1是0否
*/
private Integer deleteFlag;
/**
* 1授权中 2未登录(已过期)
*/
private Integer statusFlag;
/**
* 登录步骤1已扫码 2取消登录 3超时 4验证码正确
*/
private Integer step;
/**
* 企微的userid
*/
private Long qwUserId;
/**
* 企微的企业id
*/
private Long wxCorpId;
/**
* 一次扫码内容
*/
private String qrCode1;
/**
* 一次扫码内容
*/
private String key1;
/**
* 二次扫码内容
*/
private String qrCode2;
/**
* 二次扫码内容
*/
private String key2;
/**
* 是否需要验证码
*/
private Integer validFlag;
/**
* 最新授权时间
*/
private Date authTime;
/**
* 首次授权时间
*/
private Date firstAuthTime;
/**
* 需要二次扫码
*/
private Integer validQrcodeFlag ;
/**
* 登录错误信息
*/
private String loginRemark ;
private String qrcodeData ;
/**
* 下一次加好友间隔时间分钟
*/
private int addStopTime ;
/**
* 下一次删除好友间隔时间分钟
*/
private int delStopTime ;
/**
* tab_haoban_open_staff
*/
private static final long serialVersionUID = 1L;
public int getAddStopTime() {
return addStopTime;
}
public void setAddStopTime(int addStopTime) {
this.addStopTime = addStopTime;
}
public int getDelStopTime() {
return delStopTime;
}
public void setDelStopTime(int delStopTime) {
this.delStopTime = delStopTime;
}
public String getQrcodeData() {
return qrcodeData;
}
public void setQrcodeData(String qrcodeData) {
this.qrcodeData = qrcodeData;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getStaffHeadImg() {
return staffHeadImg;
}
public void setStaffHeadImg(String staffHeadImg) {
this.staffHeadImg = staffHeadImg;
}
public String getLoginRemark() {
return loginRemark;
}
public void setLoginRemark(String loginRemark) {
this.loginRemark = loginRemark;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getValidQrcodeFlag() {
return validQrcodeFlag;
}
public void setValidQrcodeFlag(Integer validQrcodeFlag) {
this.validQrcodeFlag = validQrcodeFlag;
}
public Long getOpenStaffId() {
return openStaffId;
}
public void setOpenStaffId(Long openStaffId) {
this.openStaffId = openStaffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId == null ? null : wxEnterpriseId.trim();
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId == null ? null : staffId.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid == null ? null : uuid.trim();
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getStep() {
return step;
}
public void setStep(Integer step) {
this.step = step;
}
public Long getQwUserId() {
return qwUserId;
}
public void setQwUserId(Long qwUserId) {
this.qwUserId = qwUserId;
}
public Long getWxCorpId() {
return wxCorpId;
}
public void setWxCorpId(Long wxCorpId) {
this.wxCorpId = wxCorpId;
}
public String getQrCode1() {
return qrCode1;
}
public void setQrCode1(String qrCode1) {
this.qrCode1 = qrCode1 == null ? null : qrCode1.trim();
}
public String getKey1() {
return key1;
}
public void setKey1(String key1) {
this.key1 = key1 == null ? null : key1.trim();
}
public String getQrCode2() {
return qrCode2;
}
public void setQrCode2(String qrCode2) {
this.qrCode2 = qrCode2 == null ? null : qrCode2.trim();
}
public String getKey2() {
return key2;
}
public void setKey2(String key2) {
this.key2 = key2 == null ? null : key2.trim();
}
public Integer getValidFlag() {
return validFlag;
}
public void setValidFlag(Integer validFlag) {
this.validFlag = validFlag;
}
public Date getAuthTime() {
return authTime;
}
public void setAuthTime(Date authTime) {
this.authTime = authTime;
}
public Date getFirstAuthTime() {
return firstAuthTime;
}
public void setFirstAuthTime(Date firstAuthTime) {
this.firstAuthTime = firstAuthTime;
}
}
\ No newline at end of file
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
public class OpenStaffLicenseDTO implements Serializable {
private int total ;
private int gicTotal ;
private int useNum ;
private int validNum ;
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getGicTotal() {
return gicTotal;
}
public void setGicTotal(int gicTotal) {
this.gicTotal = gicTotal;
}
public int getUseNum() {
return useNum;
}
public void setUseNum(int useNum) {
this.useNum = useNum;
}
public int getValidNum() {
return validNum;
}
public void setValidNum(int validNum) {
this.validNum = validNum;
}
}
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.List;
/**
* tab_haoban_open_staff
*/
public class OpenStaffListDTO extends OpenStaffDTO implements Serializable {
/**
* 关联导购
*/
List<StoreClerkDTO> clerkList ;
public List<StoreClerkDTO> getClerkList() {
return clerkList;
}
public void setClerkList(List<StoreClerkDTO> clerkList) {
this.clerkList = clerkList;
}
}
\ No newline at end of file
......@@ -73,6 +73,19 @@ public class StaffListDTO implements Serializable {
private String loginEnterpriseId ;
/**
* 企微托管页面查询1是0否
*/
private int qwOpenFlag ;
public int getQwOpenFlag() {
return qwOpenFlag;
}
public void setQwOpenFlag(int qwOpenFlag) {
this.qwOpenFlag = qwOpenFlag;
}
public String getLoginEnterpriseId() {
return loginEnterpriseId;
}
......
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
public class StoreClerkDTO implements Serializable {
private String storeId ;
private String storeName ;
private String storeCode ;
private String clerkId ;
private String clerkName ;
private String clerkCode ;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
}
......@@ -24,6 +24,16 @@ public class WxUserAddLogQDTO implements Serializable{
private Long qwAddTime ;
private String friendClerkId ;
private String friendStoreId ;
// 0手动 1系统
private int delType ;
public int getDelType() {
return delType;
}
public void setDelType(int delType) {
this.delType = delType;
}
public String getFriendClerkId() {
return friendClerkId;
......
......@@ -66,6 +66,7 @@ public enum NoticeMessageTypeEnum {
CUSTOMER_APPLY_ORDER_REFUND(4005, "客户申请退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_apply_order_refund", "/pages/route/index?pageType=", "hbapp_customer_order_detail", "customerApplyChargebackOrder", "haobanNotice"),
CUSTOMER_SUCCESS_ORDER_REFUND(4006, "客户成功退单通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(), "customer_success_order_refund", "/pages/route/index?pageType=", "hbapp_user_bill_detail", "customerChargebackOrderSuccess", "haobanNotice"),
FRIEND_DEL_STAFF(4007,"删除好友通知", NoticeMessageCategoryTypeEnum.CUSTOMER.getType(),"friend_del_staff","/pages/route/index?pageType=","hbapp_customer_detail","friendDelStaff","haobanNotice"),
HAOBAN_OPEN_STAFF_LOGOUT(4008,"企微托管账号退出登录", NoticeMessageCategoryTypeEnum.AUTHORIZED.getType(),"haoban_open_staff_logout","/pages/route/index?pageType=","hbapp_video_auth","haobanOpenStaffLogout","haobanNotice"),
// 订单- 待发货订单提醒
......
package com.gic.haoban.manage.api.enums;
public enum OpenStaffOfflineEnum {
OFFLINE1(1, "首次托管,需要二次验证"),
OFFLINE2(2, "异常断开"),
OFFLINE3(3, "手机端结束登录"),
OFFLINE4(4, "当前账号在其它设备登录");
OpenStaffOfflineEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private int code;
private String desc;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package com.gic.haoban.manage.api.enums;
public enum QwOpenStepEnum {
step1(1, "用户已扫码"),
step2(2,"取消登录"),
step3(3,"超时未扫码") ,
step4(4,"验证码正确") ;
QwOpenStepEnum(Integer step, String desc){
this.step = step;
this.desc = desc;
}
private int step;
private String desc;
public int getStep() {
return step;
}
public void setStep(int step) {
this.step = step;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static boolean isFail(int step) {
return step == step2.getStep() || step == step3.getStep() ;
}
}
package com.gic.haoban.manage.api.qdto;
import java.io.Serializable;
public class OpenStaffInitQDTO implements Serializable {
private String wxEnterpriseId ;
private String enterpriseId ;
private String staffId ;
private int loginAgainFlag ;
public int getLoginAgainFlag() {
return loginAgainFlag;
}
public void setLoginAgainFlag(int loginAgainFlag) {
this.loginAgainFlag = loginAgainFlag;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
}
package com.gic.haoban.manage.api.qdto;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class OpenStaffPageQDTO implements Serializable {
private String wxEnterpriseId ;
private String enterpriseId ;
/**
* 1授权中 2已过期 3待验证 4待授权 0全部
*/
private int status ;
/**
* 导购
*/
private String clerkId ;
/**
* 成员
*/
private String staffParams ;
/**
* 门店分组
*/
private List<String> storeGroupIdList ;
/**
* 开始日期
*/
private Date startDate ;
/**
* 结束日期
*/
private Date endDate ;
private List<String> staffIds ;
private String loginClerkId ;
public String getLoginClerkId() {
return loginClerkId;
}
public void setLoginClerkId(String loginClerkId) {
this.loginClerkId = loginClerkId;
}
public List<String> getStaffIds() {
return staffIds;
}
public void setStaffIds(List<String> staffIds) {
this.staffIds = staffIds;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffParams() {
return staffParams;
}
public void setStaffParams(String staffParams) {
this.staffParams = staffParams;
}
public List<String> getStoreGroupIdList() {
return storeGroupIdList;
}
public void setStoreGroupIdList(List<String> storeGroupIdList) {
this.storeGroupIdList = storeGroupIdList;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
......@@ -341,4 +341,7 @@ public interface ExternalClerkRelatedApiService {
Page<ExternalClerkRelatedDTO> halfFriendPage(String wxEnterpriseId , String storeId , String clerkId , String staffId,int type, BasePageInfo basePageInfo) ;
ExternalClerkRelatedDTO getDelFriend(String wxEnterpriseId , String enterpriseId , String staffId) ;
}
......@@ -122,5 +122,16 @@ public interface HaobanTimerApiService {
public void halfTimer(String wxEnterpriseId) ;
/**
* 校验是否登录中
* @param params
*/
void openStaffTimer(String params) ;
/**
* 托管服务到期
* @param params
*/
void openStaffServiceTimer(String params) ;
}
package com.gic.haoban.manage.api.service;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.OpenStaffDTO;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import com.gic.haoban.manage.api.dto.OpenStaffListDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.enums.OpenStaffOfflineEnum;
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
import java.util.List;
public interface OpenStaffApiService {
/**
* 授权绑定
* @param qdto
* @return
*/
public ServiceResponse<OpenStaffDTO> init(OpenStaffInitQDTO qdto) ;
/**
* id查询
* @param openStaffId
* @return
*/
public ServiceResponse<OpenStaffDTO> getById(Long openStaffId) ;
public ServiceResponse<OpenStaffDTO> getByStaffId(String staffId) ;
public ServiceResponse<OpenStaffDTO> getByUUID(String uuid) ;
public ServiceResponse<OpenStaffDTO> getByQwUserId(Long qwUserId) ;
/**
* 删除
* @param id
* @return
*/
public ServiceResponse<Void> delete(Long id) ;
/**
* 设置需要输入验证码
* @param uuid
* @return
*/
public ServiceResponse<Void> updateValiFlag(String uuid) ;
/**
* 设置需要二次验证扫码
* @param uuid
* @return
*/
public ServiceResponse<Void> update2QrcodeFlag(String uuid) ;
/**
* 获取二次验证码
* @param id
* @return
*/
public ServiceResponse<OpenStaffDTO> get2Qrcode(long id) ;
/**
* 登录成功
*/
public ServiceResponse<Void> login(String uuid , Long qwCorpid ,String corpNam , Long qwUserId) ;
/**
* 退出登录
*/
public ServiceResponse<Void> logout(String uuid , OpenStaffOfflineEnum offlineEnum) ;
public ServiceResponse<Void> logout(Long openStaffId) ;
/**
* 校验验证码
* @param openStaffId
* @param validCode
* @return
*/
public ServiceResponse<Void> checkCode(Long openStaffId, String validCode) ;
/**
*
* @param uuid
* @param step
* @return
*/
public ServiceResponse<Void> updateLoginStep(String uuid , int step) ;
ServiceResponse<OpenStaffLicenseDTO> getLicenseInfo(String wxEnterpriseId, String enterpriseId);
ServiceResponse<Page<OpenStaffListDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo);
/**
* 查询托管的导购
* @param wxEnterpriseId
* @param enterpriseIdList
* @param clerkIdList
* @return
*/
List<StaffClerkRelationDTO> listOpenStaffByClerk(String wxEnterpriseId , String enterpriseIdList , List<String> clerkIdList) ;
List<StaffClerkRelationDTO> listOpenStaffByStore(String wxEnterpriseId , String enterpriseIdList , List<String> storeIdList) ;
List<String> listAllOnlineStaff() ;
List<String> listAllOnlineStaff(String wxEnterpriseId , String enterpriseId) ;
/**
* 查询所有托管的门店
* @param wxEnterpriseId
* @param enterpriseId
* @return
*/
List<String> listOpenStoreId(String wxEnterpriseId , String enterpriseId) ;
/**
* 更新下一次间隔时间
* @param openStaffId
* @param type
* @param time
*/
public void updateStopTime(Long openStaffId , int type , int time) ;
}
......@@ -160,4 +160,17 @@ public interface GroupChatApiService {
*/
public ServiceResponse<List<GroupChatDTO>> listChatByIdList(String wxEnterpriseId, List<Long> groupChatIdList);
public ServiceResponse<GroupChatDTO> getByWxChatId(String wxEnterpriseId, String wxChatId);
public GroupChatUserDTO getGroupUserInfo(Long groupChatId , String externalUserId) ;
/**
* 自动群群发的id
* @param enterpriseId
* @param staffId
* @return
*/
public List<String> listOpenGroupChatDK(String enterpriseId , String staffId) ;
}
......@@ -8,6 +8,7 @@ import com.gic.haoban.manage.api.dto.notify.qdto.NotifyMessageBatchQDTO;
import com.gic.haoban.manage.api.dto.qdto.NoticeMessageQDTO;
import java.util.List;
import java.util.Map;
/**
* Created 2021/12/17.
......@@ -91,4 +92,12 @@ public interface NoticeMessageApiService {
*/
public ServiceResponse<Boolean> addOrCreateNoticeMessage(List<NoticeMessageQDTO> qdto);
/**
* 托管账号退出-发送公众号消息
* @param enterpriseId
* @param accountName
* @param reason
*/
public void sendMessageForOpenStaff(String enterpriseId, String accountName, String reason) ;
}
\ No newline at end of file
......@@ -14,7 +14,8 @@
<dubbo:application name="haoban-manage3-operation-web"/>
<dubbo:protocol name="dubbo" port="300112"/>
<dubbo:reference interface="com.gic.haoban.task.manage.api.service.OpenQwApiService" id="openQwApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.OpenStaffApiService" id="openStaffApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.StaffApiService" id="staffApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.TestApiService" id="testApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.StaffClerkRelationApiService" id="staffClerkRelationApiService"/>
......
......@@ -87,6 +87,12 @@
<dependency>
<groupId>com.gic</groupId>
<artifactId>haoban-task-manage-api</artifactId>
<version>${haoban-task-manage-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-enterprise-api</artifactId>
<version>${gic-enterprise-api}</version>
<exclusions>
......
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.api.dto.OpenStaffListDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
import com.gic.haoban.manage.service.entity.TabOpenStaff;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface OpenStaffMapper {
/**
* 根据主键删除
*/
int deleteByPrimaryKey(@Param("id") Long id);
/**
* 插入一条记录
*/
int insert(TabOpenStaff record);
int update(TabOpenStaff tab) ;
TabOpenStaff getByStaffId(@Param("staffId")String staffId) ;
TabOpenStaff getByUUID(@Param("uuid") String uuid) ;
void updateValidFlag(@Param("uuid")String uuid);
TabOpenStaff getById(Long openStaffId);
void update2QrcodeFlag(@Param("id") Long openStaffId);
void update2Qrcode(@Param("id") Long id , @Param("qrcode")String qrcode , @Param("key")String key) ;
void updateLoginStep(@Param("id")Long openStaffId, @Param("step")int step);
List<OpenStaffListDTO> list(OpenStaffPageQDTO qdto);
TabOpenStaff getByQwUserId(@Param("qwUserId")Long qwUserId);
List<String> listAllStaffId(String wxEnterpriseId);
List<StaffClerkRelationDTO> listOpenStaffByClerk(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId, @Param("list")List<String> clerkIdList);
List<StaffClerkRelationDTO> listOpenStaffByStore(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId, @Param("list")List<String> storeIdList);
List<TabOpenStaff> listAllOnline(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId) ;
List<String> listOpenStoreId(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId);
void updateStopTime(@Param("id") Long openStaffId, @Param("type") int type, @Param("time") int time);
int getNum(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId , @Param("status")int status) ;
int updateByAutoLogin(@Param("id") Long openStaffId ,@Param("uuid") String uuid) ;
List<TabOpenStaff> listAllOnlineEnterprise() ;
}
\ No newline at end of file
......@@ -443,7 +443,7 @@ public interface TabHaobanExternalClerkRelatedMapper {
List<TabHaobanExternalClerkRelated> halfFriendPage(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("storeId")String storeId, @Param("clerkId")String clerkId, @Param("staffId")String staffId, @Param("type")int type);
List<TabHaobanExternalClerkRelated> halfDelFriendPage(@Param("wxEnterpriseId") String wxEnterpriseId , @Param("startItem")int startItem);
TabHaobanExternalClerkRelated getDelFriend(@Param("wxEnterpriseId") String wxEnterpriseId , @Param("enterpriseId") String enterpriseId , @Param("staffId")String staffId) ;
void updateHalfTime(@Param("id") String id , @Param("delTime") Date delTime) ;
}
\ No newline at end of file
......@@ -146,4 +146,6 @@ public interface TabHaobanStaffClerkRelationMapper {
List<String> taskoverClerkIdList(@Param("staffId")String staffId, @Param("delTime") Date delTime) ;
List<TabHaobanStaffClerkRelation> taskoverClerkIdListAll(@Param("staffId")String staffId) ;
List<String> listAllStaffIdForOpenStaff(@Param("enterpriseId")String enterpriseId, @Param("wxEnterpriseId")String wxEnterpriseId, @Param("clerkId") String clerkId, @Param(("storeIdList")) List<String> storeIdList);
}
\ No newline at end of file
......@@ -94,4 +94,6 @@ public interface WxEnterpriseMapper {
* @return
*/
List<String> listWxEnterpriseByCallbackFlag(@Param("callbackFlag")Integer callbackFlag);
List<String> getWxEnterpriseIdByName(@Param("corpName")String corpName);
}
\ No newline at end of file
......@@ -75,4 +75,6 @@ public interface GroupChatMapper {
@Param("force") int force);
public List<GroupChatDTO> listChangeOwner() ;
List<String> listOpenGroupChatDK(@Param("enterpriseId")String enterpriseId, @Param("staffId") String staffId);
}
\ No newline at end of file
......@@ -32,6 +32,8 @@ public interface GroupChatUserMapper {
public TabGroupChatUser selectById(Long chatUserId);
public TabGroupChatUser getGroupUserInfo(@Param("groupChatId") Long groupChatId , @Param("userId") String externalUserId) ;
public TabGroupChatUser selectByUserIdAndChatId(@Param("groupChatId") Long groupChatId,
@Param("userId") String userId);
......
package com.gic.haoban.manage.service.entity;
import java.io.Serializable;
import java.util.Date;
/**
* tab_haoban_open_staff
*/
public class TabOpenStaff implements Serializable {
/**
* 主键
*/
private Long openStaffId;
/**
* 企微id
*/
private String wxEnterpriseId;
private String enterpriseId ;
/**
* 成员id
*/
private String staffId;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 客户端id
*/
private String uuid;
/**
* 是否删除1是0否
*/
private Integer deleteFlag;
/**
* 0待验证 1授权中 2已过期
*/
private Integer statusFlag;
/**
* 登录步骤
*/
private Integer step;
/**
* 企微的userid
*/
private Long qwUserId;
/**
* 企微的企业id
*/
private Long wxCorpId;
/**
* 一次扫码内容
*/
private String qrCode1;
/**
* 一次扫码内容
*/
private String key1;
/**
* 二次扫码内容
*/
private String qrCode2;
/**
* 二次扫码内容
*/
private String key2;
/**
* 是否需要验证码
*/
private Integer validFlag;
/**
* 最新授权时间
*/
private Date authTime;
/**
* 首次授权时间
*/
private Date firstAuthTime;
private Integer validQrcodeFlag ;
private String loginRemark ;
/**
* 下一次加好友间隔时间分钟
*/
private int addStopTime ;
/**
* 下一次删除好友间隔时间分钟
*/
private int delStopTime ;
public int getAddStopTime() {
return addStopTime;
}
public void setAddStopTime(int addStopTime) {
this.addStopTime = addStopTime;
}
public int getDelStopTime() {
return delStopTime;
}
public void setDelStopTime(int delStopTime) {
this.delStopTime = delStopTime;
}
public String getLoginRemark() {
return loginRemark;
}
public void setLoginRemark(String loginRemark) {
this.loginRemark = loginRemark;
}
/**
* tab_haoban_open_staff
*/
private static final long serialVersionUID = 1L;
public Integer getValidQrcodeFlag() {
return validQrcodeFlag;
}
public void setValidQrcodeFlag(Integer validQrcodeFlag) {
this.validQrcodeFlag = validQrcodeFlag;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Long getOpenStaffId() {
return openStaffId;
}
public void setOpenStaffId(Long openStaffId) {
this.openStaffId = openStaffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId == null ? null : wxEnterpriseId.trim();
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId == null ? null : staffId.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid == null ? null : uuid.trim();
}
public Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getStep() {
return step;
}
public void setStep(Integer step) {
this.step = step;
}
public Long getQwUserId() {
return qwUserId;
}
public void setQwUserId(Long qwUserId) {
this.qwUserId = qwUserId;
}
public Long getWxCorpId() {
return wxCorpId;
}
public void setWxCorpId(Long wxCorpId) {
this.wxCorpId = wxCorpId;
}
public String getQrCode1() {
return qrCode1;
}
public void setQrCode1(String qrCode1) {
this.qrCode1 = qrCode1 == null ? null : qrCode1.trim();
}
public String getKey1() {
return key1;
}
public void setKey1(String key1) {
this.key1 = key1 == null ? null : key1.trim();
}
public String getQrCode2() {
return qrCode2;
}
public void setQrCode2(String qrCode2) {
this.qrCode2 = qrCode2 == null ? null : qrCode2.trim();
}
public String getKey2() {
return key2;
}
public void setKey2(String key2) {
this.key2 = key2 == null ? null : key2.trim();
}
public Integer getValidFlag() {
return validFlag;
}
public void setValidFlag(Integer validFlag) {
this.validFlag = validFlag;
}
public Date getAuthTime() {
return authTime;
}
public void setAuthTime(Date authTime) {
this.authTime = authTime;
}
public Date getFirstAuthTime() {
return firstAuthTime;
}
public void setFirstAuthTime(Date firstAuthTime) {
this.firstAuthTime = firstAuthTime;
}
}
\ No newline at end of file
......@@ -63,6 +63,15 @@ public class TabWxUserAddLog implements Serializable {
private String friendClerkId ;
private String friendStoreId ;
private int delType ;
public int getDelType() {
return delType;
}
public void setDelType(int delType) {
this.delType = delType;
}
public String getFriendClerkId() {
return friendClerkId;
......
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class QwOpenResultBO implements Serializable {
private int errcode ;
private String errmsg ;
private Object data ;
public int getErrcode() {
return errcode;
}
public void setErrcode(int errcode) {
this.errcode = errcode;
}
public String getErrmsg() {
return errmsg;
}
public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public boolean isOk() {
return this.errcode == 0 ;
}
}
package com.gic.haoban.manage.service.pojo;
import java.io.Serializable;
public class QwOpenResultInitBO implements Serializable {
private boolean is_login ;
private String uuid ;
private String qrcode ;
private String Key ;
private String qrcode_data ;
public boolean isIs_login() {
return is_login;
}
public void setIs_login(boolean is_login) {
this.is_login = is_login;
}
public String getQrcode_data() {
return qrcode_data;
}
public void setQrcode_data(String qrcode_data) {
this.qrcode_data = qrcode_data;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getQrcode() {
return qrcode;
}
public void setQrcode(String qrcode) {
this.qrcode = qrcode;
}
public String getKey() {
return Key;
}
public void setKey(String key) {
Key = key;
}
}
package com.gic.haoban.manage.service.service;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.OpenStaffListDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
import com.gic.haoban.manage.service.entity.TabOpenStaff;
import java.util.List;
public interface OpenStaffService {
TabOpenStaff save(TabOpenStaff tab) ;
TabOpenStaff getByUUID(String uuid) ;
void logout(String uuid, String loginRemark, int step , String noticeReason) ;
ServiceResponse<Page<OpenStaffListDTO>> page(OpenStaffPageQDTO qdto, BasePageInfo basePageInfo);
List<String> listAllStaffId(String wxEnterpriseId) ;
/**
* 自动登录 返回新的uuid
* @param openStaffId
* @param qwUserId
* @return
*/
String autoLogin(Long openStaffId , Long qwUserId) ;
void openStaffTimer();
void openStaffServiceTimer();
}
......@@ -194,4 +194,6 @@ public interface StaffClerkRelationService {
* @return
*/
List<String> listAllStaffIdByEnterpriseId(String enterpriseId,String wxEnterpriseId);
List<String> listAllStaffIdForOpenStaff(String enterpriseId,String wxEnterpriseId,String clerkId , List<String> storeIdList);
}
......@@ -99,4 +99,11 @@ public interface WxEnterpriseService {
*/
List<String> listWxEnterpriseByCallbackFlag(Integer callbackFlag);
/**
* 查询id
* @param corpName
* @return
*/
List<String> getWxEnterpriseIdByName(String corpName) ;
}
......@@ -150,6 +150,7 @@ public class WxUserAddLogServiceImpl implements WxUserAddLogService {
entity.setQwAddTime(qdto.getQwAddTime());
entity.setFriendClerkId(qdto.getFriendClerkId());
entity.setFriendStoreId(qdto.getFriendStoreId());
entity.setDelType(qdto.getDelType());
this.wxUserAddLogMapper.insert(entity);
}catch(Exception e) {
log.info("异常",e);
......
......@@ -27,6 +27,7 @@ import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.SecretSettingService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.haoban.task.manage.api.service.OpenQwApiService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
......@@ -84,6 +85,8 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
private TabHaobanRepairExternalUserMapper tabHaobanRepairExternalUserMapper;
@Autowired
private SecretSettingService secretSettingService;
@Autowired
private OpenQwApiService openQwApiService ;
@Override
public void insert(TabHaobanExternalClerkRelated related) {
......@@ -172,6 +175,10 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
wxUserAddLogQDTO.setFriendClerkId(related.getClerkId());
wxUserAddLogQDTO.setFriendStoreId(related.getStoreId());
int autoDelNum = this.openQwApiService.getAutoDelNum(staffId,externalUserid) ;
if(autoDelNum>0) {
wxUserAddLogQDTO.setDelType(1);
}
wxUserAddLogService.save(wxUserAddLogQDTO);
//定制
addDelFriendEvent(related.getUnionid(), related.getClerkId(), wxEnterpriseId, enterpriseId, related.getMemberId(), related.getStoreId(), 0);
......
......@@ -614,4 +614,9 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
public List<String> listAllStaffIdByEnterpriseId(String enterpriseId, String wxEnterpriseId) {
return this.mapper.listAllStaffIdByEnterpriseId(enterpriseId,wxEnterpriseId);
}
@Override
public List<String> listAllStaffIdForOpenStaff(String enterpriseId, String wxEnterpriseId, String clerkId, List<String> storeIdList) {
return this.mapper.listAllStaffIdForOpenStaff(enterpriseId,wxEnterpriseId,clerkId,storeIdList);
}
}
......@@ -316,4 +316,9 @@ public class WxEnterpriseServiceImpl implements WxEnterpriseService {
public List<String> listWxEnterpriseByCallbackFlag(Integer callbackFlag) {
return this.mapper.listWxEnterpriseByCallbackFlag(callbackFlag);
}
@Override
public List<String> getWxEnterpriseIdByName(String corpName) {
return this.mapper.getWxEnterpriseIdByName(corpName) ;
}
}
......@@ -836,6 +836,16 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
@Override
public ExternalClerkRelatedDTO getDelFriend(String wxEnterpriseId, String enterpriseId, String staffId) {
TabHaobanExternalClerkRelated tab = this.tabHaobanExternalClerkRelatedMapper.getDelFriend(wxEnterpriseId,enterpriseId,staffId) ;
if(null != tab) {
ExternalClerkRelatedDTO dto = EntityUtil.changeEntityByJSON(ExternalClerkRelatedDTO.class,tab) ;
return dto ;
}
return null;
}
@Override
public Page<ExternalClerkRelatedDTO> halfFriendPage(String wxEnterpriseId, String storeId, String clerkId, String staffId, int type, BasePageInfo basePageInfo) {
Page<ExternalClerkRelatedDTO> retPage = null ;
try {
......@@ -855,4 +865,6 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
return retPage;
}
}
......@@ -7,7 +7,7 @@ import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMap
import com.gic.haoban.manage.service.dao.mapper.hm.WxUserAddLogMapper;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.hm.TabWxUserAddLog;
import com.gic.haoban.manage.service.service.QywxErrorLogService;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.service.chat.GroupChatDataService;
import com.gic.haoban.manage.service.util.DingUtils;
import com.gic.haoban.manage.service.util.HBQwMonitorUtils;
......@@ -16,16 +16,12 @@ 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.joda.time.DateTime;
import org.redisson.api.RMap;
import org.springframework.beans.factory.annotation.Autowired;
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;
......@@ -56,6 +52,8 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
private WxUserAddLogMapper wxUserAddLogMapper ;
@Autowired
private HaobanCommonMQApiService haobanCommonMQApiService ;
@Autowired
private OpenStaffService openStaffService ;
@Override
......@@ -178,4 +176,14 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
DingUtils.send("halfTimer告警,wxEnterpriseId="+wxEnterpriseId, null, false);
log.info("结束单向数据={}",wxEnterpriseId);
}
@Override
public void openStaffTimer(String params) {
this.openStaffService.openStaffTimer() ;
}
@Override
public void openStaffServiceTimer(String params) {
this.openStaffService.openStaffServiceTimer() ;
}
}
......@@ -135,6 +135,8 @@ public class StaffApiServiceImpl implements StaffApiService {
private MessageApiService messageApiService ;
@Autowired
private StoreService storeService ;
@Autowired
private OpenStaffService openStaffService ;
@Override
public StaffDTO selectById(String staffId) {
......@@ -174,6 +176,9 @@ public class StaffApiServiceImpl implements StaffApiService {
String wxEnterpriseId = staffListDTO.getWxEnterpriseId();
BasePageInfo pageInfo = staffListDTO.getPageInfo();
String enterpriseIdParam = staffListDTO.getEnterpriseIdParam();
if(staffListDTO.getQwOpenFlag()==1) {
enterpriseIdParam = staffListDTO.getLoginEnterpriseId() ;
}
List<String> staffIds = new ArrayList<>();
//查询所属品牌成员id
if(StrUtil.isNotBlank(enterpriseIdParam)){
......@@ -196,6 +201,13 @@ public class StaffApiServiceImpl implements StaffApiService {
}
}
}
if(staffListDTO.getQwOpenFlag()==1) {
List<String> list = this.openStaffService.listAllStaffId(wxEnterpriseId) ;
staffIds = staffIds.stream().filter(o->!list.contains(o)).collect(Collectors.toList());
if (CollectionUtils.isEmpty(staffIds)){
return new Page<>();
}
}
StaffListBO staffListBO = EntityUtil.changeEntityByJSON(StaffListBO.class, staffListDTO);
staffListBO.setStaffIds(staffIds);
staffListBO.setRelationFlag(relationFlag);
......
......@@ -11,7 +11,11 @@ import java.util.stream.Collectors;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanClerkMainStoreRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatMapper;
import com.gic.haoban.manage.service.dao.mapper.chat.GroupChatUserMapper;
import com.gic.haoban.manage.service.entity.TabHaobanClerkMainStoreRelated;
import com.gic.haoban.manage.service.entity.chat.TabGroupChat;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -69,6 +73,10 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
private TabHaobanClerkMainStoreRelatedMapper clerkMainStoreRelatedMapper ;
@Autowired
private StoreService storeService ;
@Autowired
private GroupChatMapper groupChatMapper ;
@Autowired
private GroupChatUserMapper groupChatUserMapper ;
@Override
public ServiceResponse<Page<GroupChatDTO>> listPage(GroupChatSearchQDTO qdto, BasePageInfo basePageInfo) {
......@@ -284,4 +292,32 @@ public class GroupChatApiServiceImpl implements GroupChatApiService {
}
return ServiceResponse.success();
}
@Override
public ServiceResponse<GroupChatDTO> getByWxChatId(String wxEnterpriseId, String wxChatId) {
TabGroupChat groupChat = this.groupChatMapper.selectByWxChatId(wxEnterpriseId, wxChatId);
if(null == groupChat) {
groupChat = this.groupChatMapper.selectByWxChatIdDk(wxEnterpriseId,wxChatId) ;
}
if(null == groupChat) {
return ServiceResponse.success(null) ;
}
GroupChatDTO dto = EntityUtil.changeEntityByJSON(GroupChatDTO.class,groupChat) ;
return ServiceResponse.success(dto);
}
@Override
public GroupChatUserDTO getGroupUserInfo(Long groupChatId, String externalUserId) {
TabGroupChatUser tab = this.groupChatUserMapper.getGroupUserInfo(groupChatId,externalUserId) ;
if(null != tab) {
GroupChatUserDTO dto = EntityUtil.changeEntityByJSON(GroupChatUserDTO.class,tab) ;
return dto ;
}
return null;
}
@Override
public List<String> listOpenGroupChatDK(String enterpriseId, String staffId) {
return this.groupChatMapper.listOpenGroupChatDK(enterpriseId,staffId);
}
}
package com.gic.haoban.manage.service.util;
import com.gic.commons.switcher.Switcher;
import com.gic.commons.switcher.SwitcherNamespace;
@SwitcherNamespace("BUZ.qywx.open")
public class CustomSwitcher {
/**
* 积分触不通知会员名单
*/
@Switcher
public static String qywx_open_host ;
}
\ No newline at end of file
package com.gic.haoban.manage.service.util;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.framework.apollo.ConfigService;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.GlobalVar;
import com.gic.commons.util.HttpClient;
import com.gic.haoban.manage.service.pojo.QwOpenResultBO;
import com.gic.haoban.manage.service.pojo.QwOpenResultInitBO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* https://www.showdoc.com.cn/1889765213630885/8704551724545128 密码:147258
*/
public class OpenUtils {
private static Logger logger = LogManager.getLogger(OpenUtils.class);
private static final String gicCallbackHost = GlobalVar.ctxPropertiesMap.get("haoban_service_host") + "/haoban-manage3-operation-web/qywx-msg-notice";
private static String getHost() {
return CustomSwitcher.qywx_open_host ;
}
public static ServiceResponse<QwOpenResultInitBO> init(Long qwUserId, boolean qrcodeFlag) {
JSONObject initJson = new JSONObject();
if (null != qwUserId) {
initJson.put("vid", qwUserId);
}
String initStr = HttpClient.sendPostJSON(String.format(getHost(), "init"), initJson.toJSONString(), "utf-8");
logger.info("企微初始化,req={},{}", initJson.toJSONString(), initStr);
QwOpenResultBO initResult = result(initStr);
if (!initResult.isOk()) {
return ServiceResponse.failure("9999", initResult.getErrmsg());
}
QwOpenResultInitBO initBO = JSONObject.parseObject(initResult.getData().toString(), QwOpenResultInitBO.class);
String uuid = initBO.getUuid();
// 设置回调
setCallback(uuid);
if (initBO.isIs_login()) {
logger.info("客户端是登录中的={}", qwUserId);
return ServiceResponse.success(initBO);
}
if (qrcodeFlag) {
// 获取二维码
ServiceResponse<QwOpenResultInitBO> response = getQrcode(uuid, initBO, 1);
if (!response.isSuccess()) {
return response;
}
}
return ServiceResponse.success(initBO);
}
public static ServiceResponse<Void> checkCode(String uuid, String qrcodeKey, String validCode) {
JSONObject json = new JSONObject();
json.put("uuid", uuid);
json.put("qrcodeKey", qrcodeKey);
json.put("code", validCode);
String backJson = HttpClient.sendPostJSON(String.format(getHost(), "CheckCode"), json.toJSONString(), "utf-8");
logger.info("校验验证码={},uuid={}", backJson, uuid);
QwOpenResultBO bo = result(backJson);
if (!bo.isOk()) {
return ServiceResponse.failure("9999", bo.getErrmsg());
}
return ServiceResponse.success();
}
public static void logout(String uuid) {
JSONObject json = new JSONObject();
json.put("uuid", uuid);
String backJson = HttpClient.sendPostJSON(String.format(getHost(), "LoginOut"), json.toJSONString(), "utf-8");
logger.info("退出={},uuid={}", backJson, uuid);
}
private static void setCallback(String uuid) {
JSONObject json = new JSONObject();
json.put("uuid", uuid);
json.put("url", gicCallbackHost);
String backJson = HttpClient.sendPostJSON(String.format(getHost(), "SetCallbackUrl"), json.toJSONString(), "utf-8");
logger.info("设置回调={},uuid={}", backJson, uuid);
}
public static ServiceResponse<QwOpenResultInitBO> getQrcode(String uuid, QwOpenResultInitBO initBO, int times) {
String req = "getQrCode";
if (times == 2) {
req = "SecondaryValidation";
}
JSONObject json = new JSONObject();
json.put("uuid", uuid);
String backJson = HttpClient.sendPostJSON(String.format(getHost(), req), json.toJSONString(), "utf-8");
logger.info("获取qrcode={},uuid={},times={}", backJson, uuid, times);
QwOpenResultBO initResult = result(backJson);
if (!initResult.isOk()) {
return ServiceResponse.failure("9999", initResult.getErrmsg());
}
QwOpenResultInitBO backBO = JSONObject.parseObject(initResult.getData().toString(), QwOpenResultInitBO.class);
if (null == initBO) {
return ServiceResponse.success(backBO);
}
initBO.setQrcode(backBO.getQrcode());
initBO.setKey(backBO.getKey());
initBO.setQrcode_data(backBO.getQrcode_data());
return ServiceResponse.success(initBO);
}
private static QwOpenResultBO result(String json) {
QwOpenResultBO bo = JSONObject.parseObject(json, QwOpenResultBO.class);
return bo;
}
/**
* 自动登录
*
* @param uuid
*/
public static boolean autoLogin(String uuid) {
JSONObject json = new JSONObject();
json.put("uuid", uuid);
String backJson = HttpClient.sendPostJSON(String.format(getHost(), "automaticLogin"), json.toJSONString(), "utf-8");
logger.info("自动登录={},uuid={}", backJson, uuid);
JSONObject resultJson = JSONObject.parseObject(backJson);
int errcode = resultJson.getIntValue("errcode");
if (errcode == 0) {
logger.info("自动登录成功={}");
return true;
}
return false;
}
/**
* 判断账号是否登录中
*
* @param uuid
* @return
*/
public static boolean isLogin(String uuid) {
JSONObject json = new JSONObject();
json.put("uuid", uuid);
String backJson = HttpClient.sendPostJSON(String.format(getHost(), "GetProfile"), json.toJSONString(), "utf-8");
logger.info("获取当前账号详情={},uuid={}", backJson, uuid);
JSONObject resultJson = JSONObject.parseObject(backJson);
int errcode = resultJson.getIntValue("errcode");
if (errcode == 500 && resultJson.getString("errmsg").contains("实例不存在")) {
return false;
}
return true;
}
}
package com.gic.haoban.manage.service.util;
import com.gic.commons.switcher.SwitcherApplication;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
import java.util.concurrent.atomic.AtomicBoolean;
@Component
public class SwitcherInitialization implements InitializingBean {
static AtomicBoolean INIT = new AtomicBoolean(false);
@Override
public void afterPropertiesSet() throws Exception {
SwitcherApplication.init(CustomSwitcher.class);
}
}
\ No newline at end of file
......@@ -218,7 +218,9 @@
ref="interactRecordApiService" timeout="10000" />
<dubbo:service interface="com.gic.haoban.manage.api.service.content.MallOrderStatusChangeApiService"
ref="mallOrderStatusChangeApiService" timeout="10000" />
<dubbo:service interface="com.gic.haoban.manage.api.service.OpenStaffApiService"
ref="openStaffApiService" timeout="10000" />
<dubbo:reference interface="com.gic.haoban.task.manage.api.service.OpenQwApiService" id="openQwApiService"/>
<dubbo:reference interface="com.gic.store.goods.service.GoodsInfoOutApiService" id="goodsInfoOutApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.store.goods.service.GoodsCenterApiService" id="goodsCenterApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.business.order.service.ordermanage.OrderInfoOutApiService" id="orderInfoOutApiService" timeout="10000" retries="0" check="false"/>
......@@ -237,4 +239,5 @@
<dubbo:reference interface="com.gic.content.api.service.ContentSettingApiService" id="contentSettingApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.clerk.api.service.MenuApiService" id="menuApiService" timeout="10000" retries="0" check="false" />
</beans>
\ No newline at end of file
......@@ -933,6 +933,12 @@
and half_del_time is null limit 1000
</select>
<select id="getDelFriend" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from tab_haoban_external_clerk_related
where wx_enterprise_id = #{wxEnterpriseId} and status_flag in (1,3,4) and external_status = 3
and staff_id =#{staffId} and enterprise_id=#{enterpriseId} limit 1
</select>
<update id="updateHalfTime">
update tab_haoban_external_clerk_related set
half_del_time = #{delTime}
......
......@@ -443,7 +443,7 @@
select
staff_id staffId,
enterprise_id enterpriseId ,
clerk_id clerkId
clerk_id clerkId , store_id storeId
from tab_haoban_staff_clerk_relation
WHERE
wx_enterprise_id = #{wxEnterpriseId}
......@@ -491,4 +491,20 @@
select <include refid="Base_Column_List"/> from tab_haoban_staff_clerk_relation where staff_id =#{staffId} order by update_time desc
</select>
<select id="listAllStaffIdForOpenStaff" resultType="java.lang.String">
select a.staff_id
from tab_haoban_staff_clerk_relation a left join tab_haoban_staff b on b.staff_id = a.staff_id
where a.enterprise_id = #{enterpriseId} and a.status_flag=1 and b.status_flag = 1 and a.wx_enterprise_id = #{wxEnterpriseId}
<if test="null != clerkId and clerkId != '' ">
and a.clerk_id = #{clerkId}
</if>
<if test="null != storeIdList">
AND a.store_id in
<foreach collection="storeIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
GROUP BY a.staff_id
</select>
</mapper>
\ No newline at end of file
......@@ -603,4 +603,9 @@
and callback_flag = #{callbackFlag}
</select>
<select id="getWxEnterpriseIdByName" resultType="java.lang.String">
select wx_enterprise_id from tab_haoban_wx_enterprise where corp_name = #{corpName} and status_flag = 1 and wx_security_type > 0
</select>
</mapper>
\ No newline at end of file
......@@ -364,5 +364,9 @@
<select id="listChangeOwner" resultType="com.gic.haoban.manage.api.dto.chat.GroupChatDTO">
select wx_enterprise_id wxEnterpriseId , staff_id staffId FROM tab_haoban_group_chat WHERE update_time > DATE_ADD(NOW(),INTERVAL -7 DAY) AND chat_status = 1 and staff_id is not null
</select>
<select id="listOpenGroupChatDK" resultType="java.lang.String">
select wx_chat_id_dk from tab_haoban_group_chat where enterprise_id=#{enterpriseId} and staff_id = #{staffId} and delete_flag=0 and chat_status != 4 and wx_chat_id_dk is not null
</select>
</mapper>
\ No newline at end of file
......@@ -310,4 +310,9 @@
and user_quit_time <![CDATA[<=]]> #{end} and status_flag = 2 group by quit_staff_id
</select>
<select id="getGroupUserInfo" resultMap="result-map-tabHaobanGroupChatUser">
select <include refid="Base_Column_List"/> from tab_haoban_group_chat_user where group_chat_id = #{groupChatId} and user_id = #{userId}
and delete_flag = 0 and status_flag = 1 limit 1
</select>
</mapper>
\ No newline at end of file
......@@ -106,7 +106,7 @@
create_time,
update_time,
add_time,
all_del_flag , qw_add_time , friend_clerk_id , friend_store_id)
all_del_flag , qw_add_time , friend_clerk_id , friend_store_id , del_type )
VALUES (#{logId,jdbcType=BIGINT},
#{wxEnterpriseId,jdbcType=VARCHAR},
#{enterpriseId,jdbcType=CHAR},
......@@ -138,7 +138,7 @@
now(),
now(),
now(),
#{allDelFlag,jdbcType=INTEGER} , #{qwAddTime} , #{friendClerkId} , #{friendStoreId})
#{allDelFlag,jdbcType=INTEGER} , #{qwAddTime} , #{friendClerkId} , #{friendStoreId} , #{delType})
]]>
</insert>
......
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONArray;
import org.apache.commons.lang3.StringUtils;
public class FileUtils {
public static void main(String[] args) {
System.out.println(JSONArray.parseArray(getText().toString()));
}
public static StringBuilder getText(){
StringBuilder list = new StringBuilder() ;
return list ;
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import org.apache.commons.lang3.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import cn.hutool.crypto.SecureUtil;
public class FileUtils2 {
public static void main(String[] args) {
System.out.println(SecureUtil.md5("2af5e413ec4e44c29b4bab61021071ba" + "wmNYNmCgAA7AohTQh62UPdSKyr3m9bIg"));
/*String s = getText();
JSONArray jsonArr = JSONObject.parseObject(s).getJSONArray("value");
System.out.println(JSON.toJSONString(jsonArr));*/
}
public static String getText(){
try {
BufferedReader bw = new BufferedReader(new FileReader(new File("c:\\b.txt"))) ;
StringBuilder sb = new StringBuilder() ;
while(true) {
String s = bw.readLine() ;
if(StringUtils.isBlank(s)) {
break ;
}else {
String ss = new String(s.getBytes(),"UTF-8") ;
sb.append(ss) ;
}
}
bw.close();
return sb.toString() ;
}catch(Exception e) {
}
return null ;
}
}
import org.apache.commons.lang3.StringUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
public class FileUtils3 {
public static void main(String[] args) {
System.out.println(getText().get(0));
}
public static List<String> getText(){
List<String> list = new ArrayList<>();
try {
BufferedReader bw = new BufferedReader(new FileReader(new File("c:\\b.txt"))) ;
StringBuilder sb = new StringBuilder() ;
while(true) {
String s = bw.readLine() ;
if(StringUtils.isBlank(s)) {
break ;
}else {
String ss = new String(s.getBytes(),"UTF-8") ;
list.add(ss) ;
}
}
bw.close();
}catch(Exception e) {
}
return list ;
}
}
import org.apache.commons.lang3.StringUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
public class FileUtils4 {
public static String getText(){
try {
BufferedReader bw = new BufferedReader(new FileReader(new File("c:\\c.txt"))) ;
StringBuilder sb = new StringBuilder() ;
while(true) {
String s = bw.readLine() ;
if(StringUtils.isBlank(s)) {
break ;
}else {
String ss = new String(s.getBytes(),"UTF-8") ;
sb.append(ss) ;
}
}
bw.close();
return sb.toString() ;
}catch(Exception e) {
}
return null ;
}
}
import com.gic.api.base.commons.BasePageInfo;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
import com.gic.haoban.manage.api.service.HaobanTimerApiService;
import com.gic.haoban.manage.api.service.notify.NoticeMessageApiService;
import com.gic.haoban.manage.api.service.role.HaobanRoleApiService;
import com.gic.haoban.manage.api.util.notify.NoticeMessageUtil;
import com.gic.haoban.manage.service.service.OpenStaffService;
import com.gic.weimob.common.Md5Util;
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;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class HalfFriendTest {
@Autowired
private OpenStaffService openStaffService ;
@Autowired
private NoticeMessageApiService noticeMessageApiService ;
@Test
public void tt() {
Map<String,String> map = new HashMap<>() ;
map.put("accountName","111222333111K") ;
map.put("errorTime","2024年4月20日 22:22") ;
map.put("reason","异常断开") ;
this.noticeMessageApiService.sendMessageForOpenStaff("ff8080815dacd3a2015dacd3ef5c0000","xgh","首次托管,需要二次验证");
/*OpenStaffPageQDTO qdto = new OpenStaffPageQDTO() ;
qdto.setWxEnterpriseId("ca66a01b79474c40b3e7c7f93daf1a3b");
qdto.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
qdto.setClerkId("b2ef17cce11f476b996d0b27ebadf7fb");
qdto.setStoreGroupIdList(Arrays.asList("ff8080815dacd3a2015dacd3f4fc0033"));
qdto.setStaffParams("徐高华");
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageSize(11);
basePageInfo.setPageNum(1);
this.openStaffService.page(qdto,basePageInfo) ;*/
int messageType = NoticeMessageTypeEnum.HAOBAN_OPEN_STAFF_LOGOUT.getType();
// NoticeMessageUtil.sendNoticeMessageByStaff("ff8080815dacd3a2015dacd3ef5c0000","52995ea8c81c4cc286a9b82bc36a7081","-1",messageType,null,map,null);
}
}
import com.gic.haoban.manage.api.service.HaobanTimerApiService;
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;
import java.util.Arrays;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class HalfFriendTest123 {
@Autowired
private HaobanTimerApiService haobanTimerApiService ;
@Test
public void tt() {
List<String> list = Arrays.asList("27f6a5b4ed474c7889f9f35efdd90acb",
"c2a7904f682343efb9bc1cae026888a3",
"8477c149d8774f06ab841f042645832b") ;
for (String s : list) {
this.haobanTimerApiService.halfTimer(s);
}
}
}
import com.gic.haoban.manage.api.service.HaobanTimerApiService;
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;
import java.util.Arrays;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class HalfFriendTest333 {
@Autowired
private HaobanTimerApiService haobanTimerApiService ;
@Test
public void tt() {
List<String> list = Arrays.asList("93416e3a92504683b5b13513477a840a","369038a3568b46a6898d635843b73dc6","7f8c0c0eedd546ed9c4b355bb9cc2f31","9a7a89d2d1534c47980ea0886a202d3c") ;
for (String s : list) {
this.haobanTimerApiService.halfTimer(s);
}
}
}
import com.gic.haoban.manage.api.service.HaobanTimerApiService;
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;
import java.util.Arrays;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class HalfFriendTest444 {
@Autowired
private HaobanTimerApiService haobanTimerApiService ;
@Test
public void tt() {
List<String> list = Arrays.asList(
"727f05dbe66d48009719f63a189b9965",
"31060eb76d7a42969516c7ff12f9a1ea",
"703207906c5942b0937f8eda35036e9b",
"7a11c347030342eba50d188b96b646c0") ;
for (String s : list) {
this.haobanTimerApiService.halfTimer(s);
}
}
}
import com.gic.haoban.manage.api.qdto.OpenStaffInitQDTO;
import com.gic.haoban.manage.api.service.OpenStaffApiService;
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;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class QwOpenTest {
@Autowired
private OpenStaffApiService openStaffApiService ;
@Test
public void tt() {
OpenStaffInitQDTO s = new OpenStaffInitQDTO() ;
s.setStaffId("52995ea8c81c4cc286a9b82bc36a7081");
s.setWxEnterpriseId("ca66a01b79474c40b3e7c7f93daf1a3b");
s.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
this.openStaffApiService.init(s) ;
}
}
package log;
import lombok.Data;
import java.util.List;
@Data
public class EsResult {
private List<Hits> hits;
private String _scroll_id;
@Data
public static class Hits {
private List<Source> hits;
private Long total;
private Long totalNum;
}
@Data
public static class Total {
private Long value;
}
@Data
public static class Source {
private String _source;
}
@Data
public static class Message {
private String message;
}
}
package log;
import org.apache.http.impl.client.CloseableHttpClient;
/**
* 基于枚举的http单例
* @author jiaotianqi
* @date 2021/7/15 15:41
*/
public enum HttpClientEnum {
INITIALIZE;
private CloseableHttpClient httpClient = HttpClientInit.getHttpClient();
public CloseableHttpClient getHttpClient() {
return httpClient;
}
}
package log;
import org.apache.http.HttpEntityEnclosingRequest;
import org.apache.http.HttpRequest;
import org.apache.http.NoHttpResponseException;
import org.apache.http.client.HttpRequestRetryHandler;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.conn.HttpHostConnectException;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.protocol.HttpContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLPeerUnverifiedException;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.concurrent.TimeUnit;
public class HttpClientInit {
/**
* 最大连接数
*/
public final static int MAX_TOTAL_CONNECTIONS = 1200;
/**
* 获取连接的最大等待时间
*/
public final static int WAIT_TIMEOUT = 30000;
/**
* 每个路由最大连接数
*/
public final static int MAX_ROUTE_CONNECTIONS = 400;
/**
* 连接超时时间
*/
public final static int CONNECT_TIMEOUT = 10000;
public static CloseableHttpClient getHttpClient() {
HttpRequestRetryHandler retryHandler = new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
if (executionCount >= 3) {
// Do not retry if over max retry count
return false;
}
if (exception instanceof InterruptedIOException) {
// Timeout
return true;
}
if (exception instanceof UnknownHostException) {
// Unknown host
return false;
}
if (exception instanceof ConnectTimeoutException) {
return true;
}
if (exception instanceof SSLException) {
return true;
}
if (exception instanceof SSLPeerUnverifiedException) {
// SSL handshake exception
System.out.println("https证书异常");
return true;
}
if (exception instanceof SocketTimeoutException) {
// SSL handshake exception
System.out.println("socket超时异常");
return true;
}
if (exception instanceof NoHttpResponseException) {
// SSL handshake exception
System.out.println("http无响应异常");
return true;
}
if (exception instanceof HttpHostConnectException) {
// SSL handshake exception
System.out.println("http主机连接异常");
return true;
}
HttpClientContext clientContext = HttpClientContext.adapt(context);
HttpRequest request = clientContext.getRequest();
boolean idempotent = !(request instanceof HttpEntityEnclosingRequest);
if (idempotent) {
return true;
}
return false;
}
};
RequestConfig requestConfig = RequestConfig.custom()
// 获取连接超时时间
.setConnectionRequestTimeout(CONNECT_TIMEOUT)
// 请求超时时间
.setConnectTimeout(CONNECT_TIMEOUT)
// 响应超时时间
.setSocketTimeout(CONNECT_TIMEOUT)
.build();
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
cm.setMaxTotal(MAX_TOTAL_CONNECTIONS);
cm.setDefaultMaxPerRoute(MAX_ROUTE_CONNECTIONS);
//单个路由设置其连接大小
//cm.setMaxPerRoute(new HttpRoute(new HttpHost("jd.com",80)), 100);
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(requestConfig)
.setRetryHandler(retryHandler)
.setConnectionManager(cm)
//定期回收空闲连接
.evictExpiredConnections()
.setConnectionTimeToLive(1, TimeUnit.HOURS)
.build();
return httpClient;
}
}
package log;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import java.net.URI;
public class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase {
public static final String METHOD_NAME = "DELETE";
public String getMethod() {
return METHOD_NAME;
}
public HttpDeleteWithBody(final String uri) {
super();
setURI(URI.create(uri));
}
public HttpDeleteWithBody(final URI uri) {
super();
setURI(uri);
}
public HttpDeleteWithBody() {
super();
}
}
\ No newline at end of file
package log;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.gic.commons.util.DateUtil;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.HashMap;
import java.util.Map;
import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class KibanaLogDownload {
static KibanaLogDownload esQueryHelper = new KibanaLogDownload();
ObjectMapper objectMapper = new ObjectMapper();
private String indexName = "filebeat-6.7.2*";
private String ip = "http://10.0.2.11:9200";
private int skipTime = 1000 * 60 * 60 * 4;
public static KibanaLogDownload getInstance() {
return esQueryHelper;
}
public KibanaLogDownload setIndexName(String indexName) {
this.indexName = indexName;
return this;
}
public KibanaLogDownload setIp(String ip) {
this.ip = ip;
return this;
}
/**
* 游标查询
* @param param 参数
* @param time 失效时间
* @param consumer 单条回调
*/
public void postScroll(String param, String time, Consumer<String> consumer) {
EsResult res = null;
String htt = ip + "/" + indexName + "/_search?scroll=" + time;
String s = HttpClientUtil.postJson(htt, param, null);
String scrollId = null ;
try {
res = JSON.parseObject(s, EsResult.class);
scrollId = res.get_scroll_id();
for (EsResult.Hits hits2 : res.getHits()) {
for (EsResult.Source hit : hits2.getHits()) {
consumer.accept(hit.get_source());
}
}
boolean empty;
do {
empty=true;
String htt2 = ip + "/_search/scroll";
Map<String, String> pa = new HashMap<>();
pa.put("scroll", time);
pa.put("scroll_id", scrollId);
String s2 = HttpClientUtil.postJson(htt2, JSON.toJSONString(pa), null);
res = JSON.parseObject(s2, EsResult.class);
for (EsResult.Hits hits2 : res.getHits()) {
for (EsResult.Source hit : hits2.getHits()) {
empty=false;
consumer.accept(hit.get_source());
}
}
} while (!empty);
Map<String, String> pa = new HashMap<>();
pa.put("scroll_id", scrollId);
String clearScrollRes = HttpClientUtil.postDelJson(ip + "/_search/scroll/", JSON.toJSONString(pa), null);
System.out.println("游标清除1:"+clearScrollRes);
}catch (Exception e) {
e.printStackTrace();
if (null != scrollId) {
Map<String, String> pa = new HashMap<>();
pa.put("scroll_id", scrollId);
String clearScrollRes = HttpClientUtil.postDelJson(ip + "/_search/scroll/", JSON.toJSONString(pa), null);
System.out.println("游标清除2:"+clearScrollRes);
}
}
}
static int logCount = 0 ;
public static void main(String[] args) throws InterruptedException {
String startTime = "2024-05-08 19:00" ;
String endTime = "2024-05-08 22:00" ;
long start = DateUtil.strToDate(startTime,"yyyy-MM-dd HH:mm").getTime() ;
long end = DateUtil.strToDate(endTime,"yyyy-MM-dd HH:mm").getTime() ;
//long start = 1714446600000l ;
//long end = 1714448399999l ;
int size = 10000 ;
int batch = 1 ;
JSONArray arr = new JSONArray() ;
for(int i=0;i<batch;i++) {
long per = (end - start) / batch ;
long s1 = start+ (i)*per ;
long s2 = start+ (i+1)*per ;
System.out.println(s1 + " " + s2);
JSONObject root = JSONObject.parseObject("{}") ;
root.put("size",size) ;
JSONObject query = JSONObject.parseObject("{\"bool\":{\"must\":[{\"match_all\":{}},{\"bool\":{\"should\":[{\"match_phrase\":{\"message\":\"创蓝彩信回执=\"}}],\"minimum_should_match\":1}},{\"range\":{\"@timestamp\":{\"gte\":1715166000000,\"lte\":1715176800000,\"format\":\"epoch_millis\"}}}],\"filter\":[],\"should\":[],\"must_not\":[]}}") ;
root.put("query",query) ;
KibanaLogDownload.getInstance().postScroll(root.toJSONString(), "15m", source -> {
try {
//System.out.println(source + (logCount++));
//
// System.out.println((source.split("创蓝彩信回执=")[1]));
Pattern p = Pattern.compile("\\[.*\\]") ;
Matcher m = p.matcher(source.split("创蓝彩信回执=")[1]) ;
while(m.find()) {
String s = m.group() ;
// System.out.println(s);
JSONArray xx = JSONArray.parseArray(s.replace("\\",""));
// System.out.println(xx.toJSONString());
arr.addAll(xx) ;
}
}catch (Exception e) {
}
});
}
System.out.println(arr.toJSONString());
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:gic-haoban-init.xml" />
<import resource="classpath*:redis-init.xml"/>
<import resource="classpath:dubbo-haoban-manage-service.xml" />
<import resource="classpath:dubbo-setting-test.xml"/>
<import resource="classpath:jdbc-haoban-manage-service.xml" />
<import resource="classpath*:log-record-init.xml" />
</beans>
\ No newline at end of file
......@@ -38,6 +38,11 @@
<dependencies>
<dependency>
<groupId>com.gic</groupId>
<artifactId>haoban-task-manage-api</artifactId>
<version>${haoban-task-manage-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>haoban-common</artifactId>
<version>${haoban-common}</version>
</dependency>
......
......@@ -2,6 +2,8 @@ package com.gic.haoban.manage.web.controller;
import java.util.Date;
import com.gic.search.engine.api.constant.OperateEnum;
import com.gic.search.engine.api.filter.NewNodeAddUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -66,7 +68,7 @@ public class MemberController {
*/
@RequestMapping("member-count")
@ResponseBody
public RestResponse<Object> getMemberCount(String searchParams, @RequestParam(defaultValue="0")int type) {
public RestResponse<Object> getMemberCount(String searchParams, @RequestParam(defaultValue="0")int type , @RequestParam(defaultValue="0")int qywxFlag) {
if (StringUtils.isBlank(searchParams)) {
return RestResponse.successResult(0);
}
......@@ -83,6 +85,9 @@ public class MemberController {
if (!StringUtils.isBlank(searchParams)) {
searchJson = JSON.parseObject(searchParams);
}
if(qywxFlag==1) {
searchJson = NewNodeAddUtil.addNewNodeForAnd("qywxFlag", OperateEnum.OPERATE_EQ.getValue(), 0, searchJson);
}
DynamicSearchDTO search = new DynamicSearchDTO();
searchJson = this.storeService.parseSelectData(searchJson, enterpriseId, clerkId, new Date());
search.setSearchJson(searchJson);
......
package com.gic.haoban.manage.web.controller.open;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.web.vo.open.AddMemberExcelVO;
import com.gic.haoban.task.manage.api.dto.open.OpenQwAddTaskMemberDTO;
import com.gic.haoban.task.manage.api.qdto.open.AddTaskMemberPageQDTO;
import com.gic.haoban.task.manage.api.service.OpenQwApiService;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
@Service
public class OpenAddMemberExcelHandler extends DownloadHandlerAbstract<AddMemberExcelVO> {
@Autowired
private OpenQwApiService openQwApiService;
@Override
public List<AddMemberExcelVO> getData(Context context, String json, Integer currentPage) {
AddTaskMemberPageQDTO qdto = JSON.parseObject(json, AddTaskMemberPageQDTO.class);
BasePageInfo pageInfo = new BasePageInfo();
pageInfo.setPageSize(this.getPageSize());
pageInfo.setPageNum(currentPage);
ServiceResponse<Page<OpenQwAddTaskMemberDTO>> page = this.openQwApiService.addFriendPage(qdto, pageInfo);
List<AddMemberExcelVO> voList = new ArrayList<>();
if (null != page && CollectionUtils.isNotEmpty(page.getResult().getResult())) {
for (OpenQwAddTaskMemberDTO item : page.getResult().getResult()) {
AddMemberExcelVO vo = EntityUtil.changeEntityByJSON(AddMemberExcelVO.class, item);
if (item.getStatusFlag() == 1) {
vo.setStatusExcel("待通过");
} else {
vo.setStatusExcel("已添加");
}
if (null != item.getApplyTime()) {
vo.setApplyTimeExcel(DateUtil.dateToStr(item.getApplyTime(), "yyyy-MM-dd HH:mm:ss"));
}
if (null != item.getAddTime()) {
vo.setAddTimeExcel(DateUtil.dateToStr(item.getAddTime(), "yyyy-MM-dd HH:mm:ss"));
}
voList.add(vo);
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList("成员姓名", "导购姓名", "导购code", "导购所属门店名称", "导购所属门店code", "客户姓名", "客户昵称", "客户手机号", "状态", "添加好友时间", "申请添加时间");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList("staffName", "clerkName", "clerkCode", "storeName", "storeCode", "memberName", "memberNick", "memberPhone", "statusExcel", "addTimeExcel", "applyTimeExcel");
}
@Override
public Integer getPageSize() {
return 1000;
}
}
package com.gic.haoban.manage.web.controller.open;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.web.vo.open.OpenQwAlarmLogExcelVO;
import com.gic.haoban.task.manage.api.dto.open.OpenQwAlarmLogDTO;
import com.gic.haoban.task.manage.api.qdto.open.AlarmWordsLogQDTO;
import com.gic.haoban.task.manage.api.service.OpenQwApiService;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
@Service
public class OpenAlarmWordsLogExcelHandler extends DownloadHandlerAbstract<OpenQwAlarmLogExcelVO> {
@Autowired
private OpenQwApiService openQwApiService;
@Override
public List<OpenQwAlarmLogExcelVO> getData(Context context, String json, Integer currentPage) {
AlarmWordsLogQDTO qdto = JSON.parseObject(json, AlarmWordsLogQDTO.class);
BasePageInfo pageInfo = new BasePageInfo();
pageInfo.setPageSize(this.getPageSize());
pageInfo.setPageNum(currentPage);
ServiceResponse<Page<OpenQwAlarmLogDTO>> page = this.openQwApiService.alarmWordsLogPage(qdto, pageInfo);
List<OpenQwAlarmLogExcelVO> voList = new ArrayList<>();
if (null != page && CollectionUtils.isNotEmpty(page.getResult().getResult())) {
for (OpenQwAlarmLogDTO item : page.getResult().getResult()) {
OpenQwAlarmLogExcelVO vo = EntityUtil.changeEntityByJSON(OpenQwAlarmLogExcelVO.class, item);
if (item.getChatType() == 1) {
vo.setChatTypeExcel("单聊");
} else {
vo.setChatTypeExcel("群聊");
}
vo.setCreateTimeExcel(DateUtil.dateToStr(item.getCreateTime(), "yyyy-MM-dd HH:mm:ss"));
voList.add(vo);
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList("成员姓名", "导购姓名", "导购code", "导购所属门店名称", "导购所属门店code", "会话类型", "客户姓名", "客户昵称", "客户手机号", "群名称", "敏感词", "会话内容", "会话时间");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList("staffName", "clerkName", "clerkCode", "storeName", "storeCode", "chatTypeExcel", "memberName", "memberNick", "memberPhone", "groupChatName", "alarmWords", "content", "createTimeExcel");
}
@Override
public Integer getPageSize() {
return 1000;
}
}
package com.gic.haoban.manage.web.controller.open;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.manage.api.dto.OpenStaffListDTO;
import com.gic.haoban.manage.api.qdto.OpenStaffPageQDTO;
import com.gic.haoban.manage.api.service.OpenStaffApiService;
import com.gic.haoban.manage.web.vo.open.OpenStaffExcelVO;
import com.gic.web.common.download.DownloadHandlerAbstract;
import com.gic.web.common.download.context.Context;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class OpenStaffExcelHandler extends DownloadHandlerAbstract<OpenStaffExcelVO> {
@Autowired
private OpenStaffApiService openStaffApiService ;
@Autowired
private EnterpriseService enterpriseService ;
@Override
public List<OpenStaffExcelVO> getData(Context context, String json, Integer currentPage) {
OpenStaffPageQDTO qdto = JSON.parseObject(json, OpenStaffPageQDTO.class);
BasePageInfo pageInfo = new BasePageInfo() ;
pageInfo.setPageSize(this.getPageSize());
pageInfo.setPageNum(currentPage);
ServiceResponse<Page<OpenStaffListDTO>> page = this.openStaffApiService.page(qdto, pageInfo);
List<OpenStaffExcelVO> voList = new ArrayList<>();
if (null != page && CollectionUtils.isNotEmpty(page.getResult().getResult())) {
EnterpriseDTO en = this.enterpriseService.getEnterpriseById(qdto.getEnterpriseId()) ;
for(OpenStaffListDTO item : page.getResult().getResult()) {
OpenStaffExcelVO vo = EntityUtil.changeEntityByJSON(OpenStaffExcelVO.class,item) ;
vo.setCreateTimeExcel(DateUtil.dateToStr(item.getCreateTime(),"yyyy-MM-dd HH:mm:ss"));
if(null != item.getAuthTime()) {
vo.setLastTimeExcel(DateUtil.dateToStr(item.getAuthTime(),"yyyy-MM-dd HH:mm:ss"));
}
if(CollectionUtils.isNotEmpty(item.getClerkList())) {
vo.setStoreCodes(item.getClerkList().stream().map(o->o.getStoreCode()).collect(Collectors.joining(",")));
vo.setStoreNames(item.getClerkList().stream().map(o->o.getStoreName()).collect(Collectors.joining(",")));
vo.setClerkCodes(item.getClerkList().stream().map(o->o.getClerkCode()).collect(Collectors.joining(",")));
vo.setClerkNames(item.getClerkList().stream().map(o->o.getClerkName()).collect(Collectors.joining(",")));
}
if(item.getStatusFlag()==1) {
vo.setStatusExcel("托管中");
}else {
if(item.getValidQrcodeFlag()==1) {
vo.setStatusExcel("待验证");
}else {
if (null == item.getFirstAuthTime()) {
vo.setStatusExcel("待授权");
}else{
vo.setStatusExcel("已过期");
}
}
}
vo.setBrandName(en.getBrandName());
voList.add(vo) ;
}
}
return voList;
}
@Override
public List<String> getColumnNames() {
return Arrays.asList("成员姓名", "托管状态","关联导购姓名","关联导购code","关联门店姓名","关联门店code","所属商户","最近托管授权时间","新增时间");
}
@Override
public LinkedHashMap<String, List<String>> doubleColumnNames() {
return null;
}
@Override
public List<String> getColumns() {
return Arrays.asList("staffName", "statusExcel", "clerkNames","clerkCodes", "storeNames","storeCodes","brandName","lastTimeExcel","createTimeExcel");
}
@Override
public Integer getPageSize() {
return 1000 ;
}
}
package com.gic.haoban.manage.web.controller.open;
import cn.hutool.core.date.DatePattern;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.AuthorizedUser;
import com.gic.commons.util.DateUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.web.qo.open.AlarmWordsLogPageQO;
import com.gic.haoban.manage.web.qo.open.AlarmWordsPageQO;
import com.gic.haoban.manage.web.qo.open.AlarmWordsQO;
import com.gic.haoban.task.manage.api.dto.open.*;
import com.gic.haoban.task.manage.api.qdto.open.AlarmWordsLogQDTO;
import com.gic.haoban.task.manage.api.qdto.open.QwOpenAlarmWordsQDTO;
import com.gic.haoban.task.manage.api.service.OpenQwApiService;
import com.gic.qcloud.BucketNameEnum;
import com.gic.web.common.download.DownloadTask;
import com.gic.web.common.download.DownloadTaskUtil;
import com.gic.web.common.download.constants.TaskTypeEnum;
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.RestController;
import java.util.Date;
/**
* 企微托管-敏感词
*/
@RestController
@RequestMapping("/qw-open")
public class QywxAlarmWordsController {
@Autowired
private OpenQwApiService openQwApiService ;
@Autowired
private OpenAlarmWordsLogExcelHandler openAlarmWordsLogExcelHandler ;
/**
* 敏感词列表
*/
@RequestMapping("page-alarm-words")
public RestResponse<Page<OpenQwAlarmWordsDTO>> pageAlarmWords(@RequestBody AlarmWordsPageQO qo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId() ;
String enterpriseId = loginUser.getEnterpriseId() ;
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageNum(qo.getPageNum());
basePageInfo.setPageSize(qo.getPageSize());
QwOpenAlarmWordsQDTO qdto = EntityUtil.changeEntityByJSON(QwOpenAlarmWordsQDTO.class,qo) ;
if (null != qdto.getEndDate()) {
qdto.setEndDate(DateUtil.getEndTimeOfDay(qdto.getEndDate()));
}
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId);
ServiceResponse<Page<OpenQwAlarmWordsDTO>> resp = this.openQwApiService.alarmWordsPage(qdto,basePageInfo) ;
if(!resp.isSuccess()) {
return RestResponse.failure("9999",resp.getMessage()) ;
}
return RestResponse.successResult(resp.getResult()) ;
}
/**
* 保存敏感词
* @param qo
* @return
*/
@RequestMapping("save-alarm-words")
public RestResponse<Void> saveAlarmWords(@RequestBody AlarmWordsQO qo) {
OpenQwAlarmWordsDTO dto = EntityUtil.changeEntityByJSON(OpenQwAlarmWordsDTO.class,qo) ;
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId() ;
String enterpriseId = loginUser.getEnterpriseId() ;
dto.setWxEnterpriseId(wxEnterpriseId);
dto.setEnterpriseId(enterpriseId);
dto.setCreatorId(loginUser.getClerkId());
dto.setCreatorName(loginUser.getClerkName());
ServiceResponse<Void> resp = this.openQwApiService.saveAlarmWords(dto) ;
if(!resp.isSuccess()) {
return RestResponse.failure("9999",resp.getMessage()) ;
}
return RestResponse.successResult() ;
}
/**
* 删除敏感词
* @param id
* @return
*/
@RequestMapping("del-alarm-words")
public RestResponse<Void> delAlarmWords(Long id) {
ServiceResponse<Void> resp = this.openQwApiService.delAlarmWords(id) ;
if(!resp.isSuccess()) {
return RestResponse.failure("9999",resp.getMessage()) ;
}
return RestResponse.successResult() ;
}
/**
* 敏感词监控列表
*/
@RequestMapping("page-alarm-words-log")
public RestResponse<Page<OpenQwAlarmLogDTO>> pageAlarmLog(@RequestBody AlarmWordsLogPageQO qo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId() ;
String enterpriseId = loginUser.getEnterpriseId() ;
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageNum(qo.getPageNum());
basePageInfo.setPageSize(qo.getPageSize());
AlarmWordsLogQDTO qdto = EntityUtil.changeEntityByJSON(AlarmWordsLogQDTO.class,qo) ;
if (null != qdto.getEndDate()) {
qdto.setEndDate(DateUtil.getEndTimeOfDay(qdto.getEndDate()));
}
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setEnterpriseId(enterpriseId);
qdto.setLoginClerkId(loginUser.getClerkId());
ServiceResponse<Page<OpenQwAlarmLogDTO>> resp = this.openQwApiService.alarmWordsLogPage(qdto,basePageInfo) ;
if(!resp.isSuccess()) {
return RestResponse.failure("9999",resp.getMessage()) ;
}
return RestResponse.successResult(resp.getResult()) ;
}
/**
* 敏感词监控列表导出
* @param qo
* @return
*/
@RequestMapping("alarm-words-log-excel")
public RestResponse<String> excel(@RequestBody AlarmWordsLogPageQO qo) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
AlarmWordsLogQDTO qdto = EntityUtil.changeEntityByJSON(AlarmWordsLogQDTO.class,qo) ;
if (null != qdto.getEndDate()) {
qdto.setEndDate(DateUtil.getEndTimeOfDay(qdto.getEndDate()));
}
qdto.setWxEnterpriseId(loginUser.getWxEnterpriseId());
qdto.setEnterpriseId(loginUser.getEnterpriseId());
BasePageInfo basePageInfo = new BasePageInfo() ;
basePageInfo.setPageNum(1);
basePageInfo.setPageSize(1);
qdto.setLoginClerkId(loginUser.getClerkId());
ServiceResponse<Page<OpenQwAlarmLogDTO>> pageResp =this.openQwApiService.alarmWordsLogPage(qdto,basePageInfo) ;
final int totalCount = pageResp.getResult().getTotalCount() ;
if (totalCount == 0) {
return RestResponse.failure("9999", "导出数据条数为0");
}
AuthorizedUser user = new AuthorizedUser();
user.setUserId(loginUser.getClerkId());
user.setEnterpriseId(loginUser.getEnterpriseId());
user.setRealName(loginUser.getClerkName());
String fileName = "敏感词" ;
Date startDate = qdto.getStartDate();
Date endDate = qdto.getEndDate() ;
if(null != startDate && null != endDate) {
fileName = fileName + "-" + DateUtil.formatString(startDate, "yyyy-MM-dd") + "到" + DateUtil.formatString(endDate, "yyyy-MM-dd");
}
// 1.组装数据查询条件
DownloadTask task = new DownloadTask();
task.setTaskTypeEnum(TaskTypeEnum.HAOBAN_ALARM_WORDS);
task.setUser(user);
task.setDataType(qo.getDataType());
task.setTotalCount(totalCount);
task.setFileName(fileName);
task.setChannelName(TaskTypeEnum.HAOBAN_ALARM_WORDS.getName());
task.setBucketName(BucketNameEnum.REPORT_50000.getName());
task.setSearchDataParams(JSON.toJSONStringWithDateFormat(qdto, DatePattern.NORM_DATETIME_PATTERN));
task.setHandler(openAlarmWordsLogExcelHandler);
JSONResponse jsonResponse = DownloadTaskUtil.createDownloadTask(task);
final String reportId;
if (jsonResponse.isSuccess()) {
reportId = (String) jsonResponse.getResult();
} else {
return RestResponse.failure("9999",jsonResponse.getErrorMessage());
}
return RestResponse.successResult(reportId);
}
}
......@@ -65,6 +65,19 @@ public class StaffListQO implements Serializable {
private String clerkId ;
/**
* 企微托管页面查询1是0否
*/
private int qwOpenFlag ;
public int getQwOpenFlag() {
return qwOpenFlag;
}
public void setQwOpenFlag(int qwOpenFlag) {
this.qwOpenFlag = qwOpenFlag;
}
public String getClerkId() {
return clerkId;
}
......
package com.gic.haoban.manage.web.qo.open;
import java.io.Serializable;
import java.util.Date;
public class AddTaskDataQO implements Serializable {
private Long addTaskId ;
private Date startDate ;
private Date endDate ;
public Long getAddTaskId() {
return addTaskId;
}
public void setAddTaskId(Long addTaskId) {
this.addTaskId = addTaskId;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}
package com.gic.haoban.manage.web.qo.open;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
import java.util.Date;
public class AddTaskMemberPageQO extends BasePageInfo implements Serializable {
private String clerkParams ;
private String memberParams ;
// 1已申请
private int status ;
private Date startDate;
private Date endDate;
private Long addTaskId ;
private int dataType ;
public int getDataType() {
return dataType;
}
public void setDataType(int dataType) {
this.dataType = dataType;
}
public Long getAddTaskId() {
return addTaskId;
}
public void setAddTaskId(Long addTaskId) {
this.addTaskId = addTaskId;
}
public String getClerkParams() {
return clerkParams;
}
public void setClerkParams(String clerkParams) {
this.clerkParams = clerkParams;
}
public String getMemberParams() {
return memberParams;
}
public void setMemberParams(String memberParams) {
this.memberParams = memberParams;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}
package com.gic.haoban.manage.web.qo.open;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
import java.util.Date;
public class AddTaskPageQO extends BasePageInfo implements Serializable {
// -1全部 0未开始 1进行中 2已结束
private int status = -1 ;
/**
* 任务名称或id
*/
private String search ;
private Date startDate ;
private Date endDate ;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}
package com.gic.haoban.manage.web.qo.open;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
import java.util.Date;
public class AlarmWordsLogPageQO extends BasePageInfo implements Serializable {
/**
* 导购
*/
private String clerkParams;
/**
* 门店
*/
private String storeParams;
/**
* 0全部 1单聊 2群
*/
private int chatType;
private Date startDate;
private Date endDate;
private int dataType ;
public int getDataType() {
return dataType;
}
public void setDataType(int dataType) {
this.dataType = dataType;
}
public String getClerkParams() {
return clerkParams;
}
public void setClerkParams(String clerkParams) {
this.clerkParams = clerkParams;
}
public String getStoreParams() {
return storeParams;
}
public void setStoreParams(String storeParams) {
this.storeParams = storeParams;
}
public int getChatType() {
return chatType;
}
public void setChatType(int chatType) {
this.chatType = chatType;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}
package com.gic.haoban.manage.web.qo.open;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
import java.util.Date;
public class AlarmWordsPageQO extends BasePageInfo implements Serializable {
private String searchParam ;
private Date startDate;
private Date endDate ;
public String getSearchParam() {
return searchParam;
}
public void setSearchParam(String searchParam) {
this.searchParam = searchParam;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}
package com.gic.haoban.manage.web.qo.open;
import java.io.Serializable;
public class AlarmWordsQO implements Serializable {
/**敏感词*/
private String words;
public String getWords() {
return words;
}
public void setWords(String words) {
this.words = words;
}
}
package com.gic.haoban.manage.web.qo.open;
import com.gic.api.base.commons.BasePageInfo;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class OpenStaffQO extends BasePageInfo implements Serializable{
/**
* 1授权中 2已过期 3待验证 4待授权 0全部
*/
private int status ;
/**
* 导购
*/
private String clerkId ;
/**
* 成员
*/
private String staffParams ;
/**
* 门店分组
*/
private List<String> storeGroupIdList ;
/**
* 开始日期
*/
private Date startDate ;
/**
* 结束日期
*/
private Date endDate ;
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStaffParams() {
return staffParams;
}
public void setStaffParams(String staffParams) {
this.staffParams = staffParams;
}
public List<String> getStoreGroupIdList() {
return storeGroupIdList;
}
public void setStoreGroupIdList(List<String> storeGroupIdList) {
this.storeGroupIdList = storeGroupIdList;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
}
package com.gic.haoban.manage.web.vo;
import java.io.Serializable;
/**
* 会员分组信息VO
* @Author: FangXu
* @Date: 2018/12/17 13:55
* @Version 1.0
*/
public class MemberTagGroupVO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6813792225053490935L;
/** 分组名称 **/
private String groupName;
/** 分组ID **/
private String memberTagGroupId;
/** 分组有效状态 **/
private Integer effectiveStatus;
/** 失效状态: 实时, 非实时 **/
private Integer isRealTime;
/**
* 0普通分组 1固化分组
*/
private Integer fixedType;
public Integer getFixedType() {
return fixedType;
}
public void setFixedType(Integer fixedType) {
this.fixedType = fixedType;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public String getMemberTagGroupId() {
return memberTagGroupId;
}
public void setMemberTagGroupId(String memberTagGroupId) {
this.memberTagGroupId = memberTagGroupId;
}
public Integer getEffectiveStatus() {
return effectiveStatus;
}
public void setEffectiveStatus(Integer effectiveStatus) {
this.effectiveStatus = effectiveStatus;
}
public Integer getIsRealTime() {
return isRealTime;
}
public void setIsRealTime(Integer isRealTime) {
this.isRealTime = isRealTime;
}
}
package com.gic.haoban.manage.web.vo.open;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.gic.web.common.jsonSeralizer.CardNoJsonSeralizer;
import com.gic.web.common.jsonSeralizer.PhoneNumberJsonSeralizer;
import com.gic.web.common.jsonSeralizer.UserNameJsonSeralizer;
import java.io.Serializable;
import java.util.Date;
public class AddMemberExcelVO implements Serializable {
/**
* 申请时间
*/
private String applyTimeExcel;
/**
* 加成功时间
*/
private String addTimeExcel;
/**
* 会员Nick
*/
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberNick;
/**
* 会员姓名
*/
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberName;
/**
* 会员卡
*/
@JsonSerialize(using = CardNoJsonSeralizer.class)
private String memberCard;
/**
* 会员手机号
*/
@JsonSerialize(using = PhoneNumberJsonSeralizer.class)
private String memberPhone;
/**
* 导购code
*/
private String clerkCode;
/**
* 导购名称
*/
private String clerkName;
/**
* 门店
*/
private String storeCode;
/**
* 门店
*/
private String storeName;
private String staffName;
private String statusExcel;
public String getApplyTimeExcel() {
return applyTimeExcel;
}
public void setApplyTimeExcel(String applyTimeExcel) {
this.applyTimeExcel = applyTimeExcel;
}
public String getAddTimeExcel() {
return addTimeExcel;
}
public void setAddTimeExcel(String addTimeExcel) {
this.addTimeExcel = addTimeExcel;
}
public String getMemberNick() {
return memberNick;
}
public void setMemberNick(String memberNick) {
this.memberNick = memberNick;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getMemberCard() {
return memberCard;
}
public void setMemberCard(String memberCard) {
this.memberCard = memberCard;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getStatusExcel() {
return statusExcel;
}
public void setStatusExcel(String statusExcel) {
this.statusExcel = statusExcel;
}
}
package com.gic.haoban.manage.web.vo.open;
import com.gic.haoban.manage.web.vo.MemberTagGroupVO;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class AddTaskDetailVO implements Serializable {
/**id*/
private Long addTaskId;
/**企业id*/
private String wxEnterpriseId;
/**企业id*/
private String enterpriseId;
/**任务名称*/
private String name;
/**会员标签*/
private String memberLabelId;
private String memberLabelName ;
private int memberLabelStatus ;
/**开始时间*/
private java.util.Date startTime;
/**结束时间*/
private java.util.Date endTime;
/**欢迎语*/
private String welcomeId;
/**(0:会员筛选, 1:会员分组)*/
private int memberType;
/**人群筛选条件(JSON)*/
private String searchParams;
/**1和专属无好友 2和所有无好友*/
private int memberRule;
private java.util.Date createTime;
private java.util.Date updateTime;
/**创建人*/
private String creatorId;
/**创建人*/
private String creatorName;
/**是否删除*/
private int deleteFlag;
/**状态*/
private int statusFlag;
/**申请数 */
private int applyNum ;
/**添加成功数 */
private int addNum ;
/** 人群id用于回显 */
private String searchParamsId ;
private List<MemberTagGroupVO> tagGroupList;
public List<MemberTagGroupVO> getTagGroupList() {
return tagGroupList;
}
public void setTagGroupList(List<MemberTagGroupVO> tagGroupList) {
this.tagGroupList = tagGroupList;
}
public String getSearchParamsId() {
return searchParamsId;
}
public void setSearchParamsId(String searchParamsId) {
this.searchParamsId = searchParamsId;
}
public Long getAddTaskId() {
return addTaskId;
}
public void setAddTaskId(Long addTaskId) {
this.addTaskId = addTaskId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMemberLabelId() {
return memberLabelId;
}
public void setMemberLabelId(String memberLabelId) {
this.memberLabelId = memberLabelId;
}
public String getMemberLabelName() {
return memberLabelName;
}
public void setMemberLabelName(String memberLabelName) {
this.memberLabelName = memberLabelName;
}
public int getMemberLabelStatus() {
return memberLabelStatus;
}
public void setMemberLabelStatus(int memberLabelStatus) {
this.memberLabelStatus = memberLabelStatus;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public String getWelcomeId() {
return welcomeId;
}
public void setWelcomeId(String welcomeId) {
this.welcomeId = welcomeId;
}
public int getMemberType() {
return memberType;
}
public void setMemberType(int memberType) {
this.memberType = memberType;
}
public String getSearchParams() {
return searchParams;
}
public void setSearchParams(String searchParams) {
this.searchParams = searchParams;
}
public int getMemberRule() {
return memberRule;
}
public void setMemberRule(int memberRule) {
this.memberRule = memberRule;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
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;
}
public int getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(int deleteFlag) {
this.deleteFlag = deleteFlag;
}
public int getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(int statusFlag) {
this.statusFlag = statusFlag;
}
public int getApplyNum() {
return applyNum;
}
public void setApplyNum(int applyNum) {
this.applyNum = applyNum;
}
public int getAddNum() {
return addNum;
}
public void setAddNum(int addNum) {
this.addNum = addNum;
}
}
package com.gic.haoban.manage.web.vo.open;
import com.gic.haoban.task.manage.api.dto.open.OpenQwAddTaskDataDTO;
import java.io.Serializable;
import java.util.List;
public class OpenAddDataVO implements Serializable {
/**
* 申请数
*/
private int applyNum ;
/**
* 添加成功数
*/
private int addNum ;
private List<OpenQwAddTaskDataDTO> list ;
public int getApplyNum() {
return applyNum;
}
public void setApplyNum(int applyNum) {
this.applyNum = applyNum;
}
public int getAddNum() {
return addNum;
}
public void setAddNum(int addNum) {
this.addNum = addNum;
}
public List<OpenQwAddTaskDataDTO> getList() {
return list;
}
public void setList(List<OpenQwAddTaskDataDTO> list) {
this.list = list;
}
}
package com.gic.haoban.manage.web.vo.open;
import com.gic.haoban.manage.api.dto.OpenStaffLicenseDTO;
import java.io.Serializable;
import java.util.Date;
/**
* 托管账号信息
*/
public class OpenQwAccountInfoVO extends OpenStaffLicenseDTO implements Serializable {
// 0为购买 1已购买且有效 2已过期
private int status;
/**
* 到期时间
*/
private Date expireDate;
/**
* 版本
*/
private Integer version ;
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public Date getExpireDate() {
return expireDate;
}
public void setExpireDate(Date expireDate) {
this.expireDate = expireDate;
}
}
package com.gic.haoban.manage.web.vo.open;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.gic.web.common.jsonSeralizer.CardNoJsonSeralizer;
import com.gic.web.common.jsonSeralizer.PhoneNumberJsonSeralizer;
import com.gic.web.common.jsonSeralizer.UserNameJsonSeralizer;
import java.io.Serializable;
import java.util.Date;
/**
* @ClassName: TabOpenQwAlarmLog
* @Description: TODO
* @Author 徐高华
* @Date 2024年06月12日 12:45:27
* @Modify
* @CopyRight 杭州
*/
public class OpenQwAlarmLogExcelVO implements Serializable {
private static final long serialVersionUID = 98010897759200L;
/**
* 1单聊 2群聊
*/
private String chatTypeExcel;
/**
* 敏感词
*/
private String alarmWords;
/**
* 内容
*/
private String content;
/**
* 昵称
*/
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberName;
/**
* 创建时间
*/
private String createTimeExcel;
/**
* 群名称
*/
private String groupChatName;
/**
* 会员Nick
*/
@JsonSerialize(using = UserNameJsonSeralizer.class)
private String memberNick;
/**
* 会员卡
*/
@JsonSerialize(using = CardNoJsonSeralizer.class)
private String memberCard;
/**
* 手机号
*/
@JsonSerialize(using = PhoneNumberJsonSeralizer.class)
private String memberPhone;
/**
* 导购
*/
private String clerkCode;
/**
* 导购
*/
private String clerkName;
/**
* 门店
*/
private String storeCode;
/**
* 门店
*/
private String storeName;
/**
* 成员名称
*/
private String staffName ;
public String getChatTypeExcel() {
return chatTypeExcel;
}
public void setChatTypeExcel(String chatTypeExcel) {
this.chatTypeExcel = chatTypeExcel;
}
public String getAlarmWords() {
return alarmWords;
}
public void setAlarmWords(String alarmWords) {
this.alarmWords = alarmWords;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getCreateTimeExcel() {
return createTimeExcel;
}
public void setCreateTimeExcel(String createTimeExcel) {
this.createTimeExcel = createTimeExcel;
}
public String getGroupChatName() {
return groupChatName;
}
public void setGroupChatName(String groupChatName) {
this.groupChatName = groupChatName;
}
public String getMemberNick() {
return memberNick;
}
public void setMemberNick(String memberNick) {
this.memberNick = memberNick;
}
public String getMemberCard() {
return memberCard;
}
public void setMemberCard(String memberCard) {
this.memberCard = memberCard;
}
public String getMemberPhone() {
return memberPhone;
}
public void setMemberPhone(String memberPhone) {
this.memberPhone = memberPhone;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
}
\ No newline at end of file
package com.gic.haoban.manage.web.vo.open;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class OpenStaffExcelVO implements Serializable {
/**
* 成员名称
*/
private String staffName;
/**
* 成员code
*/
private String wxUserId;
/**
* 品牌名称
*/
private String brandName;
private String clerkNames;
private String clerkCodes;
private String storeNames;
private String storeCodes;
/**
* 创建时间
*/
private String createTimeExcel;
/**
* 1授权中 2未登录(已过期)
*/
private String statusExcel;
private String lastTimeExcel;
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getClerkNames() {
return clerkNames;
}
public void setClerkNames(String clerkNames) {
this.clerkNames = clerkNames;
}
public String getClerkCodes() {
return clerkCodes;
}
public void setClerkCodes(String clerkCodes) {
this.clerkCodes = clerkCodes;
}
public String getStoreNames() {
return storeNames;
}
public void setStoreNames(String storeNames) {
this.storeNames = storeNames;
}
public String getStoreCodes() {
return storeCodes;
}
public void setStoreCodes(String storeCodes) {
this.storeCodes = storeCodes;
}
public String getCreateTimeExcel() {
return createTimeExcel;
}
public void setCreateTimeExcel(String createTimeExcel) {
this.createTimeExcel = createTimeExcel;
}
public String getStatusExcel() {
return statusExcel;
}
public void setStatusExcel(String statusExcel) {
this.statusExcel = statusExcel;
}
public String getLastTimeExcel() {
return lastTimeExcel;
}
public void setLastTimeExcel(String lastTimeExcel) {
this.lastTimeExcel = lastTimeExcel;
}
}
\ No newline at end of file
package com.gic.haoban.manage.web.vo.open;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class OpenStaffVO implements Serializable {
/**
* 主键
*/
private Long openStaffId;
/**
* 成员id
*/
private String staffId;
/**
* 成员名称
*/
private String staffName ;
/**
* 关联导购
*/
List<StoreClerkVO> clerkList ;
/**
* 品牌名称
*/
private String brandName ;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 客户端id
*/
private String uuid;
/**
* 1授权中 2未登录(已过期)
*/
private Integer statusFlag;
/**
* 登录步骤1已扫码 2取消登录 3超时 4验证码正确
*/
private Integer step;
/**
* 企微的userid
*/
private Long qwUserId;
/**
* 企微的企业id
*/
private Long wxCorpId;
/**
* 一次扫码内容
*/
private String qrCode1;
/**
* 一次扫码内容
*/
private String key1;
/**
* 二次扫码内容
*/
private String qrCode2;
/**
* 二次扫码内容
*/
private String key2;
/**
* 是否需要验证码
*/
private Integer validFlag;
/**
* 最新授权时间
*/
private Date authTime;
/**
* 首次授权时间
*/
private Date firstAuthTime;
/**
* 需要二次扫码
*/
private Integer validQrcodeFlag ;
public Long getOpenStaffId() {
return openStaffId;
}
public void setOpenStaffId(Long openStaffId) {
this.openStaffId = openStaffId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public List<StoreClerkVO> getClerkList() {
return clerkList;
}
public void setClerkList(List<StoreClerkVO> clerkList) {
this.clerkList = clerkList;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public Integer getStatusFlag() {
return statusFlag;
}
public void setStatusFlag(Integer statusFlag) {
this.statusFlag = statusFlag;
}
public Integer getStep() {
return step;
}
public void setStep(Integer step) {
this.step = step;
}
public Long getQwUserId() {
return qwUserId;
}
public void setQwUserId(Long qwUserId) {
this.qwUserId = qwUserId;
}
public Long getWxCorpId() {
return wxCorpId;
}
public void setWxCorpId(Long wxCorpId) {
this.wxCorpId = wxCorpId;
}
public String getQrCode1() {
return qrCode1;
}
public void setQrCode1(String qrCode1) {
this.qrCode1 = qrCode1;
}
public String getKey1() {
return key1;
}
public void setKey1(String key1) {
this.key1 = key1;
}
public String getQrCode2() {
return qrCode2;
}
public void setQrCode2(String qrCode2) {
this.qrCode2 = qrCode2;
}
public String getKey2() {
return key2;
}
public void setKey2(String key2) {
this.key2 = key2;
}
public Integer getValidFlag() {
return validFlag;
}
public void setValidFlag(Integer validFlag) {
this.validFlag = validFlag;
}
public Date getAuthTime() {
return authTime;
}
public void setAuthTime(Date authTime) {
this.authTime = authTime;
}
public Date getFirstAuthTime() {
return firstAuthTime;
}
public void setFirstAuthTime(Date firstAuthTime) {
this.firstAuthTime = firstAuthTime;
}
public Integer getValidQrcodeFlag() {
return validQrcodeFlag;
}
public void setValidQrcodeFlag(Integer validQrcodeFlag) {
this.validQrcodeFlag = validQrcodeFlag;
}
}
package com.gic.haoban.manage.web.vo.open;
import java.io.Serializable;
public class StoreClerkVO implements Serializable {
private String storeId ;
private String storeName ;
private String storeCode ;
private String clerkId ;
private String clerkName ;
private String clerkCode ;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getClerkName() {
return clerkName;
}
public void setClerkName(String clerkName) {
this.clerkName = clerkName;
}
public String getClerkCode() {
return clerkCode;
}
public void setClerkCode(String clerkCode) {
this.clerkCode = clerkCode;
}
}
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