+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 客户定制功能上下架历史
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-14
+ */
+@Data
+public class FunctionShoppingHistoryDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private String id;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 功能Id
+ */
+ private String functionId;
+
+ /**
+ * 上下架状态 上架状态:0:下架、1:上架
+ */
+ private Integer shoppingStatus;
+
+ /**
+ * 理由
+ */
+ private String reason;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CommonFunctionIdFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CommonFunctionIdFormDTO.java
new file mode 100644
index 0000000000..a2200fdf5c
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CommonFunctionIdFormDTO.java
@@ -0,0 +1,23 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 入参为:定制功能ID
+ *
+ * @author zhangyong
+ * @since v1.0.0 2020-08-13
+ */
+@Data
+public class CommonFunctionIdFormDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 定制功能ID
+ */
+ @NotBlank(message = "定制功能ID不能为空")
+ private String functionId;
+}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/FunctionCustomizedListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/FunctionCustomizedListFormDTO.java
new file mode 100644
index 0000000000..2c6e3c037a
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/FunctionCustomizedListFormDTO.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.ExcelUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+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.CustomerFunctionDetailDTO;
+import com.epmet.dto.FunctionDTO;
+import com.epmet.dto.form.FunctionDetailFromDTO;
+import com.epmet.dto.result.FunctionDetailResultDTO;
+import com.epmet.excel.CustomerFunctionDetailExcel;
+import com.epmet.service.CustomerFunctionDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 客户定制功能详情表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-11
+ */
+@RestController
+@RequestMapping("customerfunctiondetail")
+public class CustomerFunctionDetailController {
+
+ @Autowired
+ private CustomerFunctionDetailService customerFunctionDetailService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = customerFunctionDetailService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ CustomerFunctionDetailDTO data = customerFunctionDetailService.get(id);
+ return new Result().ok(data);
+ }
+
+ @PostMapping
+ public Result save(@RequestBody CustomerFunctionDetailDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ customerFunctionDetailService.save(dto);
+ return new Result();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody CustomerFunctionDetailDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ customerFunctionDetailService.update(dto);
+ return new Result();
+ }
+
+ @DeleteMapping
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ customerFunctionDetailService.delete(ids);
+ return new Result();
+ }
+
+ @GetMapping("export")
+ public void export(@RequestParam Map params, HttpServletResponse response) throws Exception {
+ List list = customerFunctionDetailService.list(params);
+ ExcelUtils.exportExcelToTarget(response, null, list, CustomerFunctionDetailExcel.class);
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 居民端-获取客户定制功能列表
+ **/
+ @PostMapping("resifunctiondetaillist")
+ public Result> resiFunctionDetail(@LoginUser TokenDto tokenDto, @RequestBody FunctionDetailFromDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, FunctionDetailFromDTO.AddUserShowGroup.class);
+ return new Result>().ok(customerFunctionDetailService.resiAndWorkFunctionDetail(formDTO));
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 工作端-获取客户定制功能列表
+ **/
+ @PostMapping("workfunctiondetaillist")
+ public Result> workFunctionDetail(@LoginUser TokenDto tokenDto, @RequestBody FunctionDetailFromDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, FunctionDetailFromDTO.AddUserInternalGroup.class);
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ return new Result>().ok(customerFunctionDetailService.resiAndWorkFunctionDetail(formDTO));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionCustomizedController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionCustomizedController.java
new file mode 100644
index 0000000000..1df9d0e568
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionCustomizedController.java
@@ -0,0 +1,177 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.controller;
+
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.commons.tools.utils.ExcelUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+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.FunctionCustomizedVisitedDTO;
+import com.epmet.dto.form.FunctionDetailFromDTO;
+import com.epmet.dto.form.FunctionVisitedFromDTO;
+import com.epmet.dto.result.FunctionDetailResultDTO;
+import com.epmet.excel.FunctionCustomizedVisitedExcel;
+import com.epmet.service.FunctionCustomizedVisitedService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 定制功能访问记录表 记录居民端、工作端那些人访问过定制功能以及访问的结果
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-13
+ */
+@RestController
+@RequestMapping("functioncustomizedvisited")
+public class FunctionCustomizedVisitedController {
+
+ @Autowired
+ private FunctionCustomizedVisitedService functionCustomizedVisitedService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = functionCustomizedVisitedService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ FunctionCustomizedVisitedDTO data = functionCustomizedVisitedService.get(id);
+ return new Result().ok(data);
+ }
+
+ @PostMapping
+ public Result save(@RequestBody FunctionCustomizedVisitedDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ functionCustomizedVisitedService.save(dto);
+ return new Result();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody FunctionCustomizedVisitedDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ functionCustomizedVisitedService.update(dto);
+ return new Result();
+ }
+
+ @DeleteMapping
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ functionCustomizedVisitedService.delete(ids);
+ return new Result();
+ }
+
+ @GetMapping("export")
+ public void export(@RequestParam Map params, HttpServletResponse response) throws Exception {
+ List list = functionCustomizedVisitedService.list(params);
+ ExcelUtils.exportExcelToTarget(response, null, list, FunctionCustomizedVisitedExcel.class);
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 居民端-保存定制功能访问记录
+ **/
+ @PostMapping("saveresifunctionvisited")
+ public Result saveResiFunctionVisited(@LoginUser TokenDto tokenDto, @RequestBody FunctionVisitedFromDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, FunctionVisitedFromDTO.AddUserInternalGroup.class, FunctionVisitedFromDTO.AddUserShowGroup.class);
+ formDTO.setUserId(tokenDto.getUserId());
+ functionCustomizedVisitedService.saveFunctionVisited(formDTO);
+ return new Result();
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 工作端-保存定制功能访问记录
+ **/
+ @PostMapping("saveworkfunctionvisited")
+ public Result> saveWorkFunctionVisited(@LoginUser TokenDto tokenDto, @RequestBody FunctionVisitedFromDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, FunctionVisitedFromDTO.AddUserInternalGroup.class, FunctionVisitedFromDTO.AddUserShowGroup.class);
+ formDTO.setUserId(tokenDto.getUserId());
+ formDTO.setCustomerId(tokenDto.getCustomerId());
+ functionCustomizedVisitedService.saveFunctionVisited(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/FunctionShoppingHistoryController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionShoppingHistoryController.java
new file mode 100644
index 0000000000..51e1c62815
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/FunctionShoppingHistoryController.java
@@ -0,0 +1,94 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.controller;
+
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ExcelUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.AssertUtils;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+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.FunctionShoppingHistoryDTO;
+import com.epmet.excel.FunctionShoppingHistoryExcel;
+import com.epmet.service.FunctionShoppingHistoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 客户定制功能上下架历史
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-14
+ */
+@RestController
+@RequestMapping("functionshoppinghistory")
+public class FunctionShoppingHistoryController {
+
+ @Autowired
+ private FunctionShoppingHistoryService functionShoppingHistoryService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = functionShoppingHistoryService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ FunctionShoppingHistoryDTO data = functionShoppingHistoryService.get(id);
+ return new Result().ok(data);
+ }
+
+ @PostMapping
+ public Result save(@RequestBody FunctionShoppingHistoryDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ functionShoppingHistoryService.save(dto);
+ return new Result();
+ }
+
+ @PutMapping
+ public Result update(@RequestBody FunctionShoppingHistoryDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ functionShoppingHistoryService.update(dto);
+ return new Result();
+ }
+
+ @DeleteMapping
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ functionShoppingHistoryService.delete(ids);
+ return new Result();
+ }
+
+ @GetMapping("export")
+ public void export(@RequestParam Map params, HttpServletResponse response) throws Exception {
+ List list = functionShoppingHistoryService.list(params);
+ ExcelUtils.exportExcelToTarget(response, null, list, FunctionShoppingHistoryExcel.class);
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java
new file mode 100644
index 0000000000..b3f4638322
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.CustomerFunctionDetailDTO;
+import com.epmet.dto.form.FunctionDetailFromDTO;
+import com.epmet.dto.result.FunctionDetailResultDTO;
+import com.epmet.entity.CustomerFunctionDetailEntity;
+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-08-11
+ */
+@Mapper
+public interface CustomerFunctionDetailDao extends BaseDao {
+
+ /**
+ * 根据functionId查询使用该功能的,客户id: customizedId
+ * 可用来判断该功能,是否有客户在使用
+ *
+ * @param functionId
+ * @return java.util.List
+ * @Author zhangyong
+ * @Date 11:14 2020-08-13
+ **/
+ List selectCustomerIdByFunctionId(@Param("functionId") String functionId);
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 根据所属端和客户Id查询客户定制功能列表
+ **/
+ List selectFunctionDetailList(FunctionDetailFromDTO formDTO);
+}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java
new file mode 100644
index 0000000000..34b32e48f1
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.FunctionCustomizedVisitedEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 定制功能访问记录表 记录居民端、工作端那些人访问过定制功能以及访问的结果
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-13
+ */
+@Mapper
+public interface FunctionCustomizedVisitedDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionShoppingHistoryDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionShoppingHistoryDao.java
new file mode 100644
index 0000000000..674482045f
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionShoppingHistoryDao.java
@@ -0,0 +1,33 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dao;
+
+import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.entity.FunctionShoppingHistoryEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 客户定制功能上下架历史
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-14
+ */
+@Mapper
+public interface FunctionShoppingHistoryDao extends BaseDao {
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java
new file mode 100644
index 0000000000..53931cb040
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionDetailEntity.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 定制功能
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-11
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("function_customized")
+public class FunctionCustomizedEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 功能ID(function.ID)
+ */
+ private String functionId;
+
+ /**
+ * 默认名称
+ */
+ private String customizedName;
+
+ /**
+ * 默认大图标
+ */
+ private String iconLargeImg;
+
+ /**
+ * 默认小图标
+ */
+ private String iconSmallImg;
+
+ /**
+ * 外链地址(必须是https的请求)
+ */
+ private String targetLink;
+
+ /**
+ * 业务域名
+ */
+ private String domainName;
+
+ /**
+ * 来源app(政府端:gov、居民端:resi)
+ */
+ private String fromApp;
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/FunctionCustomizedVisitedEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/FunctionCustomizedVisitedEntity.java
new file mode 100644
index 0000000000..6e9dfb53cd
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/FunctionCustomizedVisitedEntity.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 定制功能访问记录表 记录居民端、工作端那些人访问过定制功能以及访问的结果
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-13
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("function_customized_visited")
+public class FunctionCustomizedVisitedEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户ID
+ */
+ private String customerId;
+
+ /**
+ * 用户Id
+ */
+ private String userId;
+
+ /**
+ * 所属端 居民端:resi工作端:work
+ */
+ private String clientType;
+
+ /**
+ * 功能Id
+ */
+ private String functionId;
+
+ /**
+ * 请求地址 访问的url地址
+ */
+ private String url;
+
+ /**
+ * 结果 成功success失败error
+ */
+ private String result;
+
+ /**
+ * 原因 失败的原因(例:请求超时、404、500等)
+ */
+ private String msg;
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/FunctionShoppingHistoryEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/FunctionShoppingHistoryEntity.java
new file mode 100644
index 0000000000..6d8f479bac
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/FunctionShoppingHistoryEntity.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 客户定制功能上下架历史
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-14
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("function_shopping_history")
+public class FunctionShoppingHistoryEntity extends BaseEpmetEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+
+ /**
+ * 功能Id
+ */
+ private String functionId;
+
+ /**
+ * 上下架状态 上架状态:0:下架、1:上架
+ */
+ private Integer shoppingStatus;
+
+ /**
+ * 理由
+ */
+ private String reason;
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/CustomerFunctionDetailExcel.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/CustomerFunctionDetailExcel.java
new file mode 100644
index 0000000000..13c88668e8
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/CustomerFunctionDetailExcel.java
@@ -0,0 +1,83 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 定制功能
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-11
+ */
+@Data
+public class FunctionCustomizedExcel {
+
+ @Excel(name = "唯一标识")
+ private String id;
+
+ @Excel(name = "功能ID(function.ID)")
+ private String functionId;
+
+ @Excel(name = "默认名称")
+ private String customizedName;
+
+ @Excel(name = "默认大图标")
+ private String iconLargeImg;
+
+ @Excel(name = "默认小图标")
+ private String iconSmallImg;
+
+ @Excel(name = "外链地址(必须是https的请求)")
+ private String targetLink;
+
+ @Excel(name = "删除标识(0.未删除 1.已删除)")
+ private Integer delFlag;
+
+ @Excel(name = "乐观锁")
+ private Integer revision;
+
+ @Excel(name = "创建人")
+ private String createdBy;
+
+ @Excel(name = "创建时间")
+ private Date createdTime;
+
+ @Excel(name = "更新人")
+ private String updatedBy;
+
+ @Excel(name = "更新时间")
+ private Date updatedTime;
+
+ @Excel(name = "业务域名")
+ private String realmName;
+
+ @Excel(name = "来源app(政府端:gov、居民端:resi)")
+ private String fromApp;
+
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedVisitedExcel.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedVisitedExcel.java
new file mode 100644
index 0000000000..6d631d8380
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedVisitedExcel.java
@@ -0,0 +1,77 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 定制功能访问记录表 记录居民端、工作端那些人访问过定制功能以及访问的结果
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-13
+ */
+@Data
+public class FunctionCustomizedVisitedExcel {
+
+ @Excel(name = "主键")
+ private String id;
+
+ @Excel(name = "客户ID")
+ private String customerId;
+
+ @Excel(name = "用户Id")
+ private String userId;
+
+ @Excel(name = "所属端 居民端:resi工作端:work")
+ private String clientType;
+
+ @Excel(name = "功能Id")
+ private String functionId;
+
+ @Excel(name = "请求地址 访问的url地址")
+ private String url;
+
+ @Excel(name = "结果 成功success失败error")
+ private String result;
+
+ @Excel(name = "原因 失败的原因(例:请求超时、404、500等)")
+ private String msg;
+
+ @Excel(name = "删除标识(0.未删除 1.已删除)")
+ private Integer delFlag;
+
+ @Excel(name = "乐观锁")
+ private Integer revision;
+
+ @Excel(name = "创建人")
+ private String createdBy;
+
+ @Excel(name = "创建时间")
+ private Date createdTime;
+
+ @Excel(name = "更新人")
+ private String updatedBy;
+
+ @Excel(name = "更新时间")
+ private Date updatedTime;
+
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionShoppingHistoryExcel.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionShoppingHistoryExcel.java
new file mode 100644
index 0000000000..a99dfed1f6
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionShoppingHistoryExcel.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 客户定制功能上下架历史
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-14
+ */
+@Data
+public class FunctionShoppingHistoryExcel {
+
+ @Excel(name = "主键")
+ private String id;
+
+ @Excel(name = "客户Id")
+ private String customerId;
+
+ @Excel(name = "功能Id")
+ private String functionId;
+
+ @Excel(name = "上下架状态 上架状态:0:下架、1:上架")
+ private Integer shoppingStatus;
+
+ @Excel(name = "理由")
+ private String reason;
+
+ @Excel(name = "乐观锁")
+ private Integer revision;
+
+ @Excel(name = "创建人")
+ private String createdBy;
+
+ @Excel(name = "创建时间")
+ private Date createdTime;
+
+ @Excel(name = "更新人")
+ private String updatedBy;
+
+ @Excel(name = "更新时间")
+ private Date updatedTime;
+
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/CustomerFunctionDetailRedis.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/CustomerFunctionDetailRedis.java
new file mode 100644
index 0000000000..c60f3b338f
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/CustomerFunctionDetailRedis.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.redis;
+
+import com.epmet.commons.tools.redis.RedisUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 客户定制功能详情表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-11
+ */
+@Component
+public class CustomerFunctionDetailRedis {
+ @Autowired
+ private RedisUtils redisUtils;
+
+ public void delete(Object[] ids) {
+
+ }
+
+ public void set(){
+
+ }
+
+ public String get(String id){
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionCustomizedRedis.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionCustomizedRedis.java
new file mode 100644
index 0000000000..f2854b11ef
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionCustomizedRedis.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.redis;
+
+import com.epmet.commons.tools.redis.RedisUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 定制功能
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-11
+ */
+@Component
+public class FunctionCustomizedRedis {
+ @Autowired
+ private RedisUtils redisUtils;
+
+ public void delete(Object[] ids) {
+
+ }
+
+ public void set(){
+
+ }
+
+ public String get(String id){
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionCustomizedVisitedRedis.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionCustomizedVisitedRedis.java
new file mode 100644
index 0000000000..fabdc63ff3
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionCustomizedVisitedRedis.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.redis;
+
+import com.epmet.commons.tools.redis.RedisUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 定制功能访问记录表 记录居民端、工作端那些人访问过定制功能以及访问的结果
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-13
+ */
+@Component
+public class FunctionCustomizedVisitedRedis {
+ @Autowired
+ private RedisUtils redisUtils;
+
+ public void delete(Object[] ids) {
+
+ }
+
+ public void set(){
+
+ }
+
+ public String get(String id){
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionShoppingHistoryRedis.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionShoppingHistoryRedis.java
new file mode 100644
index 0000000000..ebe8a91096
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/FunctionShoppingHistoryRedis.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.redis;
+
+import com.epmet.commons.tools.redis.RedisUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 客户定制功能上下架历史
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-14
+ */
+@Component
+public class FunctionShoppingHistoryRedis {
+ @Autowired
+ private RedisUtils redisUtils;
+
+ public void delete(Object[] ids) {
+
+ }
+
+ public void set(){
+
+ }
+
+ public String get(String id){
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java
new file mode 100644
index 0000000000..a1ec9f6cf8
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.impl;
+
+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.constant.FieldConstant;
+import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.utils.ConvertUtils;
+import com.epmet.dao.CustomerFunctionDetailDao;
+import com.epmet.dto.CustomerFunctionDetailDTO;
+import com.epmet.dto.form.FunctionDetailFromDTO;
+import com.epmet.dto.result.FunctionDetailResultDTO;
+import com.epmet.entity.CustomerFunctionDetailEntity;
+import com.epmet.redis.CustomerFunctionDetailRedis;
+import com.epmet.service.CustomerFunctionDetailService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 客户定制功能详情表
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-11
+ */
+@Service
+public class CustomerFunctionDetailServiceImpl extends BaseServiceImpl implements CustomerFunctionDetailService {
+
+ private Logger logger = LogManager.getLogger(CustomerFunctionDetailServiceImpl.class);
+ @Autowired
+ private CustomerFunctionDetailRedis customerFunctionDetailRedis;
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, CustomerFunctionDetailDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, CustomerFunctionDetailDTO.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 CustomerFunctionDetailDTO get(String id) {
+ CustomerFunctionDetailEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, CustomerFunctionDetailDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(CustomerFunctionDetailDTO dto) {
+ CustomerFunctionDetailEntity entity = ConvertUtils.sourceToTarget(dto, CustomerFunctionDetailEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(CustomerFunctionDetailDTO dto) {
+ CustomerFunctionDetailEntity entity = ConvertUtils.sourceToTarget(dto, CustomerFunctionDetailEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 根据所属端和客户Id查询客户定制功能列表
+ **/
+ @Override
+ public List resiAndWorkFunctionDetail(FunctionDetailFromDTO formDTO) {
+ //根据客户Id和所属端查询客户定制功能列表数据
+ logger.info(String.format("根据客户Id和所属端查询客户定制功能列表,对应客户Id->%s,所属端->%s", formDTO.getCustomerId(), formDTO.getClientType()));
+ List list = baseDao.selectFunctionDetailList(formDTO);
+ return list;
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java
new file mode 100644
index 0000000000..59ac2895c5
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/FunctionCustomizedServiceImpl.java
@@ -0,0 +1,311 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.service.impl;
+
+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.utils.ConvertUtils;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.dao.FunctionShoppingHistoryDao;
+import com.epmet.dto.FunctionShoppingHistoryDTO;
+import com.epmet.entity.FunctionShoppingHistoryEntity;
+import com.epmet.redis.FunctionShoppingHistoryRedis;
+import com.epmet.service.FunctionShoppingHistoryService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 客户定制功能上下架历史
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2020-08-14
+ */
+@Service
+public class FunctionShoppingHistoryServiceImpl extends BaseServiceImpl implements FunctionShoppingHistoryService {
+
+ @Autowired
+ private FunctionShoppingHistoryRedis functionShoppingHistoryRedis;
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = baseDao.selectPage(
+ getPage(params, FieldConstant.CREATED_TIME, false),
+ getWrapper(params)
+ );
+ return getPageData(page, FunctionShoppingHistoryDTO.class);
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, FunctionShoppingHistoryDTO.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 FunctionShoppingHistoryDTO get(String id) {
+ FunctionShoppingHistoryEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, FunctionShoppingHistoryDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void save(FunctionShoppingHistoryDTO dto) {
+ FunctionShoppingHistoryEntity entity = ConvertUtils.sourceToTarget(dto, FunctionShoppingHistoryEntity.class);
+ insert(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(FunctionShoppingHistoryDTO dto) {
+ FunctionShoppingHistoryEntity entity = ConvertUtils.sourceToTarget(dto, FunctionShoppingHistoryEntity.class);
+ updateById(entity);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.4__add_customer_function_detail.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.4__add_customer_function_detail.sql
new file mode 100644
index 0000000000..62f992bbb8
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.4__add_customer_function_detail.sql
@@ -0,0 +1,46 @@
+DROP TABLE IF EXISTS `customer_function_detail`;
+CREATE TABLE `customer_function_detail` (
+ `ID` varchar(64) NOT NULL COMMENT ''主键'',
+ `CUSTOMER_ID` varchar(64) NOT NULL COMMENT ''客户Id'',
+ `FUNCTION_ID` varchar(64) NOT NULL COMMENT ''功能Id'',
+ `FUNCTION_NAME` varchar(128) NOT NULL COMMENT ''自定义功能名称'',
+ `ICON_LARGE_IMG` varchar(128) NOT NULL COMMENT ''自定义大图标'',
+ `ICON_SMALL_IMG` varchar(128) NOT NULL COMMENT ''自定义小图标'',
+ `DOMAIN_NAME` varchar(32) NOT NULL COMMENT ''自定义业务域名'',
+ `TARGET_LINK` varchar(128) NOT NULL COMMENT ''外链地址'',
+ `DISPLAY_ORDER` int(11) NOT NULL COMMENT ''自定义排序'',
+ `DEL_FLAG` int(11) NOT NULL COMMENT ''删除标识(0.未删除 1.已删除)'',
+ `REVISION` int(11) NOT NULL COMMENT ''乐观锁'',
+ `CREATED_BY` varchar(32) NOT NULL COMMENT ''创建人'',
+ `CREATED_TIME` datetime NOT NULL COMMENT ''创建时间'',
+ `UPDATED_BY` varchar(32) NOT NULL COMMENT ''更新人'',
+ `UPDATED_TIME` datetime NOT NULL COMMENT ''更新时间'',
+ PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=''客户定制功能详情表'';
+
+
+
+ALTER TABLE `function_customized` ADD COLUMN `DOMAIN_NAME` VARCHAR (128) CHARACTER
+SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务域名' AFTER `UPDATED_TIME`,
+ ADD COLUMN `FROM_APP` VARCHAR (32) CHARACTER
+SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '来源app(政府端:gov、居民端:resi)' AFTER `REALM_NAME`;
+
+
+DROP TABLE IF EXISTS `function_customized_visited`;
+CREATE TABLE function_customized_visited(
+ ID VARCHAR(64) NOT NULL COMMENT '主键' ,
+ CUSTOMER_ID VARCHAR(32) NOT NULL COMMENT '客户ID' ,
+ USER_ID VARCHAR(64) NOT NULL COMMENT '用户Id' ,
+ CLIENT_TYPE VARCHAR(32) NOT NULL COMMENT '所属端 居民端:resi工作端:work' ,
+ FUNCTION_ID VARCHAR(64) NOT NULL COMMENT '功能Id' ,
+ URL VARCHAR(128) NOT NULL COMMENT '请求地址 访问的url地址' ,
+ RESULT VARCHAR(1024) NOT NULL COMMENT '结果 成功success失败error' ,
+ MSG VARCHAR(128) NOT NULL COMMENT '原因 失败的原因(例:请求超时、404、500等)' ,
+ DEL_FLAG INT NOT NULL COMMENT '删除标识(0.未删除 1.已删除)' ,
+ REVISION INT NOT NULL COMMENT '乐观锁' ,
+ CREATED_BY VARCHAR(32) NOT NULL COMMENT '创建人' ,
+ CREATED_TIME DATETIME NOT NULL COMMENT '创建时间' ,
+ UPDATED_BY VARCHAR(32) NOT NULL COMMENT '更新人' ,
+ UPDATED_TIME DATETIME NOT NULL COMMENT '更新时间' ,
+ PRIMARY KEY (ID)
+) COMMENT = '定制功能访问记录表 记录居民端、工作端那些人访问过定制功能以及访问的结果';
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml
new file mode 100644
index 0000000000..f3be36b76c
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml
new file mode 100644
index 0000000000..f862114288
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+ update function_customized set DEL_FLAG = 1 where FUNCTION_ID = #{functionId} and DEL_FLAG = '0'
+
+
+
+
+
+
+
+
+
+
+
+
+ UPDATE function_customized
+ SET
+
+ CUSTOMIZED_NAME = #{customizedName},
+
+
+ ICON_LARGE_IMG = #{iconLargeImg},
+
+
+ ICON_SMALL_IMG = #{iconSmallImg},
+
+
+ TARGET_LINK = #{targetLink},
+
+
+ DOMAIN_NAME = #{domainName},
+
+
+ FROM_APP = #{fromApp},
+
+ UPDATED_TIME = now()
+ WHERE
+ DEL_FLAG = '0'
+ AND FUNCTION_ID = #{functionId}
+
+
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedVisitedDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedVisitedDao.xml
new file mode 100644
index 0000000000..938b189b2b
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedVisitedDao.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionShoppingHistoryDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionShoppingHistoryDao.xml
new file mode 100644
index 0000000000..a591988091
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionShoppingHistoryDao.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/epmet-module/pom.xml b/epmet-module/pom.xml
index dd7611267b..2f4b8d2ff8 100644
--- a/epmet-module/pom.xml
+++ b/epmet-module/pom.xml
@@ -42,6 +42,7 @@
epmet-thirdepmet-heartepmet-point
+ epmet-ext
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/ResiTopicDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/ResiTopicDTO.java
index 35e6963377..f60ac86651 100644
--- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/ResiTopicDTO.java
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/ResiTopicDTO.java
@@ -53,6 +53,11 @@ public class ResiTopicDTO implements Serializable {
*/
private String status;
+ /**
+ * 是否解决(已解决 resolved,未解决 unresolved)
+ */
+ private String closedStatus;
+
/**
* 省
*/
diff --git a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java
index 58853940ce..3dffb22abe 100644
--- a/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java
+++ b/epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java
@@ -2,6 +2,7 @@ package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
+import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
@@ -25,6 +26,12 @@ public class ResiTopicOperationFormDTO implements Serializable {
*/
private String operateReason;
+ /**
+ * 是否解决(已解决 resolved,未解决 unresolved)
+ */
+ @NotBlank(message = "解决状态不能为空")
+ private String closedStatus;
+
}
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
index 881374f12c..dacfd6dbb8 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
@@ -59,6 +59,7 @@ import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.dto.UserRoleDTO;
import com.epmet.resi.group.dto.group.*;
import com.epmet.resi.group.dto.group.form.*;
+import com.epmet.resi.group.dto.group.form.GridIdFormDTO;
import com.epmet.resi.group.dto.group.form.ShouldVoteCountFormDTO;
import com.epmet.resi.group.dto.group.result.*;
import com.epmet.resi.group.dto.member.GroupMemeberOperationDTO;
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicEntity.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicEntity.java
index d16ba57c73..1214e5d71a 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicEntity.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicEntity.java
@@ -53,6 +53,11 @@ public class ResiTopicEntity extends BaseEpmetEntity {
*/
private String status;
+ /**
+ * 是否解决(已解决 resolved,未解决 unresolved)
+ */
+ private String closedStatus;
+
/**
* 省
*/
diff --git a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
index 958b1b4424..1a5d8964a3 100644
--- a/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
+++ b/epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
@@ -523,6 +523,8 @@ public class ResiTopicServiceImpl extends BaseServiceImpl id = new ArrayList<>();
id.add(closeFormDTO.getTopicId());
baseDao.cancelHiddenOrCloseBatch(id,tokenDto.getUserId(),TopicConstant.CLOSED);
diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.2__topic.sql b/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.2__topic.sql
new file mode 100644
index 0000000000..c087db0c7d
--- /dev/null
+++ b/epmet-module/resi-group/resi-group-server/src/main/resources/db/migration/V0.0.2__topic.sql
@@ -0,0 +1 @@
+ALTER TABLE resi_topic ADD COLUMN CLOSED_STATUS varchar(32) NULL COMMENT '关闭状态:已解决 resolved,未解决 unresolved' AFTER STATUS;
\ No newline at end of file
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserIdsFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserIdsFormDTO.java
new file mode 100644
index 0000000000..de8c542864
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/UserIdsFormDTO.java
@@ -0,0 +1,18 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/13 1:36 下午
+ */
+@Data
+public class UserIdsFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -6168528618954442905L;
+
+ private List userIds;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RoleResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RoleResultDTO.java
new file mode 100644
index 0000000000..c6424eca94
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/RoleResultDTO.java
@@ -0,0 +1,33 @@
+package com.epmet.dto.result;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import jdk.nashorn.internal.ir.annotations.Ignore;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/13 9:30 上午
+ */
+@Data
+public class RoleResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -432136606721817459L;
+
+ /**
+ * 角色key
+ */
+ private String roleKey;
+
+ /**
+ * 角色名称
+ */
+ private String roleName;
+
+ /**
+ * 用户id
+ */
+ @JsonIgnore
+ private String userId;
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffSinGridResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffSinGridResultDTO.java
new file mode 100644
index 0000000000..3827b2ea17
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/StaffSinGridResultDTO.java
@@ -0,0 +1,42 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author zxc
+ * @DateTime 2020/8/13 9:25 上午
+ */
+@Data
+public class StaffSinGridResultDTO implements Serializable {
+
+ private static final long serialVersionUID = -3440415466710443002L;
+
+ /**
+ * 工作人员Id
+ */
+ private String staffId;
+
+ /**
+ * 工作人员名称
+ */
+ private String staffName;
+
+ /**
+ * 头像
+ */
+ private String headPhoto;
+
+ /**
+ * 性别,1男2女0未知
+ */
+ private Integer gender;
+
+ /**
+ * 角色列表
+ */
+ private List roleList;
+
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
index 8ea872a683..e627d868a9 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
@@ -259,4 +259,13 @@ public interface EpmetUserOpenFeignClient {
**/
@PostMapping(value = "epmetuser/gridlatest/latestgridinfo")
Result latestGridInfo(@RequestBody LatestGridInfoFormDTO formDTO);
+
+ /**
+ * @Description 查询工作人员的信息
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/13 1:37 下午
+ */
+ @PostMapping("epmetuser/customerstaff/getstaffinfolist")
+ Result> getStaffInfoList(@RequestBody UserIdsFormDTO formDTO);
}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
index 6e137becc1..f434996933 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java
@@ -183,4 +183,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien
public Result latestGridInfo(LatestGridInfoFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "latestGridInfo", formDTO);
}
+
+ @Override
+ public Result> getStaffInfoList(UserIdsFormDTO formDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getStaffInfoList", formDTO);
+ }
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java
index fd0c0f5a9e..8ed7c0727d 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/CustomerStaffController.java
@@ -321,4 +321,16 @@ public class CustomerStaffController {
public Result> getCustsomerStaffByIdAndPhone(@RequestBody ThirdCustomerStaffFormDTO formDTO) {
return new Result>().ok(customerStaffService.getCustsomerStaffByIdAndPhone(formDTO));
}
+
+ /**
+ * @Description 查询工作人员的信息
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/13 1:45 下午
+ */
+ @PostMapping("getstaffinfolist")
+ public Result> getStaffInfoList(@RequestBody UserIdsFormDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO);
+ return new Result>().ok(customerStaffService.getStaffInfoList(formDTO));
+ }
}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java
index be19478a91..ce0ff406c7 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/CustomerStaffDao.java
@@ -21,10 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
-import com.epmet.dto.result.DepartInStaffListResultDTO;
-import com.epmet.dto.result.StaffInfoResultDTO;
-import com.epmet.dto.result.CommonStaffInfoResultDTO;
-import com.epmet.dto.result.StaffListResultDTO;
+import com.epmet.dto.result.*;
import com.epmet.entity.CustomerStaffEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -148,4 +145,12 @@ public interface CustomerStaffDao extends BaseDao {
* @Description 根据客户ID、手机号查询政府端工作人员基本信息
**/
List selectStaff(ThirdCustomerStaffFormDTO formDTO);
+
+ /**
+ * @Description 查询工作人员的信息
+ * @param userIds
+ * @author zxc
+ * @date 2020/8/13 1:45 下午
+ */
+ List getStaffInfoList(@Param("userIds")List userIds);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java
index 275a2e9742..0d019d63f6 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleDao.java
@@ -20,6 +20,8 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.GovStaffRoleDTO;
import com.epmet.dto.result.GovStaffRoleResultDTO;
+import com.epmet.dto.result.RoleInfoResultDTO;
+import com.epmet.dto.result.RoleResultDTO;
import com.epmet.entity.GovStaffRoleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -61,4 +63,12 @@ public interface GovStaffRoleDao extends BaseDao {
List listRolesByCustomer(@Param("customerId") String customerId);
GovStaffRoleResultDTO getDTOById(@Param("roleId") String roleId);
+
+ /**
+ * @Description 查询用户的权限
+ * @param userIds
+ * @author zxc
+ * @date 2020/8/13 2:14 下午
+ */
+ List getRoleInfoList(@Param("userIds")List userIds);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java
index edbef03d60..1eb5e070e4 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/CustomerStaffService.java
@@ -258,4 +258,12 @@ public interface CustomerStaffService extends BaseService {
* @Description 根据客户ID、手机号查询政府端工作人员基本信息,校验用户是否存在
**/
List getCustsomerStaffByIdAndPhone(ThirdCustomerStaffFormDTO formDTO);
+
+ /**
+ * @Description 查询工作人员的信息
+ * @param formDTO
+ * @author zxc
+ * @date 2020/8/13 1:45 下午
+ */
+ List getStaffInfoList( UserIdsFormDTO formDTO);
}
\ No newline at end of file
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
index 0f00a32191..2ff38361cb 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
@@ -36,6 +36,7 @@ import com.epmet.constant.RoleKeyConstants;
import com.epmet.constant.UserConstant;
import com.epmet.constant.UserRoleConstant;
import com.epmet.dao.CustomerStaffDao;
+import com.epmet.dao.GovStaffRoleDao;
import com.epmet.dao.StaffRoleDao;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
@@ -56,6 +57,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -93,6 +95,10 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl page(Map params) {
@@ -540,4 +546,34 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl getStaffInfoList(UserIdsFormDTO formDTO) {
+ List userIds = formDTO.getUserIds();
+ // 1. 根据userId查询人员基本信息
+ List staffInfoList = customerStaffDao.getStaffInfoList(userIds);
+ if (staffInfoList.size() == NumConstant.ZERO){
+ return staffInfoList;
+ }
+ // 2. 根据userId查询权限
+ List roleInfoList = govStaffRoleDao.getRoleInfoList(userIds);
+ staffInfoList.forEach(staffInfo -> {
+ List