数据库存储json字符串格式的内容 追加 修改 操作

 public ApiResult<Object> create(@Validated @RequestBody YxUserVideo resources){
        YxUser user = LocalUser.getUser();
        resources.setUid(user.getUid());
        QueryWrapper<YxUserVideo> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("uid",resources.getUid()).eq("product_id",resources.getProductId());
        List<YxUserVideo> yxUserVideoList = yxUserVideoService.list(queryWrapper);
        YxUserVideo yxUserVideo = new YxUserVideo();
        List<Object> list = new ArrayList<>();
        if(!CollectionUtils.isEmpty(yxUserVideoList)){

            yxUserVideo = yxUserVideoList.get(0);
            String viewingDuration = yxUserVideo.getViewingDuration();
            //将字符串转为json格式 遍历
            JSONArray json = JSONArray.fromObject(viewingDuration);
            Object jsonId = null;
            net.sf.json.JSONObject job = null;
            boolean execute = false;
            if (json.size() > 0){
                for (int i = 0; i < json.size(); i++) {
                     job = json.getJSONObject(i);
                     jsonId = job.get("id");
                     list.add(job);
                    if (jsonId.equals(resources.getIndex())){
                        job.put("id",resources.getIndex());
                        job.put("percentage",resources.getPercentage());
                        job.put("viewingDuration",resources.getViewingDuration());
                        execute = true;
                    }
                }
                yxUserVideo.setViewingDuration(list.toString());
                yxUserVideoService.updateById(yxUserVideo);
                if (!jsonId.equals(resources.getIndex()) && !execute){
                    JSONObject map = new JSONObject();
                    map.put("id",resources.getIndex());
                    map.put("percentage",resources.getPercentage());
                    map.put("viewingDuration",resources.getViewingDuration());
                    list.add(map);
                    yxUserVideo.setViewingDuration(list.toString());
                    yxUserVideoService.updateById(yxUserVideo);
                }
            }
        }else{
            //List<JSONObject> list = new ArrayList<>();
            JSONObject map = new JSONObject();
            map.put("id",resources.getIndex());
            map.put("percentage",resources.getPercentage());
            map.put("viewingDuration",resources.getViewingDuration());
            list.add(map);
            resources.setViewingDuration(list.toString());
            yxUserVideoService.save(resources);
        }

        return ApiResult.ok(true);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值