Commit 71590e98 by songyinghui

feat: 导购佣金消息通知

parent bccea27d
package com.gic.haoban.manage.api.dto.statistics.commission;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Author MUSI
* @Date 2023/6/9 9:49 AM
* @Description
* @Version
**/
public class ClerkCommissionStaticsDTO implements Serializable {
/**
* 企业id
*/
private String enterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 客户数量
*/
private Integer memberCount;
/**
* 佣金金额
*/
private BigDecimal commissionAmount;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getMemberCount() {
return memberCount;
}
public void setMemberCount(Integer memberCount) {
this.memberCount = memberCount;
}
public BigDecimal getCommissionAmount() {
return commissionAmount;
}
public void setCommissionAmount(BigDecimal commissionAmount) {
this.commissionAmount = commissionAmount;
}
}
...@@ -25,9 +25,9 @@ public class ClerkCommissionStaticsBO implements Serializable { ...@@ -25,9 +25,9 @@ public class ClerkCommissionStaticsBO implements Serializable {
private String clerkId; private String clerkId;
/** /**
* 数量 * 客户数量
*/ */
private Integer num; private Integer memberCount;
/** /**
* 佣金金额 * 佣金金额
......
...@@ -39,8 +39,7 @@ public class CommissionNotifyInnerService { ...@@ -39,8 +39,7 @@ public class CommissionNotifyInnerService {
* @param commissionStaticsBo * @param commissionStaticsBo
*/ */
public void handlerCommissionNotify(ClerkCommissionStaticsBO commissionStaticsBo) { public void handlerCommissionNotify(ClerkCommissionStaticsBO commissionStaticsBo) {
// 处理导购佣金通知 log.info("handlerCommissionNotify params:{}", JSONObject.toJSONString(commissionStaticsBo));
// 查询导购关联关系
String clerkId = commissionStaticsBo.getClerkId(); String clerkId = commissionStaticsBo.getClerkId();
StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getByClerkId(clerkId); StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getByClerkId(clerkId);
if (staffClerkRelationDTO == null) { if (staffClerkRelationDTO == null) {
...@@ -52,7 +51,7 @@ public class CommissionNotifyInnerService { ...@@ -52,7 +51,7 @@ public class CommissionNotifyInnerService {
Map<String, String> params = new HashMap<>(); Map<String, String> params = new HashMap<>();
params.put("currentTab", "0"); params.put("currentTab", "0");
params.put("commissAmount", commissionStaticsBo.getCommissionAmount().toPlainString()); params.put("commissAmount", commissionStaticsBo.getCommissionAmount().toPlainString());
params.put("memberNum", commissionStaticsBo.getNum() + ""); params.put("memberNum", commissionStaticsBo.getMemberCount() + "");
JSONObject innerParams = new JSONObject(); JSONObject innerParams = new JSONObject();
innerParams.put("currentTab", "0"); innerParams.put("currentTab", "0");
String pageUrl = NoticeMessageUtil.buildMiniAppUrl(NoticeMessageTypeEnum.CLERK_COMMISSION_NOTIFY, innerParams.toJSONString()); String pageUrl = NoticeMessageUtil.buildMiniAppUrl(NoticeMessageTypeEnum.CLERK_COMMISSION_NOTIFY, innerParams.toJSONString());
......
package com.gic.haoban.manage.service.service.out.impl.content.task; package com.gic.haoban.manage.service.service.out.impl.content.task;
import cn.hutool.core.date.DateTime; import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.service.content.task.CommissionTaskApiService; import com.gic.haoban.manage.api.service.content.task.CommissionTaskApiService;
import com.gic.haoban.manage.service.pojo.bo.commission.ClerkCommissionStaticsBO; import com.gic.haoban.manage.service.pojo.bo.commission.ClerkCommissionStaticsBO;
import com.gic.haoban.manage.service.service.commission.CommissionNotifyInnerService; import com.gic.haoban.manage.service.service.commission.CommissionNotifyInnerService;
import org.apache.commons.collections.CollectionUtils; 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.stereotype.Component; import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/** /**
* @Author MUSI * @Author MUSI
* @Date 2023/6/7 2:16 PM * @Date 2023/6/7 2:16 PM
...@@ -32,69 +26,18 @@ public class CommissionTaskApiServiceImpl implements CommissionTaskApiService { ...@@ -32,69 +26,18 @@ public class CommissionTaskApiServiceImpl implements CommissionTaskApiService {
private static final Logger log = LoggerFactory.getLogger(CommissionTaskApiService.class); private static final Logger log = LoggerFactory.getLogger(CommissionTaskApiService.class);
/** /**
* 判断是否是当天第一次
* 执行时间处于 8:00 ~ 8:30
*
* @param now
* @return
*/
int hour_sec = 30 * 60;
private boolean checkIsTodayFirst(Date now) {
DateTime temp = cn.hutool.core.date.DateUtil.offsetSecond(now, -(hour_sec));
return cn.hutool.core.date.DateUtil.hour(temp, true) < 8;
}
/**
* 处理佣金消息通知 * 处理佣金消息通知
* *
* @param prams * @param params
*/ */
@Override @Override
public ServiceResponse<Void> handlerCommissionNotify(String prams) { public ServiceResponse<Void> handlerCommissionNotify(String params) {
if (StringUtils.isBlank(params)) {
Date now = new Date(); log.info("处理导购佣金消息通知, 参数为空 {}", params);
log.info("handlerCommissionNotify 执行佣金统计通知 {}", cn.hutool.core.date.DateUtil.format(now, "yyyy-MM-dd HH:mm:ss"));
int currentHour = cn.hutool.core.date.DateUtil.hour(now, true);
if (currentHour >= 23 || currentHour < 8) {
log.info("当前时间处于消息禁发时间, 忽略{}", cn.hutool.core.date.DateUtil.format(now, "yyyy-MM-dd HH:mm:ss"));
return ServiceResponse.success(); return ServiceResponse.success();
} }
Date startTime = cn.hutool.core.date.DateUtil.offsetMinute(now, -30).toJdkDate(); ClerkCommissionStaticsBO commissionStaticsBO = JSON.parseObject(params, ClerkCommissionStaticsBO.class);
// 如果是8点那次的执行 需要获取 23 ~ 8点的数据 commissionNotifyInnerService.handlerCommissionNotify(commissionStaticsBO);
if (checkIsTodayFirst(now)) {
log.info("本次执行为当天第一次执行 {}", cn.hutool.core.date.DateUtil.format(now, "yyyy-MM-dd HH:mm:ss"));
Date yesterday = cn.hutool.core.date.DateUtil.yesterday().toJdkDate();
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.setTime(yesterday);
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
startTime = calendar.getTime();
}
// enterpriseId, clerkId, memberNum, commissionAmount
List<ClerkCommissionStaticsBO> needHandlerClerkInfos = new ArrayList<>();
needHandlerClerkInfos.add(buildDemo());
if (CollectionUtils.isEmpty(needHandlerClerkInfos)) {
return ServiceResponse.success();
}
for (ClerkCommissionStaticsBO clerkCommissionStaticsBO : needHandlerClerkInfos) {
commissionNotifyInnerService.handlerCommissionNotify(clerkCommissionStaticsBO);
}
return ServiceResponse.success(); return ServiceResponse.success();
} }
private ClerkCommissionStaticsBO buildDemo() {
ClerkCommissionStaticsBO clerkCommissionStatics = new ClerkCommissionStaticsBO();
clerkCommissionStatics.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
clerkCommissionStatics.setClerkId("279871592fcd49659ad5f348039dba3f");
clerkCommissionStatics.setNum(10);
clerkCommissionStatics.setCommissionAmount(BigDecimal.valueOf(10000));
return clerkCommissionStatics;
}
} }
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