Commit 0f13a603 by huluobin

美甲师数据定时任务

parent f5bcc352
......@@ -121,4 +121,5 @@ public class StoreTechnician {
@TableField(exist = false)
private StoreTechnicianDTO applyStoreTechnicianDTO;
private Boolean isAdmin;
}
package com.gogirl.dto.admin;
import lombok.Data;
import java.util.List;
@Data
public class AdminPage<T> {
List<T> items;
}
package com.gogirl.dto.admin;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Builder
public class GetTechnicianPageRequest {
/**
......@@ -34,8 +36,10 @@ public class GetTechnicianPageRequest {
/**
* 排序 asc
*/
private String sort;
private String sord;
private List<Date> date_utc;
private List<LocalDateTime> date_utc;
private Integer technician_id;
}
......@@ -51,5 +51,13 @@ public class GogirlProperties {
private String endTime;
/**
* 发送评价是假
*/
public long testPaperTime;
/**
* 后台地址
*/
private String adminBackendUrl;
}
......@@ -22,6 +22,10 @@ import com.gogirl.domain.store.store.StoreTechnician;
import com.gogirl.domain.user.customer.Customer;
import com.gogirl.domain.user.customer.CustomerBalanceRecord;
import com.gogirl.domain.xcx.WeekConfig;
import com.gogirl.dto.admin.AdminPage;
import com.gogirl.dto.admin.AdminResult;
import com.gogirl.dto.admin.AdminTechnicianScore;
import com.gogirl.dto.admin.GetTechnicianPageRequest;
import com.gogirl.infrastructure.common.util.ListUtil;
import com.gogirl.infrastructure.config.property.GogirlProperties;
import com.gogirl.infrastructure.mapper.market.coupon.CouponCustomerRelevanceMapper;
......@@ -39,14 +43,22 @@ import com.gogirl.infrastructure.mapper.store.store.StoreTechnicianMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceRecordMapper;
import com.gogirl.infrastructure.mapper.xcx.WeekConfigMapper;
import com.gogirl.infrastructure.subscribe.SubscribeService;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -322,6 +334,9 @@ public class Schedule {
log.debug("同步闲时折扣周 结束");
}
@Resource
RestTemplate restTemplate;
/**
* 定时同步美甲师成长历程
*/
......@@ -330,18 +345,65 @@ public class Schedule {
log.info("定时同步美甲师成长历程** 任务开始");
List<StoreTechnician> storeTechnicianList = storeTechnicianMapper.selectList(new LambdaQueryWrapper<StoreTechnician>()
.eq(StoreTechnician::getStatus, 1));
.eq(StoreTechnician::getStatus, 1)
.eq(StoreTechnician::getIsAdmin, false));
storeTechnicianList.forEach(storeTechnician -> {
ParameterizedTypeReference<AdminResult<AdminPage<AdminTechnicianScore>>> responseBodyType = new ParameterizedTypeReference<AdminResult<AdminPage<AdminTechnicianScore>>>() {
};
GetTechnicianPageRequest allRequest = GetTechnicianPageRequest.builder()
.page(1)
.rows(30)
.sidx("grade")
.sord("asc")
//在职
.status(1)
.technician_id(storeTechnician.getId())
.build();
HttpEntity<GetTechnicianPageRequest> allHttpEntity = new HttpEntity<>(allRequest);
AdminTechnicianScore monthAdminResult = restTemplate.exchange(gogirlProperties.getAdminBackendUrl() + "/api/ReportTable/GetTechnicianPage", HttpMethod.POST, allHttpEntity, responseBodyType)
.getBody()
.getData()
.getItems()
.stream()
.findAny()
.orElse(new AdminTechnicianScore());
GetTechnicianPageRequest monthRequest = GetTechnicianPageRequest.builder()
.page(1)
.rows(30)
.sidx("grade")
.sord("asc")
//在职
.status(1)
.date_utc(Lists.newArrayList(LocalDateTime.of(LocalDate.of(2020, 4, 1), LocalTime.of(0, 0)), LocalDateTime.now()))
.technician_id(storeTechnician.getId())
.build();
HttpEntity<GetTechnicianPageRequest> monthHttpEntity = new HttpEntity<>(monthRequest);
AdminTechnicianScore allAdminResult = restTemplate.exchange(gogirlProperties.getAdminBackendUrl() + "/api/ReportTable/GetTechnicianPage", HttpMethod.POST, monthHttpEntity, responseBodyType)
.getBody()
.getData()
.getItems()
.stream()
.findAny()
.orElse(new AdminTechnicianScore());
Career career = careerMapper.selectOne(new LambdaQueryWrapper<Career>().eq(Career::getTechnicianId, storeTechnician.getId()));
if (career == null) {
career = new Career();
career.setTechnicianId(storeTechnician.getTechnicianId());
}
career.setJoinDate(storeTechnician.getCreateTime());
if (storeTechnician.getCreateTime() != null) {
long pastMills = System.currentTimeMillis() - storeTechnician.getCreateTime().getTime();
int day = (int) (pastMills / 1000 / 60 / 60 / 24);
career.setOnJobTime(day);
......@@ -352,19 +414,19 @@ public class Schedule {
//当月开卡数量
Integer MonthBalanceCardNum = careerMapper.queryMonthBalanceCardNum(storeTechnician.getId(), month);
career.setMonthBalanceCardNum(MonthBalanceCardNum);
career.setMonthBalanceCardNum(monthAdminResult.getCard_count());
//考勤准时
career.setMonthAttendancePercent(null);
//信息录入完整度
career.setMonthInfoPercent(null);
career.setMonthInfoPercent(monthAdminResult.getAvg_data_integrity().doubleValue());
//当月订单总数
Integer monthOrderNum = careerMapper.queryMonthOrderNum(storeTechnician.getId(), month);
career.setMonthOrderNum(monthOrderNum);
//客户好评率
career.setMonthPraisePercent(null);
career.setMonthPraisePercent(monthAdminResult.getPraise_proportion().doubleValue());
//当月复购率
//复购率
......@@ -372,13 +434,17 @@ public class Schedule {
if (monthOrderNum != null && monthOrderNum != 0) {
career.setMonthRepurchasePercent((double) monthRepurchaseNum / monthOrderNum);
}
career.setMonthRepurchasePercent(monthAdminResult.getRepeat_purchase_client_roportion().doubleValue());
//当月服务客户总数
Integer monthServeCustomerNum = careerMapper.queryMonthServeCustomerNum(storeTechnician.getId(), month);
career.setMonthServeCustomerNum(monthServeCustomerNum);
career.setMonthServeCustomerNum(monthAdminResult.getTotal_client_count());
//当月服务总次数
career.setMonthServeNum(monthServeCustomerNum);
career.setMonthServeNum(monthAdminResult.getTotal_service_count());
//信息录入完整度
career.setMonthInfoPercent(monthAdminResult.getAvg_data_integrity().doubleValue());
//总考勤准时率
career.setTotalAttendancePercent(null);
......@@ -387,10 +453,10 @@ public class Schedule {
//开卡总数
Integer totalBalanceCardNum = careerMapper.queryTotalBalanceCardNum(storeTechnician.getId(), month);
career.setTotalBalanceCardNum(totalBalanceCardNum);
career.setTotalBalanceCardNum(allAdminResult.getCard_count());
//信息录入完整度
career.setTotalInfoPercent(null);
career.setTotalInfoPercent(allAdminResult.getAvg_data_integrity().doubleValue());
//订单总数
Integer totalOrderNum = careerMapper.queryTotalOrderNum(storeTechnician.getId(), month);
......@@ -398,13 +464,11 @@ public class Schedule {
//客户好评率
Double totalPraisePercent = careerMapper.queryTotalPraisePercent(storeTechnician.getId());
career.setTotalPraisePercent(totalPraisePercent);
Double monthPraisePercent = careerMapper.queryMonthPraisePercent(storeTechnician.getId(), month);
career.setMonthPraisePercent(monthPraisePercent);
//总好评率
career.setTotalPraisePercent(allAdminResult.getPraise_proportion().doubleValue());
//信息录入完整度
career.setMonthInfoPercent(storeTechnician.getInformationIntegrity());
//总考勤准时比率
career.setTotalAttendancePercent(storeTechnician.getInformationIntegrity());
//复购率
......@@ -412,13 +476,14 @@ public class Schedule {
if (totalOrderNum != null && totalOrderNum != 0) {
career.setTotalRepurchasePercent((double) totalRepurchaseNum / totalOrderNum);
}
career.setTotalRepurchasePercent(allAdminResult.getRepeat_purchase_client_roportion().doubleValue());
//服务客户总数
Integer totalServeCustomerNum = careerMapper.queryTotalServeCustomerNum(storeTechnician.getId(), month);
career.setTotalServeCustomerNum(totalServeCustomerNum);
career.setTotalServeCustomerNum(allAdminResult.getTotal_client_count());
//服务总次数
career.setTotalServeNum(totalServeCustomerNum);
career.setTotalServeNum(allAdminResult.getTotal_service_count());
career.setTechnicianId(storeTechnician.getId());
if (career.getId() != null) {
......
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