Selaa lähdekoodia

短信配置 配置代码提交

jingyuanchao 1 vuosi sitten
vanhempi
commit
f578e722fc
19 muutettua tiedostoa jossa 424 lisäystä ja 50 poistoa
  1. 10 0
      project_data/sql/0.0.8/soc/soc.sql
  2. 0 16
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/domain/CoreReminderConfiguration.java
  3. 50 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/domain/CoreReminderConfigurationOrg.java
  4. 3 4
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/dto/ReminderConfigEditDto.java
  5. 31 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/dto/ReminderConfigPageDto.java
  6. 54 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/vo/ReminderConfigDetailVo.java
  7. 34 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/vo/ReminderConfigPageVo.java
  8. 20 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/controller/CoreReminderConfigurationController.java
  9. 5 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/mapper/CoreReminderConfigurationMapper.java
  10. 22 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/mapper/CoreReminderConfigurationOrgMapper.java
  11. 6 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/mapper/CoreReminderConfigurationRoleMapper.java
  12. 16 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/ICoreReminderConfigurationOrgService.java
  13. 6 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/ICoreReminderConfigurationService.java
  14. 20 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/impl/CoreReminderConfigurationOrgServiceImpl.java
  15. 89 27
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/impl/CoreReminderConfigurationServiceImpl.java
  16. 33 0
      soc-modules/soc-modules-core/src/main/resources/mapper/reminder/CoreReminderConfigurationMapper.xml
  17. 14 0
      soc-modules/soc-modules-core/src/main/resources/mapper/reminder/CoreReminderConfigurationOrgMapper.xml
  18. 10 0
      soc-modules/soc-modules-core/src/main/resources/mapper/reminder/CoreReminderConfigurationRoleMapper.xml
  19. 1 1
      soc-modules/soc-modules-gen/src/main/java/com/xunmei/gen/util/CodeGenerators.java

+ 10 - 0
project_data/sql/0.0.8/soc/soc.sql

@@ -21,6 +21,16 @@ create table if not exists core_reminder_configuration_role(
 )
     comment '短信提醒配置角色关联表';
 
+create table if not exists core_reminder_configuration_org(
+    config_id        bigint not null comment '配置id',
+    target_org_id   bigint not null comment '发送目标机构id',
+    target_org_name varchar(125) not null comment '发送目标机构名称',
+    target_org_type int not null comment '发送目标机构类型',
+    target_org_path varchar(125) not null comment '发送目标机构路径',
+    primary key (config_id, target_org_id)
+)
+    comment '短信提醒配置机构关联表';
+
 -- auto-generated definition
 create table if not exists core_reminder_log(
     log_id             bigint      not null comment '日志ID'

+ 0 - 16
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/domain/CoreReminderConfiguration.java

@@ -41,22 +41,6 @@ public class CoreReminderConfiguration implements Serializable {
     @TableField("send_module")
     private String sendModule;
 
-    @ApiModelProperty(value = "发送目标组织机构")
-    @TableField("org_id")
-    private Long orgId;
-
-    @ApiModelProperty(value = "发送目标组织机构")
-    @TableField("org_name")
-    private String orgName;
-
-    @ApiModelProperty(value = "发送目标组织机构")
-    @TableField("org_path")
-    private String orgPath;
-
-    @ApiModelProperty(value = "发送目标机构类型")
-    @TableField("org_type")
-    private Integer orgType;
-
     @ApiModelProperty(value = "临期时间(以天数表示)")
     @TableField("advance_notice_period")
     private Integer advanceNoticePeriod;

+ 50 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/domain/CoreReminderConfigurationOrg.java

@@ -0,0 +1,50 @@
+package com.xunmei.common.core.domain.reminder.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 短信提醒配置机构关联表
+ * </p>
+ *
+ * @author jingYuanChao
+ * @since 2024-04-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("core_reminder_configuration_org")
+@ApiModel(value="CoreReminderConfigurationOrg对象", description="短信提醒配置机构关联表")
+public class CoreReminderConfigurationOrg implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "配置id")
+    @TableId("config_id")
+    private Long configId;
+
+    @ApiModelProperty(value = "发送目标机构id")
+    @TableField("target_org_id")
+    private Long targetOrgId;
+
+    @ApiModelProperty(value = "发送目标机构名称")
+    @TableField("target_org_name")
+    private String targetOrgName;
+
+    @ApiModelProperty(value = "发送目标机构类型")
+    @TableField("target_org_type")
+    private Integer targetOrgType;
+
+    @ApiModelProperty(value = "发送目标机构路径")
+    @TableField("target_org_path")
+    private String targetOrgPath;
+
+
+}

+ 3 - 4
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/dto/ReminderConfigEditDto.java

@@ -25,10 +25,6 @@ public class ReminderConfigEditDto {
     @ApiModelProperty(value = "发送模块")
     private String sendModule;
 
-    @NotNull(message = "发送目标不能为空")
-    @ApiModelProperty(value = "发送目标组织机构")
-    private Long orgId;
-
     @NotNull(message = "天数不能为空")
     @ApiModelProperty(value = "天数")
     private Integer day;
@@ -38,4 +34,7 @@ public class ReminderConfigEditDto {
 
     @Size(message = "角色不能为空",min = 1)
     private List<Long> roleIdList;
+
+    @Size(message = "发送目标不能为空",min = 1)
+    private List<Long> orgIdList;
 }

+ 31 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/dto/ReminderConfigPageDto.java

@@ -0,0 +1,31 @@
+package com.xunmei.common.core.domain.reminder.dto;
+
+import com.xunmei.common.core.domain.reminder.vo.ReminderConfigPageVo;
+import com.xunmei.common.core.web.domain.PageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.Size;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ReminderConfigPageDto extends PageDto<ReminderConfigPageVo> {
+
+    @ApiModelProperty(value = "提醒类型(0:逾期提醒、1:临期提醒)")
+    private Integer reminderType;
+
+    /**
+     * @see com.xunmei.common.core.enums.BusinessPlanType
+     */
+    @ApiModelProperty(value = "发送模块")
+    private String sendModule;
+
+    private Boolean enabled;
+
+    @Size(message = "角色不能为空",min = 1)
+    private Long roleId;
+
+    @Size(message = "发送目标不能为空",min = 1)
+    private Long orgId;
+}

+ 54 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/vo/ReminderConfigDetailVo.java

@@ -0,0 +1,54 @@
+package com.xunmei.common.core.domain.reminder.vo;
+
+import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationOrg;
+import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationRole;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author jingYuanChao
+ * @since 2024-04-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ReminderConfigDetailVo implements Serializable {
+
+
+    @ApiModelProperty(value = "配置ID")
+    private Long configId;
+
+    @ApiModelProperty(value = "提醒类型(0:逾期提醒、1:临期提醒)")
+    private Integer reminderType;
+
+    /**
+     * @see com.xunmei.common.core.enums.BusinessPlanType
+     */
+    @ApiModelProperty(value = "发送模块")
+    private String sendModule;
+
+    @ApiModelProperty(value = "临期时间(以天数表示)")
+    private Integer advanceNoticePeriod;
+
+    @ApiModelProperty(value = "逾期时间(以天数表示)")
+    private Integer overdueNoticePeriod;
+
+    @ApiModelProperty(value = "是否启用该提醒配置")
+    private Boolean enabled;
+
+    @ApiModelProperty(value = "发送目标机构")
+    private List<CoreReminderConfigurationOrg> orgList;
+
+    @ApiModelProperty(value = "发送目标角色")
+    private List<CoreReminderConfigurationRole> roleList;
+
+
+
+}

+ 34 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/reminder/vo/ReminderConfigPageVo.java

@@ -0,0 +1,34 @@
+package com.xunmei.common.core.domain.reminder.vo;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ReminderConfigPageVo {
+
+    @ApiModelProperty(value = "配置ID")
+    private Long configId;
+
+    @ApiModelProperty(value = "提醒类型(0:逾期提醒、1:临期提醒)")
+    private Integer reminderType;
+
+    /**
+     * @see com.xunmei.common.core.enums.BusinessPlanType
+     */
+    @ApiModelProperty(value = "发送模块")
+    private String sendModule;
+
+    @ApiModelProperty(value = "临期时间(以天数表示)")
+    private Integer advanceNoticePeriod;
+
+    @ApiModelProperty(value = "逾期时间(以天数表示)")
+    private Integer overdueNoticePeriod;
+
+    @ApiModelProperty(value = "是否启用该提醒配置")
+    private Boolean enabled;
+
+    private String orgName;
+
+    private String roleName;
+}

+ 20 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/controller/CoreReminderConfigurationController.java

@@ -2,14 +2,20 @@ package com.xunmei.core.reminder.controller;
 
 
 import com.xunmei.common.core.domain.reminder.dto.ReminderConfigEditDto;
+import com.xunmei.common.core.domain.reminder.dto.ReminderConfigPageDto;
+import com.xunmei.common.core.domain.reminder.vo.ReminderConfigDetailVo;
 import com.xunmei.common.core.web.domain.AjaxResult;
+import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.reminder.service.ICoreReminderConfigurationService;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
 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;
+import javax.validation.constraints.NotNull;
 
 /**
  * <p>
@@ -26,11 +32,24 @@ public class CoreReminderConfigurationController {
     @Autowired
     private ICoreReminderConfigurationService configurationService;
 
-    @RequestMapping("/config")
+    @ApiOperation(value = "新增/修改配置")
+    @RequestMapping("page")
+    public TableDataInfo<?> page(@RequestBody ReminderConfigPageDto req) {
+        return configurationService.pageData(req);
+    }
+
+    @ApiOperation(value = "新增/修改配置")
+    @RequestMapping("config")
     public AjaxResult addConfig(@RequestBody @Valid ReminderConfigEditDto editDto) {
         configurationService.editConfig(editDto);
         return AjaxResult.success();
+    }
 
+    @ApiOperation(value = "配置详情")
+    @RequestMapping("config/{id}")
+    public AjaxResult detail(@PathVariable("id") @NotNull String id) {
+        ReminderConfigDetailVo detailVo = configurationService.detail(id);
+        return AjaxResult.success(detailVo);
     }
 
 }

+ 5 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/mapper/CoreReminderConfigurationMapper.java

@@ -1,7 +1,11 @@
 package com.xunmei.core.reminder.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfiguration;
+import com.xunmei.common.core.domain.reminder.dto.ReminderConfigPageDto;
+import com.xunmei.common.core.domain.reminder.vo.ReminderConfigPageVo;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfiguration;
  */
 public interface CoreReminderConfigurationMapper extends BaseMapper<CoreReminderConfiguration> {
 
+    Page<ReminderConfigPageVo> selectPageData(Page<ReminderConfigPageVo> page, @Param("req") ReminderConfigPageDto req);
 }

+ 22 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/mapper/CoreReminderConfigurationOrgMapper.java

@@ -0,0 +1,22 @@
+package com.xunmei.core.reminder.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationOrg;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 短信提醒配置机构关联表 Mapper 接口
+ * </p>
+ *
+ * @author jingYuanChao
+ * @since 2024-04-12
+ */
+public interface CoreReminderConfigurationOrgMapper extends BaseMapper<CoreReminderConfigurationOrg> {
+
+    void deleteByConfigId(@Param("configId") Long configId);
+
+    List<CoreReminderConfigurationOrg> selectByConfigId(@Param("configId") Long configId);
+}

+ 6 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/mapper/CoreReminderConfigurationRoleMapper.java

@@ -1,7 +1,10 @@
 package com.xunmei.core.reminder.mapper;
 
-import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationRole;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationRole;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface CoreReminderConfigurationRoleMapper extends BaseMapper<CoreReminderConfigurationRole> {
 
+    void deleteByConfigId(@Param("configId") Long configId);
+    List<CoreReminderConfigurationRole> selectByConfigId(@Param("configId") Long configId);
 }

+ 16 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/ICoreReminderConfigurationOrgService.java

@@ -0,0 +1,16 @@
+package com.xunmei.core.reminder.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationOrg;
+
+/**
+ * <p>
+ * 短信提醒配置机构关联表 服务类
+ * </p>
+ *
+ * @author jingYuanChao
+ * @since 2024-04-12
+ */
+public interface ICoreReminderConfigurationOrgService extends IService<CoreReminderConfigurationOrg> {
+
+}

+ 6 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/ICoreReminderConfigurationService.java

@@ -3,6 +3,9 @@ package com.xunmei.core.reminder.service;
 import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfiguration;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.reminder.dto.ReminderConfigEditDto;
+import com.xunmei.common.core.domain.reminder.dto.ReminderConfigPageDto;
+import com.xunmei.common.core.domain.reminder.vo.ReminderConfigDetailVo;
+import com.xunmei.common.core.web.page.TableDataInfo;
 
 /**
  * <p>
@@ -16,4 +19,7 @@ public interface ICoreReminderConfigurationService extends IService<CoreReminder
 
     void editConfig(ReminderConfigEditDto editDto);
 
+    ReminderConfigDetailVo detail(String id);
+
+    TableDataInfo<?> pageData(ReminderConfigPageDto req);
 }

+ 20 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/impl/CoreReminderConfigurationOrgServiceImpl.java

@@ -0,0 +1,20 @@
+package com.xunmei.core.reminder.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationOrg;
+import com.xunmei.core.reminder.mapper.CoreReminderConfigurationOrgMapper;
+import com.xunmei.core.reminder.service.ICoreReminderConfigurationOrgService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 短信提醒配置机构关联表 服务实现类
+ * </p>
+ *
+ * @author jingYuanChao
+ * @since 2024-04-12
+ */
+@Service
+public class CoreReminderConfigurationOrgServiceImpl extends ServiceImpl<CoreReminderConfigurationOrgMapper, CoreReminderConfigurationOrg> implements ICoreReminderConfigurationOrgService {
+
+}

+ 89 - 27
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/reminder/service/impl/CoreReminderConfigurationServiceImpl.java

@@ -1,21 +1,29 @@
 package com.xunmei.core.reminder.service.impl;
 
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfiguration;
+import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationOrg;
 import com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationRole;
 import com.xunmei.common.core.domain.reminder.dto.ReminderConfigEditDto;
+import com.xunmei.common.core.domain.reminder.dto.ReminderConfigPageDto;
+import com.xunmei.common.core.domain.reminder.vo.ReminderConfigDetailVo;
+import com.xunmei.common.core.domain.reminder.vo.ReminderConfigPageVo;
 import com.xunmei.common.core.vo.IdNameVo;
+import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.core.reminder.mapper.CoreReminderConfigurationMapper;
+import com.xunmei.core.reminder.mapper.CoreReminderConfigurationOrgMapper;
 import com.xunmei.core.reminder.mapper.CoreReminderConfigurationRoleMapper;
 import com.xunmei.core.reminder.service.ICoreReminderConfigurationService;
 import com.xunmei.system.api.Eto.RoleConditionEto;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.domain.SysOrg;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -35,38 +43,92 @@ public class CoreReminderConfigurationServiceImpl extends ServiceImpl<CoreRemind
     private RemoteRoleService roleService;
     @Autowired
     private CoreReminderConfigurationRoleMapper configurationRoleMapper;
+    @Autowired
+    private CoreReminderConfigurationOrgMapper coreReminderConfigurationOrgMapper;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void editConfig(ReminderConfigEditDto editDto) {
-        SysOrg sysOrg = orgService.selectOrgById(editDto.getOrgId(), SecurityConstants.INNER);
+        List<SysOrg> sysOrgList = orgService.selectByOrgIdList(editDto.getOrgIdList(), SecurityConstants.INNER);
         List<IdNameVo> names = roleService.getNames(new RoleConditionEto(editDto.getRoleIdList()));
-        if (editDto.getConfigId() == null) {
-            CoreReminderConfiguration config = new CoreReminderConfiguration();
-            //生成config所有字段的set方法
-            config.setConfigId(IdWorker.getId());
-            config.setReminderType(editDto.getReminderType());
-            config.setSendModule(editDto.getSendModule());
-            config.setOrgId(editDto.getOrgId());
-            config.setOrgName(sysOrg.getName());
-            config.setOrgPath(sysOrg.getPath());
-            config.setOrgType(sysOrg.getType());
-            if (editDto.getReminderType() == 0) {
-                config.setOverdueNoticePeriod(editDto.getDay());
-            } else {
-                config.setAdvanceNoticePeriod(editDto.getDay());
-            }
-            config.setEnabled(editDto.getEnabled());
+        CoreReminderConfiguration config = getById(editDto.getConfigId());
+        if (config == null) {
+            config = new CoreReminderConfiguration();
+            populateBean(editDto, config);
             save(config);
-            for (Long roleId : editDto.getRoleIdList()) {
-                CoreReminderConfigurationRole configurationRole = new CoreReminderConfigurationRole();
-                configurationRole.setTargetRoleId(roleId);
-                names.stream().filter(idNameVo -> idNameVo.getId().equals(roleId)).findAny().ifPresent(idNameVo -> {
-                    configurationRole.setTargetRoleName(idNameVo.getName());
-                });
-                configurationRole.setConfigId(config.getConfigId());
-                configurationRoleMapper.insert(configurationRole);
-            }
+            saveConfigurationRoles(config.getConfigId(), editDto.getRoleIdList(), names);
+            saveConfigurationOrgList(config.getConfigId(), sysOrgList);
+            return;
+        }
+        populateBean(editDto, config);
+        updateById(config);
+        configurationRoleMapper.deleteByConfigId(config.getConfigId());
+        saveConfigurationRoles(config.getConfigId(), editDto.getRoleIdList(), names);
+        coreReminderConfigurationOrgMapper.deleteByConfigId(config.getConfigId());
+        saveConfigurationOrgList(config.getConfigId(), sysOrgList);
+    }
+
+    @Override
+    public ReminderConfigDetailVo detail(String id) {
+
+        CoreReminderConfiguration configuration = getById(id);
+        if (configuration == null) {
+            throw new RuntimeException("未找到提醒配置");
         }
+        ReminderConfigDetailVo detailVo = new ReminderConfigDetailVo();
+        BeanUtils.copyProperties(configuration, detailVo);
+        detailVo.setRoleList(configurationRoleMapper.selectByConfigId(configuration.getConfigId()));
+        detailVo.setOrgList(coreReminderConfigurationOrgMapper.selectByConfigId(configuration.getConfigId()));
+
+        return detailVo;
+    }
 
+    @Override
+    public TableDataInfo<?> pageData(ReminderConfigPageDto req) {
+        SysOrg sysOrg = orgService.selectOrgById(req.getOrgId(), SecurityConstants.INNER);
+        if (sysOrg == null) {
+            throw new RuntimeException("未找到机构");
+        }
+        req.setOrgPath(sysOrg.getPath());
+        Page<ReminderConfigPageVo> page = baseMapper.selectPageData(req.toPage(), req);
+        return TableDataInfo.build(page);
+    }
+
+    private void populateBean(ReminderConfigEditDto editDto, CoreReminderConfiguration config) {
+        config.setReminderType(editDto.getReminderType());
+        config.setSendModule(editDto.getSendModule());
+        if (editDto.getReminderType() == 0) {
+            config.setOverdueNoticePeriod(editDto.getDay());
+        } else {
+            config.setAdvanceNoticePeriod(editDto.getDay());
+        }
+        config.setEnabled(editDto.getEnabled());
+    }
+
+    private void saveConfigurationRoles(Long configId, List<Long> roleIdList, List<IdNameVo> names) {
+        for (Long roleId : roleIdList) {
+            CoreReminderConfigurationRole configurationRole = new CoreReminderConfigurationRole();
+            configurationRole.setTargetRoleId(roleId);
+            String targetRoleName = names.stream()
+                    .filter(idNameVo -> idNameVo.getId().equals(roleId))
+                    .map(IdNameVo::getName)
+                    .findFirst()
+                    .orElse(null);
+            configurationRole.setTargetRoleName(targetRoleName);
+            configurationRole.setConfigId(configId);
+            configurationRoleMapper.insert(configurationRole);
+        }
+    }
+
+    private void saveConfigurationOrgList(Long configId, List<SysOrg> orgList) {
+        for (SysOrg sysOrg : orgList) {
+            CoreReminderConfigurationOrg configurationOrg = new CoreReminderConfigurationOrg();
+            configurationOrg.setTargetOrgId(sysOrg.getId());
+            configurationOrg.setTargetOrgName(sysOrg.getName());
+            configurationOrg.setTargetOrgType(sysOrg.getType());
+            configurationOrg.setTargetOrgPath(sysOrg.getPath());
+            configurationOrg.setConfigId(configId);
+            coreReminderConfigurationOrgMapper.insert(configurationOrg);
+        }
     }
 }

+ 33 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/reminder/CoreReminderConfigurationMapper.xml

@@ -2,4 +2,37 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xunmei.core.reminder.mapper.CoreReminderConfigurationMapper">
 
+    <select id="selectPageData" resultType="com.xunmei.common.core.domain.reminder.vo.ReminderConfigPageVo">
+        select c.config_id,
+        c.reminder_type,
+        c.send_module,
+        c.advance_notice_period,
+        c.overdue_notice_period,
+        c.enabled,
+        group_concat(cr.target_role_name) as roleName,
+        group_concat(o.target_org_name) as orgName
+        from core_reminder_configuration c
+        inner join core_reminder_configuration_role cr
+            on c.config_id = cr.config_id
+        inner join core_reminder_configuration_org o
+            on o.config_id = c.config_id
+
+        <where>
+            <if test="req.enabled != null">
+                and c.enabled = #{req.enabled}
+            </if>
+            <if test="req.reminderType != null">
+                and c.reminder_type = #{req.reminderType}
+            </if>
+            <if test="req.sendModule != null">
+                and c.send_module = #{req.sendModule}
+            </if>
+            <if test="req.roleId != null">
+                and cr.role_id = #{req.roleId}
+            </if>
+            <if test="req.checkSub ==true">
+                and o.target_org_path like concat(#{req.orgPath},'%')
+            </if>
+        </where>
+    </select>
 </mapper>

+ 14 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/reminder/CoreReminderConfigurationOrgMapper.xml

@@ -0,0 +1,14 @@
+<?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.xunmei.core.reminder.mapper.CoreReminderConfigurationOrgMapper">
+
+    <delete id="deleteByConfigId">
+        delete from core_reminder_configuration_org where config_id = #{configId}
+    </delete>
+
+    <select id="selectByConfigId" resultType="com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationOrg">
+        select *
+        from core_reminder_configuration_org
+        where config_id = #{configId}
+    </select>
+</mapper>

+ 10 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/reminder/CoreReminderConfigurationRoleMapper.xml

@@ -2,4 +2,14 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xunmei.core.reminder.mapper.CoreReminderConfigurationRoleMapper">
 
+    <delete id="deleteByConfigId">
+        delete from core_reminder_configuration_role where config_id = #{configId}
+    </delete>
+
+    <select id="selectByConfigId"
+            resultType="com.xunmei.common.core.domain.reminder.domain.CoreReminderConfigurationRole">
+        select *
+        from core_reminder_configuration_role
+        where config_id
+    </select>
 </mapper>

+ 1 - 1
soc-modules/soc-modules-gen/src/main/java/com/xunmei/gen/util/CodeGenerators.java

@@ -30,7 +30,7 @@ public class CodeGenerators {
     }*/
 
     public static final String moduleName="com.xunmei.core.reminder";
-    public static final String tableNames="core_reminder_configuration_role";
+    public static final String tableNames="core_reminder_configuration_org";
 
     public static void main(String[] args) {
         // 代码生成器