소스 검색

机构画像调试

huangzhiguo 2 년 전
부모
커밋
391c614f79

+ 2 - 0
src/main/java/com/caimei/modules/user/dao/CmPortraitDao.java

@@ -18,6 +18,8 @@ import java.util.List;
 @MyBatisDao
 public interface CmPortraitDao extends CrudDao<CmPortrait> {
 
+    CmPortrait selTotal(CmPortrait cmPortrait);
+
     List<NewOrder> selOrderList(CmPortrait cmPortrait);
 
     List<CmBehaviorRecord> selBehaviorList(CmPortrait cmPortrait);

+ 19 - 0
src/main/java/com/caimei/modules/user/entity/ArrDate.java

@@ -13,6 +13,9 @@ public class ArrDate {
     private ArrayList<String> name;
     private ArrayList<Integer> value;
 
+    private ArrayList<OrderPortrait> orderList;
+    private Integer orderTotalNum;
+
     public ArrayList<String> getName() {
         return name;
     }
@@ -28,4 +31,20 @@ public class ArrDate {
     public void setValue(ArrayList<Integer> value) {
         this.value = value;
     }
+
+    public ArrayList<OrderPortrait> getOrderList() {
+        return orderList;
+    }
+
+    public void setOrderList(ArrayList<OrderPortrait> orderList) {
+        this.orderList = orderList;
+    }
+
+    public Integer getOrderTotalNum() {
+        return orderTotalNum;
+    }
+
+    public void setOrderTotalNum(Integer orderTotalNum) {
+        this.orderTotalNum = orderTotalNum;
+    }
 }

+ 10 - 0
src/main/java/com/caimei/modules/user/entity/CmPortrait.java

@@ -14,6 +14,8 @@ public class CmPortrait extends DataEntity<CmPortrait> {
 
     // 机构id
     private Integer clubID;
+    // 机构名称
+    private String clubName;
     // 日期类别 0日 1月 2半年 3全年
     private Integer dateType;
     // 开始时间
@@ -56,6 +58,14 @@ public class CmPortrait extends DataEntity<CmPortrait> {
         this.clubID = clubID;
     }
 
+    public String getClubName() {
+        return clubName;
+    }
+
+    public void setClubName(String clubName) {
+        this.clubName = clubName;
+    }
+
     public Integer getDateType() {
         return dateType;
     }

+ 19 - 10
src/main/java/com/caimei/modules/user/service/ClubPortraitService.java

@@ -28,6 +28,15 @@ public class ClubPortraitService {
 
     @Autowired private CmPortraitDao cmPortraitDao;
 
+    /**
+     * 查询画像资料总数
+     * @param cmPortrait
+     * @return
+     */
+    public CmPortrait dataTotal(CmPortrait cmPortrait) {
+        CmPortrait cmPortraits = cmPortraitDao.selTotal(cmPortrait);
+        return cmPortraits;
+    }
     /**
      * 查询机构画像数据
      * @param cmPortrait
@@ -75,13 +84,12 @@ public class ClubPortraitService {
         // 机构订单
         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()))
@@ -108,12 +116,13 @@ public class ClubPortraitService {
                         fullRefund++;
                     }
                     // 已关闭
-                    if ("6".equals(order.getStatus()) && StringUtils.isEmpty(order.getStatus())) {
+                    if ("6".equals(order.getStatus()) || StringUtils.isEmpty(order.getStatus())) {
                         closed++;
                     }
                 }
-                cmPortrait.setOrderTotalAmount(orderList.get(0).getTotalMoney());
-                cmPortrait.setOrderTotal(orderList.get(0).getNumbers());
+                /*cmPortrait.setOrderTotalAmount(orderList.get(0).getTotalMoney());
+                cmPortrait.setOrderTotal(orderList.get(0).getNumbers());*/
+                cmPortrait.setOrderTotal(orderList.size());
                 orderPortrait.setValue(ordinary);
                 if (ordinary != 0) {
                     orderPortrait.setName("普通订单 【" + ordinary / orderList.size() * 100 + "%】 【" + ordinary + "个】");
@@ -121,7 +130,7 @@ public class ClubPortraitService {
                     orderPortrait.setName("普通订单 【 0 】 【" + ordinary + "个】");
                 }
                 orderPortraits.add(orderPortrait);
-
+                orderPortrait = new OrderPortrait();
                 orderPortrait.setValue(secondHand);
                 if (secondHand != 0) {
                     orderPortrait.setName("二手订单 【" + secondHand / orderList.size() * 100 + "%】 【" + secondHand + "个】");
@@ -129,7 +138,7 @@ public class ClubPortraitService {
                     orderPortrait.setName("二手订单 【 0 】 【" + secondHand + "个】");
                 }
                 orderPortraits.add(orderPortrait);
-
+                orderPortrait = new OrderPortrait();
                 orderPortrait.setValue(rebate);
                 if (rebate != 0) {
                     orderPortrait.setName("返佣订单 【" + rebate / orderList.size() * 100 + "%】 【" + rebate + "个】");
@@ -137,7 +146,7 @@ public class ClubPortraitService {
                     orderPortrait.setName("返佣订单 【 0 】 【" + rebate + "个】");
                 }
                 orderPortraits.add(orderPortrait);
-
+                orderPortrait = new OrderPortrait();
                 orderPortrait.setValue(partialRefund);
                 if (partialRefund != 0) {
                     orderPortrait.setName("部分退款订单 【" + partialRefund / orderList.size() * 100 + "%】 【" + partialRefund + "个】");
@@ -145,7 +154,7 @@ public class ClubPortraitService {
                     orderPortrait.setName("部分退款订单 【 0 】 【" + partialRefund + "个】");
                 }
                 orderPortraits.add(orderPortrait);
-
+                orderPortrait = new OrderPortrait();
                 orderPortrait.setValue(fullRefund);
                 if (fullRefund != 0) {
                     orderPortrait.setName("全部退款订单 【" + fullRefund / orderList.size() * 100 + "%】 【" + fullRefund + "个】");
@@ -153,7 +162,7 @@ public class ClubPortraitService {
                     orderPortrait.setName("全部退款订单 【 0 】 【" + fullRefund + "个】");
                 }
                 orderPortraits.add(orderPortrait);
-
+                orderPortrait = new OrderPortrait();
                 orderPortrait.setValue(closed);
                 if (closed != 0) {
                     orderPortrait.setName("已关闭订单 【" + closed / orderList.size() * 100 + "%】 【" + closed + "个】");

+ 12 - 4
src/main/java/com/caimei/modules/user/web/newUser/AgencyController.java

@@ -1402,9 +1402,9 @@ public class AgencyController extends BaseController {
 
     @RequestMapping("/clubPortrait")
     public String clubPortrait(CmPortrait cmPortrait, Model model) {
-        //CmPortrait portrait = portraitService.dataList(cmPortrait);
+        CmPortrait portrait = portraitService.dataTotal(cmPortrait);
         model.addAttribute("cmPortrait",cmPortrait);
-        //model.addAttribute("portrait",portrait);
+        model.addAttribute("portrait",portrait);
         return "modules/userNew/cmClubPortrait";
     }
 
@@ -1414,11 +1414,18 @@ public class AgencyController extends BaseController {
         Map<String, Object> map = Maps.newLinkedHashMap();
         try {
             CmPortrait portrait = portraitService.dataList(cmPortrait);
+            ArrDate order = new ArrDate();
             ArrDate behavior = new ArrDate();
             ArrDate remarks = new ArrDate();
             ArrDate pageType = new ArrDate();
 
-            ArrayList<OrderPortrait> orderPortrait = portrait.getOrderPortrait();
+//            ArrayList<OrderPortrait> orderPortrait = portrait.getOrderPortrait();
+            order.setOrderList(portrait.getOrderPortrait());
+            if (portrait.getOrderTotal() == null) {
+                portrait.setOrderTotal(0);
+            }
+            order.setOrderTotalNum(portrait.getOrderTotal());
+
             behavior.setName(portrait.getBehaviorType());
             behavior.setValue(portrait.getBehaviorValue());
 
@@ -1427,11 +1434,12 @@ public class AgencyController extends BaseController {
 
             pageType.setName(portrait.getPageType());
             pageType.setValue(portrait.getPageTypeValue());
+
             map.put("portrait",portrait);
             map.put("behavior",behavior);
             map.put("remarks",remarks);
             map.put("pageType",pageType);
-            map.put("orderPortrait",orderPortrait);
+            map.put("order",order);
             map.put("code",0);
         } catch (Exception e) {
             e.printStackTrace();

+ 7 - 0
src/main/resources/mappings/modules/user/CmPortraitMapper.xml

@@ -1,6 +1,13 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.user.dao.CmPortraitDao">
+    <select id="selTotal" resultType="com.caimei.modules.user.entity.CmPortrait">
+        SELECT
+                (SELECT COUNT(orderID) FROM cm_order WHERE clubID = #{clubID}) AS orderTotal,
+                (SELECT SUM(productTotalFee) FROM cm_order WHERE clubID = #{clubID}) AS orderTotalAmount,
+                (SELECT COUNT(cbr.recordID) FROM cm_behavior_record cbr LEFT JOIN club c ON cbr.userID = c.userID WHERE cbr.pageType IN (8, 9) AND c.clubID = #{clubID}) AS totalkeywords ,
+                (SELECT COUNT(remarks) FROM cm_club_remarks WHERE clubID = #{clubID} ) AS remarksTotal
+    </select>
     <select id="selOrderList" resultType="com.caimei.modules.order.entity.NewOrder">
         SELECT
                (SELECT COUNT(orderID) FROM cm_order WHERE clubID = #{clubID}) as numbers,

+ 7 - 7
src/main/webapp/WEB-INF/views/modules/userNew/cmClubPortrait.jsp

@@ -10,21 +10,21 @@
 <body>
 <ul class="nav nav-tabs">
     <li><a href="${ctx}/new/user/agency/">机构列表</a></li>
-    <li class="active"><a href="${ctx}/new/user/agency/clubPortrait?clubID=${cmPortrait.clubID}&dateType=0&type=4">机构画像</a></li>
+    <li class="active"><a href="${ctx}/new/user/agency/clubPortrait?clubID=${cmPortrait.clubID}&clubName=${cmPortrait.clubName}&dateType=0&type=4">机构画像</a></li>
 </ul>
 <div class="ul-form">
     <input type="hidden" id="clubId" value="${cmPortrait.clubID}">
     <input type="hidden" id="eachtsAjaxUrl" value="${ctx}/new/user/agency/selPortraitData">
     <ul class="nav nav-tabs">
-        <li class="active"><a href="${ctx}/new/user/agency/clubPortrait?clubID=${cmPortrait.clubID}&dateType=0&type=4">仪表盘</a></li>
+        <li class="active"><a href="${ctx}/new/user/agency/clubPortrait?clubID=${cmPortrait.clubID}&clubName=${cmPortrait.clubName}&dateType=0&type=4">仪表盘</a></li>
         <li><a href="${ctx}/new/user/agency/clubData?clubID=${cmPortrait.clubID}">机构资料</a></li>
     </ul>
     <div class="main-content">
         <div class="flex-content">
             <div class="flex-box">
                 <div class="box-title">
-                    <span>订单总量:<a href="#">${portrait.orderTotal}个</a></span>
-                    <span>购买总额:<a href="#">¥${portrait.orderTotalAmount}</a></span>
+                    <span>订单总量:<a href="${ctx}/order/orderList?buyer=${cmPortrait.clubName}"><c:if test="${!empty portrait.orderTotal}">${portrait.orderTotal}</c:if><c:if test="${empty portrait.orderTotal}">0</c:if> 个</a></span>
+                    <span>购买总额:<a href="javascript: void(0);">¥<c:if test="${!empty portrait.orderTotalAmount}">${portrait.orderTotalAmount}</c:if><c:if test="${empty portrait.orderTotalAmount}">0</c:if></a></span>
                 </div>
                 <div class="box-tabmain">
                     <div class="box-tabs" id="orderTabs">
@@ -44,7 +44,7 @@
                     </div>
                 </div>
                 <div class="box-eachts">
-                    <div class="eachts-total">订单数:<span>200个</span></div>
+                    <div class="eachts-total">订单数:<span id="orderTotalNum"></span></div>
                     <div class="eachts-data" id="orderEacths" style="">
                         <!-- orderEacths表 -->
                     </div>
@@ -55,7 +55,7 @@
             </div>
             <div class="flex-box">
                 <div class="box-title">
-                    <span>搜索关键词总数:<a href="#">${portrait.totalkeywords}条</a></span>
+                    <span>搜索关键词总数:<a href="${ctx}/user/behavior/record/list?behaviorType=1&corporateName=${cmPortrait.clubName}"><c:if test="${!empty portrait.totalkeywords}">${portrait.totalkeywords}</c:if><c:if test="${empty portrait.totalkeywords}">0</c:if> 条</a></span>
                 </div>
                 <div class="box-tabmain">
                     <div class="box-tabs" id="keyWordTabs">
@@ -87,7 +87,7 @@
         <div class="flex-content">
             <div class="flex-box">
                 <div class="box-title">
-                    <span>咨询记录总数:<a href="#">${portrait.remarksTotal}条</a></span>
+                    <span>咨询记录总数:<a href="${ctx}/new/user/agency/regist?clubName=${cmPortrait.clubName}"><c:if test="${!empty portrait.remarksTotal}">${portrait.remarksTotal}</c:if><c:if test="${empty portrait.remarksTotal}">0</c:if> 条</a></span>
                 </div>
                 <div class="box-tabmain">
                     <div class="box-tabs" id="serviceTabs">

+ 3 - 2
src/main/webapp/static/modules/cmClubPortrait/cmClubEacths.js

@@ -148,12 +148,13 @@ const  getClubEacthsData = function (type,dateType) {
             if (data.code === 0) {
                 switch (type) {
                     case 0:
-                        if(!data.orderPortrait){
+                        if(!data.order){
                             $('#orderEacthsNone').show();
                             $('#orderEacths').hide();
                             $('.eachts-total').hide();
                         }else{
-                            getOrderEacths(data.orderPortrait)
+                            getOrderEacths(data.order.orderList);
+                            $('#orderTotalNum').text(`${data.order.orderTotalNum}个`);
                         }
                         break;
                     case 1: