Commit df238a07 by 徐高华

企微托管

parent b034e4e8
......@@ -110,6 +110,8 @@ public interface OpenStaffApiService {
List<String> listAllOnlineStaff() ;
List<String> listAllOnlineStaff(String wxEnterpriseId , String enterpriseId) ;
/**
* 查询所有托管的门店
* @param wxEnterpriseId
......
......@@ -48,7 +48,7 @@ public interface OpenStaffMapper {
List<StaffClerkRelationDTO> listOpenStaffByStore(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId, @Param("list")List<String> storeIdList);
List<String> listAll() ;
List<String> listAll(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId) ;
List<String> listOpenStoreId(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseId")String enterpriseId);
......
......@@ -276,7 +276,13 @@ public class OpenStaffApiServiceImpl implements OpenStaffApiService {
@Override
public List<String> listAllOnlineStaff() {
return this.openStaffMapper.listAll();
return this.openStaffMapper.listAll(null,null);
}
@Override
public List<String> listAllOnlineStaff(String wxEnterpriseId, String enterpriseId) {
return this.openStaffMapper.listAll(wxEnterpriseId,enterpriseId);
}
@Override
......
......@@ -230,7 +230,14 @@
</select>
<select id="listAll" resultType="java.lang.String">
select staff_id from tab_haoban_open_staff where status_flag = 1 and delete_flag = 0
select staff_id from tab_haoban_open_staff where
status_flag = 1 and delete_flag = 0
<if test="null !=wxEnterpriseId">
and wx_enterprise_id = #{wxEnterpriseId}
</if>
<if test="null !=enterpriseId">
and a.enterprise_id=#{enterpriseId}
</if>
</select>
<select id="listOpenStoreId" resultType="java.lang.String">
......
......@@ -15,6 +15,8 @@ import com.gic.enterprise.api.service.StoreService;
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.api.service.OpenStaffApiService;
import com.gic.haoban.manage.web.controller.MemberController;
import com.gic.haoban.manage.web.log.LogRecordUserServiceImpl;
import com.gic.haoban.manage.web.qo.open.AddTaskDataQO;
import com.gic.haoban.manage.web.qo.open.AddTaskMemberPageQO;
......@@ -37,17 +39,25 @@ import com.gic.member.tag.api.dto.MemberTagItemDTO;
import com.gic.member.tag.api.service.MemberTagApiService;
import com.gic.member.tag.api.service.MemberTagGroupApiService;
import com.gic.qcloud.BucketNameEnum;
import com.gic.search.engine.api.constant.OperateEnum;
import com.gic.search.engine.api.dto.ESResponseQueryCount;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.filter.NewNodeAddUtil;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
import com.gic.web.common.download.DownloadTask;
import com.gic.web.common.download.DownloadTaskUtil;
import com.gic.web.common.download.constants.TaskTypeEnum;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
......@@ -61,6 +71,8 @@ import java.util.stream.Collectors;
@RequestMapping("/qw-open-task")
public class QywxOpenTaskController {
private static final Logger log = LogManager.getLogger(QywxOpenTaskController.class);
@Autowired
private OpenQwApiService openQwApiService;
@Autowired
......@@ -71,6 +83,10 @@ public class QywxOpenTaskController {
private MemberTagGroupApiService memberTagGroupApiService;
@Autowired
private StoreService storeService;
@Autowired
private OpenStaffApiService openStaffApiService;
@Autowired
private MemberController memberController;
/**
* 加好友任务列表
......@@ -110,6 +126,10 @@ public class QywxOpenTaskController {
@RequestMapping("save-add-task")
@GicLogRecord(value = "${#logValue}", category = GicLogRecordCategoryEnum.QW_ADD, optType = GicLogRecordOptTypeEnum.QW_ADD_02, userFunc = LogRecordUserServiceImpl.class, optPage = "企微运营-自动加好友")
public RestResponse<OpenQwAddTaskDTO> saveAddTask(@RequestBody OpenQwAddTaskDTO dto) {
OpenQwAddTaskSettingDTO setting = this.getAddSetting();
if (null == setting) {
return RestResponse.failure("9999", "请先设置添加好友规则");
}
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
String enterpriseId = loginUser.getEnterpriseId();
......@@ -361,14 +381,19 @@ public class QywxOpenTaskController {
*/
@RequestMapping("get-add-task-setting")
public RestResponse<OpenQwAddTaskSettingDTO> getTaskSetting() {
OpenQwAddTaskSettingDTO dto = this.getAddSetting();
return RestResponse.successResult(dto);
}
private OpenQwAddTaskSettingDTO getAddSetting() {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
String enterpriseId = loginUser.getEnterpriseId();
ServiceResponse<OpenQwAddTaskSettingDTO> resp = this.openQwApiService.geAddSetting(wxEnterpriseId, enterpriseId);
if (!resp.isSuccess()) {
return RestResponse.failure("9999", resp.getMessage());
return null;
}
return RestResponse.successResult(resp.getResult());
return resp.getResult();
}
/**
......@@ -690,4 +715,41 @@ public class QywxOpenTaskController {
return "";
}
/**
* 预估需要执行的天数
*
* @param dto
* @return
*/
@RequestMapping("calculate-add-day")
public RestResponse<Integer> calculateAddDay(@RequestBody OpenQwAddTaskDTO dto) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = loginUser.getWxEnterpriseId();
String enterpriseId = loginUser.getEnterpriseId();
// 添加的人数
int memberNum = this.getMemberNum(dto.getSearchParams(), dto.getMemberType());
// 成员数
int staffNum = this.openStaffApiService.listAllOnlineStaff(wxEnterpriseId, enterpriseId).size();
if (staffNum == 0) {
return RestResponse.successResult(0);
}
// 一次添加人数
OpenQwAddTaskSettingDTO setting = this.getAddSetting();
if (null == setting) {
return RestResponse.successResult(0);
}
int min = (setting.getAddIntervalEnd() - setting.getAddIntervalStart()) / 2;
int hour = Integer.valueOf(setting.getAddTime().split("-")[1].split(":")[0]) -
Integer.valueOf(setting.getAddTime().split("-")[0].split(":")[0]);
int m = (hour * 60 / min);
int days = BigDecimal.valueOf(memberNum).divide(BigDecimal.valueOf(m*staffNum),BigDecimal.ROUND_UP).intValue() ;
log.info("member={},staff={},m={}", memberNum, staffNum, m);
return RestResponse.successResult(days);
}
private int getMemberNum(String searchParams, int memberType) {
RestResponse<Object> resp = this.memberController.getMemberCount(searchParams, memberType);
return Integer.valueOf(resp.getResult().toString());
}
}
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