主从表批量插入

controller: 

@PostMapping("/save")
    @ApiOperation(value = "保存游戏记录")
    public Object saveGameRecord(HttpServletRequest request, @RequestParam @ApiParam(value = "游戏记录", required = true) String gameRecord,
                                 @RequestParam @ApiParam(value = "扔错记录", required = true) String errorRecords) {
        //传参格式为主表对象,从表json对象,需把json对象转换为list
        TGameRecord tGameRecord = JSON.parseObject(gameRecord,TGameRecord.class);
        List<TGameErrorSort> errorSortList = JSON.parseArray(errorRecords,TGameErrorSort.class);
        ModelMap modelMap = new ModelMap();
        return setSuccessModelMap(modelMap, gameRecordService.saveRecord(tGameRecord,errorSortList));
    }
//service层实现

 @Transactional
    @Override
    public Long saveRecord(TGameRecord gameRecord,List<TGameErrorSort> errorSortList) throws BusinessException, ValidateException {
        TGameRecord tGameRecordDb = gRecordMapper.selectRecordByGameNo(gameRecord.getGameNo());
        Long gameRecordId = null;
        if(tGameRecordDb == null){//新增
            gameRecord.setCreateBy(gameRecord.getUserId());
            gameRecord.setCreateTime(new Date());
            this.mapper.insert(gameRecord);
            gameRecordId = gameRecord.getId();
        }else {//修改
            gameRecordId = tGameRecordDb.getId();
            gameRecord.setId(gameRecordId);
            gameRecord.setUpdateBy(gameRecord.getUserId());
            gameRecord.setCreateTime(new Date());
            this.mapper.updateById(gameRecord);
            gErrorSortMapper.deleteByRecordId(gameRecordId);
        }

        if(errorSortList != null && errorSortList.size() >0) {
            for (TGameErrorSort tGameErrorSort : errorSortList) {
                tGameErrorSort.setRecordId(gameRecordId);//设置多对一的关系
                tGameErrorSort.setCreateBy(gameRecord.getUserId());
                tGameErrorSort.setCreateTime(new Date());
            }
            gErrorSortMapper.addBatch(errorSortList);
        }
        TUser user=userMapper.selectById(gameRecord.getUserId());
        if(user!=null && gameRecord.getGrade()!=null &&  gameRecord.getGrade()>user.getScore()){
            user.setScore(gameRecord.getGrade());
            userMapper.updateById(user);
        }
        return gameRecord.getId();
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值