From fc0913430f210e0b523d504de24e11f873d0e862 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 24 Aug 2020 22:41:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/form/HomeTemplateFormDTO.java | 20 ++++ .../ComponentListByCustomerResultDTO.java | 2 +- .../result/HomeDesignByCustomerResultDTO.java | 2 +- .../CustomerHomeTemplateController.java | 57 +++++++++++ .../CustomerHomeTemplateFormDTO.java | 28 ++++++ .../epmet/dao/CustomerHomeTemplateDao.java | 55 ++++++++++- .../service/CustomerHomeTemplateService.java | 30 ++++++ .../impl/CustomerHomeTemplateServiceImpl.java | 94 ++++++++++++++++++- .../mapper/CustomerHomeTemplateDao.xml | 86 +++++++++++++++++ 9 files changed, 370 insertions(+), 4 deletions(-) create mode 100644 epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/HomeTemplateFormDTO.java create mode 100644 epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateFormDTO.java diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/HomeTemplateFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/HomeTemplateFormDTO.java new file mode 100644 index 0000000000..95bb7937ae --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/HomeTemplateFormDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2020/8/24 21:59 + */ +@Data +public class HomeTemplateFormDTO implements Serializable { + /** + * 0居民端1政府端 + */ + private String clientType; + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ComponentListByCustomerResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ComponentListByCustomerResultDTO.java index 9e1ccb1703..3765b404f8 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ComponentListByCustomerResultDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/ComponentListByCustomerResultDTO.java @@ -6,7 +6,7 @@ import java.io.Serializable; import java.util.List; /** - * @Description 运营端-客户定制化服务-获取客户可用组件列表-返参 + * @Description 运营端-客户定制化服务-获取客户可用组件列表-返参 小程序首页默认配置(/oper/customize/customerhometemplate/getcomponentlist)返参也用的这个DTO * @Author yinzuomei * @Date 2020/3/11 12:57 */ diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/HomeDesignByCustomerResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/HomeDesignByCustomerResultDTO.java index 64dbfdaa26..4c1ad37e76 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/HomeDesignByCustomerResultDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/HomeDesignByCustomerResultDTO.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.Set; /** - * @Description 运营端-客户定制化服务-获取客户首页配置的设计稿返参 + * @Description 运营端-客户定制化服务-获取客户首页配置的设计稿返参 (/oper/customize/customerhometemplate/gethometemplate接口也用的此DTO) * @Author yang * @Date 2020/3/16 12:57 */ diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateController.java index e842ec2794..084384e457 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateController.java @@ -17,6 +17,8 @@ package com.epmet.controller; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.ValidateException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; @@ -26,8 +28,11 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.CustomerHomeTemplateDTO; +import com.epmet.dto.result.ComponentListByCustomerResultDTO; +import com.epmet.dto.result.HomeDesignByCustomerResultDTO; import com.epmet.excel.CustomerHomeTemplateExcel; import com.epmet.service.CustomerHomeTemplateService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -91,4 +96,56 @@ public class CustomerHomeTemplateController { ExcelUtils.exportExcelToTarget(response, null, list, CustomerHomeTemplateExcel.class); } + /** + * @return com.epmet.commons.tools.utils.Result + * @param params clientType 所属端:0.居民端,1.领导端 + * @author yinzuomei + * @description 获取可用组件列表 + * @Date 2020/8/24 21:15 + **/ + @PostMapping("getcomponentlist") + public Result getComponetList(@RequestParam Map params) { + String clientType= (String) params.get("clientType"); + if(StringUtils.isBlank(clientType)){ + throw new ValidateException("clientType不能为空"); + } + if(!NumConstant.ZERO_STR.equals(clientType)&&!NumConstant.ONE_STR.equals(clientType)){ + throw new ValidateException("所属端类型0.居民端,1.政府端"); + } + return new Result().ok(customerHomeTemplateService.getComponentListByCustomer(clientType)); + } + + /** + * @param params clientType 所属端:0.居民端,1.领导端 + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 获取小程序首页配置 + * @Date 2020/8/24 22:06 + **/ + @PostMapping("gethometemplate") + public Result getHomeTemplate(@RequestParam Map params) { + String clientType = (String) params.get("clientType"); + if (StringUtils.isBlank(clientType)) { + throw new ValidateException("clientType不能为空"); + } + if (!NumConstant.ZERO_STR.equals(clientType) && !NumConstant.ONE_STR.equals(clientType)) { + throw new ValidateException("所属端类型0.居民端,1.政府端"); + } + return new Result().ok(customerHomeTemplateService.getHomeTemplate(clientType)); + } + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @author yinzuomei + * @description 保存小程序首页配置 + * @Date 2020/8/24 22:19 + **/ + @PostMapping("savecustomerhometemplate") + public Result saveCustomerHomeTemplate(@RequestBody CustomerHomeTemplateFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + customerHomeTemplateService.saveCustomerHomeTemplate(formDTO); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateFormDTO.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateFormDTO.java new file mode 100644 index 0000000000..9ee71fddd9 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerHomeTemplateFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.controller; + +import com.epmet.dto.form.HomeComponentFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * 保存小程序首页配置 入参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/8/24 22:18 + */ +@Data +public class CustomerHomeTemplateFormDTO implements Serializable { + /** + * 所属端类型 0:居民端 1:政府端 + */ + @NotBlank(message = "所属端类型不能为空") + private String clientType; + + /** + * 组件集合 + */ + private List componentList; +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerHomeTemplateDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerHomeTemplateDao.java index 5e60376eb5..351a961d85 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerHomeTemplateDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerHomeTemplateDao.java @@ -18,11 +18,18 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.form.ComponentListByCustomerFormDTO; +import com.epmet.dto.result.CommonComponentDesignResultDTO; +import com.epmet.dto.result.CommonComponentResultDTO; +import com.epmet.dto.result.FunctionComponentResultDTO; import com.epmet.entity.CustomerHomeTemplateEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** - * 客户首页模板表 + * 客户首页模板表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-10 @@ -30,4 +37,50 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface CustomerHomeTemplateDao extends BaseDao { + /** + * @param clientType 所属端类型0.居民端,1.政府端 + * @return java.util.List + * @author yinzuomei + * @description 通用组件列表 + * @Date 2020/8/24 21:30 + **/ + List selectListCommonComponent(String clientType); + + /** + * @return java.util.List + * @author yinzuomei + * @description 功能组件列表(以功能分组) + * @Date 2020/8/24 21:30 + **/ + List selectListFunction(); + + /** + * @param functionId + * @param clientType + * @return java.util.List + * @author yinzuomei + * @description 根据功能,所属端,查询功能组件列表 + * @Date 2020/8/24 21:56 + **/ + List selectListFunctionComponent(@Param("functionId") String functionId, + @Param("clientType") String clientType); + + /** + * @return java.util.List + * @param clientType 所属端:0.居民端,1.领导端 + * @author yinzuomei + * @description 获取小程序首页配置 + * @Date 2020/8/24 22:12 + **/ + List selectCustomerTemplate(String clientType); + + /** + * @return int + * @param clientType + * @param userId + * @author yinzuomei + * @description 删除某一端的默认配置 + * @Date 2020/8/24 22:35 + **/ + int deleteByClientType(@Param("clientType") String clientType,@Param("userId") String userId); } \ 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 4482538067..c0b7d6f5db 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 @@ -19,7 +19,10 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; +import com.epmet.controller.CustomerHomeTemplateFormDTO; import com.epmet.dto.CustomerHomeTemplateDTO; +import com.epmet.dto.result.ComponentListByCustomerResultDTO; +import com.epmet.dto.result.HomeDesignByCustomerResultDTO; import com.epmet.entity.CustomerHomeTemplateEntity; import java.util.List; @@ -101,4 +104,31 @@ public interface CustomerHomeTemplateService extends BaseService */ List getTemplateByClient(Integer client); + + /** + * @return com.epmet.dto.result.ComponentListByCustomerResultDTO + * @param clientType + * @author yinzuomei + * @description 获取可用组件列表 + * @Date 2020/8/24 21:16 + **/ + ComponentListByCustomerResultDTO getComponentListByCustomer(String clientType); + + /** + * @return com.epmet.dto.result.HomeDesignByCustomerResultDTO + * @param clientType 所属端:0.居民端,1.领导端 + * @author yinzuomei + * @description + * @Date 2020/8/24 22:06 + **/ + HomeDesignByCustomerResultDTO getHomeTemplate(String clientType); + + /** + * @return void + * @param formDTO + * @author yinzuomei + * @description 保存小程序首页配置 + * @Date 2020/8/24 22:20 + **/ + void saveCustomerHomeTemplate(CustomerHomeTemplateFormDTO formDTO); } \ 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 220b1efc31..7bd87b2b41 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 @@ -21,10 +21,20 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.user.LoginUserUtil; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.OperCustomizeConstant; +import com.epmet.constant.ReginConstant; +import com.epmet.controller.CustomerHomeTemplateFormDTO; import com.epmet.dao.CustomerHomeTemplateDao; import com.epmet.dto.CustomerHomeTemplateDTO; +import com.epmet.dto.form.HomeComponentFormDTO; +import com.epmet.dto.result.CommonComponentDesignResultDTO; +import com.epmet.dto.result.ComponentListByCustomerResultDTO; +import com.epmet.dto.result.FunctionComponentResultDTO; +import com.epmet.dto.result.HomeDesignByCustomerResultDTO; import com.epmet.entity.CustomerHomeTemplateEntity; import com.epmet.redis.CustomerHomeTemplateRedis; import com.epmet.service.CustomerHomeTemplateService; @@ -33,6 +43,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -48,7 +59,8 @@ public class CustomerHomeTemplateServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -108,4 +120,84 @@ public class CustomerHomeTemplateServiceImpl extends BaseServiceImpl functionList = baseDao.selectListFunction(); + for (FunctionComponentResultDTO function : functionList) { + function.setComponentList(baseDao.selectListFunctionComponent(function.getFunctionId(), clientType)); + } + resultDTO.setFunctionList(functionList); + return resultDTO; + } + + /** + * @param clientType 所属端:0.居民端,1.领导端 + * @return com.epmet.dto.result.HomeDesignByCustomerResultDTO + * @author yinzuomei + * @description + * @Date 2020/8/24 22:06 + **/ + @Override + public HomeDesignByCustomerResultDTO getHomeTemplate(String clientType) { + HomeDesignByCustomerResultDTO resultDTO = new HomeDesignByCustomerResultDTO(); + //根据客户id,所属端获取客户首页配置的设计稿 + List list = baseDao.selectCustomerTemplate(clientType); + List titleList = new ArrayList<>(); + List topList = new ArrayList<>(); + List functionList = new ArrayList<>(); + List floatingList = new ArrayList<>(); + //使用过的组件集合 + List usedComponent = new ArrayList<>(); + for (CommonComponentDesignResultDTO c : list) { + usedComponent.add(c.getComponentId()); + //所属区域:0.标题区、1.置顶区、2.功能区、3.悬浮区 + if (ReginConstant.TITLE_LIST.equals(c.getRegion())) { + titleList.add(c); + } else if (ReginConstant.TOP_LIST.equals(c.getRegion())) { + topList.add(c); + } else if (ReginConstant.FUNCTION_LIST.equals(c.getRegion())) { + functionList.add(c); + } else if (ReginConstant.FLOATING_LIST.equals(c.getRegion())) { + floatingList.add(c); + } + } + resultDTO.setTitleList(titleList); + resultDTO.setTopList(topList); + resultDTO.setFloatingList(floatingList); + resultDTO.setFunctionList(functionList); + resultDTO.setUsedComponentIdList(usedComponent); + return resultDTO; + } + + /** + * @param formDTO + * @return void + * @author yinzuomei + * @description 保存小程序首页配置 + * @Date 2020/8/24 22:20 + **/ + @Override + public void saveCustomerHomeTemplate(CustomerHomeTemplateFormDTO formDTO) { + int deletedNum = baseDao.deleteByClientType(formDTO.getClientType(), loginUserUtil.getLoginUserId()); + for (HomeComponentFormDTO homeComponentFormDTO : formDTO.getComponentList()) { + CustomerHomeTemplateDTO customerHomeTemplateDTO = new CustomerHomeTemplateDTO(); + customerHomeTemplateDTO.setComponentId(homeComponentFormDTO.getComponentId()); + customerHomeTemplateDTO.setClientType(Integer.valueOf(formDTO.getClientType())); + customerHomeTemplateDTO.setRegion(homeComponentFormDTO.getRegion()); + customerHomeTemplateDTO.setConfiguration(homeComponentFormDTO.getConfiguration()); + customerHomeTemplateDTO.setDemoData(homeComponentFormDTO.getDemoData()); + customerHomeTemplateDTO.setDisplayOrder(homeComponentFormDTO.getDisplayOrder()); + save(customerHomeTemplateDTO); + } + } + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerHomeTemplateDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerHomeTemplateDao.xml index f6d4b056c1..3813fbd9ca 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerHomeTemplateDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerHomeTemplateDao.xml @@ -18,5 +18,91 @@ + + + + + + + + + + + + + UPDATE customer_home_template + SET DEL_FLAG = '1', + UPDATED_BY = #{userId}, + UPDATED_TIME = NOW() + WHERE + CLIENT_TYPE = #{clientType} + \ No newline at end of file