dengsixing 1 năm trước cách đây
mục cha
commit
8fe4c1f18a

+ 91 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/entity/WorkExplanation.java

@@ -0,0 +1,91 @@
+package com.gis.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 作品场景讲解
+ * </p>
+ *
+ * @author
+ * @since 2024-04-22
+ */
+@Getter
+@Setter
+@TableName("tb_work_explanation")
+public class WorkExplanation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 作品id
+     */
+    @TableField("work_id")
+    private String workId;
+
+    /**
+     * 场景id
+     */
+    @TableField("navigation_id")
+    private Long navigationId;
+
+    /**
+     * 是否默认开启
+     */
+    @TableField("open_by_default")
+    private Boolean openByDefault;
+
+    /**
+     * 文件url
+     */
+    @TableField("audio_url")
+    private String audioUrl;
+
+    /**
+     * 文件名
+     */
+    @TableField("audio_name")
+    private String audioName;
+
+    /**
+     * 素材id
+     */
+    @TableField("fodder_id")
+    private Long fodderId;
+
+    /**
+     * 循环播放
+     */
+    @TableField("repeat")
+    private Boolean playRepeat;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 是否删除
+     */
+    @TableField("is_delete")
+    @TableLogic(value = "0", delval = "1")
+    private Integer isDelete;
+}

+ 22 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/WorkExplanationService.java

@@ -0,0 +1,22 @@
+package com.gis.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gis.domain.dto.BathSaveWorkExplanationDto;
+import com.gis.domain.entity.WorkExplanation;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 作品场景讲解 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-04-22
+ */
+public interface WorkExplanationService extends IService<WorkExplanation> {
+
+    void bathSaveWorkExplanation(BathSaveWorkExplanationDto dto);
+
+
+}

+ 54 - 0
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkExplanationServiceImpl.java

@@ -0,0 +1,54 @@
+package com.gis.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gis.common.exception.BaseRuntimeException;
+import com.gis.domain.dto.BathSaveWorkExplanationDto;
+import com.gis.domain.dto.WorkExplanationDto;
+import com.gis.domain.entity.WorkExplanation;
+import com.gis.mapper.WorkExplanationMapper;
+import com.gis.service.WorkExplanationService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 作品场景讲解 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-04-22
+ */
+@Service
+public class WorkExplanationServiceImpl extends ServiceImpl<WorkExplanationMapper, WorkExplanation> implements WorkExplanationService {
+
+    @Override
+    public void bathSaveWorkExplanation(BathSaveWorkExplanationDto dto) {
+
+        if(CollUtil.isEmpty(dto.getList())){
+            return;
+        }
+        List<Long> idList = dto.getList().stream().filter(v -> Objects.nonNull(v.getId())).map(v -> v.getId()).collect(Collectors.toList());
+        if(CollUtil.isNotEmpty(idList)){
+            long count = this.count(new LambdaQueryWrapper<WorkExplanation>().eq(WorkExplanation::getWorkId, dto.getWorkId()).in(WorkExplanation::getId, idList));
+            if(count != idList.size()){
+                throw new BaseRuntimeException("数据不正确");
+            }
+        }
+
+
+        List<WorkExplanation> workExplanations = BeanUtil.copyToList(dto.getList(), WorkExplanation.class);
+        workExplanations.stream().forEach(v -> {
+            v.setWorkId(dto.getWorkId());
+            v.setUpdateTime(new Date());
+        });
+
+        this.saveOrUpdateBatch(workExplanations);
+    }
+}

+ 41 - 0
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkExplanationController.java

@@ -0,0 +1,41 @@
+package com.gis.web.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import com.gis.common.util.Result;
+import com.gis.domain.dto.BathSaveWorkExplanationDto;
+import com.gis.service.WorkExplanationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+@Api(tags = "作品编辑-讲解")
+@RestController
+@RequestMapping("/work/edit/explanation")
+public class WorkExplanationController {
+
+    @Autowired
+    private WorkExplanationService workExplanationService;
+
+
+    /**
+     * 保存讲解
+     * @param dto
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @ApiOperation(value = "保存", position = 1)
+    @PostMapping("/save")
+    public Result bathSaveWorkExplanation(@RequestBody @Valid BathSaveWorkExplanationDto dto){
+        workExplanationService.bathSaveWorkExplanation(dto);
+        return Result.success();
+    }
+
+
+}