|
@@ -2,13 +2,17 @@ package com.caimei365.tools.service.impl;
|
|
|
|
|
|
import com.caimei365.tools.mapper.CmOrganValueSystemMapper;
|
|
|
import com.caimei365.tools.model.po.CmOrganValueSystemPo;
|
|
|
+import com.caimei365.tools.model.po.CmUserPo;
|
|
|
+import com.caimei365.tools.model.po.UserOrganPo;
|
|
|
import com.caimei365.tools.service.CmOrganValueSystemService;
|
|
|
+import lombok.extern.java.Log;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* Description
|
|
@@ -23,96 +27,119 @@ public class CmOrganValueSystemServiceImpl implements CmOrganValueSystemService
|
|
|
@Resource
|
|
|
private CmOrganValueSystemMapper cmOrganValueSystemMapper;
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 用户活跃状态
|
|
|
+ */
|
|
|
@Override
|
|
|
public void insertOrgan() {
|
|
|
|
|
|
- List<CmOrganValueSystemPo> list = new ArrayList();
|
|
|
- // 新增用户
|
|
|
- List<Integer> newAdd = cmOrganValueSystemMapper.newAdd();
|
|
|
- // 活跃用户
|
|
|
- List<Integer> active = cmOrganValueSystemMapper.active();
|
|
|
- // 不活跃用户
|
|
|
- List<Integer> inactive = cmOrganValueSystemMapper.inactive();
|
|
|
- // 流失用户
|
|
|
- List<Integer> loss = cmOrganValueSystemMapper.loss();
|
|
|
- // 回流用户
|
|
|
- List<Integer> backflow = cmOrganValueSystemMapper.backflow();
|
|
|
- // 忠诚用户
|
|
|
- List<Integer> loyal = cmOrganValueSystemMapper.loyal();
|
|
|
- // 沉默用户
|
|
|
- List<Integer> silent = cmOrganValueSystemMapper.silent();
|
|
|
- // 客户价值
|
|
|
- List<CmOrganValueSystemPo> customerValue = cmOrganValueSystemMapper.customerValue();
|
|
|
|
|
|
- // 更改上一阶段数据
|
|
|
- cmOrganValueSystemMapper.updateOrgan();
|
|
|
+ // 已添加用户活跃的的机构
|
|
|
+ List<CmOrganValueSystemPo> organList = cmOrganValueSystemMapper.getOrganUserId();
|
|
|
+ // 用户信息
|
|
|
+ List<CmUserPo> userList = cmOrganValueSystemMapper.getClubUserId();
|
|
|
+ // 用户的登录时间
|
|
|
+ List<UserOrganPo> clubLoginTime = cmOrganValueSystemMapper.getClubLoginTime();
|
|
|
+ // 机构咨询记录数
|
|
|
+ List<UserOrganPo> clubRemarks = cmOrganValueSystemMapper.getClubRemarks();
|
|
|
+ // 机构半年内子订单数
|
|
|
+ List<UserOrganPo> clubShopOrder = cmOrganValueSystemMapper.getClubShopOrder();
|
|
|
|
|
|
- log.info("插入--------------------------------》");
|
|
|
- for (CmOrganValueSystemPo organValueSystem : customerValue) {
|
|
|
+ log.info("用户活跃状态--------------------------------》");
|
|
|
+ for (CmUserPo user : userList) {
|
|
|
+ // 用户上一次数据
|
|
|
+ List<CmOrganValueSystemPo> organValueList = organList.stream().filter(organ -> organ.getUserId().equals(user.getUserID())).collect(Collectors.toList());
|
|
|
+ // 登录时间
|
|
|
+ List<UserOrganPo> loginTime = clubLoginTime.stream().filter(login -> login.getUserId().equals(user.getUserID())).collect(Collectors.toList());
|
|
|
+ // 咨询记录
|
|
|
+ List<UserOrganPo> clubRemark = clubRemarks.stream().filter(remark -> remark.getClubId().toString().equals(user.getClubID())).collect(Collectors.toList());
|
|
|
+ // 子订单数
|
|
|
+ List<UserOrganPo> shopOrder = clubShopOrder.stream().filter(shop -> shop.getUserId().equals(user.getUserID())).collect(Collectors.toList());
|
|
|
|
|
|
CmOrganValueSystemPo systemPo = new CmOrganValueSystemPo();
|
|
|
- // 判断用户活跃状态
|
|
|
- if (newAdd.contains(organValueSystem.getUserID())) {
|
|
|
- systemPo.setActiveState("新增用户");
|
|
|
- }
|
|
|
- if (active.contains(organValueSystem.getUserID())) {
|
|
|
- systemPo.setActiveState("活跃用户");
|
|
|
- }
|
|
|
- if (inactive.contains(organValueSystem.getUserID())) {
|
|
|
+ systemPo.setStage(0);
|
|
|
+ systemPo.setDelType(1);
|
|
|
+ if ((null != loginTime && loginTime.size() > 0)|| (null != shopOrder && shopOrder.size() > 0)) {
|
|
|
+ if ( null != clubRemark && clubRemark.size() > 0 ) {
|
|
|
+ UserOrganPo organ = clubRemark.get(0);
|
|
|
+ if (organ.getSituation() == 0) {
|
|
|
+ systemPo.setActiveState("活跃用户");
|
|
|
+ systemPo.setActiveStatus(0);
|
|
|
+ } else {
|
|
|
+ systemPo.setActiveState("不活跃用户");
|
|
|
+ systemPo.setActiveStatus(1);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ systemPo.setActiveState("活跃用户");
|
|
|
+ systemPo.setActiveStatus(0);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
systemPo.setActiveState("不活跃用户");
|
|
|
+ systemPo.setActiveStatus(1);
|
|
|
}
|
|
|
- if (loss.contains(organValueSystem.getUserID())) {
|
|
|
- systemPo.setActiveState("流失用户");
|
|
|
- }
|
|
|
- if (backflow.contains(organValueSystem.getUserID())) {
|
|
|
- systemPo.setActiveState("回流用户");
|
|
|
- }
|
|
|
- if (loyal.contains(organValueSystem.getUserID())) {
|
|
|
- systemPo.setActiveState("忠诚用户");
|
|
|
- }
|
|
|
- if (silent.contains(organValueSystem.getUserID())) {
|
|
|
- systemPo.setActiveState("沉默用户");
|
|
|
+ if (null != organValueList && organValueList.size() > 0) {
|
|
|
+ // 修改
|
|
|
+ systemPo.setOrganId(organValueList.get(0).getOrganId());
|
|
|
+ cmOrganValueSystemMapper.updateOrganBatch(systemPo);
|
|
|
+ } else {
|
|
|
+ // 添加
|
|
|
+ systemPo.setUserId(user.getUserID());
|
|
|
+ cmOrganValueSystemMapper.organBatch(systemPo);
|
|
|
}
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- // 判断客户价值
|
|
|
- // 距今时间
|
|
|
- Integer orderTimeDay = organValueSystem.getOrderTime();
|
|
|
- // 购买频率
|
|
|
- Double number = organValueSystem.getNumber() / 24;
|
|
|
- // 交易金额
|
|
|
- Double payableAmount = organValueSystem.getPayableAmount() / 24;
|
|
|
- if (orderTimeDay > 60 && number >= 1 && payableAmount < 100000) {
|
|
|
- systemPo.setCustomerValue("一般保持客户");
|
|
|
- }
|
|
|
- if (orderTimeDay < 60 && number < 1 && payableAmount < 100000) {
|
|
|
- systemPo.setCustomerValue("一般发展客户");
|
|
|
- }
|
|
|
- if (orderTimeDay < 60 && number >= 1 && payableAmount < 100000) {
|
|
|
- systemPo.setCustomerValue("一般价值客户");
|
|
|
- }
|
|
|
- if (orderTimeDay > 60 && number < 1 && payableAmount < 100000) {
|
|
|
- systemPo.setCustomerValue("一般挽留客户");
|
|
|
- }
|
|
|
- if (orderTimeDay > 60 && number >= 1 && payableAmount >= 100000) {
|
|
|
- systemPo.setCustomerValue("重要保持客户");
|
|
|
- }
|
|
|
- if (orderTimeDay < 60 && number < 1 && payableAmount >= 100000) {
|
|
|
- systemPo.setCustomerValue("重要发展客户");
|
|
|
- }
|
|
|
- if (orderTimeDay < 60 && number >= 1 && payableAmount >= 100000) {
|
|
|
- systemPo.setCustomerValue("重要价值客户");
|
|
|
- }
|
|
|
- if (orderTimeDay > 60 && number < 1 && payableAmount >= 100000) {
|
|
|
- systemPo.setCustomerValue("一般保持客户");
|
|
|
+ /**
|
|
|
+ * 用户价值
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void insertcustomer() {
|
|
|
+ log.info("用户价值--------------------------------》");
|
|
|
+ // 已添加用户活跃的的机构
|
|
|
+ List<CmOrganValueSystemPo> organList = cmOrganValueSystemMapper.getOrganUserId();
|
|
|
+ // 用户信息
|
|
|
+ List<CmUserPo> userList = cmOrganValueSystemMapper.getClubUserId();
|
|
|
+ for (CmUserPo user : userList) {
|
|
|
+ // 用户上一次数据
|
|
|
+ List<CmOrganValueSystemPo> organValueList = organList.stream().filter(organ -> organ.getUserId().equals(user.getUserID())).collect(Collectors.toList());
|
|
|
+ // 用户应支付金额
|
|
|
+ UserOrganPo userAmount = cmOrganValueSystemMapper.getUserAmount(user.getUserID());
|
|
|
+ // 用户访问数据
|
|
|
+ List<UserOrganPo> behaviorNumber = cmOrganValueSystemMapper.getBehaviorNumber(user.getUserID());
|
|
|
+ Integer number = 0;
|
|
|
+ if (null != behaviorNumber && behaviorNumber.size() > 0) {
|
|
|
+ number = behaviorNumber.size() / 12;
|
|
|
}
|
|
|
-
|
|
|
- systemPo.setUserID(organValueSystem.getUserID());
|
|
|
+ CmOrganValueSystemPo systemPo = new CmOrganValueSystemPo();
|
|
|
systemPo.setStage(0);
|
|
|
systemPo.setDelType(1);
|
|
|
-
|
|
|
- // 添加新数据
|
|
|
- cmOrganValueSystemMapper.organBatch(systemPo);
|
|
|
+ if (null != userAmount) {
|
|
|
+ if (null != userAmount.getShopOrderNumber() && userAmount.getShopOrderNumber() >= 5) {
|
|
|
+ systemPo.setCustomerValue("高价值客户");
|
|
|
+ systemPo.setCustomerStatus(0);
|
|
|
+ } else if ((null != userAmount.getShopOrderNumber() && userAmount.getShopOrderNumber() < 5) && userAmount.getAmount() > 50000d) {
|
|
|
+ systemPo.setCustomerValue("一般价值客户");
|
|
|
+ systemPo.setCustomerStatus(1);
|
|
|
+ } else if ((null != userAmount.getShopOrderNumber() && userAmount.getShopOrderNumber() < 5) && userAmount.getAmount() > 50000d && number > 1) {
|
|
|
+ systemPo.setCustomerValue("潜在价值客户");
|
|
|
+ systemPo.setCustomerStatus(2);
|
|
|
+ } else {
|
|
|
+ systemPo.setCustomerValue("低价值客户");
|
|
|
+ systemPo.setCustomerStatus(3);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ systemPo.setCustomerValue("低价值客户");
|
|
|
+ systemPo.setCustomerStatus(3);
|
|
|
+ }
|
|
|
+ if (null != organValueList && organValueList.size() > 0) {
|
|
|
+ // 修改
|
|
|
+ systemPo.setOrganId(organValueList.get(0).getOrganId());
|
|
|
+ cmOrganValueSystemMapper.updateOrganBatch(systemPo);
|
|
|
+ } else {
|
|
|
+ // 添加
|
|
|
+ systemPo.setUserId(user.getUserID());
|
|
|
+ cmOrganValueSystemMapper.organBatch(systemPo);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|