汇客huikeCRM项目实战-牛刀小试

来自编程小趴菜的分享~~

希望对你有所帮助~~

你的小小的赞就是对我最大的鼓励~~

有不明白的地方可以私信解答~

目录

任务一:线索捞取为负数bug修复

任务二:权限管理-用户管理-高级搜索-手机号搜索不可用

任务三:公海池-创建时间搜索 -没有效果

任务四:商机管理-商机状态搜索框不可用

任务五:线索管理- 线索id和手机号应该支持模糊搜索

任务六:线索管理-添加线索-活动信息-应该只展示 正在活动时间内的活动

 

注意:第二天的任务还是比较简单的,主要是一些bug的修复,这些bug主要原因是写sql语句的时候,缺少进行相应的判断引起的

 策略:首先打开前端项目,使用F12抓包,看请求的路径是哪里,然后找到对应的代码位置进行修改

 

任务一:线索捞取为负数bug修复

        在serviceImpl实现的代码地方添加对应的逻辑判断

if (asignRecords >= rulePool.getMaxNunmber()) {
            int num = 0;
            if (rulePool.getMaxNunmber() - asignRecords <= 0) {
                num = 0;
            }
            throw new CustomException("捞取失败!最大保有量(" + rulePool.getMaxNunmber() + "),剩余可以捞取" + (num) + "条线索");
        }

        完整代码:

/**
     * 批量捞取
     *
     * @param clueIds 线索id
     * @param userId  当前用户id
     * @return
     */
    @Override
    public String gain(Long[] clueIds, Long userId) {
        // 是否批量捞取
        boolean isBatch = clueIds.length > 1 ? true : false;
        TbRulePool rulePool = rulePoolService.selectTbRulePoolByType(TbRulePool.RuleType.CLUES.getValue());
        // 统计当前分配人所有线索
        int asignRecords = assignRecordMapper.countAssignCluesByUser(userId);
        // rulePool.getMaxNunmber() 当前分配人的最大捞取量
        if (asignRecords >= rulePool.getMaxNunmber()) {
            int num = 0;
            if (rulePool.getMaxNunmber() - asignRecords <= 0) {
                num = 0;
            }
            throw new CustomException("捞取失败!最大保有量(" + rulePool.getMaxNunmber() + "),剩余可以捞取" + (num) + "条线索");
        }
        for (int i = 0; i < clueIds.length; i++) {
            Long clueId = clueIds[i];

            // 超过最大保有量
            if (asignRecords + i >= rulePool.getMaxNunmber()) {
                throw new CustomException("捞取失败!保有量达到上线,最多选择" + rulePool.getMaxNunmber() + "条线索");
            }
            // 最近捞取记录
            TbAssignRecord assignRecord = assignRecordMapper.selectAssignRecordByAssignId(clueId,
                    TbAssignRecord.RecordType.CLUES.getValue());
            if (assignRecord != null && assignRecord.getUserId().equals(userId)) {
                Date repeatGetTime = JobUtils.getDate(rulePool.getRepeatGetTime().intValue(), rulePool.getRepeatType(),
                        assignRecord.getCreateTime());
                // 捞取限制时间内,不让捞取
                if (DateUtils.getNowDate().before(repeatGetTime)) {
                    // 批量捞取跳过
                    if (isBatch) {
                        continue;
                    } else {
                        throw new CustomException("捞取失败!需要在 " + DateUtils.dateTimeHm(repeatGetTime) + " 后捞取");
                    }
                }
            }
            // 捞取后下次跟进时间,及状态重置
            tbClueMapper.resetNextTimeAndStatus(clueId, TbClue.StatusType.UNFOLLOWED.getValue());
            // 新建分配记录
            TbAssignRecord tbAssignRecord = addNewRecord(clueId, userId);

            Date endDate = HuiKeCrmDateUtils.getEndDateByRule(tbAssignRecord);
            tbClueMapper.updateClueEndTimeById(clueId, endDate);
        }
        return "全部捞取成功";
    }

任务二:权限管理-用户管理-高级搜索-手机号搜索不可用 

查看代码可以发现,对应的SysUserMapper.xml文件中,没有对手机号搜索的判断,只需要加上就行

        解决代码:

		
		
			AND  u.phonenumber = #{phonenumber}
		
		

         完整代码:

 任务三:公海池-创建时间搜索 -没有效果 

其原理基本上同任务二,主要是xml文件的判断问题

         解决代码:

 
             
             and DATE_FORMAT(create_time,'%Y-%m-%d')  
             BETWEEN #{beginCreateTime} AND #{endCreateTime}

        完整代码:

任务四:商机管理-商机状态搜索框不可用

原理同上

        解决代码:

       
             and b.status = #{status}

         完整代码:

任务五:线索管理- 线索id和手机号应该支持模糊搜索

在对应的xml文件中对这两个字段加上like查询

         解决代码:

 
             and clue.id like concat('%', #{id}, '%')
             and clue.name like concat('%', #{name}, '%')

             and clue.phone like concat('%', #{phone}, '%')

        完整代码:

任务六:线索管理-添加线索-活动信息-应该只展示 正在活动时间内的活动

查询时对当前时间进行判断 ,在此提供一个简单方案,在查询结果返回前端时对其进行数据处理,过滤掉失效时间的活动

        解决代码:

Date nowTime = new Date();
        List collect = tbActivities
.stream().filter(item -> item.getEndTime()
.compareTo(nowTime) == 1).collect(Collectors.toList());
以上就是今天的任务啦,希望对你有所帮助~~

你可能感兴趣的:(汇客CRM,java,开发语言)