Commit 48054759 by jinxin

Merge branch 'feature/好办通讯录' into developer

# Conflicts:
#	haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/dao/mapper/fee/TabHaobanQywxFeeOrderAccountMapper.java
parents 1071a2c7 dc4b5524
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
/**
* @description: 通讯录许可数据总览
* @Author: wenhua
* @Date: 2023/1/30 20:28
*/
public class StaffActiveDataDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private String id;
/**
* wx企业id
*/
private String wxEnterpriseId;
/**
* 已购买许可总数
*/
private Integer purchased;
/**
* 已使用许可总数
*/
private Integer used;
/**
* 未激活许可总数
*/
private Integer inactive;
/**
* 待转移许可总数
*/
private Integer transfer;
/**
* 已激活许可总数
*/
private Integer activated;
/**
* 已过期许可总数
*/
private Integer expired;
/**
* 其他占用许可总数
*/
private Integer occupy;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getPurchased() {
return purchased;
}
public void setPurchased(Integer purchased) {
this.purchased = purchased;
}
public Integer getInactive() {
return inactive;
}
public void setInactive(Integer inactive) {
this.inactive = inactive;
}
public Integer getTransfer() {
return transfer;
}
public void setTransfer(Integer transfer) {
this.transfer = transfer;
}
public Integer getActivated() {
return activated;
}
public void setActivated(Integer activated) {
this.activated = activated;
}
public Integer getExpired() {
return expired;
}
public void setExpired(Integer expired) {
this.expired = expired;
}
public Integer getOccupy() {
return occupy;
}
public void setOccupy(Integer occupy) {
this.occupy = occupy;
}
public Integer getUsed() {
return used;
}
public void setUsed(Integer used) {
this.used = used;
}
}
package com.gic.haoban.manage.api.dto; package com.gic.haoban.manage.api.dto;
import com.gic.commons.util.DateUtil;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -102,9 +104,82 @@ public class StaffDTO implements Serializable { ...@@ -102,9 +104,82 @@ public class StaffDTO implements Serializable {
private Integer activeStatus; private Integer activeStatus;
private String enterpriseId; private String enterpriseId;
private String storeId; private String storeId;
private int openConcatFlag = 0 ; private int openConcatFlag = 0;
private String ownerRemark;
/**
* 许可激活时间
*/
private Date activeTime;
/**
* 许可过期时间
*/
private Date expireTime;
/**
* 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期
*/
private Integer permitState;
/**
* 是否授权 0否1是
*/
private Integer authorizedFlag;
public Integer getAuthorizedFlag() {
// 如果员工有qr_code,则代表已经授权
if (null != this.qrCode)
this.authorizedFlag = 1;
else
this.authorizedFlag = 0;
return authorizedFlag;
}
public void setAuthorizedFlag(Integer authorizedFlag) {
this.authorizedFlag = authorizedFlag;
}
private String ownerRemark ; public Date getActiveTime() {
return activeTime;
}
public void setActiveTime(Date activeTime) {
this.activeTime = activeTime;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}
public Integer getPermitState() {
/**
* 根据当前时间判断许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期
* 正常有效:过期时间>30天
* 即将过期:未过期且过期时间<=30天
* 已过期:当前许可已到过期时间
*/
Date now = new Date();
if (null == this.expireTime) {
this.permitState = 0;
} else if (now.after(this.expireTime)) {
this.permitState = 3;
} else if (now.before(this.expireTime)) {
Date date = DateUtil.addDay(now, 30);
if (now.after(this.expireTime)) {
this.permitState = 2;
} else {
this.permitState = 1;
}
}
return permitState;
}
public void setPermitState(Integer permitState) {
this.permitState = permitState;
}
public String getOwnerRemark() { public String getOwnerRemark() {
return ownerRemark; return ownerRemark;
......
package com.gic.haoban.manage.api.service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.StaffActiveDataDTO;
/**
* @description: 通讯录数据总览
* @Author: wenhua
* @Date: 2023/2/2 10:11
*/
public interface WxEnterpriseActiveDataApiService {
/**
* 通过wxEnterpriseId新增或者更新WxEnterpriseActiveData
* @param wxEnterpriseId
* @return
*/
ServiceResponse<Integer> saveOrUpdate(String wxEnterpriseId);
ServiceResponse<StaffActiveDataDTO> getWxEnterpriseActiveDataById(String id);
ServiceResponse<StaffActiveDataDTO> getWxEnterpriseActiveDataByWxEnterpriseId(String wxEnterpriseId);
}
...@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.authcenter.commons.dto.AuthcenterUserDetails; import com.gic.authcenter.commons.dto.AuthcenterUserDetails;
import com.gic.authcenter.commons.util.SessionContextUtil; import com.gic.authcenter.commons.util.SessionContextUtil;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GlobalVar; import com.gic.commons.util.GlobalVar;
import com.gic.enterprise.api.dto.EnterpriseAndUserDTO; import com.gic.enterprise.api.dto.EnterpriseAndUserDTO;
import com.gic.enterprise.api.dto.EnterpriseDTO; import com.gic.enterprise.api.dto.EnterpriseDTO;
...@@ -76,6 +78,8 @@ public class EnterpriseController extends WebBaseController { ...@@ -76,6 +78,8 @@ public class EnterpriseController extends WebBaseController {
private QywxUserApiService qywxUserApiService; private QywxUserApiService qywxUserApiService;
@Autowired @Autowired
private StoreGroupService storeGroupService ; private StoreGroupService storeGroupService ;
@Autowired
private ClerkService clerkService;
private static final String QYWX_TAG_OPRN_KEY = "qywx-tag-open"; private static final String QYWX_TAG_OPRN_KEY = "qywx-tag-open";
private static final String QYWX_TAG_OPRN_KEY_LOCK = "qywx-tag-open-lock"; private static final String QYWX_TAG_OPRN_KEY_LOCK = "qywx-tag-open-lock";
...@@ -479,18 +483,24 @@ public class EnterpriseController extends WebBaseController { ...@@ -479,18 +483,24 @@ public class EnterpriseController extends WebBaseController {
//gic企业列表 //gic企业列表
@RequestMapping("enterprise-search") @RequestMapping("enterprise-search")
public HaobanResponse gicEnterpriseDetail(String enterpriseName) { public HaobanResponse gicEnterpriseDetail(String enterpriseId) {
if (StringUtils.isEmpty(enterpriseName)) { if (StringUtils.isEmpty(enterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
EnterpriseAndUserDTO dto = enterpriseService.getEnterpriseAndUserByName(enterpriseName); EnterpriseSearchVO vo = new EnterpriseSearchVO();
EnterpriseSearchVO vo = EntityUtil.changeEntityByJSON(EnterpriseSearchVO.class, dto);
if (vo != null) {
String enterpriseId = vo.getEnterpriseId();
EnterpriseDTO enterprise = enterpriseService.getEnterpriseById(enterpriseId); EnterpriseDTO enterprise = enterpriseService.getEnterpriseById(enterpriseId);
if (enterprise != null) { if (enterprise != null) {
vo.setEnterpriseId(enterpriseId);
vo.setEnterpriseName(enterprise.getEnterpriseName());
vo.setBrandName(enterprise.getBrandName()); vo.setBrandName(enterprise.getBrandName());
} }
ClerkDTO clerk = clerkService.getSuperAdminByEnterpriseId(enterpriseId);
if (clerk != null) {
vo.setClerkId(clerk.getClerkId());
vo.setClerkCode(clerk.getClerkCode());
vo.setClerkName(clerk.getClerkName());
vo.setPhoneNumber(clerk.getPhoneNumber());
vo.setNationCode(clerk.getNationcode());
} }
return resultResponse(HaoBanErrCode.ERR_1, vo); return resultResponse(HaoBanErrCode.ERR_1, vo);
} }
......
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseActiveData;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
* @Author: wenhua
* @Date: 2023/1/31 11:20
*/
@Mapper
public interface TabHaobanWxEnterpriseActiveDataMapper {
int insert(TabHaobanWxEnterpriseActiveData tabHaobanWxEnterpriseActiveData);
TabHaobanWxEnterpriseActiveData getWxEnterpriseActiveDataById(@Param("id")String id);
TabHaobanWxEnterpriseActiveData getWxEnterpriseActiveDataByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId);
int updateActiveDataByWxEnterpriseId(TabHaobanWxEnterpriseActiveData activeData);
}
...@@ -6,6 +6,9 @@ import org.apache.ibatis.annotations.Param; ...@@ -6,6 +6,9 @@ import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.service.entity.fee.TabHaobanQywxFeeOrderAccount; import com.gic.haoban.manage.service.entity.fee.TabHaobanQywxFeeOrderAccount;
import java.util.HashMap;
import java.util.List;
/** /**
* 企业微信收费订单账号(激活码)(TabHaobanQywxFeeOrderAccount)表数据库访问层 * 企业微信收费订单账号(激活码)(TabHaobanQywxFeeOrderAccount)表数据库访问层
* *
...@@ -50,5 +53,7 @@ public interface TabHaobanQywxFeeOrderAccountMapper { ...@@ -50,5 +53,7 @@ public interface TabHaobanQywxFeeOrderAccountMapper {
int countOrderAccountStatus(@Param("status") Integer status,@Param("wxEnterpriseId") String wxEnterpriseId); int countOrderAccountStatus(@Param("status") Integer status,@Param("wxEnterpriseId") String wxEnterpriseId);
List<TabHaobanQywxFeeOrderAccount> listAccount(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("orderId")String orderId); List<TabHaobanQywxFeeOrderAccount> listAccount(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("orderId")String orderId);
List<HashMap<String,Integer>> countStatusByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
} }
package com.gic.haoban.manage.service.entity;
import java.io.Serializable;
import java.util.Date;
/**
* @description: 通讯录许可数据总览
* @Author: wenhua
* @Date: 2023/1/30 20:28
*/
public class TabHaobanWxEnterpriseActiveData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private Long id;
/**
* wx企业id
*/
private String wxEnterpriseId;
/**
* 已购买许可总数
*/
private Integer purchased;
/**
* 已使用许可总数
*/
private Integer used;
/**
* 未激活许可总数
*/
private Integer inactive;
/**
* 待转移许可总数
*/
private Integer transfer;
/**
* 已激活许可总数
*/
private Integer activated;
/**
* 已过期许可总数
*/
private Integer expired;
private Date createTime;
private Date updateTime;
private Integer deleteFlag;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
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 Integer getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(Integer deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getPurchased() {
return purchased;
}
public void setPurchased(Integer purchased) {
this.purchased = purchased;
}
public Integer getInactive() {
return inactive;
}
public void setInactive(Integer inactive) {
this.inactive = inactive;
}
public Integer getTransfer() {
return transfer;
}
public void setTransfer(Integer transfer) {
this.transfer = transfer;
}
public Integer getActivated() {
return activated;
}
public void setActivated(Integer activated) {
this.activated = activated;
}
public Integer getExpired() {
return expired;
}
public void setExpired(Integer expired) {
this.expired = expired;
}
public Integer getUsed() {
return used;
}
public void setUsed(Integer used) {
this.used = used;
}
}
package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.api.dto.StaffActiveDataDTO;
/**
* @description: 通讯录数据总览内部service
* @Author: wenhua
* @Date: 2023/2/2 10:11
*/
public interface WxEnterpriseActiveDataService {
/**
* 通过wxEnterpriseId新增或者更新WxEnterpriseActiveData
* @param wxEnterpriseId
* @return
*/
Integer saveOrUpdate(String wxEnterpriseId);
StaffActiveDataDTO getWxEnterpriseActiveDataById(String id);
StaffActiveDataDTO getWxEnterpriseActiveDataByWxEnterpriseId(String wxEnterpriseId);
}
...@@ -89,6 +89,9 @@ public class StaffServiceImpl implements StaffService { ...@@ -89,6 +89,9 @@ public class StaffServiceImpl implements StaffService {
@Override @Override
public Page<TabHaobanStaff> pageStaff(List<String> staffIds, Integer activeFlag, String keyword,List<String> departmentIds,String wxEnterpriseId,Integer relationFlag) { public Page<TabHaobanStaff> pageStaff(List<String> staffIds, Integer activeFlag, String keyword,List<String> departmentIds,String wxEnterpriseId,Integer relationFlag) {
return mapper.pageStaff(staffIds, activeFlag, keyword,departmentIds,wxEnterpriseId,relationFlag); return mapper.pageStaff(staffIds, activeFlag, keyword,departmentIds,wxEnterpriseId,relationFlag);
} }
......
package com.gic.haoban.manage.service.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.haoban.manage.api.dto.StaffActiveDataDTO;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanWxEnterpriseActiveDataMapper;
import com.gic.haoban.manage.service.dao.mapper.fee.TabHaobanQywxFeeOrderAccountMapper;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseActiveData;
import com.gic.haoban.manage.service.service.WxEnterpriseActiveDataService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
/**
* @description:
* @Author: wenhua
* @Date: 2023/2/2 10:44
*/
@Service
public class WxEnterpriseActiveDataServiceImpl implements WxEnterpriseActiveDataService {
private static final Logger log = LogManager.getLogger(WxEnterpriseActiveDataServiceImpl.class);
@Autowired
private TabHaobanWxEnterpriseActiveDataMapper tabHaobanWxEnterpriseActiveDataMapper;
@Autowired
private TabHaobanQywxFeeOrderAccountMapper tabHaobanQywxFeeOrderAccountMapper;
@Override
public Integer saveOrUpdate(String wxEnterpriseId) {
if (StrUtil.isBlank(wxEnterpriseId))
return 0;
List<HashMap<String, Integer>> feeOrderAccountMapList = tabHaobanQywxFeeOrderAccountMapper.countStatusByWxEnterpriseId(wxEnterpriseId);
log.info("查询订单表返回的map:{}", JSONObject.toJSONString(feeOrderAccountMapList));
if (CollUtil.isEmpty(feeOrderAccountMapList)) {
return 0;
}
//初始化各状态
Integer purchased = 0, used = 0, inactive = 0, transfer = 0, activated = 0, expired = 0;
for (HashMap<String, Integer> map : feeOrderAccountMapList) {
switch (map.get("status")) {
case 1:
//这里map.get("num")是Long类型,无法直接和Integer做运算
purchased += Integer.valueOf(String.valueOf(map.get("num")));
inactive += Integer.valueOf(String.valueOf(map.get("num")));
break;
case 2:
purchased += Integer.valueOf(String.valueOf(map.get("num")));
activated += Integer.valueOf(String.valueOf(map.get("num")));
break;
case 3:
purchased += Integer.valueOf(String.valueOf(map.get("num")));
expired += Integer.valueOf(String.valueOf(map.get("num")));
break;
case 4:
purchased += Integer.valueOf(String.valueOf(map.get("num")));
transfer += Integer.valueOf(String.valueOf(map.get("num")));
break;
case 5:
purchased += Integer.valueOf(String.valueOf(map.get("num")));
activated += Integer.valueOf(String.valueOf(map.get("num")));
break;
default:
break;
}
}
//已使用为已购买总数-未使用的
used = purchased - inactive;
TabHaobanWxEnterpriseActiveData tabHaobanWxEnterpriseActiveData = tabHaobanWxEnterpriseActiveDataMapper.getWxEnterpriseActiveDataByWxEnterpriseId(wxEnterpriseId);
if (ObjectUtil.isNotNull(tabHaobanWxEnterpriseActiveData)) {
//更新
tabHaobanWxEnterpriseActiveData.setActivated(activated);
tabHaobanWxEnterpriseActiveData.setPurchased(purchased);
tabHaobanWxEnterpriseActiveData.setInactive(inactive);
tabHaobanWxEnterpriseActiveData.setUsed(used);
tabHaobanWxEnterpriseActiveData.setTransfer(transfer);
tabHaobanWxEnterpriseActiveData.setExpired(expired);
return tabHaobanWxEnterpriseActiveDataMapper.updateActiveDataByWxEnterpriseId(tabHaobanWxEnterpriseActiveData);
} else {
//新增
tabHaobanWxEnterpriseActiveData = new TabHaobanWxEnterpriseActiveData();
tabHaobanWxEnterpriseActiveData.setId(UniqueIdUtils.uniqueLong());
tabHaobanWxEnterpriseActiveData.setWxEnterpriseId(wxEnterpriseId);
tabHaobanWxEnterpriseActiveData.setActivated(activated);
tabHaobanWxEnterpriseActiveData.setPurchased(purchased);
tabHaobanWxEnterpriseActiveData.setInactive(inactive);
tabHaobanWxEnterpriseActiveData.setUsed(used);
tabHaobanWxEnterpriseActiveData.setExpired(expired);
tabHaobanWxEnterpriseActiveData.setTransfer(transfer);
return tabHaobanWxEnterpriseActiveDataMapper.insert(tabHaobanWxEnterpriseActiveData);
}
}
@Override
public StaffActiveDataDTO getWxEnterpriseActiveDataById(String id) {
if (StrUtil.isBlank(id))
return null;
return EntityUtil.changeEntityByJSON(StaffActiveDataDTO.class, tabHaobanWxEnterpriseActiveDataMapper.getWxEnterpriseActiveDataById(id));
}
@Override
public StaffActiveDataDTO getWxEnterpriseActiveDataByWxEnterpriseId(String wxEnterpriseId) {
if (StrUtil.isBlank(wxEnterpriseId))
return null;
return EntityUtil.changeEntityByJSON(StaffActiveDataDTO.class, tabHaobanWxEnterpriseActiveDataMapper.getWxEnterpriseActiveDataById(wxEnterpriseId));
}
}
package com.gic.haoban.manage.service.service.out.impl;
import cn.hutool.core.util.ObjectUtil;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.StaffActiveDataDTO;
import com.gic.haoban.manage.api.service.WxEnterpriseActiveDataApiService;
import com.gic.haoban.manage.service.service.WxEnterpriseActiveDataService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @description:
* @Author: wenhua
* @Date: 2023/2/2 10:21
*/
@Service
public class WxEnterpriseActiveDataApiServiceImpl implements WxEnterpriseActiveDataApiService {
private static final Logger log = LogManager.getLogger(WxEnterpriseApiServiceImpl.class);
@Autowired
private WxEnterpriseActiveDataService wxEnterpriseActiveDataService;
@Override
public ServiceResponse<Integer> saveOrUpdate(String wxEnterpriseId) {
return ServiceResponse.success(wxEnterpriseActiveDataService.saveOrUpdate(wxEnterpriseId));
}
@Override
public ServiceResponse<StaffActiveDataDTO> getWxEnterpriseActiveDataById(String id) {
StaffActiveDataDTO staffActiveDataDTO= wxEnterpriseActiveDataService.getWxEnterpriseActiveDataById(id);
if (ObjectUtil.isNotNull(staffActiveDataDTO))
return ServiceResponse.success(staffActiveDataDTO);
else
return ServiceResponse.failure("9999","id不存在");
}
@Override
public ServiceResponse<StaffActiveDataDTO> getWxEnterpriseActiveDataByWxEnterpriseId(String wxEnterpriseId) {
StaffActiveDataDTO staffActiveDataDTO= wxEnterpriseActiveDataService.getWxEnterpriseActiveDataByWxEnterpriseId(wxEnterpriseId);
if (ObjectUtil.isNotNull(staffActiveDataDTO))
return ServiceResponse.success(staffActiveDataDTO);
else
return ServiceResponse.failure("9999","wxEnterpriseId不存在");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.TabHaobanWxEnterpriseActiveDataMapper">
<resultMap id="BaseResultMap" type="com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseActiveData">
<id column="id" jdbcType="BIGINT" property="id"/>
<result column="wx_enterprise_id" jdbcType="VARCHAR" property="wxEnterpriseId"/>
<result column="purchased" jdbcType="INTEGER" property="purchased"/>
<result column="used" jdbcType="INTEGER" property="used"/>
<result column="inactive" jdbcType="INTEGER" property="inactive"/>
<result column="transfer" jdbcType="INTEGER" property="transfer"/>
<result column="activated" jdbcType="INTEGER" property="activated"/>
<result column="expired" jdbcType="INTEGER" property="expired"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
<result column="delete_flag" jdbcType="INTEGER" property="deleteFlag"/>
</resultMap>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseActiveData">
insert into tab_haoban_wx_enterprise_active_data (id, wx_enterprise_id, purchased,used,
inactive, transfer, activated,expired,create_time,delete_flag)
values (#{id,jdbcType=BIGINT}, #{wxEnterpriseId,jdbcType=VARCHAR}, #{purchased,jdbcType=INTEGER},#{used,jdbcType=INTEGER},#{inactive,jdbcType=INTEGER},
#{transfer,jdbcType=INTEGER},#{activated,jdbcType=INTEGER},#{expired,jdbcType=INTEGER},now(),0)
</insert>
<select id="getWxEnterpriseActiveDataById" resultMap="BaseResultMap">
select * from tab_haoban_wx_enterprise_active_data where id=#{id} and delete_flag=0
</select>
<select id="getWxEnterpriseActiveDataByWxEnterpriseId" resultMap="BaseResultMap">
select * from tab_haoban_wx_enterprise_active_data where wx_enterprise_id=#{wxEnterpriseId} and delete_flag=0
</select>
<update id="updateActiveDataByWxEnterpriseId" parameterType="com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseActiveData" >
update tab_haoban_wx_enterprise_active_data
<set >
<if test="purchased != null" >
purchased = #{purchased,jdbcType=INTEGER},
</if>
<if test="used != null" >
purchased = #{used,jdbcType=INTEGER},
</if>
<if test="inactive != null" >
inactive = #{inactive,jdbcType=INTEGER},
</if>
<if test="transfer != null" >
transfer = #{transfer,jdbcType=INTEGER},
</if>
<if test="activated != null" >
activated = #{activated,jdbcType=INTEGER},
</if>
<if test="expired != null" >
expired = #{expired,jdbcType=INTEGER},
</if>
update_time = now()
</set>
where wx_enterprise_id=#{wxEnterpriseId}
</update>
</mapper>
\ No newline at end of file
...@@ -85,5 +85,13 @@ ...@@ -85,5 +85,13 @@
where wx_enterprise_id = #{wxEnterpriseId} and order_id = #{orderId} and status in (1,2,4,5,6) where wx_enterprise_id = #{wxEnterpriseId} and order_id = #{orderId} and status in (1,2,4,5,6)
</select> </select>
<select id="countStatusByWxEnterpriseId" resultType="java.util.HashMap">
select
status,
count(*) as num
from tab_haoban_qywx_fee_order_account
where wx_enterprise_id = #{wxEnterpriseId} GROUP BY STATUS
</select>
</mapper> </mapper>
import com.gic.haoban.manage.api.service.hm.HmPageApiService;
import com.gic.haoban.manage.service.service.WxEnterpriseActiveDataService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @description:
* @Author: wenhua
* @Date: 2023/2/2 14:12
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext-conf.xml"})
public class WxEnterpriseActiveDataServiceTest {
@Autowired
private WxEnterpriseActiveDataService wxEnterpriseActiveDataService;
@Test
public void test(){
Integer integer = wxEnterpriseActiveDataService.saveOrUpdate("ca66a01b79474c40b3e7c7f93daf1a3b");
System.out.println(integer);
}
}
package com.gic.haoban.manage.web.controller; package com.gic.haoban.manage.web.controller;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.gic.haoban.manage.web.qo.TransferActiveCodeQO;
import com.gic.haoban.manage.web.vo.StaffActiveDataVO;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -140,6 +134,8 @@ public class StaffController extends WebBaseController { ...@@ -140,6 +134,8 @@ public class StaffController extends WebBaseController {
* @param activeFlag 激活状态 - 后期删除 * @param activeFlag 激活状态 - 后期删除
* @param keyWord 关键字 * @param keyWord 关键字
* @param relationFlag 关联状态 * @param relationFlag 关联状态
* @param permitState 许可状态 0 未激活,1 正常有效,2 即将过期,3 已过期,可多传,按‘,’隔开
* @param occupy 其他占用许可页面标志,传1返回该页面数据
* @param pageInfo 分页参数 * @param pageInfo 分页参数
* @return res * @return res
*/ */
...@@ -148,6 +144,8 @@ public class StaffController extends WebBaseController { ...@@ -148,6 +144,8 @@ public class StaffController extends WebBaseController {
Integer activeFlag, Integer activeFlag,
Integer relationFlag, Integer relationFlag,
String keyWord, String keyWord,
String permitState,
Integer occupy,
BasePageInfo pageInfo) { BasePageInfo pageInfo) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser(); WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId(); String wxEnterpriseId = login.getWxEnterpriseId();
...@@ -485,14 +483,18 @@ public class StaffController extends WebBaseController { ...@@ -485,14 +483,18 @@ public class StaffController extends WebBaseController {
* @Description 会员导出 * @Description 会员导出
*/ */
@RequestMapping("staff-export") @RequestMapping("staff-export")
public HaobanResponse staffExport(HttpServletRequest request, HttpServletResponse response, String departmentId, Integer activeFlag, Integer relationFlag, String keyWord, BasePageInfo pageInfo) { public HaobanResponse staffExport(HttpServletRequest request, HttpServletResponse response, String departmentId, Integer activeFlag, Integer relationFlag, String keyWord, Integer permitState,BasePageInfo pageInfo) {
List<String> departmentIdSet = new ArrayList<>(); List<String> departmentIdSet = new ArrayList<>();
departmentIdSet.add(departmentId); departmentIdSet.add(departmentId);
WebLoginDTO login = AuthWebRequestUtil.getLoginUser(); WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId(); String wxEnterpriseId = login.getWxEnterpriseId();
List<DepartmentDTO> relationList = departmentApiService.listSonByDepartmentIds(departmentIdSet, wxEnterpriseId); List<DepartmentDTO> relationList = departmentApiService.listSonByDepartmentIds(departmentIdSet, wxEnterpriseId);
Map<String, DepartmentDTO> departmentMap = relationList.stream().collect(Collectors.toMap(DepartmentDTO::getDepartmentId, s -> s)); Map<String, DepartmentDTO> departmentMap = new HashMap<>();
List<String> departmentIds = relationList.stream().map(DepartmentDTO::getDepartmentId).collect(Collectors.toList()); List<String> departmentIds = new ArrayList<>();
if(CollectionUtil.isNotEmpty(relationList)){
departmentMap = relationList.stream().collect(Collectors.toMap(DepartmentDTO::getDepartmentId, s -> s));
departmentIds = relationList.stream().map(DepartmentDTO::getDepartmentId).collect(Collectors.toList());
}
List<StaffDTO> staffAllList = Lists.newArrayListWithCapacity(5000); List<StaffDTO> staffAllList = Lists.newArrayListWithCapacity(5000);
pageInfo.setPageSize(Integer.MAX_VALUE); pageInfo.setPageSize(Integer.MAX_VALUE);
int pageNum = 1; int pageNum = 1;
...@@ -604,4 +606,29 @@ public class StaffController extends WebBaseController { ...@@ -604,4 +606,29 @@ public class StaffController extends WebBaseController {
} }
return resultResponse(HaoBanErrCode.ERR_1); return resultResponse(HaoBanErrCode.ERR_1);
} }
/**
* 通讯录许可数据总览
*
*/
@RequestMapping("staff-active-data")
public RestResponse<StaffActiveDataVO> getStaffActiveData() {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
StaffActiveDataVO staffActiveDataVo = new StaffActiveDataVO();
return RestResponse.successResult(staffActiveDataVo);
}
/**
* 通讯录许可转移
*/
@RequestMapping("staff-active-transfer")
public RestResponse transferActiveCode(@RequestBody List<TransferActiveCodeQO> transferActiveCodeQOList) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
StaffActiveDataVO staffActiveDataVo = new StaffActiveDataVO();
return RestResponse.successResult();
}
} }
package com.gic.haoban.manage.web.qo;
import java.io.Serializable;
/**
* @description: 通讯录转移许可QO
* @Author: wenhua
* @Date: 2023/1/30 20:39
*/
public class TransferActiveCodeQO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 转移成员的userid。只支持加密的userid
*/
private String handover_userid ;
/**
* 接收成员的userid。只支持加密的userid
*/
private String takeover_userid ;
public String getHandover_userid() {
return handover_userid;
}
public void setHandover_userid(String handover_userid) {
this.handover_userid = handover_userid;
}
public String getTakeover_userid() {
return takeover_userid;
}
public void setTakeover_userid(String takeover_userid) {
this.takeover_userid = takeover_userid;
}
}
package com.gic.haoban.manage.web.vo;
import java.io.Serializable;
/**
* @description: 通讯录许可数据总览
* @Author: wenhua
* @Date: 2023/1/30 20:28
*/
public class StaffActiveDataVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
private String id;
/**
* wx企业id
*/
private String wxEnterpriseId;
/**
* 已购买许可总数
*/
private Integer purchased;
/**
* 已使用许可总数
*/
private Integer used;
/**
* 未激活许可总数
*/
private Integer inactive;
/**
* 待转移许可总数
*/
private Integer transfer;
/**
* 已激活许可总数
*/
private Integer activated;
/**
* 已过期许可总数
*/
private Integer expired;
/**
* 其他占用许可总数
*/
private Integer occupy;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getPurchased() {
return purchased;
}
public void setPurchased(Integer purchased) {
this.purchased = purchased;
}
public Integer getInactive() {
return inactive;
}
public void setInactive(Integer inactive) {
this.inactive = inactive;
}
public Integer getTransfer() {
return transfer;
}
public void setTransfer(Integer transfer) {
this.transfer = transfer;
}
public Integer getActivated() {
return activated;
}
public void setActivated(Integer activated) {
this.activated = activated;
}
public Integer getExpired() {
return expired;
}
public void setExpired(Integer expired) {
this.expired = expired;
}
public Integer getOccupy() {
return occupy;
}
public void setOccupy(Integer occupy) {
this.occupy = occupy;
}
public Integer getUsed() {
return used;
}
public void setUsed(Integer used) {
this.used = used;
}
}
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