he2802 hace 2 años
padre
commit
ee61bca9a9

+ 21 - 4
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/distribution/DistributionActivityTemplatePosterController.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.controller.distribution;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
@@ -7,9 +8,12 @@ import com.zhongzheng.common.core.page.TableDataInfo;
 import com.zhongzheng.common.enums.BusinessType;
 import com.zhongzheng.common.utils.poi.ExcelUtil;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplatePosterAddBo;
-import com.zhongzheng.modules.distribution.bo.distributionActivityTemplatePosterEditBo;
 import com.zhongzheng.modules.distribution.bo.DistributionActivityTemplatePosterQueryBo;
+import com.zhongzheng.modules.distribution.bo.distributionActivityTemplatePosterEditBo;
+import com.zhongzheng.modules.distribution.domain.DistributionActivityTemplateImage;
+import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateImageService;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplatePosterService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateImageVo;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplatePosterVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -20,6 +24,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 【分销海报模板控制器】Controller
@@ -35,11 +40,12 @@ public class DistributionActivityTemplatePosterController extends BaseController
 
     private final IDistributionActivityTemplatePosterService iDistributionActivityTemplatePosterService;
 
+    private final IDistributionActivityTemplateImageService iDistributionActivityTemplateImageService;
+
     /**
-     * 查询【请填写功能名称】列表
+     * 查询海报模板列表
      */
-    @ApiOperation("查询【请填写功能名称】列表")
-    @PreAuthorize("@ss.hasPermi('system:poster:list')")
+    @ApiOperation("查询海报模板列表")
     @GetMapping("/list")
     public TableDataInfo<DistributionActivityTemplatePosterVo> list(DistributionActivityTemplatePosterQueryBo bo) {
         startPage();
@@ -47,6 +53,17 @@ public class DistributionActivityTemplatePosterController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 获取模板底图列表
+     */
+    @ApiOperation("获取海报模板底图列表")
+    @GetMapping("/image/list")
+    public AjaxResult<List<DistributionActivityTemplateImageVo>> list() {
+        List<DistributionActivityTemplateImage> imageList = iDistributionActivityTemplateImageService.list();
+        List<DistributionActivityTemplateImageVo> voList = imageList.stream().map(item -> BeanUtil.toBean(item, DistributionActivityTemplateImageVo.class)).collect(Collectors.toList());
+        return AjaxResult.success(voList);
+    }
+
     /**
      * 导出【请填写功能名称】列表
      */

+ 5 - 5
zhongzheng-admin-saas/src/main/resources/application-dev.yml

@@ -6,16 +6,16 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+                url: jdbc:mysql://192.168.1.222:3306/zz_edu_sass_top?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
                 username: root
                 password:  zhongzheng2021
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭
-                enabled: false
-                url:
-                username:
-                password:
+                enabled: true
+                url: jdbc:mysql://192.168.1.222:3306/zz_edu_saas?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true
+                username: root
+                password: zhongzheng2021
             # 初始连接数
             initialSize: 5
             # 最小连接池数量

+ 79 - 44
zhongzheng-framework/src/main/java/com/zhongzheng/framework/config/DruidConfig.java

@@ -1,29 +1,26 @@
 package com.zhongzheng.framework.config;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.sql.DataSource;
-
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
+import com.alibaba.druid.util.Utils;
 import com.zhongzheng.framework.config.properties.DruidProperties;
 import com.zhongzheng.framework.datasource.DynamicDataSource;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.web.servlet.FilterRegistrationBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
 import org.springframework.context.annotation.Primary;
-import com.alibaba.druid.pool.DruidDataSource;
-import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
-import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatProperties;
-import com.alibaba.druid.util.Utils;
-import com.zhongzheng.common.enums.DataSourceType;
-import com.zhongzheng.common.utils.spring.SpringUtils;
+
+import javax.servlet.*;
+import javax.sql.DataSource;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * druid 配置多数据源
@@ -33,51 +30,89 @@ import com.zhongzheng.common.utils.spring.SpringUtils;
 @Configuration
 public class DruidConfig
 {
-    @Bean
+
+    /**
+     * 主库数据源bean名称
+     */
+    public static final String MASTER_DATASOURCE = "masterDataSource";
+    /**
+     * 从库数据源bean名称
+     */
+    public static final String SLAVE_DATASOURCE = "slaveDataSource";
+
+
+    @Bean(MASTER_DATASOURCE)
     @ConfigurationProperties("spring.datasource.druid.master")
-    public DataSource masterDataSource(DruidProperties druidProperties)
+    public DruidDataSource masterDataSource(DruidProperties druidProperties)
     {
         DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
         return druidProperties.dataSource(dataSource);
     }
 
-    @Bean
+    @Bean(SLAVE_DATASOURCE)
     @ConfigurationProperties("spring.datasource.druid.slave")
     @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
-    public DataSource slaveDataSource(DruidProperties druidProperties)
+    public DruidDataSource slaveDataSource(DruidProperties druidProperties)
     {
         DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
         return druidProperties.dataSource(dataSource);
     }
 
-    @Bean(name = "dynamicDataSource")
-    @Primary
-    public DynamicDataSource dataSource(DataSource masterDataSource)
-    {
-        Map<Object, Object> targetDataSources = new HashMap<>();
-        targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
-        setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
-        return new DynamicDataSource(masterDataSource, targetDataSources);
-    }
-    
+//    @Bean(name = "dynamicDataSource")
+//    @Primary
+//    public DynamicDataSource dataSource(DataSource masterDataSource)
+//    {
+//        Map<Object, Object> targetDataSources = new HashMap<>();
+//        targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
+//        setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
+//        return new DynamicDataSource(masterDataSource, targetDataSources);
+//    }
+
     /**
-     * 设置数据源
-     * 
-     * @param targetDataSources 备选数据源集合
-     * @param sourceName 数据源名称
-     * @param beanName bean名称
+     * 数据源配置
+     * @param masterDataSource      主库数据源对象
+     * @param slaveDataSource       从库数据源对象
+     * @return                      DataSource
+     * @Primary                     优先使用这个DataSource对象bean
      */
-    public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
-    {
-        try
-        {
-            DataSource dataSource = SpringUtils.getBean(beanName);
-            targetDataSources.put(sourceName, dataSource);
-        }
-        catch (Exception e)
-        {
+    @Bean
+    @Primary
+    @DependsOn(value = {MASTER_DATASOURCE, SLAVE_DATASOURCE})
+    public DataSource routingDataSource(@Qualifier(MASTER_DATASOURCE) DruidDataSource masterDataSource,
+                                        @Qualifier(SLAVE_DATASOURCE) DruidDataSource slaveDataSource) {
+        if (StringUtils.isBlank(slaveDataSource.getUrl())) {
+            return masterDataSource;
         }
+        Map<Object, Object> map = new HashMap<>();
+        map.put(DruidConfig.MASTER_DATASOURCE, masterDataSource);
+        map.put(DruidConfig.SLAVE_DATASOURCE, slaveDataSource);
+        //设置动态数据源
+        DynamicDataSource routing = new DynamicDataSource(masterDataSource,map);
+//        //设置动态数据源
+//        routing.setTargetDataSources(map);
+//        //设置默认数据源
+//        routing.setDefaultTargetDataSource(masterDataSource);
+        return routing;
     }
+    
+//    /**
+//     * 设置数据源
+//     *
+//     * @param targetDataSources 备选数据源集合
+//     * @param sourceName 数据源名称
+//     * @param beanName bean名称
+//     */
+//    public void setDataSource(Map<Object, Object> targetDataSources, String sourceName, String beanName)
+//    {
+//        try
+//        {
+//            DataSource dataSource = SpringUtils.getBean(beanName);
+//            targetDataSources.put(sourceName, dataSource);
+//        }
+//        catch (Exception e)
+//        {
+//        }
+//    }
 
     /**
      * 去除监控页面底部的广告

+ 26 - 8
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/service/impl/DistributionActivityTemplateServiceImpl.java

@@ -21,7 +21,9 @@ import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplate
 import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateRelationService;
 import com.zhongzheng.modules.distribution.service.IDistributionActivityTemplateService;
 import com.zhongzheng.modules.distribution.vo.DistributionActivityTemplateVo;
-import com.zhongzheng.modules.system.service.ISysOldOrgService;
+import com.zhongzheng.modules.distribution.vo.DistributionActivityTenantVo;
+import com.zhongzheng.modules.system.domain.SysTenant;
+import com.zhongzheng.modules.system.service.ISysTenantService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -44,7 +46,7 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
     @Autowired
     private IDistributionActivityTemplateGoodsService iDistributionActivityTemplateGoodsService;
     @Autowired
-    private ISysOldOrgService iSysOldOrgService;
+    private ISysTenantService iSysTenantService;
 
     @Override
     public DistributionActivityTemplateVo queryById(Long id){
@@ -53,13 +55,29 @@ public class DistributionActivityTemplateServiceImpl extends ServiceImpl<Distrib
         //获取商品和机构信息
         List<DistributionActivityTemplateRelation> relationList = iDistributionActivityTemplateRelationService
                 .list(new LambdaQueryWrapper<DistributionActivityTemplateRelation>()
+                .eq(DistributionActivityTemplateRelation::getStatus,1)
                 .eq(DistributionActivityTemplateRelation::getDistributionTempId, vo.getId()));
-//        if (CollectionUtils.isNotEmpty(relationList)){
-//            relationList.stream().map(item -> {
-//                DistributionActivityTenantVo tenantVo = new DistributionActivityTenantVo();
-//
-//            })
-//        }
+        if (CollectionUtils.isNotEmpty(relationList)){
+            if (relationList.size() == 1 && relationList.get(0).getTenantId() == 0){
+                //全部企业
+                vo.setIsAllOrg(1);
+            }else {
+                List<DistributionActivityTenantVo> activityTenantVos = relationList.stream().map(item -> {
+                    SysTenant tenant = iSysTenantService.getById(item.getTenantId());
+                    DistributionActivityTenantVo tenantVo = new DistributionActivityTenantVo();
+                    tenantVo.setTenantId(tenant.getTenantId());
+                    tenantVo.setTenantName(tenant.getTenantName());
+                    tenantVo.setAddress(tenant.getAddress());
+                    return tenantVo;
+                }).collect(Collectors.toList());
+                vo.setTenantList(activityTenantVos);
+            }
+        }
+
+        List<DistributionActivityTemplateGoods> templateGoodsList = iDistributionActivityTemplateGoodsService
+                .list(new LambdaQueryWrapper<DistributionActivityTemplateGoods>()
+                .eq(DistributionActivityTemplateGoods::getStatus, 1)
+                .eq(DistributionActivityTemplateGoods::getDistributionTempId, vo.getId()));
 
         return vo;
     }

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTemplateImageVo.java

@@ -0,0 +1,37 @@
+package com.zhongzheng.modules.distribution.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 【请填写功能名称】视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-03-13
+ */
+@Data
+@ApiModel("【请填写功能名称】视图对象")
+public class DistributionActivityTemplateImageVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 主键 */
+	@ApiModelProperty("主键")
+	private Long id;
+
+	/** 名称 */
+	@Excel(name = "名称")
+	@ApiModelProperty("名称")
+	private String name;
+	/** 图片地址 */
+	@Excel(name = "图片地址")
+	@ApiModelProperty("图片地址")
+	private String url;
+	/** 状态:1有效,-1无效 */
+	@Excel(name = "状态:1有效,-1无效")
+	@ApiModelProperty("状态:1有效,-1无效")
+	private Integer status;
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/distribution/vo/DistributionActivityTemplateVo.java

@@ -61,6 +61,9 @@ public class DistributionActivityTemplateVo {
 	@ApiModelProperty("结束时间")
 	private Long endTime;
 
+	@ApiModelProperty("是否所有机构:1是,0否")
+	private Integer isAllOrg;
+
 	@ApiModelProperty("机构集合")
 	private List<DistributionActivityTenantVo> tenantList;