Pārlūkot izejas kodu

CRM系统升级优化

kaick 1 gadu atpakaļ
vecāks
revīzija
9ef14315f8

+ 1 - 0
src/main/java/com/caimei/modules/sys/utils/SMSUtils.java

@@ -63,6 +63,7 @@ public class SMSUtils {
         list.add("15827317748");
         list.add("18476937515");
         list.add("18175515644");
+        list.add("17708413951");
         if (list.contains(mobile) || wwwServer.contains("www.caimei365.com")) {
             String coreServer = Global.getConfig("caimei.core");
             RestTemplate restTemplate = new RestTemplate();

+ 9 - 0
src/main/java/com/caimei/modules/user/entity/CmUser.java

@@ -59,6 +59,7 @@ public class CmUser extends DataEntity<CmUser> {
     private String openID;//微信openID
     private String bindMobile;//企业绑定手机号
     private String linkMan;//联系人
+    private Integer scanFlag;//联系人
 
     //会所用户信息
     private String town; // 区
@@ -70,6 +71,14 @@ public class CmUser extends DataEntity<CmUser> {
     private String userIds;  //用户id","隔开
     private boolean storeStatus = false; //是否存在数据库
 
+    public Integer getScanFlag() {
+        return scanFlag;
+    }
+
+    public void setScanFlag(Integer scanFlag) {
+        this.scanFlag = scanFlag;
+    }
+
     public CmUser() {
         super();
     }

+ 39 - 1
src/main/java/com/caimei/modules/user/entity/NewCmSp.java

@@ -5,6 +5,7 @@ import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotNull;
 import java.beans.Transient;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -31,6 +32,11 @@ public class NewCmSp extends DataEntity<NewCmSp> {
 	private String addTime;		// 创建时间
 	private Integer mainServiceProviderID;		// 创客经理Id
 	private List<CmSaleMan> teams;  //小组组长列表
+	//活跃比例
+	private Integer livelyClub;
+	private Integer nolivelyClub;
+	private BigDecimal livelyClubProportion;
+	private BigDecimal nolivelyClubProportion;
 //	private String nameEn;		// 英文名
 //	private String site;		// 网址
 //	private String logo;		// 头像
@@ -96,6 +102,38 @@ public class NewCmSp extends DataEntity<NewCmSp> {
 		return teams;
 	}
 
+	public Integer getLivelyClub() {
+		return livelyClub;
+	}
+
+	public void setLivelyClub(Integer livelyClub) {
+		this.livelyClub = livelyClub;
+	}
+
+	public Integer getNolivelyClub() {
+		return nolivelyClub;
+	}
+
+	public void setNolivelyClub(Integer nolivelyClub) {
+		this.nolivelyClub = nolivelyClub;
+	}
+
+	public BigDecimal getLivelyClubProportion() {
+		return livelyClubProportion;
+	}
+
+	public void setLivelyClubProportion(BigDecimal livelyClubProportion) {
+		this.livelyClubProportion = livelyClubProportion;
+	}
+
+	public BigDecimal getNolivelyClubProportion() {
+		return nolivelyClubProportion;
+	}
+
+	public void setNolivelyClubProportion(BigDecimal nolivelyClubProportion) {
+		this.nolivelyClubProportion = nolivelyClubProportion;
+	}
+
 	public void setTeams(List<CmSaleMan> teams) {
 		this.teams = teams;
 	}
@@ -635,4 +673,4 @@ public class NewCmSp extends DataEntity<NewCmSp> {
 	public void setContractMobile(String contractMobile) {
 		this.contractMobile = contractMobile;
 	}
-}
+}

+ 2 - 1
src/main/java/com/caimei/modules/user/web/newUser/AgencyController.java

@@ -172,7 +172,7 @@ public class AgencyController extends BaseController {
         return "modules/userNew/cmAgencyList";
     }
     /**
-     * 功能描述: 机构活跃分析查看详情
+     * 功能描述:新分配机构跟踪管理
      *
      * @param newCmClub
      * @param request
@@ -189,6 +189,7 @@ public class AgencyController extends BaseController {
             date.setTime(date.getTime() - 24 * 60 * 60 * 1000);
             newCmClub.setProviderTime(date);
         }
+        newCmClub.setNewDeal(1);
         Page<NewCmClub> page = newCmClubService.findProviderList(new Page<NewCmClub>(request, response, 20), newCmClub);
         // 协销下拉
         List<ServiceProviderModel> spNameList = newCmClubDao.spNameList();

+ 38 - 25
src/main/java/com/caimei/modules/user/web/newUser/SpController.java

@@ -46,10 +46,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Description
@@ -220,6 +217,18 @@ public class SpController extends BaseController {
                                         .clubId(newCmClub.getClubID())
                                 );
                                 MessageUtil.sendMessage(insideMessageMessageModel);
+                                insideMessageMessageModel.info(new InsideMessage()
+                                        .userType(1)
+                                        .messageType(3)
+                                        .shopTieredType(6)
+                                        .userName(serviceProvider.getName())
+                                        .mobile(serviceProvider.getContractMobile())
+                                        .clubId(newCmClub.getClubID())
+                                );
+                                MessageUtil.sendMessage(insideMessageMessageModel);
+                                SMSUtils.sendSms(4, newCmClub.getContractMobile(), "【采美365】因公司内部人员调整需要,采美平台已为您更换客户经理。客户经理【" + serviceProvider.getName() + "】,手机号【" + serviceProvider.getContractMobile() + "】。");
+                                SMSUtils.sendSms(4, serviceProvider.getContractMobile(), "【采美365】系统已为你分配机构客户,请及时跟进。机构名称【" + newCmClub.getName() + "】,联系人【" + newCmClub.getLinkMan() + "】,手机号【" + newCmClub.getContractMobile() + "】,上一任销售【" + oldServiceprovider.getName() + "】。");
+                                SMSUtils.sendSms(4, oldServiceprovider.getContractMobile(), "【采美365】系统已将你的机构客户转移给其他销售人员,你已无权管理该客户。机构名称【" + newCmClub.getName() + "】,联系人【" + newCmClub.getLinkMan() + "】,手机号【" + newCmClub.getContractMobile() + "】,下一任销售【" + serviceProvider.getName() + "】。");
                             }else {
                                 insideMessageMessageModel.info(new InsideMessage()
                                         .userType(3)
@@ -232,22 +241,9 @@ public class SpController extends BaseController {
                                         .clubId(newCmClub.getClubID())
                                 );
                                 MessageUtil.sendMessage(insideMessageMessageModel);
+                                SMSUtils.sendSms(4, oldServiceprovider.getContractMobile(), "【采美365】系统已将你的机构客户进行回收,你已无权管理该客户。机构名称【" + newCmClub.getName() + "】,联系人【"+ newCmClub.getLinkMan() +"】,手机号【"+ newCmClub.getContractMobile() +"】。");
                             }
 
-
-                            insideMessageMessageModel.info(new InsideMessage()
-                                    .userType(1)
-                                    .messageType(3)
-                                    .shopTieredType(6)
-                                    .userName(serviceProvider.getName())
-                                    .mobile(serviceProvider.getContractMobile())
-                                    .clubId(newCmClub.getClubID())
-                            );
-                            MessageUtil.sendMessage(insideMessageMessageModel);
-
-                            SMSUtils.sendSms(4, serviceProvider.getContractMobile(), "【采美365】系统已为你分配机构客户,请及时跟进。机构名称【" + newCmClub.getName() + "】,联系人【" + newCmClub.getLinkMan() + "】,手机号【" + newCmClub.getContractMobile() + "】,上一任销售【" + oldServiceprovider.getName() + "】。");
-                            SMSUtils.sendSms(4, newCmClub.getContractMobile(), "【采美365】因公司内部人员调整需要,采美平台已为您更换客户经理。客户经理【" + serviceProvider.getName() + "】,手机号【" + serviceProvider.getContractMobile() + "】。");
-                            SMSUtils.sendSms(4, oldServiceprovider.getContractMobile(), "【采美365】系统已将你的机构客户转移给其他销售人员,你已无权管理该客户。机构名称【" + newCmClub.getName() + "】,联系人【" + newCmClub.getLinkMan() + "】,手机号【" + newCmClub.getContractMobile() + "】,下一任销售【" + serviceProvider.getName() + "】。");
                         }
                     } else {
                         map.put("success", false);
@@ -332,11 +328,22 @@ public class SpController extends BaseController {
     public String cmSpLivelyClubList(NewCmSp newCmSp, HttpServletRequest request, HttpServletResponse response, Model model) {
         newCmSp.setStatus(90);
         Page<NewCmSp> page = cmSpService.findPage(new Page<NewCmSp>(request, response), newCmSp);
+        page.getList().forEach(s->{
+            Map<String, Object> spUserLoginSum = cmSpService.findSpUserLoginSum(s.getServiceProviderID().toString());
+            Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
+            Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
+            //        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
+            BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
+            s.setLivelyClub(loginSum);
+            s.setNolivelyClub(not_loginSum);
+            s.setLivelyClubProportion(livelyClubProportion);
+            s.setNolivelyClubProportion(MathUtil.sub(100, livelyClubProportion).setScale(2));
+        });
         Map<String, Object> spUserLoginSum = cmSpService.findSpUserLoginSum(null);
         Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
         Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
         //        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
-        BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ? loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
+        BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
         model.addAttribute("livelyClub", loginSum);
         model.addAttribute("nolivelyClub", not_loginSum);
         model.addAttribute("livelyClubProportion", livelyClubProportion);
@@ -345,6 +352,8 @@ public class SpController extends BaseController {
         return "modules/userNew/cmSpLivelyClubList";
     }
 
+
+
     /**
      * 功能描述: 机构活跃分析查看详情
      *
@@ -358,21 +367,22 @@ public class SpController extends BaseController {
     @RequestMapping(value = {"cmSpLivelyClubFrom"})
     public String cmSpLivelyClubFrom(NewCmClub newCmClub, HttpServletRequest request, HttpServletResponse response, Model model) {
         if (StringUtils.isBlank(newCmClub.getStartLoginTime())&&StringUtils.isBlank(newCmClub.getEndLoginTime())) {
-            Date date = new Date();
-            date.setMonth(date.getMonth() - 6);
-            newCmClub.setStartLoginTime(new SimpleDateFormat("yyyy-MM-dd").format(date));
-            newCmClub.setEndLoginTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.MONTH, -6);
+            newCmClub.setStartLoginTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()));
         }
+        newCmClub.setStatus(90);
         Page<NewCmClub> page = newCmClubService.findPage(new Page<NewCmClub>(request, response, 20), newCmClub);
         Map<String, Object> spUserLoginSum = cmSpService.findSpUserLoginSum(newCmClub.getSpID().toString());
         Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
         Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
         //        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
-        BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ? loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
+        BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ? (double)loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
         model.addAttribute("livelyClub", loginSum);
         model.addAttribute("nolivelyClub", not_loginSum);
         model.addAttribute("livelyClubProportion", livelyClubProportion);
         model.addAttribute("nolivelyClubProportion", MathUtil.sub(100, livelyClubProportion).setScale(2));
+        model.addAttribute("spId", newCmClub.getSpID());
         model.addAttribute("page", page);
         return "modules/userNew/cmSpLivelyClubFrom";
     }
@@ -442,6 +452,7 @@ public class SpController extends BaseController {
         }
         NewCmSp cmSp = new NewCmSp();
         CmUser cmUser = new CmUser();
+        cmSp.setName(linkMan);
         cmSp.setLinkMan(linkMan);
         cmSp.setContractMobile(mobile);
         if ("1".equals(duty)) {
@@ -468,6 +479,7 @@ public class SpController extends BaseController {
         }
         cmUser.setUserOrganizeID(0);
         cmUser.setMobile(mobile);
+        cmUser.setBindMobile(mobile);
         cmUser.setUserIdentity(UserIdentity.MAKER.getCode());
         cmUser.setRegisterTime(DateUtils.getDateTime());
         cmUser.setServiceProviderStatus(ServiceProviderStatus.WAIT_CHECK_DATA.getCode() + "");
@@ -592,8 +604,9 @@ public class SpController extends BaseController {
         if ("0".equals(newCmSp.getPosition())) {
             cmUser.setRegisterUserTypeID(UserType.SERVICEEMPLOYEE.getCode() + ""); // 设置为协销员工
         }
-
+        newCmSp.setName(newCmSp.getLinkMan());
         cmUser.setMobile(newCmSp.getContractMobile());
+        cmUser.setBindMobile(newCmSp.getContractMobile());
         cmSpService.save(newCmSp);
         cmUserService.update(cmUser);
         addMessage(redirectAttributes, "保存协销人员管理成功");

+ 34 - 18
src/main/java/com/caimei/modules/utils/MessageUtil.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.caimei.modules.utils.message.InsideMessage;
 import com.caimei.modules.utils.message.MessageModel;
 import com.caimei.modules.utils.message.MqInfo;
+import com.caimei.modules.utils.message.WechatTemplateMessage;
 import com.caimei.modules.utils.message.enums.MessageType;
 import com.caimei.utils.HttpRequest;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -13,15 +14,12 @@ import org.slf4j.LoggerFactory;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 public class MessageUtil {
     protected static Logger logger = LoggerFactory.getLogger(MessageUtil.class);
 
-    public static void sendMessage(MessageModel<InsideMessage> model) {
+    public static void sendMessage(MessageModel model) {
         try {
             String coreServer = Global.getConfig("caimei.core");
             String url = coreServer + "/tools/message/send";
@@ -42,20 +40,38 @@ public class MessageUtil {
     }
 
     public static void main(String[] args) {
-        //站内信
-        MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
-        insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
+
+        //微信模板消息
+        ArrayList<String> keyWords = new ArrayList<>();
+        keyWords.add("name"+"...等"+7+"家机构客户");
+        keyWords.add("pageLabel");
+        keyWords.add("2023-09-12");
+        MessageModel<WechatTemplateMessage> wechatTemplateMessageMessageModel = new MessageModel<WechatTemplateMessage>()
+                .code(MessageType.WECHAT_TEMPLATE_MESSAGE)
                 .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(0))
-                .info(new InsideMessage()
-                        .userType(3)
-                        .messageType(3)
-                        .shopTieredType(7)
-                        .name("机构名称")
-                        .content("pageLabel")
-                        .couponFee(new Double(5))
-                        .thisId(1381)
-                );
-        sendMessage(insideMessageMessageModel);
+                .info(new WechatTemplateMessage()
+                        .first("")
+                        .openId("o9nzn5yD6IOcFuhG4b3OG1droVJw")
+                        .appid("wxf3cd4ae0cdd11c36")
+                        .templateId("Zd7ewJw9-bN-gIgra9flKW96W3YehikRPPkDXPfhmQ0")
+                        .keyWords(keyWords)
+                        .remark("为了更好给您服务,请及时联系采美客服!")
+                        .pagePath("pages/seller/notice/service/Institutional_visits"));
+        sendMessage(wechatTemplateMessageMessageModel);
+//        //站内信
+//        MessageModel<InsideMessage> insideMessageMessageModel = new MessageModel<>();
+//        insideMessageMessageModel.code(MessageType.WEB_INSIDE_MESSAGE)
+//                .mqInfo(new MqInfo().topic("MessageLine").delay(3).async(0))
+//                .info(new InsideMessage()
+//                        .userType(3)
+//                        .messageType(3)
+//                        .shopTieredType(7)
+//                        .name("机构名称")
+//                        .content("pageLabel")
+//                        .couponFee(new Double(5))
+//                        .thisId(1381)
+//                );
+//        sendMessage(insideMessageMessageModel);
 
     }
 

+ 30 - 6
src/main/resources/mappings/modules/user/CmSpMapper.xml

@@ -160,15 +160,39 @@
 
     <select id="findSpUserLoginSum" resultType="java.util.HashMap" parameterType="string">
 		select
-		ifnull(COUNT(CASE WHEN u.loginTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) THEN 1 END),0) AS loginSum,
-		ifnull(COUNT(CASE WHEN u.loginTime <![CDATA[ < ]]> DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) THEN 1 END),0) AS not_loginSum
+		ifnull(COUNT(   CASE WHEN a.time >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) THEN 1 END),0) AS loginSum,
+		ifnull(COUNT(  CASE WHEN a.time <![CDATA[ < ]]> DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) THEN 1 END),0) AS not_loginSum
+		FROM (select a.*
+		FROM (
+		(select
+		c.clubId,u.loginTime AS time,c.spID
 		FROM club c
 		LEFT JOIN user u ON u.userID = c.userID
 		LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-		where sp.status=90
+		where c.status=90 and sp.status=90  and (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4
+		)UNION(
+		select
+		c.clubId,ccr.addTime AS time,c.spID
+		FROM club c
+		LEFT JOIN user u ON u.userID = c.userID
+		LEFT JOIN cm_club_remarks ccr ON ccr.clubId = c.clubId
+		LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+		where c.status=90 and sp.status=90  and (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4
+		and  ccr.addTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
+		)UNION(
+		select c.clubId,cr.orderTime AS time,c.spID
+		FROM club c
+		LEFT JOIN user u ON u.userID = c.userID
+		LEFT JOIN cm_order cr ON cr.clubId = c.clubId
+		LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+		where c.status=90 and sp.status=90 and (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4
+		and  cr.orderTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
+		)
+		) a where a.time is not null
 		<if test="spID != null">
-			and  c.spID=#{spID}
+			and  a.spID=#{spID}
 		</if>
+		GROUP BY a.clubId ) a
 
 	</select>
 	<select id="findSelectList" resultType="com.caimei.modules.user.entity.NewCmSp">
@@ -207,8 +231,8 @@
 	</update>
 
 	<insert id="choseManager">
-		insert into cm_serviceteam_manager (serviceProviderId,delflag)
-		values (#{serviceProviderID},0)
+		insert into cm_serviceteam_manager (serviceProviderId,delflag,validFlag)
+		values (#{serviceProviderID},0,1)
 	</insert>
 
 	<select id="findByUserId" resultType="com.caimei.modules.user.entity.NewCmSp">

+ 36 - 2
src/main/resources/mappings/modules/user/NewCmClubMapper.xml

@@ -151,10 +151,44 @@
                 AND (u.registerTime &lt; #{endTime} OR u.registerTime = #{endTime})
             </if>
             <if test="startLoginTime != null and startLoginTime != ''">
-                AND (u.loginTime &gt; #{startLoginTime} OR u.loginTime = #{startLoginTime})
+                AND (u.loginTime &gt; #{startLoginTime} OR u.loginTime = #{startLoginTime} OR a.clubId= (select aa.clubId
+                FROM ((select
+                c.clubId
+                FROM club c
+                LEFT JOIN cm_club_remarks ccr ON ccr.clubId = c.clubId
+                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+                where c.status=90 and sp.status=90
+                and  ccr.addTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
+                )UNION(
+                select c.clubId
+                FROM club c
+                LEFT JOIN cm_order cr ON cr.clubId = c.clubId
+                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+                where c.status=90 and  sp.status=90
+                and  cr.orderTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
+                )) aa
+                where aa.clubId=a.clubId
+                GROUP BY aa.clubId LIMIT 0,1))
             </if>
             <if test="endLoginTime != null and endLoginTime != ''">
-                AND (u.loginTime &lt; #{endLoginTime} OR u.loginTime = #{endLoginTime})
+                AND (u.loginTime &lt; #{endLoginTime} OR u.loginTime = #{endLoginTime} OR a.clubId != (select aa.clubId
+                FROM ((select
+                c.clubId
+                FROM club c
+                LEFT JOIN cm_club_remarks ccr ON ccr.clubId = c.clubId
+                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+                where c.status=90 and  sp.status=90
+                and  ccr.addTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
+                )UNION(
+                select c.clubId
+                FROM club c
+                LEFT JOIN cm_order cr ON cr.clubId = c.clubId
+                LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+                where c.status=90 and sp.status=90
+                and  cr.orderTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
+                )) aa
+                where aa.clubId=a.clubId
+                GROUP BY aa.clubId LIMIT 0,1))
             </if>
             <if test="userIdentity != null and userIdentity != '' and userIdentity != '8'.toString()">
                 AND u.userIdentity = #{userIdentity}

+ 12 - 6
src/main/webapp/WEB-INF/views/modules/userNew/cmSpClubTrackList.jsp

@@ -84,7 +84,13 @@
 			}
 
 		}
-
+		/**
+		 * @param obj
+		 * jquery控制input只能输入数字
+		 */
+		function onlynum(obj) {
+			obj.value = obj.value.replace(/[^\d]/g, ""); //清除"数字"以外的字符
+		}
 		function page(n, s) {
 			$("#pageNo").val(n);
 			$("#pageSize").val(s);
@@ -98,7 +104,7 @@
 <ul class="nav nav-tabs">
 	<li><a href="${ctx}/new/user/agency/list">机构基本资料列表</a></li>
 	<li><a href="${ctx}/new/user/agency/statisticsList">机构分析统计列表</a></li>
-	<li class="active"><a href=${ctx}/new/user/agency/cmSpClubTrackList/">新分配机构跟踪管理</a></li>
+	<li class="active"><a href="${ctx}/new/user/agency/cmSpClubTrackList">新分配机构跟踪管理</a></li>
 	<li><a href="${ctx}/user/clubTemporary/">未确认机构</a></li>
 	<li><a href="${ctx}/user/cmOperational/">操作日志</a></li>
 </ul>
@@ -106,7 +112,7 @@
 <ul class="breadcrumb livelyProportion">
 	<li>
 		<div>
-			<img src="/static/images/left.gif" border="none" onclick="checkProviderTime(1)">
+			<img src="/static/images/left.png" style="width: 50px" border="none" onclick="checkProviderTime(1)">
 			<span><fmt:formatDate value="${Date(newCmClub.providerTime.getTime()- 24 * 60 * 60 * 1000)}"
 								  pattern="yyyy年M月dd日 "></fmt:formatDate></span>
 		</div>
@@ -115,14 +121,14 @@
 		<div style="font-size: 40px;">
 			<fmt:formatDate value="${newCmClub.providerTime}"
 							pattern="yyyy年M月dd日 "></fmt:formatDate>
-			<span style="font-size: 20px;color:#0bbbee;position: relative;bottom: 5px" id="conlog"></span>
+			<span style="font-size: 20px;color:#0bbbee;position: relative;bottom: 5px"  id="conlog"></span>
 		</div>
 	</li>
 	<li>
 		<div>
 			<span><fmt:formatDate value="${Date(newCmClub.providerTime.getTime()+ 24 * 60 * 60 * 1000)}"
 								  pattern="yyyy年M月dd日 "></fmt:formatDate></span>
-			<img src="/static/images/left.gif" border="none" onclick="checkProviderTime(0)">
+			<img src="/static/images/right.png" border="none" style="width: 50px" onclick="checkProviderTime(0)">
 		</div>
 	</li>
 </ul>
@@ -134,7 +140,7 @@
 	<div class="flex-wrap">
 		<div class="item">
 			<label>机构ID:</label>
-			<form:input path="clubID" type="text" htmlEscape="false"
+			<form:input path="clubID"  onkeyup="onlynum(this)"  htmlEscape="false"
 						maxlength="50" class="input-medium"/>
 		</div>
 		<div class="item">

+ 27 - 26
src/main/webapp/WEB-INF/views/modules/userNew/cmSpLivelyClubFrom.jsp

@@ -53,7 +53,7 @@
 				$("#livelyBorder>li").attr("class", "")
 				if ($(this).index() == 0) {
 					$("#startLoginTime").attr("value", formatDate(dateTime.setMonth(dateTime.getMonth() - 6)))
-					$("#endLoginTime").attr("value", formatDate(new Date()))
+					$("#endLoginTime").attr("value", "")
 					$(this).attr("class", "livelyBorder")
 				} else {
 					$("#startLoginTime").attr("value", "")
@@ -94,7 +94,7 @@
 	<li><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
 	<li><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
 	<li><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
-	<li class="active"><a href="${ctx}/new/user/cmSp/cmSpLivelyClubFrom/">查看详情</a></li>
+	<li class="active"><a href="${ctx}/new/user/cmSp/cmSpLivelyClubFrom?spID=${spId}">查看详情</a></li>
 </ul>
 
 <ul class="breadcrumb livelyProportion">
@@ -131,7 +131,7 @@
 		<form:hidden path="endLoginTime"/>
 		<div class="item">
 			<label>机构ID:</label>
-			<form:input path="clubID" type="text" htmlEscape="false"
+			<form:input path="clubID" onkeyup="this.value=value.replace(/[^\d]/g,'')" htmlEscape="false"
 						maxlength="50" class="input-medium"/>
 		</div>
 		<div class="item">
@@ -181,29 +181,7 @@
 			</td>
 			<td>${newCmClubList.userName}</td>
 			<td>${newCmClubList.bindMobile}</td>
-			<td>
-				<c:choose>
-					<c:when test="${newCmClubList.status eq 90}">
-						<font color="green">已上线</font>
-					</c:when>
-					<c:when test="${newCmClubList.status eq 91}">
-						<font color="red">已下线</font>
-					</c:when>
-					<c:when test="${newCmClubList.status eq 92}">
-						<a href="JavaScript:;" onclick="return alertx('不通过原因:${newCmClubList.auditNote}')"
-						   style="text-decoration:underline;"><font color="red">审核未通过</font></a>
-					</c:when>
-					<c:when test="${newCmClubList.status eq 93}">
-						<font color="#BF826C">已确认</font>
-					</c:when>
-					<c:when test="${newCmClubList.status eq 94}">
-						<font color="red">已冻结</font>
-					</c:when>
-					<c:otherwise>
-						${fns:getDictLabel(newCmClubList.status, 'club_status', newCmClubList.status)}
-					</c:otherwise>
-				</c:choose>
-			</td>
+
 			<td>
 				<c:if test="${newCmClubList.userIdentity eq 4}">
 					个人机构
@@ -227,6 +205,29 @@
 					</c:if>
 				</c:if>
 			</td>
+			<td>
+				<c:choose>
+					<c:when test="${newCmClubList.status eq 90}">
+						<font color="green">已上线</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 91}">
+						<font color="red">已下线</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 92}">
+						<a href="JavaScript:;" onclick="return alertx('不通过原因:${newCmClubList.auditNote}')"
+						   style="text-decoration:underline;"><font color="red">审核未通过</font></a>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 93}">
+						<font color="#BF826C">已确认</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 94}">
+						<font color="red">已冻结</font>
+					</c:when>
+					<c:otherwise>
+						${fns:getDictLabel(newCmClubList.status, 'club_status', newCmClubList.status)}
+					</c:otherwise>
+				</c:choose>
+			</td>
 			<td>
 				<fmt:formatDate value="${newCmClubList.registerTime}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>
 			</td>

+ 8 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmSpLivelyClubList.jsp

@@ -105,6 +105,10 @@
 		<th>协销姓名</th>
 		<th>手机号</th>
 		<th>创建时间</th>
+		<th>活跃机构</th>
+		<th>不活跃机构</th>
+		<th>活跃机构占比</th>
+		<th>不活跃机构占比</th>
 		<th>操作</th>
 	</tr>
 	</thead>
@@ -115,6 +119,10 @@
 			<td>${newCmSp.linkMan}</td>
 			<td>${newCmSp.contractMobile}</td>
 			<td>${newCmSp.addTime}</td>
+			<td>${newCmSp.livelyClub}</td>
+			<td>${newCmSp.nolivelyClub}</td>
+			<td>${newCmSp.livelyClubProportion}%</td>
+			<td>${newCmSp.nolivelyClubProportion}%</td>
 			<td>
 				<a href="${ctx}/new/user/cmSp/cmSpLivelyClubFrom?spID=${newCmSp.serviceProviderID}">查看详情</a>
 			</td>

+ 5 - 2
src/test/java/com/caimei/info/InfoTest.java

@@ -7,6 +7,7 @@ import com.caimei.modules.landing.mapper.CmBrandLandingMapper;
 import com.caimei.modules.order.entity.NewShopOrder;
 import com.caimei.modules.order.service.NewShopOrderService;
 import com.caimei.modules.product.dao.CmOrganizeProductInfoMapper;
+import com.caimei.modules.sys.utils.SMSUtils;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -41,8 +42,10 @@ public class InfoTest extends SpringTransactionalContextTests {
 
 	@Test
 	public void test(){
-		NewShopOrder cmShopOrderByShopOrderID = newShopOrderService.getCmShopOrderByShopOrderID("29352");
-		System.out.println(cmShopOrderByShopOrderID);
+//		SMSUtils.sendSms(4, "17708413951", "【采美365】系统已为你分配机构客户,请及时跟进。机构名称【" + "newCmClub.getName()" + "】,联系人【" + "newCmClub.getLinkMan()" + "】,手机号【" + "15600000000" + "】,上一任销售【" + "etName()" + "】。");
+
+//		NewShopOrder cmShopOrderByShopOrderID = newShopOrderService.getCmShopOrderByShopOrderID("29352");
+//		System.out.println(cmShopOrderByShopOrderID);
 
 //		CmBrandLanding cmBrandLanding = new CmBrandLanding();
 //		cmBrandLanding.setType("not=1,2");