java读取txt文件并统计重复行

环境:ide+maven3+mysql5.7+mybatis3+spring4+springmvc

控制层:

@CrossOrigin
@RestController
@RequestMapping("/mip/crowdmanager")
public class OwnCrowdController extends BaseController {

    //log日志
    private static final Logger LOGGER = LoggerFactory.getLogger(OwnCrowdController.class);

    @Autowired
    private OwnCrowdService ownCrowdService;

/**
     * 新建自有人群
     * @param brandCode
     * @param audienceName
     * @param equipmentType:自有人群管理设备类型:1手机号码表; 2手机号MD5;3会员编码;4imei原始值;5IDFA原始值;6imei MD5;7IDFA MD5
     * @param file
     * @param request
     * @return
     */
    @PostMapping("/createOwnCrowd")
    public ResponseEntity<BaseResponse> createOwnCrowd(
            @Validated
            @NotNull(message = "%custom%品牌编码不可为空")
            @RequestParam(value = "brandCode")
                    String brandCode,
            @Validated
            @NotNull(message = "%custom%人群包名称不可为空")
            @Pattern(regexp = "[\u4e00-\u9fa5_a-zA-Z0-9-_]+?", message = "%custom%人群包名称只能包含数字,字母,中文,特殊字符仅允许:-_")
            @RequestParam(value = "audienceName")
                    String audienceName,
            @Validated
            @NotNull(message = "%custom%设备类型不可为空")
            @RequestParam(value = "equipmentType")
                    Integer equipmentType,
            @Validated
            @NotNull(message = "%custom%上传文件不可为空")
            @RequestParam(value = "file", required = true)
                    MultipartFile file, HttpServletRequest request) {
        assertBrandCode(brandCode, request);
        //校验人群包名称是否重复
        Integer count = ownCrowdService.checkAudienceName(brandCode, audienceName);
        if (count > 0) {
            throw new FieldInvalidException("createOwnCrowd", "同一品牌下人群包名称不允许重复!");
        }
        // 上传文件校验
        if (file == null || file.getSize() == 0) {
            LOGGER.info("upload file is empty");
            throw new FieldInvalidException("uploadOwnCrowd", "上传文件不得为空!");
        }
        // 非txt文件
        if (!StringUtils.isBlank(file.getOriginalFilename()) && !".txt"
                .equals(file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf('.')))) {
            LOGGER.info("upload file is not txt");
            throw new FieldInvalidException("uploadOwnCrowd", "上传的文件必须是txt文件!");
        }
        // 过大
        if (file.getSize() > 30 * 1024 * 1024) {
            LOGGER.info("upload file size max 30M");
            throw new FieldInvalidException("uploadOwnCrowd", "上传文件不得大于30M!");
        }
        try {
            FileResultVo fileResultVo = ownCrowdService.createOwnCrowd(brandCode, audienceName, equipmentType, file);
            String msg = fileResultVo.getCheckMessage();
            Object data = fileResultVo.getCheckResult();
            if (Objects.equals(SNConstant.CODE_SUCCESS, fileResultVo.getCheckCode())) {
                return ResponseEntity.ok(BaseResponse.success().setResult(data));
            } else {
                return ResponseEntity.ok(new BaseResponse(msg).setResult(data));
            }
        } catch (Exception e) {
            LOGGER.info("新建自有人群异常,exception:{}", e);
            return ResponseEntity.ok(new BaseResponse("新建自有人群失败").setResult(null));
        }
    }
}

业务层:

@Service
public class OwnCrowdServiceImpl implements OwnCrowdService {

    //log日志
    private static final Logger LOGGER = LoggerFactory.getLogger(OwnCrowdServiceImpl.class);

    @Autowired
    priva
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值