123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- 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.NumberFormat;
- 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 dataTotal(CmPortrait cmPortrait) {
- CmPortrait cmPortraits = cmPortraitDao.selTotal(cmPortrait);
- return cmPortraits;
- }
- /**
- * 查询机构画像数据
- * @param cmPortrait
- * @return
- */
- public CmPortrait dataList(CmPortrait cmPortrait) {
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
- Date date = new Date();
- String endTime = "";
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.DAY_OF_MONTH, -1);
- Date time = calendar.getTime();
- endTime = dateFormat.format(time);
- String time1 = "";
- String time2 = "";
- boolean expty = ObjectUtils.isEmpty(cmPortrait.getStartTime()) && ObjectUtils.isEmpty(cmPortrait.getEndTime());
- if (expty) {
- Date start = null;
- String startTime = "";
- String format = dateFormat.format(date);
- cmPortrait.setEndTime(endTime);
- // 日期参数为 日
- if (0 == cmPortrait.getDateType() || 1 == cmPortrait.getDateType()) {
- cmPortrait.setAccessDate(endTime);
- cmPortrait.setStartTime(endTime);
- // cmPortrait.setEndTime(endTime);
- }
- if (2 == cmPortrait.getDateType()) {
- // cmPortrait.setEndTime(endTime);
- calendar.setTime(time);
- calendar.add(Calendar.MONTH, -1);
- start = calendar.getTime();
- startTime = dateFormat.format(start);
- cmPortrait.setStartTime(startTime);
- }
- if (3 == cmPortrait.getDateType()) {
- // cmPortrait.setEndTime(endTime);
- calendar.setTime(time);
- calendar.add(Calendar.MONTH, -6);
- start = calendar.getTime();
- startTime = dateFormat.format(start);
- cmPortrait.setStartTime(startTime);
- }
- if (4 == cmPortrait.getDateType()) {
- // cmPortrait.setEndTime(endTime);
- calendar.setTime(time);
- calendar.add(Calendar.YEAR, -1);
- start = calendar.getTime();
- startTime = dateFormat.format(start);
- cmPortrait.setStartTime(startTime);
- }
- } else {
- time1 = cmPortrait.getStartTime();
- time2 = cmPortrait.getEndTime();
- }
- // 机构订单
- if (0 == cmPortrait.getType() || 4 == cmPortrait.getType()) {
- if ((0 == cmPortrait.getDateType() || 1 == cmPortrait.getDateType()) && expty) {
- cmPortrait.setEndTime(dateFormat.format(date));
- }
- if (cmPortrait.getEndTime().equals(endTime)) {
- cmPortrait.setEndTime(dateFormat.format(date));
- }
- int ordinary = 0, secondHand = 0, rebate = 0, partialRefund = 0, fullRefund = 0, closed = 0;
- ArrayList<OrderPortrait> orderPortraits = new ArrayList<>();
- OrderPortrait orderPortrait = new OrderPortrait();
- List<NewOrder> orderList = cmPortraitDao.selOrderList(cmPortrait);
- int length = orderList.size();
- NumberFormat instance = NumberFormat.getInstance();
- instance.setMaximumFractionDigits(2);
- if (length != 0) {
- for (NewOrder order : orderList) {
- // 普通订单
- if (("0".equals(order.getSecondHandOrderFlag()) || StringUtils.isEmpty(order.getSecondHandOrderFlag()))
- && (!"1".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()) && !"1".equals(order.getRebateFlag())
- && (!"1".equals(order.getRefundType()) && !"2".equals(order.getRefundType())) && !"6".equals(order.getStatus())) {
- secondHand++;
- }
- // 返佣订单
- if ("1".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());*/
- cmPortrait.setOrderTotal(length);
- orderPortrait.setValue(ordinary);
- if (ordinary != 0) {
- orderPortrait.setName("普通订单 【" + instance.format((float)ordinary / (float) length * 100) + "%】 【" + ordinary + "个】");
- } else {
- orderPortrait.setName("普通订单 【 0 %】 【" + ordinary + "个】");
- }
- orderPortraits.add(orderPortrait);
- orderPortrait = new OrderPortrait();
- orderPortrait.setValue(secondHand);
- if (secondHand != 0) {
- orderPortrait.setName("二手订单 【" + instance.format((float)secondHand / (float) length * 100) + "%】 【" + secondHand + "个】");
- } else {
- orderPortrait.setName("二手订单 【 0 %】 【" + secondHand + "个】");
- }
- orderPortraits.add(orderPortrait);
- orderPortrait = new OrderPortrait();
- orderPortrait.setValue(rebate);
- if (rebate != 0) {
- orderPortrait.setName("返佣订单 【" + instance.format((float)rebate / (float) length * 100) + "%】 【" + rebate + "个】");
- } else {
- orderPortrait.setName("返佣订单 【 0 %】 【" + rebate + "个】");
- }
- orderPortraits.add(orderPortrait);
- orderPortrait = new OrderPortrait();
- orderPortrait.setValue(partialRefund);
- if (partialRefund != 0) {
- orderPortrait.setName("部分退款订单 【" + instance.format((float)partialRefund / (float) length * 100) + "%】 【" + partialRefund + "个】");
- } else {
- orderPortrait.setName("部分退款订单 【 0 %】 【" + partialRefund + "个】");
- }
- orderPortraits.add(orderPortrait);
- orderPortrait = new OrderPortrait();
- orderPortrait.setValue(fullRefund);
- if (fullRefund != 0) {
- orderPortrait.setName("全部退款订单 【" + instance.format((float)fullRefund / (float) length * 100) + "%】 【" + fullRefund + "个】");
- } else {
- orderPortrait.setName("全部退款订单 【 0 %】 【" + fullRefund + "个】");
- }
- orderPortraits.add(orderPortrait);
- orderPortrait = new OrderPortrait();
- orderPortrait.setValue(closed);
- if (closed != 0) {
- orderPortrait.setName("已关闭订单 【" + instance.format((float)closed / (float) length * 100) + "%】 【" + closed + "个】");
- } else {
- orderPortrait.setName("已关闭订单 【 0 %】 【" + closed + "个】");
- }
- orderPortraits.add(orderPortrait);
- cmPortrait.setOrderPortrait(orderPortraits);
- }
- calendar.setTime(date);
- calendar.add(Calendar.DAY_OF_MONTH, -1);
- time = calendar.getTime();
- endTime = dateFormat.format(time);
- cmPortrait.setEndTime(endTime);
- }
- // 搜索关键词
- 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()) {
- if ((0 == cmPortrait.getDateType() || 1 == cmPortrait.getDateType()) && expty) {
- cmPortrait.setEndTime(dateFormat.format(date));
- }
- if (cmPortrait.getEndTime().equals(endTime)) {
- cmPortrait.setEndTime(dateFormat.format(date));
- }
- List<CmClubRemarks> remarksList = cmPortraitDao.selRemarksList(cmPortrait);
- ArrayList<Integer> integers = new ArrayList<>();
- ArrayList<String> strings = new ArrayList<>();
- ArrayList<String> strRemark = new ArrayList<>();
- int number = 0;
- if (remarksList.size() != 0) {
- for (CmClubRemarks remarks: remarksList) {
- String[] split = remarks.getRemarks().split(",");
- for (String str : split) {
- if (!strRemark.contains(str)) {
- strRemark.add(str);
- }
- }
- }
- for (String str : strRemark) {
- for (CmClubRemarks remarks: remarksList) {
- if (remarks.getRemarks().contains(str)) {
- number++;
- }
- }
- integers.add(number);
- if (!ObjectUtils.isEmpty(str)) {
- strings.add(str);
- } else {
- strings.add("未知");
- }
- number = 0;
- }
- cmPortrait.setRemarksTotal(remarksList.get(0).getNumbers());
- cmPortrait.setRemarksValue(integers);
- cmPortrait.setRemarksType(strings);
- }
- calendar.setTime(date);
- calendar.add(Calendar.DAY_OF_MONTH, -1);
- time = calendar.getTime();
- endTime = dateFormat.format(time);
- cmPortrait.setEndTime(endTime);
- }
- // 访问记录
- 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.getPageLabel());
- }
- cmPortrait.setPageTypeValue(integers);
- cmPortrait.setPageType(strings);
- }
- }
- if (!expty) {
- cmPortrait.setStartTime(time1);
- if ((0 == cmPortrait.getDateType() || 1 == cmPortrait.getDateType()) && ObjectUtils.isEmpty(cmPortrait.getStartTime())) {
- cmPortrait.setStartTime(time2);
- }
- cmPortrait.setEndTime(time2);
- }
- return cmPortrait;
- }
- }
|