Quellcode durchsuchen

律师图片服务

zhangchen vor 1 Monat
Ursprung
Commit
68497797bb

+ 107 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/controller/LawyerImgController.java

@@ -0,0 +1,107 @@
+package shop.alien.lawyer.controller;
+
+import com.alibaba.excel.util.CollectionUtils;
+import io.swagger.annotations.*;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+import shop.alien.entity.result.R;
+import shop.alien.entity.store.LawyerImg;
+import shop.alien.entity.store.vo.LawyerImgTypeVo;
+import shop.alien.lawyer.service.LawyerImgService;
+
+import java.util.List;
+
+/**
+ * 律师图片Controller
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Slf4j
+@Api(tags = {"律师平台-律师图片"})
+@ApiSort(12)
+@CrossOrigin
+@RestController
+@RequestMapping("/lawyer/img")
+@RequiredArgsConstructor
+public class LawyerImgController {
+
+    private final LawyerImgService lawyerImgService;
+
+    @ApiOperation("获取图片")
+    @ApiOperationSupport(order = 1)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "lawyerId", value = "律师ID", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "imgType", value = "图片类型, 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片", dataType = "Integer", paramType = "query", required = true)
+    })
+    @GetMapping("/getByLawyerId")
+    public R<List<LawyerImg>> getByLawyerId(Integer lawyerId, Integer imgType) {
+        log.info("LawyerImgController.getByLawyerId?lawyerId={}&imgType={}", lawyerId, imgType);
+        return R.data(lawyerImgService.getLawyerImg(lawyerId, imgType));
+    }
+
+    @ApiOperation("获取所有图片类型和数量")
+    @ApiOperationSupport(order = 2)
+    @ApiImplicitParams({@ApiImplicitParam(name = "lawyerId", value = "律师ID", dataType = "Integer", paramType = "query", required = true)})
+    @GetMapping("/getLawyerImgTypeCount")
+    public R<List<LawyerImgTypeVo>> getLawyerImgTypeCount(Integer lawyerId) {
+        log.info("LawyerImgController.getLawyerImgTypeCount?lawyerId={}", lawyerId);
+        return R.data(lawyerImgService.getLawyerImgTypeCount(lawyerId));
+    }
+
+    @ApiOperation("新增或修改图片")
+    @ApiOperationSupport(order = 3)
+    @PostMapping("/saveOrUpdate")
+    public R<String> saveOrUpdate(@RequestBody List<LawyerImg> lawyerImgList) {
+        log.info("LawyerImgController.saveOrUpdate?lawyerImgList={}", lawyerImgList);
+        if (CollectionUtils.isEmpty(lawyerImgList)) {
+            return R.fail("图片列表不能为空");
+        }
+        Integer id = lawyerImgList.get(0).getId();
+        if (lawyerImgService.saveOrUpdateBatch(lawyerImgList)) {
+            if (null != id) {
+                return R.success("修改成功");
+            }
+            return R.success("新增成功");
+        }
+        return R.fail("失败");
+    }
+
+    @ApiOperation(value = "删除图片")
+    @ApiOperationSupport(order = 4)
+    @PostMapping("/delete")
+    public R<String> delete(@RequestBody List<Integer> ids) {
+        log.info("LawyerImgController.delete?ids={}", ids);
+        if (lawyerImgService.removeByIds(ids)) {
+            return R.success("删除成功");
+        }
+        return R.fail("删除失败");
+    }
+
+    @ApiOperation("获取图片URL列表")
+    @ApiOperationSupport(order = 5)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "律师ID", dataType = "String", paramType = "query", required = true),
+            @ApiImplicitParam(name = "imgType", value = "图片类型", dataType = "Integer", paramType = "query", required = true)
+    })
+    @GetMapping("/getUrl")
+    public R<List<String>> getUrl(String id, Integer imgType) {
+        log.info("LawyerImgController.getUrl?id={}&imgType={}", id, imgType);
+        return R.data(lawyerImgService.getUrl(id, imgType));
+    }
+
+    @ApiOperation("通过businessId获取图片")
+    @ApiOperationSupport(order = 6)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "lawyerId", value = "律师ID", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "imgType", value = "图片类型, 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片", dataType = "Integer", paramType = "query", required = true),
+            @ApiImplicitParam(name = "businessId", value = "业务ID", dataType = "Integer", paramType = "query", required = true)
+    })
+    @GetMapping("/getByBusinessId")
+    public R<List<LawyerImg>> getByBusinessId(Integer lawyerId, Integer imgType, Integer businessId) {
+        log.info("LawyerImgController.getByBusinessId?lawyerId={}&imgType={}&businessId={}", lawyerId, imgType, businessId);
+        return R.data(lawyerImgService.getByBusinessId(lawyerId, imgType, businessId));
+    }
+}
+

+ 61 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/service/LawyerImgService.java

@@ -0,0 +1,61 @@
+package shop.alien.lawyer.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import shop.alien.entity.store.LawyerImg;
+import shop.alien.entity.store.vo.LawyerImgTypeVo;
+
+import java.util.List;
+
+/**
+ * 律师图片 服务类
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+public interface LawyerImgService extends IService<LawyerImg> {
+
+    /**
+     * 获取律师图片
+     *
+     * @param lawyerId 律师ID
+     * @param imgType  图片类型, 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片
+     * @return list
+     */
+    List<LawyerImg> getLawyerImg(Integer lawyerId, Integer imgType);
+
+    /**
+     * 获取所有图片类型和数量
+     *
+     * @param lawyerId 律师ID
+     * @return LawyerImgTypeVo
+     */
+    List<LawyerImgTypeVo> getLawyerImgTypeCount(Integer lawyerId);
+
+    /**
+     * 获取图片URL列表
+     *
+     * @param id      律师ID
+     * @param imgType 图片类型
+     * @return List<String>
+     */
+    List<String> getUrl(String id, Integer imgType);
+
+    /**
+     * 通过businessId获取图片
+     *
+     * @param lawyerId  律师ID
+     * @param imgType   图片类型
+     * @param businessId 业务ID
+     * @return list
+     */
+    List<LawyerImg> getByBusinessId(Integer lawyerId, Integer imgType, Integer businessId);
+
+    /**
+     * 删除图片
+     *
+     * @param lawyerId 律师ID
+     * @param imgType  图片类型
+     */
+    int saveOrUpdateImg(Integer lawyerId, Integer imgType);
+}
+

+ 140 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/LawyerImgServiceImpl.java

@@ -0,0 +1,140 @@
+package shop.alien.lawyer.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import shop.alien.entity.store.LawyerImg;
+import shop.alien.entity.store.vo.LawyerImgTypeVo;
+import shop.alien.lawyer.service.LawyerImgService;
+import shop.alien.mapper.LawyerImgMapper;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 律师图片 服务实现类
+ *
+ * @author system
+ * @since 2025-01-XX
+ */
+@Slf4j
+@Transactional
+@Service
+@RequiredArgsConstructor
+public class LawyerImgServiceImpl extends ServiceImpl<LawyerImgMapper, LawyerImg> implements LawyerImgService {
+
+    private final LawyerImgMapper lawyerImgMapper;
+
+    /**
+     * 获取律师图片
+     *
+     * @param lawyerId 律师ID
+     * @param imgType  图片类型, 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片
+     * @return list
+     */
+    @Override
+    public List<LawyerImg> getLawyerImg(Integer lawyerId, Integer imgType) {
+        log.info("LawyerImgServiceImpl.getLawyerImg?lawyerId={}&imgType={}", lawyerId, imgType);
+        LambdaQueryWrapper<LawyerImg> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(LawyerImg::getLawyerId, lawyerId)
+                .eq(LawyerImg::getImgType, imgType)
+                .orderByAsc(LawyerImg::getImgSort);
+        return this.list(lambdaQueryWrapper);
+    }
+
+    /**
+     * 获取所有图片类型和数量
+     *
+     * @param lawyerId 律师ID
+     * @return LawyerImgTypeVo
+     */
+    @Override
+    public List<LawyerImgTypeVo> getLawyerImgTypeCount(Integer lawyerId) {
+        log.info("LawyerImgServiceImpl.getLawyerImgTypeCount?lawyerId={}", lawyerId);
+        List<LawyerImgTypeVo> lawyerImgTypeVoList = lawyerImgMapper.getLawyerImgTypeCount(lawyerId);
+        for (LawyerImgTypeVo lawyerImgTypeVo : lawyerImgTypeVoList) {
+            //图片类型, 0:其他, 1:头像, 2:执业证照片, 3:身份证正面, 4:身份证反面, 5:案例图片, 6:相册图片, 7:资质证书, 8:荣誉证书, 9:工作照片
+            switch (lawyerImgTypeVo.getImgType()) {
+                case 0:
+                    lawyerImgTypeVo.setImgTypeStr("其他");
+                    break;
+                case 1:
+                    lawyerImgTypeVo.setImgTypeStr("头像");
+                    break;
+                case 2:
+                    lawyerImgTypeVo.setImgTypeStr("执业证照片");
+                    break;
+                case 3:
+                    lawyerImgTypeVo.setImgTypeStr("身份证正面");
+                    break;
+                case 4:
+                    lawyerImgTypeVo.setImgTypeStr("身份证反面");
+                    break;
+                case 5:
+                    lawyerImgTypeVo.setImgTypeStr("案例图片");
+                    break;
+                case 6:
+                    lawyerImgTypeVo.setImgTypeStr("相册图片");
+                    break;
+                case 7:
+                    lawyerImgTypeVo.setImgTypeStr("资质证书");
+                    break;
+                case 8:
+                    lawyerImgTypeVo.setImgTypeStr("荣誉证书");
+                    break;
+                case 9:
+                    lawyerImgTypeVo.setImgTypeStr("工作照片");
+                    break;
+            }
+        }
+        return lawyerImgTypeVoList.stream().sorted(Comparator.comparing(LawyerImgTypeVo::getImgType)).collect(Collectors.toList());
+    }
+
+    @Override
+    public List<String> getUrl(String id, Integer imgType) {
+        log.info("LawyerImgServiceImpl.getUrl?id={}&imgType={}", id, imgType);
+        QueryWrapper<LawyerImg> qw = new QueryWrapper<>();
+        qw.eq(Objects.nonNull(id), "lawyer_id", id)
+                .eq(Objects.nonNull(imgType), "img_type", imgType);
+        List<LawyerImg> resDb = lawyerImgMapper.selectList(qw);
+        return resDb.stream().map(LawyerImg::getImgUrl).collect(Collectors.toList());
+    }
+
+    /**
+     * 通过businessId获取图片
+     *
+     * @param lawyerId  律师ID
+     * @param imgType   图片类型
+     * @param businessId 业务ID
+     * @return list
+     */
+    @Override
+    public List<LawyerImg> getByBusinessId(Integer lawyerId, Integer imgType, Integer businessId) {
+        log.info("LawyerImgServiceImpl.getByBusinessId?lawyerId={}&imgType={}&businessId={}", lawyerId, imgType, businessId);
+        LambdaQueryWrapper<LawyerImg> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(LawyerImg::getLawyerId, lawyerId)
+                .eq(LawyerImg::getImgType, imgType)
+                .eq(LawyerImg::getBusinessId, businessId)
+                .orderByAsc(LawyerImg::getImgSort);
+        return this.list(lambdaQueryWrapper);
+    }
+
+    @Override
+    public int saveOrUpdateImg(Integer lawyerId, Integer imgType) {
+        log.info("LawyerImgServiceImpl.saveOrUpdateImg?lawyerId={}&imgType={}", lawyerId, imgType);
+        int result = 0;
+        if (lawyerId != null && lawyerId > 0 && imgType != null) {
+            result = lawyerImgMapper.delete(new LambdaQueryWrapper<LawyerImg>()
+                    .eq(LawyerImg::getLawyerId, lawyerId)
+                    .eq(LawyerImg::getImgType, imgType));
+        }
+        return result;
+    }
+}
+