Browse Source

Merge remote-tracking branch 'origin/dev_plugins' into dev_plugins

# Conflicts:
#	epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenUpController.java
master
wangchao 5 years ago
parent
commit
fd7eab4a7b
  1. 6
      epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinAgencyFormDTO.java
  2. 6
      epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinDeptFormDTO.java
  3. 6
      epmet-module/epmet-ext/epmet-ext-client/src/main/java/com/epmet/dto/form/StaffSinGridFormDTO.java
  4. 31
      epmet-module/epmet-ext/epmet-ext-server/pom.xml
  5. 4
      epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenUpController.java
  6. 31
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/UpdateCustomerParameterFormDTO.java
  7. 10
      epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/dto/result/CustomerInfoResultDTO.java
  8. 8
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/constant/ModuleConstant.java
  9. 25
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/controller/CustomerController.java
  10. 17
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/CustomerService.java
  11. 61
      epmet-module/oper-crm/oper-crm-server/src/main/java/com/epmet/service/impl/CustomerServiceImpl.java
  12. 3
      epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml
  13. 2
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/FunctionCustomizedDTO.java
  14. 36
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionCollectFormDTO.java
  15. 36
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/updatedisplayorderListFormDTO.java
  16. 28
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionCustomizedListResultDTO.java
  17. 38
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerResultDTO.java
  18. 74
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FunctionResultDTO.java
  19. 44
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java
  20. 25
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionDetailDao.java
  21. 18
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/FunctionCustomizedDao.java
  22. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/FunctionCustomizedExcel.java
  23. 30
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java
  24. 108
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java
  25. 4
      epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.4__add_customer_function_detail.sql
  26. 74
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml
  27. 32
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml

6
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{} public interface StaffSinAgency{}
/**
* appId+customerId+时间戳加密secret
*/
// @NotBlank(message = "secret不能为空",groups = {StaffSinDept.class})
private String accessToken;
/** /**
* 机关Id * 机关Id
*/ */

6
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{} public interface StaffSinDept{}
/**
* appId+customerId+时间戳加密secret
*/
// @NotBlank(message = "secret不能为空",groups = {StaffSinDept.class})
private String accessToken;
/** /**
* 部门Id * 部门Id
*/ */

6
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{} public interface StaffSinGrid{}
/**
* appId+customerId+时间戳加密secret
*/
// @NotBlank(message = "secret不能为空",groups = {StaffSinGrid.class})
private String accessToken;
/** /**
* 网格Id * 网格Id
*/ */

31
epmet-module/epmet-ext/epmet-ext-server/pom.xml

@ -26,6 +26,11 @@
<artifactId>epmet-ext-client</artifactId> <artifactId>epmet-ext-client</artifactId>
<version>2.0.0</version> <version>2.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-commons-extapp-auth</artifactId>
<version>2.0.0</version>
</dependency>
<dependency> <dependency>
<groupId>com.epmet</groupId> <groupId>com.epmet</groupId>
<artifactId>epmet-commons-tools</artifactId> <artifactId>epmet-commons-tools</artifactId>
@ -133,38 +138,12 @@
<version>3.6.0</version> <version>3.6.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-common-clienttoken</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>oper-crm-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-oss-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId> <artifactId>spring-test</artifactId>
<version>5.1.12.RELEASE</version> <version>5.1.12.RELEASE</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!-- 钉钉机器人 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibaba-dingtalk-service-sdk</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

4
epmet-module/epmet-ext/epmet-ext-server/src/main/java/com/epmet/controller/OpenUpController.java

@ -1,5 +1,6 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth; import com.epmet.commons.extappauth.annotation.ExternalAppRequestAuth;
import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
@ -37,6 +38,7 @@ public class OpenUpController {
* @author zxc * @author zxc
* @date 2020/8/13 9:42 上午 * @date 2020/8/13 9:42 上午
*/ */
@ExternalAppRequestAuth
@PostMapping("staffsingrid") @PostMapping("staffsingrid")
public Result<List<StaffSinGridResultDTO>> staffSinGrid(@RequestBody StaffSinGridFormDTO formDTO){ public Result<List<StaffSinGridResultDTO>> staffSinGrid(@RequestBody StaffSinGridFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StaffSinGridFormDTO.StaffSinGrid.class); ValidatorUtils.validateEntity(formDTO, StaffSinGridFormDTO.StaffSinGrid.class);
@ -49,6 +51,7 @@ public class OpenUpController {
* @author zxc * @author zxc
* @date 2020/8/13 9:51 上午 * @date 2020/8/13 9:51 上午
*/ */
@ExternalAppRequestAuth
@PostMapping("staffsindept") @PostMapping("staffsindept")
public Result<List<StaffSinDeptResultDTO>> staffSinDept(@RequestBody StaffSinDeptFormDTO formDTO){ public Result<List<StaffSinDeptResultDTO>> staffSinDept(@RequestBody StaffSinDeptFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StaffSinDeptFormDTO.StaffSinDept.class); ValidatorUtils.validateEntity(formDTO, StaffSinDeptFormDTO.StaffSinDept.class);
@ -61,6 +64,7 @@ public class OpenUpController {
* @author zxc * @author zxc
* @date 2020/8/17 9:59 上午 * @date 2020/8/17 9:59 上午
*/ */
@ExternalAppRequestAuth
@PostMapping("staffsinagency") @PostMapping("staffsinagency")
public Result<List<StaffSinAgencyResultDTO>> staffSinAgency(@RequestBody StaffSinAgencyFormDTO formDTO){ public Result<List<StaffSinAgencyResultDTO>> staffSinAgency(@RequestBody StaffSinAgencyFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, StaffSinAgencyFormDTO.StaffSinAgency.class); ValidatorUtils.validateEntity(formDTO, StaffSinAgencyFormDTO.StaffSinAgency.class);

31
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{}
}

10
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 lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @Author zxc * @Author zxc
@ -23,14 +24,19 @@ public class CustomerInfoResultDTO implements Serializable {
*/ */
private String customerName; private String customerName;
/**
* 有效期
*/
private Date validityTime;
/** /**
* 已创建网格数 * 已创建网格数
*/ */
private Integer createGridNum; private Integer createGridNumber;
/** /**
* 最大允许创建数 * 最大允许创建数
*/ */
private Integer maxGridNum; private Integer maxGridNumber;
} }

8
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 ERROR_GOV_ORG_COUNT = "调用gov_org服务【查询客户下网格数量】失败";
String SELECT_CUSTOMER_ERROR = "根据客户Id查询客户基本信息失败";
String GRID_NUMBER_ERROR = "最大网格数不能小于之前设定数";
String VALIDITY_TIME_ERROR = "客户有效期不能早于之前设定值";
String UPDATE_CUSTOMER_ERROR = "更新客户基本信息失败";
} }

25
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 org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -302,4 +303,28 @@ public class CustomerController {
customerService.updateCustomer(formDTO); customerService.updateCustomer(formDTO);
return new Result(); return new Result();
} }
/**
* @param formDTO
* @Description 获取客户最大网格数和有效期
* @author sun
*/
@PostMapping("getcustomerparameter")
public Result<CustomerInfoResultDTO> getCustomerParameter(@RequestBody CustomerIdFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, CustomerIdFormDTO.Customer.class);
return new Result<CustomerInfoResultDTO>().ok(customerService.getCustomerParameter(formDTO));
}
/**
* @param formDTO
* @Description 修改客户网格数和有效期
* @author sun
*/
@PostMapping("updatecustomerparameter")
public Result<CustomerInfoResultDTO> updateCustomerParameter(@RequestBody UpdateCustomerParameterFormDTO formDTO) throws ParseException {
ValidatorUtils.validateEntity(formDTO, UpdateCustomerParameterFormDTO.Customer.class);
customerService.updateCustomerParameter(formDTO);
return new Result();
}
} }

17
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.form.*;
import com.epmet.dto.result.*; import com.epmet.dto.result.*;
import com.epmet.entity.CustomerEntity; import com.epmet.entity.CustomerEntity;
import org.springframework.web.bind.annotation.RequestBody;
import java.text.ParseException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -204,4 +204,19 @@ public interface CustomerService extends BaseService<CustomerEntity> {
* @return void * @return void
*/ */
void updateCustomer(UpdateCustomerFormDTO formDTO); void updateCustomer(UpdateCustomerFormDTO formDTO);
/**
* @param formDTO
* @Description 获取客户最大网格数和有效期
* @author sun
*/
CustomerInfoResultDTO getCustomerParameter( CustomerIdFormDTO formDTO);
/**
* @param formDTO
* @Description 修改客户网格数和有效期
* @author sun
*/
void updateCustomerParameter(UpdateCustomerParameterFormDTO formDTO) throws ParseException;
} }

61
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.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -571,7 +573,7 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerDao, CustomerEn
if (!result.success()){ if (!result.success()){
throw new RenException(ModuleConstant.ERROR_GOV_ORG_COUNT); throw new RenException(ModuleConstant.ERROR_GOV_ORG_COUNT);
} }
customerInfoResultDTO.setCreateGridNum(result.getData().getGridCount()); customerInfoResultDTO.setCreateGridNumber(result.getData().getGridCount());
return customerInfoResultDTO; return customerInfoResultDTO;
} }
@ -638,4 +640,61 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerDao, CustomerEn
} }
} }
/**
* @param formDTO
* @Description 获取客户最大网格数和有效期
* @author sun
*/
@Override
public CustomerInfoResultDTO getCustomerParameter(CustomerIdFormDTO formDTO) {
//1.查询客户基本信息
CustomerInfoResultDTO customerInfoResultDTO = customerDao.selectCustomerBasicInfo(formDTO.getCustomerId());
if (null == customerInfoResultDTO) {
throw new RenException(ModuleConstant.SELECT_CUSTOMER_ERROR);
}
//2.查询客户实际网格数
Result<CustomerGridCountResultDTO> 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);
}
}
} }

3
epmet-module/oper-crm/oper-crm-server/src/main/resources/mapper/CustomerDao.xml

@ -95,7 +95,8 @@
SELECT SELECT
id AS customerId, id AS customerId,
customer_name AS customerName, customer_name AS customerName,
IFNULL( grid_number, 0 ) AS maxGridNum IFNULL( grid_number, 0 ) AS maxGridNumber,
validity_time AS validityTime
FROM FROM
customer customer
WHERE WHERE

2
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) * 来源app(政府端:gov居民端:resi)

36
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 {}
}

36
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 {}
}

28
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<CustomerResultDTO> customerList = new ArrayList<>();
/**
* 定制功能列表
*/
private List<FunctionResultDTO> functionList = new ArrayList<>();
}

38
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;
}

74
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;
}

44
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.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.CustomerFunctionDetailDTO; import com.epmet.dto.CustomerFunctionDetailDTO;
import com.epmet.dto.form.FunctionDetailFromDTO; import com.epmet.dto.form.*;
import com.epmet.dto.form.UpdateCustomerFunctionFormDTO; import com.epmet.dto.result.CustomerFunctionCustomizedListResultDTO;
import com.epmet.dto.form.UpdateShoppingStatusFormDTO;
import com.epmet.dto.result.FunctionDetailResultDTO; import com.epmet.dto.result.FunctionDetailResultDTO;
import com.epmet.excel.CustomerFunctionDetailExcel; import com.epmet.excel.CustomerFunctionDetailExcel;
import com.epmet.service.CustomerFunctionDetailService; import com.epmet.service.CustomerFunctionDetailService;
@ -155,4 +154,43 @@ public class CustomerFunctionDetailController {
formDTO.setUserId(tokenDto.getUserId()); formDTO.setUserId(tokenDto.getUserId());
return customerFunctionDetailService.updateCustomerFunction(formDTO); return customerFunctionDetailService.updateCustomerFunction(formDTO);
} }
/**
* @param formDTO
* @return
* @Author sun
* @Description 客户定制功能列表
**/
@PostMapping("customerfunctionlist")
public Result<CustomerFunctionCustomizedListResultDTO> customerFunctionList(@LoginUser TokenDto tokenDto, @RequestBody CustomerFunctionListFormDTO formDTO) {
return new Result<CustomerFunctionCustomizedListResultDTO>().ok(customerFunctionDetailService.customerFunctionList(formDTO.getCustomerId()));
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 客户定制功能顺序修改
**/
@PostMapping("updatedisplayorder")
//public Result updateDisplayOrder(@LoginUser TokenDto tokenDto, @RequestParam("formDTO") List<updatedisplayorderListFormDTO> formDTO) {
public Result updateDisplayOrder(@LoginUser TokenDto tokenDto, @RequestBody(required = true) List<updatedisplayorderListFormDTO> 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();
}
} }

25
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.FunctionDetailFromDTO;
import com.epmet.dto.form.UpdateCustomerFunctionFormDTO; import com.epmet.dto.form.UpdateCustomerFunctionFormDTO;
import com.epmet.dto.form.UpdateShoppingStatusFormDTO; import com.epmet.dto.form.UpdateShoppingStatusFormDTO;
import com.epmet.dto.result.CustomerResultDTO;
import com.epmet.dto.result.FunctionDetailResultDTO; import com.epmet.dto.result.FunctionDetailResultDTO;
import com.epmet.entity.CustomerFunctionDetailEntity; import com.epmet.entity.CustomerFunctionDetailEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -76,4 +77,28 @@ public interface CustomerFunctionDetailDao extends BaseDao<CustomerFunctionDetai
* @Date 10:00 2020-08-17 * @Date 10:00 2020-08-17
**/ **/
void updateCustomerFunction(UpdateCustomerFunctionFormDTO formDTO); void updateCustomerFunction(UpdateCustomerFunctionFormDTO formDTO);
/**
* @param customerId
* @return
* @Author sun
* @Description 获取客户已有定制功能列表信息
**/
List<CustomerResultDTO> selectCustomerFunction(@Param("customerId") String customerId);
/**
* @param list
* @return
* @Author sun
* @Description 批量更新客户定制功能排序号信息
**/
void updateFunctionDetailList(@Param("list") List<CustomerFunctionDetailEntity> list);
/**
* @param customerId
* @return
* @Author sun
* @Description .查询客户当前已有定制功能最大排序号
**/
CustomerFunctionDetailDTO selectOrderByCustomerId(@Param("customerId") String customerId);
} }

18
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.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CustomizedDTO; import com.epmet.dto.CustomizedDTO;
import com.epmet.dto.FunctionCustomizedDTO;
import com.epmet.dto.form.CommonFunctionIdFormDTO; import com.epmet.dto.form.CommonFunctionIdFormDTO;
import com.epmet.dto.form.FunctionCustomizedListFormDTO; import com.epmet.dto.form.FunctionCustomizedListFormDTO;
import com.epmet.dto.result.FunctionCustomizedDetailResultDTO; import com.epmet.dto.result.FunctionCustomizedDetailResultDTO;
import com.epmet.dto.result.FunctionCustomizedListDTO; import com.epmet.dto.result.FunctionCustomizedListDTO;
import com.epmet.dto.result.FunctionResultDTO;
import com.epmet.entity.FunctionCustomizedEntity; import com.epmet.entity.FunctionCustomizedEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -98,4 +100,20 @@ public interface FunctionCustomizedDao extends BaseDao<FunctionCustomizedEntity>
* @Date 13:26 2020-08-14 * @Date 13:26 2020-08-14
**/ **/
void updateFunctionCustomized(FunctionCustomizedEntity entity); void updateFunctionCustomized(FunctionCustomizedEntity entity);
/**
* @param functionIds
* @return
* @Author sun
* @Description 获取不包含的定制功能列表
**/
List<FunctionResultDTO> selectFunctionCustomizedList(@Param("functionIds") List<String> functionIds);
/**
* @param functionId
* @return
* @Author sun
* @Description 查询定制功能信息
**/
FunctionCustomizedDTO selectByFunctionId(@Param("functionId") String functionId);
} }

2
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; private Date updatedTime;
@Excel(name = "业务域名") @Excel(name = "业务域名")
private String realmName; private String domainName;
@Excel(name = "来源app(政府端:gov、居民端:resi)") @Excel(name = "来源app(政府端:gov、居民端:resi)")
private String fromApp; private String fromApp;

30
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.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData; 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.commons.tools.utils.Result;
import com.epmet.dto.CustomerFunctionDetailDTO; import com.epmet.dto.CustomerFunctionDetailDTO;
import com.epmet.dto.form.FunctionDetailFromDTO; import com.epmet.dto.form.*;
import com.epmet.dto.form.UpdateCustomerFunctionFormDTO; import com.epmet.dto.result.CustomerFunctionCustomizedListResultDTO;
import com.epmet.dto.form.UpdateShoppingStatusFormDTO;
import com.epmet.dto.result.FunctionDetailResultDTO; import com.epmet.dto.result.FunctionDetailResultDTO;
import com.epmet.entity.CustomerFunctionDetailEntity; import com.epmet.entity.CustomerFunctionDetailEntity;
@ -127,4 +127,28 @@ public interface CustomerFunctionDetailService extends BaseService<CustomerFunct
* @Date 10:00 2020-08-17 * @Date 10:00 2020-08-17
**/ **/
Result updateCustomerFunction(UpdateCustomerFunctionFormDTO formDTO); Result updateCustomerFunction(UpdateCustomerFunctionFormDTO formDTO);
/**
* @param customerId
* @return
* @Author sun
* @Description 客户定制功能列表
**/
CustomerFunctionCustomizedListResultDTO customerFunctionList(String customerId);
/**
* @param formDTO
* @return
* @Author sun
* @Description 客户定制功能顺序修改
**/
void updateDisplayOrder(TokenDto tokenDto, List<updatedisplayorderListFormDTO> formDTO);
/**
* @param formDTO
* @return
* @Author sun
* @Description 定制功能采集
**/
void customerFunctionCollect(CustomerFunctionCollectFormDTO formDTO);
} }

108
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.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant; 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.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; 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.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.CustomerFunctionDetailDao; import com.epmet.dao.CustomerFunctionDetailDao;
import com.epmet.dao.FunctionCustomizedDao;
import com.epmet.dao.FunctionShoppingHistoryDao;
import com.epmet.dto.CustomerFunctionDetailDTO; import com.epmet.dto.CustomerFunctionDetailDTO;
import com.epmet.dto.FunctionCustomizedDTO;
import com.epmet.dto.FunctionShoppingHistoryDTO; import com.epmet.dto.FunctionShoppingHistoryDTO;
import com.epmet.dto.form.FunctionDetailFromDTO; import com.epmet.dto.form.*;
import com.epmet.dto.form.UpdateCustomerFunctionFormDTO; import com.epmet.dto.result.CustomerFunctionCustomizedListResultDTO;
import com.epmet.dto.form.UpdateShoppingStatusFormDTO; import com.epmet.dto.result.CustomerResultDTO;
import com.epmet.dto.result.FunctionDetailResultDTO; import com.epmet.dto.result.FunctionDetailResultDTO;
import com.epmet.dto.result.FunctionResultDTO;
import com.epmet.entity.CustomerFunctionDetailEntity; import com.epmet.entity.CustomerFunctionDetailEntity;
import com.epmet.entity.FunctionShoppingHistoryEntity;
import com.epmet.redis.CustomerFunctionDetailRedis; import com.epmet.redis.CustomerFunctionDetailRedis;
import com.epmet.service.CustomerFunctionDetailService; import com.epmet.service.CustomerFunctionDetailService;
import com.epmet.service.FunctionShoppingHistoryService; import com.epmet.service.FunctionShoppingHistoryService;
@ -44,10 +51,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays; import java.util.stream.Collectors;
import java.util.List;
import java.util.Map;
/** /**
* 客户定制功能详情表 * 客户定制功能详情表
@ -61,9 +66,12 @@ public class CustomerFunctionDetailServiceImpl extends BaseServiceImpl<CustomerF
private Logger logger = LogManager.getLogger(CustomerFunctionDetailServiceImpl.class); private Logger logger = LogManager.getLogger(CustomerFunctionDetailServiceImpl.class);
@Autowired @Autowired
private CustomerFunctionDetailRedis customerFunctionDetailRedis; private CustomerFunctionDetailRedis customerFunctionDetailRedis;
@Autowired @Autowired
private FunctionShoppingHistoryService functionShoppingHistoryService; private FunctionShoppingHistoryService functionShoppingHistoryService;
@Autowired
private FunctionCustomizedDao functionCustomizedDao;
@Autowired
private FunctionShoppingHistoryDao functionShoppingHistoryDao;
@Override @Override
public PageData<CustomerFunctionDetailDTO> page(Map<String, Object> params) { public PageData<CustomerFunctionDetailDTO> page(Map<String, Object> params) {
@ -159,4 +167,88 @@ public class CustomerFunctionDetailServiceImpl extends BaseServiceImpl<CustomerF
return new Result(); return new Result();
} }
/**
* @param customerId
* @return
* @Author sun
* @Description 客户定制功能列表
**/
@Override
public CustomerFunctionCustomizedListResultDTO customerFunctionList(String customerId) {
CustomerFunctionCustomizedListResultDTO resultDTO = new CustomerFunctionCustomizedListResultDTO();
//1.获取客户已有定制功能列表,按排序号排序
List<CustomerResultDTO> customerList = baseDao.selectCustomerFunction(customerId);
resultDTO.setCustomerList(customerList);
//2.获取客户未有定制功能列表
List<String> functionIds = customerList.stream().map(CustomerResultDTO::getFunctionId).collect(Collectors.toList());
List<FunctionResultDTO> 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<updatedisplayorderListFormDTO> formDTO) {
//批量更新客户定制功能排序号信息
List<CustomerFunctionDetailEntity> 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);
}
} }

4
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 '''', `FUNCTION_NAME` varchar(128) NOT NULL COMMENT '''',
`ICON_LARGE_IMG` varchar(128) NOT NULL COMMENT '''', `ICON_LARGE_IMG` varchar(128) NOT NULL COMMENT '''',
`ICON_SMALL_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 '''', `TARGET_LINK` varchar(128) NOT NULL COMMENT '''',
`SHOPPING_STATUS` int(11) NOT NULL COMMENT ''(0. 1.)'', `SHOPPING_STATUS` int(11) NOT NULL COMMENT ''(0. 1.)'',
`DISPLAY_ORDER` int(11) NOT NULL COMMENT '''', `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 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 ADD COLUMN `FROM_APP` VARCHAR (32) CHARACTER
SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '来源app(政府端:gov、居民端:resi)' AFTER `REALM_NAME`; SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '来源app(政府端:gov、居民端:resi)' AFTER `REALM_NAME`;

74
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionDetailDao.xml

@ -49,6 +49,55 @@
cfd.display_order ASC cfd.display_order ASC
</select> </select>
<select id="selectCustomerFunction" resultType="com.epmet.dto.result.CustomerResultDTO">
SELECT
cfd.customer_id AS "customerId",
cfd.function_id AS "functionId",
cfd.function_name AS "functionName",
cfd.icon_large_img AS "iconLargeImg",
cfd.icon_small_img AS "iconSmallImg",
cfd.display_order AS "displayOrder",
fc.customized_name AS "customizedName",
fc.from_app AS "fromApp",
fc.icon_large_img AS "defaultLargeImg",
fc.icon_small_img AS "defaultSmallImg ",
fc.domain_name AS "domainName",
fc.target_link AS "targetLink",
f.shopping_status AS "shoppingStatus",
f.function_explain AS "functionExplain"
FROM
customer_function_detail cfd
INNER JOIN function_customized fc ON cfd.function_id = fc.function_id
INNER JOIN `function` f ON cfd.function_id = f.id
WHERE
cfd.del_flag = '0'
AND fc.del_flag = '0'
AND f.del_flag = '0'
AND cfd.customer_id = #{customerId}
ORDER BY
cfd.DISPLAY_ORDER ASC
</select>
<select id="selectOrderByCustomerId" resultType="com.epmet.dto.CustomerFunctionDetailDTO">
SELECT
customer_id,
function_id,
function_name,
icon_large_img,
icon_small_img,
domain_name,
target_link,
shopping_status,
IFNULL(display_order, 0) AS displayOrder
FROM
customer_function_detail
WHERE
del_flag = '0'
AND customer_id = #{customerId}
ORDER BY display_order DESC
LIMIT 1
</select>
<update id="updateShoppingStatus" parameterType="com.epmet.dto.form.UpdateShoppingStatusFormDTO"> <update id="updateShoppingStatus" parameterType="com.epmet.dto.form.UpdateShoppingStatusFormDTO">
UPDATE customer_function_detail UPDATE customer_function_detail
SET SET
@ -80,4 +129,29 @@
AND CUSTOMER_ID = #{customerId} AND CUSTOMER_ID = #{customerId}
AND FUNCTION_ID = #{functionId} AND FUNCTION_ID = #{functionId}
</update> </update>
<update id="updateFunctionDetailList">
UPDATE customer_function_detail
<trim prefix="set" suffixOverrides=",">
<trim prefix="display_order =(case" suffix="end),">
<foreach collection="list" item="item">
when customer_id = #{item.customerId} and function_id = #{item.functionId} then #{item.displayOrder}
</foreach>
</trim>
<trim prefix="updated_by =(case" suffix="end),">
<foreach collection="list" item="item">
when customer_id = #{item.customerId} and function_id = #{item.functionId} then #{item.updatedBy}
</foreach>
</trim>
updated_time = now()
</trim>
WHERE
del_flag = '0'
<foreach collection="list" item="item" open="AND( " separator=" OR " index="index" close=")">
(customer_id = #{item.customerId} and function_id = #{item.functionId})
</foreach>
</update>
</mapper> </mapper>

32
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/FunctionCustomizedDao.xml

@ -88,6 +88,38 @@
</if> </if>
</select> </select>
<select id="selectFunctionCustomizedList" resultType="com.epmet.dto.result.FunctionResultDTO">
SELECT
fc.FUNCTION_ID AS "functionId",
fc.CUSTOMIZED_NAME AS "customizedName",
fc.FROM_APP AS "fromApp",
f.FUNCTION_EXPLAIN AS "functionExplain"
FROM
function_customized fc
INNER JOIN `function` f ON fc.FUNCTION_ID = f.ID
WHERE
fc.DEL_FLAG = '0'
AND f.DEL_FLAG = '0'
<foreach collection="functionIds" item="functionId" index="index" open="AND ( " separator=" AND " close=")">
fc.FUNCTION_ID != #{functionId}
</foreach>
</select>
<select id="selectByFunctionId" resultType="com.epmet.dto.FunctionCustomizedDTO">
SELECT
function_id,
customized_name,
icon_large_img,
icon_small_img,
domain_name,
target_link
FROM
function_customized
WHERE
del_flag = '0'
AND function_id = #{functionId}
</select>
<update id="updateFunctionCustomized" parameterType="com.epmet.entity.FunctionCustomizedEntity"> <update id="updateFunctionCustomized" parameterType="com.epmet.entity.FunctionCustomizedEntity">
UPDATE function_customized UPDATE function_customized
SET SET

Loading…
Cancel
Save