123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- 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<OrderPortrait> orderPortraits = new ArrayList<>();
- OrderPortrait orderPortrait = new OrderPortrait();
- List<NewOrder> 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<CmBehaviorRecord> behaviorRecordList = cmPortraitDao.selBehaviorList(cmPortrait);
- ArrayList<Integer> integers = new ArrayList<>();
- ArrayList<String> 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<CmClubRemarks> remarksList = cmPortraitDao.selRemarksList(cmPortrait);
- ArrayList<Integer> integers = new ArrayList<>();
- ArrayList<String> 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<CmBehaviorRecord> pageTypeList = cmPortraitDao.selBehaviorPageTypeList(cmPortrait);
- ArrayList<Integer> integers = new ArrayList<>();
- ArrayList<String> 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;
- }
- }
|