diff --git a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinAgencyFormDTO.java b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinAgencyFormDTO.java
index 5e166ac342..0403bf52b1 100644
--- a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinAgencyFormDTO.java
+++ b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinAgencyFormDTO.java
@@ -17,12 +17,6 @@ public class StaffSinAgencyFormDTO implements Serializable {
//后端自己看
public interface StaffSinAgency{}
- /**
- * appId+customerId+时间戳加密secret
- */
-// @NotBlank(message = "secret不能为空",groups = {StaffSinDept.class})
- private String accessToken;
-
/**
* 机关Id
*/
diff --git a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinDeptFormDTO.java b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinDeptFormDTO.java
index b66de79686..3e69297c27 100644
--- a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinDeptFormDTO.java
+++ b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinDeptFormDTO.java
@@ -17,12 +17,6 @@ public class StaffSinDeptFormDTO implements Serializable {
//后端自己看
public interface StaffSinDept{}
- /**
- * appId+customerId+时间戳加密secret
- */
-// @NotBlank(message = "secret不能为空",groups = {StaffSinDept.class})
- private String accessToken;
-
/**
* 部门Id
*/
diff --git a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinGridFormDTO.java b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinGridFormDTO.java
index a694dfddb1..8b93d60979 100644
--- a/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinGridFormDTO.java
+++ b/epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinGridFormDTO.java
@@ -18,12 +18,6 @@ public class StaffSinGridFormDTO implements Serializable {
//后端自己看
public interface StaffSinGrid{}
- /**
- * appId+customerId+时间戳加密secret
- */
-// @NotBlank(message = "secret不能为空",groups = {StaffSinGrid.class})
- private String accessToken;
-
/**
* 网格Id
*/
diff --git a/epmet-module/epmet-ext/epmet-ext-server/pom.xml b/epmet-module/epmet-ext/epmet-ext-server/pom.xml
index 5a9047f096..f6ffa2b775 100644
--- a/epmet-module/epmet-ext/epmet-ext-server/pom.xml
+++ b/epmet-module/epmet-ext/epmet-ext-server/pom.xml
@@ -26,6 +26,11 @@
epmet-ext-client
2.0.0
+
+ com.epmet
+ epmet-commons-extapp-auth
+ 2.0.0
+
com.epmet
epmet-commons-tools
@@ -133,38 +138,12 @@
3.6.0
compile
-
- com.epmet
- epmet-common-clienttoken
- 2.0.0
- compile
-
-
- com.epmet
- oper-crm-client
- 2.0.0
- compile
-
-
- com.epmet
- epmet-oss-client
- 2.0.0
- compile
-
org.springframework
spring-test
5.1.12.RELEASE
compile
-
-
-
- com.aliyun
- alibaba-dingtalk-service-sdk
- 1.0.1
-
-
diff --git a/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenUpController.java b/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenUpController.java
index c79e8f4c19..ccaf50f267 100644
--- a/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenUpController.java
+++ b/epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenUpController.java
@@ -1,5 +1,6 @@
package com.epmet.controller;
+
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
@@ -37,6 +38,7 @@ public class OpenUpController {
* @author zxc
* @date 2020/8/13 9:42 上午
*/
+ @ExternalAppRequestAuth
@PostMapping("staffsingrid")
public Result> staffSinGrid(@RequestBody StaffSinGridFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StaffSinGridFormDTO.StaffSinGrid.class);
@@ -49,6 +51,7 @@ public class OpenUpController {
* @author zxc
* @date 2020/8/13 9:51 上午
*/
+ @ExternalAppRequestAuth
@PostMapping("staffsindept")
public Result> staffSinDept(@RequestBody StaffSinDeptFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StaffSinDeptFormDTO.StaffSinDept.class);
@@ -61,6 +64,7 @@ public class OpenUpController {
* @author zxc
* @date 2020/8/17 9:59 上午
*/
+ @ExternalAppRequestAuth
@PostMapping("staffsinagency")
public Result> staffSinAgency(@RequestBody StaffSinAgencyFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StaffSinAgencyFormDTO.StaffSinAgency.class);
diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateCustomerParameterFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateCustomerParameterFormDTO.java
new file mode 100644
index 0000000000..f522bfab50
--- /dev/null
+++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateCustomerParameterFormDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 修改客户网格数和有效期-接口入参
+ * @Author sun
+ */
+@Data
+public class UpdateCustomerParameterFormDTO implements Serializable {
+
+ private static final long serialVersionUID = 4512080710854617599L;
+ /**
+ * 客户Id
+ */
+ @NotBlank(message = "customerId不能为空",groups = {Customer.class})
+ private String customerId;
+ /**
+ * 有效期
+ */
+ private String validityTime;
+ /**
+ * 最大允许创建网格数
+ */
+ private Integer gridNumber;
+
+ public interface Customer{}
+}
diff --git a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerInfoResultDTO.java b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerInfoResultDTO.java
index c47b3514c2..95047cf9e9 100644
--- a/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerInfoResultDTO.java
+++ b/epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerInfoResultDTO.java
@@ -3,6 +3,7 @@ package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
+import java.util.Date;
/**
* @Author zxc
@@ -23,14 +24,19 @@ public class CustomerInfoResultDTO implements Serializable {
*/
private String customerName;
+ /**
+ * 有效期
+ */
+ private Date validityTime;
+
/**
* 已创建网格数
*/
- private Integer createGridNum;
+ private Integer createGridNumber;
/**
* 最大允许创建数
*/
- private Integer maxGridNum;
+ private Integer maxGridNumber;
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/constant/ModuleConstant.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/constant/ModuleConstant.java
index 3363344d1a..c78e0e799e 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/constant/ModuleConstant.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/constant/ModuleConstant.java
@@ -8,4 +8,12 @@ public interface ModuleConstant {
String ERROR_GOV_ORG_COUNT = "调用gov_org服务【查询客户下网格数量】失败";
+ String SELECT_CUSTOMER_ERROR = "根据客户Id查询客户基本信息失败";
+
+ String GRID_NUMBER_ERROR = "最大网格数不能小于之前设定数";
+
+ String VALIDITY_TIME_ERROR = "客户有效期不能早于之前设定值";
+
+ String UPDATE_CUSTOMER_ERROR = "更新客户基本信息失败";
+
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
index a1ef57aaab..6ad634df60 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
@@ -41,6 +41,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
+import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -302,4 +303,28 @@ public class CustomerController {
customerService.updateCustomer(formDTO);
return new Result();
}
+
+ /**
+ * @param formDTO
+ * @Description 获取客户最大网格数和有效期
+ * @author sun
+ */
+ @PostMapping("getcustomerparameter")
+ public Result getCustomerParameter(@RequestBody CustomerIdFormDTO formDTO){
+ ValidatorUtils.validateEntity(formDTO, CustomerIdFormDTO.Customer.class);
+ return new Result().ok(customerService.getCustomerParameter(formDTO));
+ }
+
+ /**
+ * @param formDTO
+ * @Description 修改客户网格数和有效期
+ * @author sun
+ */
+ @PostMapping("updatecustomerparameter")
+ public Result updateCustomerParameter(@RequestBody UpdateCustomerParameterFormDTO formDTO) throws ParseException {
+ ValidatorUtils.validateEntity(formDTO, UpdateCustomerParameterFormDTO.Customer.class);
+ customerService.updateCustomerParameter(formDTO);
+ return new Result();
+ }
+
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
index 5953f53e64..b194421d06 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
@@ -24,8 +24,8 @@ import com.epmet.dto.CustomerDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerEntity;
-import org.springframework.web.bind.annotation.RequestBody;
+import java.text.ParseException;
import java.util.List;
import java.util.Map;
@@ -204,4 +204,19 @@ public interface CustomerService extends BaseService {
* @return void
*/
void updateCustomer(UpdateCustomerFormDTO formDTO);
+
+ /**
+ * @param formDTO
+ * @Description 获取客户最大网格数和有效期
+ * @author sun
+ */
+ CustomerInfoResultDTO getCustomerParameter( CustomerIdFormDTO formDTO);
+
+ /**
+ * @param formDTO
+ * @Description 修改客户网格数和有效期
+ * @author sun
+ */
+ void updateCustomerParameter(UpdateCustomerParameterFormDTO formDTO) throws ParseException;
+
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
index a85bbadc5a..673f676fd9 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
@@ -51,6 +51,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -571,7 +573,7 @@ public class CustomerServiceImpl extends BaseServiceImpl result = govOrgOpenFeignClient.selectGridCount(formDTO);
+ if (!result.success()){
+ throw new RenException(ModuleConstant.ERROR_GOV_ORG_COUNT);
+ }
+ CustomerGridCountResultDTO resultDTO = result.getData();
+ customerInfoResultDTO.setCreateGridNumber(resultDTO.getGridCount());
+
+ return customerInfoResultDTO;
+ }
+
+
+ /**
+ * @param formDTO
+ * @Description 修改客户网格数和有效期
+ * @author sun
+ */
+ @Override
+ public void updateCustomerParameter(UpdateCustomerParameterFormDTO formDTO) throws ParseException {
+ //1.查询客户基本信息
+ CustomerEntity entity = baseDao.selectById(formDTO.getCustomerId());
+ if (null == entity) {
+ throw new RenException(ModuleConstant.SELECT_CUSTOMER_ERROR);
+ }
+ //2.校验数据合格性
+ if (entity.getGridNumber() > formDTO.getGridNumber()) {
+ throw new RenException(ModuleConstant.GRID_NUMBER_ERROR);
+ }
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+ Date dt1 = df.parse(formDTO.getValidityTime());
+ Date dt2 = entity.getValidityTime();
+ if (dt1.getTime() < dt2.getTime()) {
+ throw new RenException(ModuleConstant.VALIDITY_TIME_ERROR);
+ }
+ //3.更新数据
+ CustomerEntity customerEntity = new CustomerEntity();
+ customerEntity.setId(formDTO.getCustomerId());
+ customerEntity.setGridNumber(formDTO.getGridNumber());
+ customerEntity.setValidityTime(dt1);
+ if (baseDao.updateById(customerEntity) < NumConstant.ONE) {
+ throw new RenException(ModuleConstant.UPDATE_CUSTOMER_ERROR);
+ }
+ }
+
}
diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml
index 46e35aa218..b1d219013a 100644
--- a/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml
+++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml
@@ -95,7 +95,8 @@
SELECT
id AS customerId,
customer_name AS customerName,
- IFNULL( grid_number, 0 ) AS maxGridNum
+ IFNULL( grid_number, 0 ) AS maxGridNumber,
+ validity_time AS validityTime
FROM
customer
WHERE
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/FunctionCustomizedDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/FunctionCustomizedDTO.java
index cd924cc5c5..9fb059d520 100644
--- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/FunctionCustomizedDTO.java
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/FunctionCustomizedDTO.java
@@ -96,7 +96,7 @@ public class FunctionCustomizedDTO implements Serializable {
/**
* 业务域名
*/
- private String realmName;
+ private String domainName;
/**
* 来源app(政府端:gov、居民端:resi)
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionCollectFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionCollectFormDTO.java
new file mode 100644
index 0000000000..b29c199c3a
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionCollectFormDTO.java
@@ -0,0 +1,36 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 运营端-定制功能采集-接口入参
+ * @Author sun
+ */
+@Data
+public class CustomerFunctionCollectFormDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 客户Id
+ */
+ @NotBlank(message = "客户ID不能为空", groups = {AddUserInternalGroup.class})
+ private String customerId;
+ /**
+ * 功能ID
+ */
+ @NotBlank(message = "功能ID不能为空", groups = {AddUserInternalGroup.class})
+ private String functionId;
+ /**
+ * 上架理由
+ */
+ @NotBlank(message = "上架理由不能为空", groups = {AddUserShowGroup.class})
+ private String reason;
+
+ public interface AddUserInternalGroup {}
+
+ public interface AddUserShowGroup extends CustomerClientShowGroup {}
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/updatedisplayorderListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/updatedisplayorderListFormDTO.java
new file mode 100644
index 0000000000..c36d1b609e
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/updatedisplayorderListFormDTO.java
@@ -0,0 +1,36 @@
+package com.epmet.dto.form;
+
+import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 运营端-客户定制功能顺序修改-接口入参
+ * @Author sun
+ */
+@Data
+public class updatedisplayorderListFormDTO implements Serializable {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 客户Id
+ */
+ @NotBlank(message = "客户ID不能为空", groups = {AddUserInternalGroup.class})
+ private String customerId;
+ /**
+ * 功能ID
+ */
+ @NotBlank(message = "功能ID不能为空", groups = {AddUserInternalGroup.class})
+ private String functionId;
+ /**
+ * 排序号
+ */
+ @NotBlank(message = "排序号不能为空", groups = {AddUserShowGroup.class})
+ private Integer displayOrder;
+
+ public interface AddUserInternalGroup {}
+
+ public interface AddUserShowGroup extends CustomerClientShowGroup {}
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionCustomizedListResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionCustomizedListResultDTO.java
new file mode 100644
index 0000000000..4c38302f8d
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionCustomizedListResultDTO.java
@@ -0,0 +1,28 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 运营端-客户定制功能列表-接口返参
+ * @Author sun
+ */
+@Data
+public class CustomerFunctionCustomizedListResultDTO implements Serializable {
+ private static final long serialVersionUID = 2971689193155710437L;
+
+
+ /**
+ * 默认功能列表
+ */
+ private List customerList = new ArrayList<>();
+
+ /**
+ * 定制功能列表
+ */
+ private List functionList = new ArrayList<>();
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java
new file mode 100644
index 0000000000..bab2b06442
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java
@@ -0,0 +1,38 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 运营端-客户定制功能列表-接口返参
+ * @Author sun
+ */
+@Data
+public class CustomerResultDTO implements Serializable {
+ private static final long serialVersionUID = 2971689193155710437L;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+ /**
+ * 定制功能Id
+ */
+ private String functionId;
+ /**
+ * 默认功能名称
+ */
+ private String customizedName;
+ /**
+ * 功能所属端(居民端:resi 工作端:work)
+ */
+ private String fromApp;
+ /**
+ * 功能说明
+ */
+ private String functionExplain;
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FunctionResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FunctionResultDTO.java
new file mode 100644
index 0000000000..0fc6777bc1
--- /dev/null
+++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FunctionResultDTO.java
@@ -0,0 +1,74 @@
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Description 运营端-客户定制功能列表-接口返参
+ * @Author sun
+ */
+@Data
+public class FunctionResultDTO implements Serializable {
+ private static final long serialVersionUID = 2971689193155710437L;
+
+ /**
+ * 客户Id
+ */
+ private String customerId;
+ /**
+ * 定制功能Id
+ */
+ private String functionId;
+ /**
+ * 默认功能名称
+ */
+ private String customizedName;
+ /**
+ * 自定义功能名称
+ */
+ private String functionName;
+ /**
+ * 功能所属端(居民端:resi 工作端:work)
+ */
+ private String fromApp;
+ /**
+ * 默认大图标
+ */
+ private String defaultLargeImg;
+ /**
+ * 自定义大图标
+ */
+ private String iconLargeImg;
+ /**
+ * 默认小图标
+ */
+ private String defaultSmallImg;
+ /**
+ * 自定义小图标
+ */
+ private String iconSmallImg;
+ /**
+ * 上下架(0:下架、1:上架)
+ */
+ private Integer shoppingStatus;
+ /**
+ * 业务域名
+ */
+ private String domainName;
+ /**
+ * 外链地址
+ */
+ private String targetLink;
+ /**
+ * 排序
+ */
+ private Integer displayOrder;
+ /**
+ * 功能说明
+ */
+ private String functionExplain;
+
+}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java
index 2c174d1c24..42f69d00e2 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java
@@ -28,9 +28,8 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.CustomerFunctionDetailDTO;
-import com.epmet.dto.form.FunctionDetailFromDTO;
-import com.epmet.dto.form.UpdateCustomerFunctionFormDTO;
-import com.epmet.dto.form.UpdateShoppingStatusFormDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.CustomerFunctionCustomizedListResultDTO;
import com.epmet.dto.result.FunctionDetailResultDTO;
import com.epmet.excel.CustomerFunctionDetailExcel;
import com.epmet.service.CustomerFunctionDetailService;
@@ -155,4 +154,43 @@ public class CustomerFunctionDetailController {
formDTO.setUserId(tokenDto.getUserId());
return customerFunctionDetailService.updateCustomerFunction(formDTO);
}
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 客户定制功能列表
+ **/
+ @PostMapping("customerfunctionlist")
+ public Result customerFunctionList(@LoginUser TokenDto tokenDto, @RequestBody CustomerFunctionListFormDTO formDTO) {
+ return new Result().ok(customerFunctionDetailService.customerFunctionList(formDTO.getCustomerId()));
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 客户定制功能顺序修改
+ **/
+ @PostMapping("updatedisplayorder")
+ //public Result updateDisplayOrder(@LoginUser TokenDto tokenDto, @RequestParam("formDTO") List formDTO) {
+ public Result updateDisplayOrder(@LoginUser TokenDto tokenDto, @RequestBody(required = true) List formDTO) {
+ customerFunctionDetailService.updateDisplayOrder(tokenDto, formDTO);
+ return new Result();
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 定制功能采集
+ **/
+ @PostMapping("customerfunctioncollect")
+ public Result customerFunctionCollect(@LoginUser TokenDto tokenDto, @RequestBody CustomerFunctionCollectFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO, CustomerFunctionCollectFormDTO.AddUserInternalGroup.class, CustomerFunctionCollectFormDTO.AddUserShowGroup.class);
+ customerFunctionDetailService.customerFunctionCollect(formDTO);
+ return new Result();
+ }
+
+
}
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
index 7ee1a99567..1a6572179d 100644
--- 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
@@ -22,6 +22,7 @@ import com.epmet.dto.CustomerFunctionDetailDTO;
import com.epmet.dto.form.FunctionDetailFromDTO;
import com.epmet.dto.form.UpdateCustomerFunctionFormDTO;
import com.epmet.dto.form.UpdateShoppingStatusFormDTO;
+import com.epmet.dto.result.CustomerResultDTO;
import com.epmet.dto.result.FunctionDetailResultDTO;
import com.epmet.entity.CustomerFunctionDetailEntity;
import org.apache.ibatis.annotations.Mapper;
@@ -76,4 +77,28 @@ public interface CustomerFunctionDetailDao extends BaseDao selectCustomerFunction(@Param("customerId") String customerId);
+
+ /**
+ * @param list
+ * @return
+ * @Author sun
+ * @Description 批量更新客户定制功能排序号信息
+ **/
+ void updateFunctionDetailList(@Param("list") List list);
+
+ /**
+ * @param customerId
+ * @return
+ * @Author sun
+ * @Description .查询客户当前已有定制功能最大排序号
+ **/
+ CustomerFunctionDetailDTO selectOrderByCustomerId(@Param("customerId") String customerId);
}
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
index 34b32e48f1..907bfd1595 100644
--- 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
@@ -19,10 +19,12 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CustomizedDTO;
+import com.epmet.dto.FunctionCustomizedDTO;
import com.epmet.dto.form.CommonFunctionIdFormDTO;
import com.epmet.dto.form.FunctionCustomizedListFormDTO;
import com.epmet.dto.result.FunctionCustomizedDetailResultDTO;
import com.epmet.dto.result.FunctionCustomizedListDTO;
+import com.epmet.dto.result.FunctionResultDTO;
import com.epmet.entity.FunctionCustomizedEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -98,4 +100,20 @@ public interface FunctionCustomizedDao extends BaseDao
* @Date 13:26 2020-08-14
**/
void updateFunctionCustomized(FunctionCustomizedEntity entity);
+
+ /**
+ * @param functionIds
+ * @return
+ * @Author sun
+ * @Description 获取不包含的定制功能列表
+ **/
+ List selectFunctionCustomizedList(@Param("functionIds") List functionIds);
+
+ /**
+ * @param functionId
+ * @return
+ * @Author sun
+ * @Description 查询定制功能信息
+ **/
+ FunctionCustomizedDTO selectByFunctionId(@Param("functionId") String functionId);
}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedExcel.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedExcel.java
index 786705a763..42cc63eaa9 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedExcel.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedExcel.java
@@ -68,7 +68,7 @@ public class FunctionCustomizedExcel {
private Date updatedTime;
@Excel(name = "业务域名")
- private String realmName;
+ private String domainName;
@Excel(name = "来源app(政府端:gov、居民端:resi)")
private String fromApp;
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
index 3dc099b9ca..7729d60bcd 100644
--- 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
@@ -19,11 +19,11 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.CustomerFunctionDetailDTO;
-import com.epmet.dto.form.FunctionDetailFromDTO;
-import com.epmet.dto.form.UpdateCustomerFunctionFormDTO;
-import com.epmet.dto.form.UpdateShoppingStatusFormDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.CustomerFunctionCustomizedListResultDTO;
import com.epmet.dto.result.FunctionDetailResultDTO;
import com.epmet.entity.CustomerFunctionDetailEntity;
@@ -127,4 +127,28 @@ public interface CustomerFunctionDetailService extends BaseService formDTO);
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 定制功能采集
+ **/
+ void customerFunctionCollect(CustomerFunctionCollectFormDTO formDTO);
}
diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java
index c1b20c5f75..6a1cf4b69e 100644
--- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java
+++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java
@@ -21,19 +21,26 @@ 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.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.CustomerFunctionDetailDao;
+import com.epmet.dao.FunctionCustomizedDao;
+import com.epmet.dao.FunctionShoppingHistoryDao;
import com.epmet.dto.CustomerFunctionDetailDTO;
+import com.epmet.dto.FunctionCustomizedDTO;
import com.epmet.dto.FunctionShoppingHistoryDTO;
-import com.epmet.dto.form.FunctionDetailFromDTO;
-import com.epmet.dto.form.UpdateCustomerFunctionFormDTO;
-import com.epmet.dto.form.UpdateShoppingStatusFormDTO;
+import com.epmet.dto.form.*;
+import com.epmet.dto.result.CustomerFunctionCustomizedListResultDTO;
+import com.epmet.dto.result.CustomerResultDTO;
import com.epmet.dto.result.FunctionDetailResultDTO;
+import com.epmet.dto.result.FunctionResultDTO;
import com.epmet.entity.CustomerFunctionDetailEntity;
+import com.epmet.entity.FunctionShoppingHistoryEntity;
import com.epmet.redis.CustomerFunctionDetailRedis;
import com.epmet.service.CustomerFunctionDetailService;
import com.epmet.service.FunctionShoppingHistoryService;
@@ -44,10 +51,8 @@ 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;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 客户定制功能详情表
@@ -61,9 +66,12 @@ public class CustomerFunctionDetailServiceImpl extends BaseServiceImpl page(Map params) {
@@ -159,4 +167,88 @@ public class CustomerFunctionDetailServiceImpl extends BaseServiceImpl customerList = baseDao.selectCustomerFunction(customerId);
+ resultDTO.setCustomerList(customerList);
+
+ //2.获取客户未有定制功能列表
+ List functionIds = customerList.stream().map(CustomerResultDTO::getFunctionId).collect(Collectors.toList());
+ List functionList = functionCustomizedDao.selectFunctionCustomizedList(functionIds);
+ resultDTO.setFunctionList(functionList);
+ functionList.forEach(fl->{
+ fl.setCustomerId(customerId);
+ });
+
+ return resultDTO;
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 客户定制功能顺序修改
+ **/
+ @Override
+ public void updateDisplayOrder(TokenDto tokenDto, List formDTO) {
+ //批量更新客户定制功能排序号信息
+ List list = ConvertUtils.sourceToTarget(formDTO, CustomerFunctionDetailEntity.class);
+ list.forEach(l->{
+ l.setUpdatedBy(tokenDto.getUserId());
+ });
+ baseDao.updateFunctionDetailList(list);
+ }
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 定制功能采集
+ **/
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void customerFunctionCollect(CustomerFunctionCollectFormDTO formDTO) {
+ //1.查询定制功能详细信息
+ FunctionCustomizedDTO functionDTO = functionCustomizedDao.selectByFunctionId(formDTO.getFunctionId());
+ if(functionDTO == null){
+ throw new RenException("根据定制功能Id未查询到定制功能详细信息");
+ }
+
+ //2.查询客户当前已有定制功能最大排序号
+ CustomerFunctionDetailDTO detailDTO = baseDao.selectOrderByCustomerId(formDTO.getCustomerId());
+ int displayOrder = NumConstant.ONE;
+ if(null!=detailDTO&&null!=detailDTO.getDisplayOrder()){
+ displayOrder += detailDTO.getDisplayOrder();
+ }
+ //3.给客户初始定制功能数据
+ CustomerFunctionDetailEntity entity = new CustomerFunctionDetailEntity();
+ entity.setCustomerId(formDTO.getCustomerId());
+ entity.setFunctionId(formDTO.getFunctionId());
+ entity.setFunctionName(functionDTO.getFunctionId());
+ entity.setIconLargeImg(functionDTO.getIconLargeImg());
+ entity.setIconSmallImg(functionDTO.getIconSmallImg());
+ entity.setDomainName(functionDTO.getDomainName());
+ entity.setTargetLink(functionDTO.getTargetLink());
+ entity.setShoppingStatus(NumConstant.ONE);
+ entity.setDisplayOrder(displayOrder);
+ baseDao.insert(entity);
+
+ //4.记录上下架操作日志
+ FunctionShoppingHistoryEntity historyEntity = new FunctionShoppingHistoryEntity();
+ historyEntity.setCustomerId(formDTO.getCustomerId());
+ historyEntity.setFunctionId(functionDTO.getFunctionId());
+ historyEntity.setShoppingStatus(NumConstant.ONE);
+ historyEntity.setReason(formDTO.getReason());
+ functionShoppingHistoryDao.insert(historyEntity);
+
+ }
+
}
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
index 5e61ca48a2..1c40bddd4c 100644
--- 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
@@ -6,7 +6,7 @@ CREATE TABLE `customer_function_detail` (
`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 ''自定义业务域名'',
+ `DOMAIN_NAME` varchar(32) NOT NULL COMMENT ''自定义业务域名(可设置多个 用分号分隔)'',
`TARGET_LINK` varchar(128) NOT NULL COMMENT ''外链地址'',
`SHOPPING_STATUS` int(11) NOT NULL COMMENT ''上架状态(0.下架 1.上架)'',
`DISPLAY_ORDER` int(11) NOT NULL COMMENT ''自定义排序'',
@@ -22,7 +22,7 @@ CREATE TABLE `customer_function_detail` (
ALTER TABLE `function_customized` ADD COLUMN `DOMAIN_NAME` VARCHAR (128) CHARACTER
-SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务域名' AFTER `UPDATED_TIME`,
+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`;
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
index f215a0d80e..ded8b1514d 100644
--- 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
@@ -49,6 +49,55 @@
cfd.display_order ASC
+
+
+
+
UPDATE customer_function_detail
SET
@@ -80,4 +129,29 @@
AND CUSTOMER_ID = #{customerId}
AND FUNCTION_ID = #{functionId}
+
+
+ UPDATE customer_function_detail
+
+
+
+
+ when customer_id = #{item.customerId} and function_id = #{item.functionId} then #{item.displayOrder}
+
+
+
+
+
+ when customer_id = #{item.customerId} and function_id = #{item.functionId} then #{item.updatedBy}
+
+
+
+ updated_time = now()
+
+ WHERE
+ del_flag = '0'
+
+ (customer_id = #{item.customerId} and function_id = #{item.functionId})
+
+
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
index f862114288..99cbf17b15 100644
--- 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
@@ -88,6 +88,38 @@
+
+
+
+
UPDATE function_customized
SET