diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/OperCustomizeConstant.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/OperCustomizeConstant.java index 20ffd9c3cd..ea9565c269 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/OperCustomizeConstant.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/constant/OperCustomizeConstant.java @@ -31,4 +31,15 @@ public interface OperCustomizeConstant { * 数据状态-草稿 */ Integer STATUS_IS_DRAFT = 1; + + /** + * 政府端 + */ + Integer GOV = 1; + /** + * 居民端 + */ + Integer RESIDENT = 0; + + } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeController.java index 06dccbabcd..b8bd95073c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeController.java @@ -91,4 +91,18 @@ public class CustomerHomeController { ExcelUtils.exportExcelToTarget(response, null, list, CustomerHomeExcel.class); } + /** + * 创建客户初始化数据 + * @author zhaoqifeng + * @date 2020/5/22 11:04 + * @param dto + * @return com.epmet.commons.tools.utils.Result + */ + @PostMapping("init") + public Result init(@RequestBody CustomerHomeDTO dto){ + //效验数据 + customerHomeService.init(dto); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeService.java index a7e8c52393..4b5f763d8e 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeService.java @@ -92,4 +92,13 @@ public interface CustomerHomeService extends BaseService { * @date 2020-03-10 */ void delete(String[] ids); + + /** + * 创建客户初始化数据 + * @author zhaoqifeng + * @date 2020/5/22 11:04 + * @param dto + * @return void + */ + void init(CustomerHomeDTO dto); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeTemplateService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeTemplateService.java index 4ac30188a7..4482538067 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeTemplateService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerHomeTemplateService.java @@ -92,4 +92,13 @@ public interface CustomerHomeTemplateService extends BaseService + */ + List getTemplateByClient(Integer client); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeServiceImpl.java index bfbf7ea130..8ba5ba26bd 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeServiceImpl.java @@ -23,11 +23,16 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.constant.OperCustomizeConstant; import com.epmet.dao.CustomerHomeDao; import com.epmet.dto.CustomerHomeDTO; +import com.epmet.dto.CustomerHomeTemplateDTO; +import com.epmet.dto.FunctionDTO; +import com.epmet.entity.CustomerFunctionEntity; +import com.epmet.entity.CustomerHomeDetailEntity; import com.epmet.entity.CustomerHomeEntity; import com.epmet.redis.CustomerHomeRedis; -import com.epmet.service.CustomerHomeService; +import com.epmet.service.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -36,9 +41,10 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** - * 客户首页表 + * 客户首页表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-10 @@ -46,59 +52,124 @@ import java.util.Map; @Service public class CustomerHomeServiceImpl extends BaseServiceImpl implements CustomerHomeService { - @Autowired - private CustomerHomeRedis customerHomeRedis; - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, CustomerHomeDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, CustomerHomeDTO.class); - } - - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public CustomerHomeDTO get(String id) { - CustomerHomeEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, CustomerHomeDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(CustomerHomeDTO dto) { - CustomerHomeEntity entity = ConvertUtils.sourceToTarget(dto, CustomerHomeEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(CustomerHomeDTO dto) { - CustomerHomeEntity entity = ConvertUtils.sourceToTarget(dto, CustomerHomeEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } + @Autowired + private CustomerHomeRedis customerHomeRedis; + @Autowired + private CustomerHomeDetailService customerHomeDetailService; + @Autowired + private CustomerHomeTemplateService customerHomeTemplateService; + @Autowired + private FunctionService functionService; + @Autowired + private CustomerFunctionService customerFunctionService; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, CustomerHomeDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, CustomerHomeDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public CustomerHomeDTO get(String id) { + CustomerHomeEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, CustomerHomeDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(CustomerHomeDTO dto) { + CustomerHomeEntity entity = ConvertUtils.sourceToTarget(dto, CustomerHomeEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(CustomerHomeDTO dto) { + CustomerHomeEntity entity = ConvertUtils.sourceToTarget(dto, CustomerHomeEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void init(CustomerHomeDTO dto) { + + //居民端模板 + List resiTempList = customerHomeTemplateService.getTemplateByClient(OperCustomizeConstant.RESIDENT); + //居民端草稿 + saveHome(dto.getCustomerId(), OperCustomizeConstant.RESIDENT, OperCustomizeConstant.STATUS_IS_DRAFT, resiTempList); + //居民端已发布 + saveHome(dto.getCustomerId(), OperCustomizeConstant.RESIDENT, OperCustomizeConstant.STATUS_IS_RELEASED, resiTempList); + //政府端模板 + List govTempList = customerHomeTemplateService.getTemplateByClient(OperCustomizeConstant.GOV); + //政府端草稿 + saveHome(dto.getCustomerId(), OperCustomizeConstant.GOV, OperCustomizeConstant.STATUS_IS_DRAFT, govTempList); + //政府端已发布 + saveHome(dto.getCustomerId(), OperCustomizeConstant.GOV, OperCustomizeConstant.STATUS_IS_RELEASED, govTempList); + //customer_function数据 + List functionList = functionService.queryFunctionList().getData(); + List customerFunctionList = functionList.stream().map(function -> { + CustomerFunctionEntity entity = new CustomerFunctionEntity(); + entity.setCustomerId(dto.getCustomerId()); + entity.setFunctionId(function.getId()); + return entity; + }).collect(Collectors.toList()); + customerFunctionService.insertBatch(customerFunctionList); + } + + /** + * 往customer_home和customer_home_detail存入数据 + * + * @param customerId 客户ID + * @param client 所 状态 0已发布, 1草稿 + * @return void + * @author zhaoqifeng + * @date 2020/5/22 13:36 + */ + private void saveHome(String customerId, Integer client, Integer status, List tempList) { + CustomerHomeEntity entity = new CustomerHomeEntity(); + entity.setCustomerId(customerId); + entity.setClientType(client); + entity.setStatus(status); + baseDao.insert(entity); + + List list = tempList.stream().map(temp -> { + CustomerHomeDetailEntity detailEntity = new CustomerHomeDetailEntity(); + detailEntity.setHomeId(entity.getId()); + detailEntity.setComponentId(temp.getComponentId()); + detailEntity.setConfiguration(temp.getConfiguration()); + detailEntity.setDemoData(temp.getDemoData()); + detailEntity.setDisplayOrder(temp.getDisplayOrder()); + detailEntity.setRegion(temp.getRegion()); + return detailEntity; + }).collect(Collectors.toList()); + + customerHomeDetailService.insertBatch(list); + } } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeTemplateServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeTemplateServiceImpl.java index feab37ffd1..220b1efc31 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeTemplateServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerHomeTemplateServiceImpl.java @@ -101,4 +101,11 @@ public class CustomerHomeTemplateServiceImpl extends BaseServiceImpl getTemplateByClient(Integer client) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("CLIENT_TYPE", client); + return ConvertUtils.sourceToTarget(baseDao.selectList(wrapper), CustomerHomeTemplateDTO.class); + } + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db.migration/customer_foot_bar.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db.migration/customer_foot_bar.sql index dc9eebc971..a1b2b35252 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db.migration/customer_foot_bar.sql +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db.migration/customer_foot_bar.sql @@ -35,3 +35,23 @@ INSERT INTO `customer_foot_bar` VALUES ('3', '数据', 'data', '数据', NULL, N INSERT INTO `customer_foot_bar` VALUES ('4', '发现', 'find', '发现', NULL, NULL, 0, 0, 'wxz', '2020-04-22 11:21:48', 'wxz', '2020-04-22 11:21:53'); -- SET FOREIGN_KEY_CHECKS = 1; + +DROP TABLE IF EXISTS `customer_home_template`; +CREATE TABLE `customer_home_template` ( + `ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '唯一标识', + `COMPONENT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组件ID home_component.ID', + `CLIENT_TYPE` int(11) NOT NULL COMMENT '所属端类型:0.居民端,1.政府端', + `REGION` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '组件的“适用区域”titleList.标题区、topList.置顶区、functionList.功能区、floatingList.悬浮区', + `CONFIGURATION` varchar(3072) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '高级配置 JSON串', + `DEMO_DATA` varchar(3072) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '演示数据 JSON串', + `DISPLAY_ORDER` int(11) NOT NULL COMMENT '显示顺序', + `DEL_FLAG` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '删除标识', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客户首页模板表 ' ROW_FORMAT = Compact; + +alter table customer_home_template add column DEL_FLAG char(1) NOT NULL DEFAULT '0' COMMENT '删除标识' after DISPLAY_ORDER; \ No newline at end of file