package com.caimei.modules.user.service; import com.caimei.modules.order.entity.NewOrder; import com.caimei.modules.user.dao.CmPortraitDao; import com.caimei.modules.user.entity.CmBehaviorRecord; import com.caimei.modules.user.entity.CmClubRemarks; import com.caimei.modules.user.entity.CmPortrait; import com.caimei.modules.user.entity.OrderPortrait; import com.thinkgem.jeesite.common.utils.ObjectUtils; import com.thinkgem.jeesite.common.utils.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * Description * * @author : Charles * @date : 2023/2/15 */ @Service public class ClubPortraitService { @Autowired private CmPortraitDao cmPortraitDao; /** * 查询机构画像数据 * @param cmPortrait * @return */ public CmPortrait dataList(CmPortrait cmPortrait) { if (ObjectUtils.isEmpty(cmPortrait.getStartTime()) && ObjectUtils.isEmpty(cmPortrait.getEndTime())) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date start = null; String startTime = ""; Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DAY_OF_MONTH, -1); Date time = calendar.getTime(); String endTime = dateFormat.format(time); // 日期参数为 日 if (cmPortrait.getDateType() == 0) { cmPortrait.setAccessDate(endTime); } if (cmPortrait.getDateType() == 1) { cmPortrait.setEndTime(endTime); calendar.setTime(time); calendar.add(Calendar.MONTH, -1); start = calendar.getTime(); startTime = dateFormat.format(start); cmPortrait.setStartTime(startTime); } if (cmPortrait.getDateType() == 2) { cmPortrait.setEndTime(endTime); calendar.setTime(time); calendar.add(Calendar.MONTH, -6); start = calendar.getTime(); startTime = dateFormat.format(start); cmPortrait.setStartTime(startTime); } if (cmPortrait.getDateType() == 3) { cmPortrait.setEndTime(endTime); calendar.setTime(time); calendar.add(Calendar.DAY_OF_YEAR, -1); start = calendar.getTime(); startTime = dateFormat.format(start); cmPortrait.setStartTime(startTime); } } // 机构订单 if (0 == cmPortrait.getType() || 4 == cmPortrait.getType()) { int ordinary = 0, secondHand = 0, rebate = 0, partialRefund = 0, fullRefund = 0, closed = 0; // Double totalPurchase = 0.0; ArrayList orderPortraits = new ArrayList<>(); OrderPortrait orderPortrait = new OrderPortrait(); List orderList = cmPortraitDao.selOrderList(cmPortrait); if (orderList.size() != 0) { for (NewOrder order : orderList) { // totalPurchase += order.getProductTotalFee(); // 普通订单 if (("0".equals(order.getSecondHandOrderFlag()) || StringUtils.isEmpty(order.getSecondHandOrderFlag())) && ("0".equals(order.getRebateFlag()) || "".equals(order.getRebateFlag()) || StringUtils.isEmpty(order.getRebateFlag())) && ((!"1".equals(order.getRefundType()) && !"2".equals(order.getRefundType())) || "".equals(order.getRefundType()) || StringUtils.isEmpty(order.getRefundType())) && !"6".equals(order.getStatus())) { ordinary++; } // 二手订单 if ("1".equals(order.getSecondHandOrderFlag()) && "0".equals(order.getRebateFlag()) && (!"1".equals(order.getRefundType()) && !"2".equals(order.getRefundType())) && !"6".equals(order.getStatus())) { secondHand++; } // 返佣订单 if (!"0".equals(order.getRebateFlag()) && (!"1".equals(order.getRefundType()) && !"2".equals(order.getRefundType()) || StringUtils.isEmpty(order.getRefundType())) && !"6".equals(order.getStatus())) { rebate++; } // 部分退款 if ("1".equals(order.getRefundType()) && !"6".equals(order.getStatus())) { partialRefund++; } // 全部退款 if ("2".equals(order.getRefundType()) && !"6".equals(order.getStatus())) { fullRefund++; } // 已关闭 if ("6".equals(order.getStatus()) && StringUtils.isEmpty(order.getStatus())) { closed++; } } cmPortrait.setOrderTotalAmount(orderList.get(0).getTotalMoney()); cmPortrait.setOrderTotal(orderList.get(0).getNumbers()); orderPortrait.setValue(ordinary); if (ordinary != 0) { orderPortrait.setName("普通订单 【" + ordinary / orderList.size() * 100 + "%】 【" + ordinary + "个】"); } else { orderPortrait.setName("普通订单 【 0 】 【" + ordinary + "个】"); } orderPortraits.add(orderPortrait); orderPortrait.setValue(secondHand); if (secondHand != 0) { orderPortrait.setName("二手订单 【" + secondHand / orderList.size() * 100 + "%】 【" + secondHand + "个】"); } else { orderPortrait.setName("二手订单 【 0 】 【" + secondHand + "个】"); } orderPortraits.add(orderPortrait); orderPortrait.setValue(rebate); if (rebate != 0) { orderPortrait.setName("返佣订单 【" + rebate / orderList.size() * 100 + "%】 【" + rebate + "个】"); } else { orderPortrait.setName("返佣订单 【 0 】 【" + rebate + "个】"); } orderPortraits.add(orderPortrait); orderPortrait.setValue(partialRefund); if (partialRefund != 0) { orderPortrait.setName("部分退款订单 【" + partialRefund / orderList.size() * 100 + "%】 【" + partialRefund + "个】"); } else { orderPortrait.setName("部分退款订单 【 0 】 【" + partialRefund + "个】"); } orderPortraits.add(orderPortrait); orderPortrait.setValue(fullRefund); if (fullRefund != 0) { orderPortrait.setName("全部退款订单 【" + fullRefund / orderList.size() * 100 + "%】 【" + fullRefund + "个】"); } else { orderPortrait.setName("全部退款订单 【 0 】 【" + fullRefund + "个】"); } orderPortraits.add(orderPortrait); orderPortrait.setValue(closed); if (closed != 0) { orderPortrait.setName("已关闭订单 【" + closed / orderList.size() * 100 + "%】 【" + closed + "个】"); } else { orderPortrait.setName("已关闭订单 【 0 】 【" + closed + "个】"); } orderPortraits.add(orderPortrait); cmPortrait.setOrderPortrait(orderPortraits); } } // 搜索关键词 if (1 == cmPortrait.getType() || 4 == cmPortrait.getType()) { List behaviorRecordList = cmPortraitDao.selBehaviorList(cmPortrait); ArrayList integers = new ArrayList<>(); ArrayList strings = new ArrayList<>(); if (behaviorRecordList.size() != 0) { for (CmBehaviorRecord record : behaviorRecordList) { integers.add(record.getNumber()); if (!ObjectUtils.isEmpty(record.getPageLabel())) { strings.add(record.getPageLabel()); } else { strings.add("未知"); } cmPortrait.setTotalkeywords(behaviorRecordList.get(0).getNumbers()); cmPortrait.setBehaviorValue(integers); cmPortrait.setBehaviorType(strings); } } } // 咨询记录 if (2 == cmPortrait.getType() || 4 == cmPortrait.getType()) { List remarksList = cmPortraitDao.selRemarksList(cmPortrait); ArrayList integers = new ArrayList<>(); ArrayList strings = new ArrayList<>(); if (remarksList.size() != 0) { for (CmClubRemarks remarks: remarksList) { integers.add(remarks.getNumber()); if (!ObjectUtils.isEmpty(remarks.getRemarks())) { strings.add(remarks.getRemarks()); } else { strings.add("未知"); } } cmPortrait.setRemarksTotal(remarksList.get(0).getNumbers()); cmPortrait.setRemarksValue(integers); cmPortrait.setRemarksType(strings); } } // 访问记录 if (3 == cmPortrait.getType() || 4 == cmPortrait.getType()) { List pageTypeList = cmPortraitDao.selBehaviorPageTypeList(cmPortrait); ArrayList integers = new ArrayList<>(); ArrayList strings = new ArrayList<>(); if (pageTypeList.size() != 0) { for(CmBehaviorRecord record : pageTypeList) { integers.add(record.getNumbers()); strings.add(record.getPageType()); } cmPortrait.setPageTypeValue(integers); cmPortrait.setPageType(strings); } } return cmPortrait; } }