瀏覽代碼

外部通讯录,bug修正

yzc 2 年之前
父節點
當前提交
2e611ffe80

+ 70 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/external/ExternalAddressBookController.java

@@ -0,0 +1,70 @@
+package com.fjhx.oa.controller.external;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookSelectDto;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.oa.service.external.ExternalAddressBookService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@RestController
+@RequestMapping("/externalAddressBook")
+public class ExternalAddressBookController {
+
+    @Autowired
+    private ExternalAddressBookService externalAddressBookService;
+
+    /**
+     * 外部通讯录分页
+     */
+    @PostMapping("/page")
+    public Page<ExternalAddressBookVo> page(@RequestBody ExternalAddressBookSelectDto dto) {
+        return externalAddressBookService.getPage(dto);
+    }
+
+    /**
+     * 外部通讯录明细
+     */
+    @PostMapping("/detail")
+    public List<ExternalAddressBookVo> detail(@RequestBody BaseSelectDto dto) {
+        return externalAddressBookService.detail(dto.getId());
+    }
+
+    /**
+     * 外部通讯录新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ExternalAddressBookDto externalAddressBookDto) {
+        externalAddressBookService.add(externalAddressBookDto);
+    }
+
+    /**
+     * 外部通讯录编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ExternalAddressBookDto externalAddressBookDto) {
+        externalAddressBookService.edit(externalAddressBookDto);
+    }
+
+    /**
+     * 外部通讯录删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        externalAddressBookService.delete(dto.getId());
+    }
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/dto/ExternalAddressBookDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.entity.external.dto;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 外部通讯录新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ExternalAddressBookDto extends ExternalAddressBook {
+
+    /**外部通讯录联系方式列表*/
+    List<ExternalAddressBook> externalAddressBookList;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/dto/ExternalAddressBookSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.external.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ExternalAddressBookSelectDto extends BaseSelectDto {
+
+}

+ 37 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/po/ExternalAddressBook.java

@@ -0,0 +1,37 @@
+package com.fjhx.oa.entity.external.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 外部通讯录
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+@TableName("external_address_book")
+public class ExternalAddressBook extends BasePo {
+
+    /**
+     * 联系人id
+     */
+    private Long contactsId;
+
+    /**
+     * 联系类型(字典contact_information)
+     */
+    private Integer type;
+
+    /**
+     * 联系号码
+     */
+    private String contactNumber;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/external/vo/ExternalAddressBookVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.external.vo;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 外部通讯录列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@Getter
+@Setter
+public class ExternalAddressBookVo extends ExternalAddressBook {
+
+}

+ 26 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/external/ExternalAddressBookMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.oa.mapper.external;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 外部通讯录 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ExternalAddressBookMapper extends BaseMapper<ExternalAddressBook> {
+
+    /**
+     * 外部通讯录分页
+     */
+    Page<ExternalAddressBookVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ExternalAddressBook> wrapper);
+
+}

+ 48 - 0
hx-oa/src/main/java/com/fjhx/oa/service/external/ExternalAddressBookService.java

@@ -0,0 +1,48 @@
+package com.fjhx.oa.service.external;
+
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookSelectDto;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookDto;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 外部通讯录 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+public interface ExternalAddressBookService extends BaseService<ExternalAddressBook> {
+
+    /**
+     * 外部通讯录分页
+     */
+    Page<ExternalAddressBookVo> getPage(ExternalAddressBookSelectDto dto);
+
+    /**
+     * 外部通讯录明细
+     */
+    List<ExternalAddressBookVo> detail(Long id);
+
+    /**
+     * 外部通讯录新增
+     */
+    void add(ExternalAddressBookDto externalAddressBookDto);
+
+    /**
+     * 外部通讯录编辑
+     */
+    void edit(ExternalAddressBookDto externalAddressBookDto);
+
+    /**
+     * 外部通讯录删除
+     */
+    void delete(Long id);
+
+}

+ 74 - 0
hx-oa/src/main/java/com/fjhx/oa/service/external/impl/ExternalAddressBookServiceImpl.java

@@ -0,0 +1,74 @@
+package com.fjhx.oa.service.external.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.oa.entity.external.po.ExternalAddressBook;
+import com.fjhx.oa.mapper.external.ExternalAddressBookMapper;
+import com.fjhx.oa.service.external.ExternalAddressBookService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.external.vo.ExternalAddressBookVo;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.oa.entity.external.dto.ExternalAddressBookDto;
+import cn.hutool.core.bean.BeanUtil;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 外部通讯录 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-06
+ */
+@DS(SourceConstant.OA)
+@Service
+public class ExternalAddressBookServiceImpl extends ServiceImpl<ExternalAddressBookMapper, ExternalAddressBook> implements ExternalAddressBookService {
+
+    @Override
+    public Page<ExternalAddressBookVo> getPage(ExternalAddressBookSelectDto dto) {
+        IWrapper<ExternalAddressBook> wrapper = getWrapper();
+        wrapper.orderByDesc("eab", ExternalAddressBook::getId);
+        Page<ExternalAddressBookVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public List<ExternalAddressBookVo> detail(Long id) {
+        List<ExternalAddressBook> list = list(q -> q.eq(ExternalAddressBook::getContactsId, id));
+        List<ExternalAddressBookVo> result = BeanUtil.copyToList(list, ExternalAddressBookVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ExternalAddressBookDto externalAddressBookDto) {
+        this.save(externalAddressBookDto);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ExternalAddressBookDto externalAddressBookDto) {
+        List<ExternalAddressBook> externalAddressBookList = externalAddressBookDto.getExternalAddressBookList();
+        for (ExternalAddressBook externalAddressBook :externalAddressBookList){
+            externalAddressBook.setContactsId(externalAddressBookDto.getContactsId());
+        }
+        List<Long> externalAddressBookIds = externalAddressBookList.stream().filter(item-> ObjectUtil.isNotEmpty(item.getId())).map(ExternalAddressBook::getId).collect(Collectors.toList());
+        if(ObjectUtil.isNotEmpty(externalAddressBookIds)) {
+            remove(q -> q.notIn(ExternalAddressBook::getId, externalAddressBookIds).eq(ExternalAddressBook::getContactsId, externalAddressBookDto.getContactsId()));
+        }
+        saveOrUpdateBatch(externalAddressBookList);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 18 - 0
hx-oa/src/main/resources/mapper/external/ExternalAddressBookMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.oa.mapper.external.ExternalAddressBookMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.external.vo.ExternalAddressBookVo">
+        select
+            eab.id,
+            eab.contacts_id,
+            eab.type,
+            eab.contact_number,
+            eab.create_user,
+            eab.create_time,
+            eab.update_user,
+            eab.update_time
+        from external_address_book eab
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>