0
点赞
收藏
分享

微信扫一扫

redis防止页面重复提交

素的盐 2022-02-08 阅读 84
 /**
     * @param request
     * @return
     * @描述 添加营销笔记(营销任务入口)
     */
    @PostMapping(value = "/addMarketingNotes", produces = "application/json;charset=UTF-8")
    public String addMarketingNotes(HttpServletRequest request) {
        // 获取Id
        ReqParamsNotesJson reqParamsNotesJson = JSON.parseObject(request.getAttribute("request").toString(), ReqParamsNotesJson.class);
        if (reqParamsNotesJson.getMarketStatus()==1){
            if (reqParamsNotesJson.getMarketNote().length()>50){
                return ReturnResult.failResult("营销笔记限制50个字符");
            }
            //营销任务id是空
            if (reqParamsNotesJson.getMarketingTaskId()==null ){
                return ReturnResult.failResult("该营销笔记没有关联营销任务");
            }
            //首次营销必须到店
            if (reqParamsNotesJson.getMarketingTaskId()!=null && marketMarketingTaskService.qryMarketMarketingTaskType(reqParamsNotesJson.getMarketingTaskId()) == 1 && reqParamsNotesJson.getMarketMethod() != 1) {
                return ReturnResult.failResult("首次营销的营销方式必须为到店");
            }
            //到店必须上传与门头合照
            if (reqParamsNotesJson.getMarketMethod() == 1 && StringUtils.isEmpty(reqParamsNotesJson.getDoorHeadPhotos())) {
                return ReturnResult.failResult("到店必须上传与门头合照");
            }
            //如果营销产品不为空,则必须有营销结果
            if (reqParamsNotesJson.getMarketProduct() != null && StringUtils.isEmpty(reqParamsNotesJson.getMarketResult())) {
                return ReturnResult.failResult("选择了营销产品则营销结果必选");
            }
        }
        //20210824 追加 redis控制,key的格式: "MarketNotes" + 营销任务ID +营销任务类型 +客户经理ID
        String marketNotesKey = "MarketNotes"+reqParamsNotesJson.getMarketingTaskId()+reqParamsNotesJson.getMarketingTaskType()+reqParamsNotesJson.getCustManagerId();
        boolean haskey = redisUtil.zAddNx(marketNotesKey, "1", 0); // 没有新增返回true,存在返回false
        boolean addResult =true;
        if(haskey){
            addResult = marketMarketingNoteService.addMarketingNotes(reqParamsNotesJson.getCustManagerId(), reqParamsNotesJson.getMarketingNoteId(), reqParamsNotesJson.getMarketingTaskId(), reqParamsNotesJson.getMarketMethod(), reqParamsNotesJson.getMarketProduct(),
                    reqParamsNotesJson.getMarketResult(), reqParamsNotesJson.getMarketNote(), reqParamsNotesJson.getDoorHeadPhotos(), reqParamsNotesJson.getRemark(), reqParamsNotesJson.getMarketStatus(), reqParamsNotesJson.getMarketingTaskType(), reqParamsNotesJson.getShopid());
            redisUtil.del(marketNotesKey);
        }else{
            redisUtil.expire(marketNotesKey, 300);
            return ReturnResult.failResult("该任务的营销笔记正在创建");
        }
        if(!addResult){
            ReturnResult.failResult("该任务的营销笔记已经创建成功,无需重复创建");
        }
        return ReturnResult.successResult("营销日志添加成功");
    }
举报

相关推荐

0 条评论