Browse Source

积分规则相关接口

dev
jianjun 5 years ago
parent
commit
05cac1ea4f
  1. 5
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java
  2. 42
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CommonOperateTypeEnum.java
  3. 126
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/PointRuleDTO.java
  4. 21
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointDetailFormDTO.java
  5. 71
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointRuleFormDTO.java
  6. 23
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointRuleListFormDTO.java
  7. 18
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/CustomerFunctionResultDTO.java
  8. 24
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PointDetailResultDTO.java
  9. 23
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PointRuleResultDTO.java
  10. 12
      epmet-module/epmet-point/epmet-point-server/pom.xml
  11. 42
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/common/enu/PointUnitEnum.java
  12. 43
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/common/enu/SysResponseEnum.java
  13. 40
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/BackDoorController.java
  14. 100
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointRuleController.java
  15. 23
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointRuleDao.java
  16. 4
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/RuleOperateLogDao.java
  17. 32
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/entity/PointRuleEntity.java
  18. 14
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/entity/RuleOperateLogEntity.java
  19. 76
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRuleService.java
  20. 4
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/SysOperateLogService.java
  21. 199
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRuleServiceImpl.java
  22. 22
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/SysOperateLogServiceImpl.java
  23. 52
      epmet-module/epmet-point/epmet-point-server/src/main/resources/db/migration/epmet_point.sql
  24. 19
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointRuleDao.xml
  25. 4
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/RuleOperateLogDao.xml
  26. 10
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  27. 18
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  28. 6
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionController.java
  29. 2
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionService.java
  30. 41
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionServiceImpl.java

5
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/StrConstant.java

@ -48,4 +48,9 @@ public interface StrConstant {
* 中文顿号
*/
String COMMA_ZH = "、";
/**
* 反斜杠
*/
String SEPARATOR = "/";
}

42
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/CommonOperateTypeEnum.java

@ -0,0 +1,42 @@
package com.epmet.commons.tools.enums;
/**
* 通用操作类型 枚举类
* dev|test|prod
*
* @author jianjun liu
* @date 2020-07-03 11:14
**/
public enum CommonOperateTypeEnum {
ADD("add", "添加"),
EDIT("edit", "编辑"),
DEL("del", "删除"),
;
private String code;
private String desc;
CommonOperateTypeEnum(String code, String name) {
this.code = code;
this.desc = name;
}
public static CommonOperateTypeEnum getEnum(String code) {
CommonOperateTypeEnum[] values = CommonOperateTypeEnum.values();
for (CommonOperateTypeEnum value : values) {
if (code != null && value.getCode().equals(code)) {
return value;
}
}
return null;
}
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
}

126
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/PointRuleDTO.java

@ -1,126 +0,0 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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-07-20
*/
@Data
public class PointRuleDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 客户ID
*/
private String customerId;
/**
* 规则名称 与事件名称保持一致即可
*/
private String ruleName;
/**
* 规则说明 事件说明
*/
private String ruleDesc;
/**
* 事件CODE 来自事件表
*/
private String eventCode;
/**
* 事件名称 来自事件表
*/
private String eventName;
/**
* 操作类型 加积分:add;减积分:subtract
*/
private String operateType;
/**
* 积分上限
*/
private Integer upLimit;
/**
* 积分上限描述
*/
private String upLimitDesc;
/**
* 获得积分值
*/
private Integer pointNum;
/**
* 获得积分单位 time分钟minute小时hour
*/
private String pointUnit;
/**
* 是否启用 0-1-
*/
private String enabledFlag;
/**
* 删除标识 0-1-
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

21
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointDetailFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* desc:积分规则Id详情获取 规则列表
* @author jianjun liu
* @date 2020-07-22 15:28
**/
@Data
public class PointDetailFormDTO implements Serializable {
private static final long serialVersionUID = 7587939716742608164L;
/**
* 积分规则Id
*/
@NotBlank(message = "积分规则Id不能为空")
private String ruleId;
}

71
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointRuleFormDTO.java

@ -0,0 +1,71 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* desc:积分规则保存/修改 规则列表
*
* @author jianjun liu
* @date 2020-07-22 15:28
**/
@Data
public class PointRuleFormDTO implements Serializable {
private static final long serialVersionUID = -3228252683629912008L;
/**
* 积分规则Id
*/
@NotBlank(message = "积分规则Id不能为空", groups = UpdateGroup.class)
private String ruleId;
/**
* 积分
*/
@NotBlank(message = "积分不能为空", groups = {AddGroup.class, UpdateGroup.class})
private String point;
/**
* 是否开启
*/
@NotBlank(message = "是否开启不能为空", groups = {AddGroup.class, UpdateGroup.class})
private String enabledFlag;
/**
* 上限开启
*/
@NotBlank(message = "积分上限不能为空", groups = {AddGroup.class, UpdateGroup.class})
private String upLimit;
/**
* 积分规则Id
*/
@NotBlank(message = "客户Id不能为空", groups = {AddGroup.class, UpdateGroup.class})
private String customerId;
//=======系统添加时的属性======
/**
* 规则说明 事件说明
*/
@NotBlank(message = "规则描述不能为空", groups = AddGroup.class)
private String ruleDesc;
/**
* 事件CODE 来自事件表
*/
@NotBlank(message = "事件code不能为空", groups = AddGroup.class)
private String eventCode;
/**
* 操作类型 加积分:add;减积分:subtract
*/
@NotBlank(message = "操作类型不能为空", groups = AddGroup.class)
private String operateType;
/**
* 获得积分单位 time分钟minute小时hour
*/
@NotBlank(message = "积分单位不能为空", groups = AddGroup.class)
private String pointUnit;
}

23
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointRuleListFormDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* desc:根据功能Id获取 规则列表
* @author jianjun liu
* @date 2020-07-22 15:28
**/
@Data
public class PointRuleListFormDTO implements Serializable {
private static final long serialVersionUID = -1918653281170340608L;
/**
* 功能Id
*/
@NotBlank(message = "功能Id不能为空")
private String functionId;
@NotBlank(message = "客户Id不能为空")
private String customerId;
}

18
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/CustomerFunctionResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* desc:积分规则-获取客户功能列表 result
* @author jianjun liu
* @date 2020-07-22 14:43
**/
@Data
public class CustomerFunctionResultDTO implements Serializable {
private static final long serialVersionUID = -3761765064811136295L;
private String functionId;
private String functionName;
}

24
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PointDetailResultDTO.java

@ -0,0 +1,24 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* desc:积分规则-详情 result
* @author jianjun liu
* @date 2020-07-22 14:43
**/
@Data
public class PointDetailResultDTO implements Serializable {
private static final long serialVersionUID = 2426172750860788081L;
private String ruleId;
private String ruleName;
private String ruleDesc;
private Integer point;
private String pointUnit;
private String upLimit;
private String enabledFlag;
private String upLimitDesc;
}

23
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/result/PointRuleResultDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* desc:积分规则-列表 result
* @author jianjun liu
* @date 2020-07-22 14:43
**/
@Data
public class PointRuleResultDTO implements Serializable {
private static final long serialVersionUID = -2327977101138032573L;
private String ruleId;
private String ruleName;
private String ruleDesc;
/**
* 拼接好的 积分值/单位
*/
private String pointValue;
}

12
epmet-module/epmet-point/epmet-point-server/pom.xml

@ -69,6 +69,18 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>oper-customize-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-user-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

42
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/common/enu/PointUnitEnum.java

@ -0,0 +1,42 @@
package com.epmet.common.enu;
/**
* 系积分系统-积分单位枚举类
* dev|test|prod
*
* @author jianjun liu
* @date 2020-07-03 11:14
**/
public enum PointUnitEnum {
TIME("time", "次"),
MINUTE("minute", "分种"),
HOUR("hour", "小时"),
;
private String code;
private String name;
PointUnitEnum(String code, String name) {
this.code = code;
this.name = name;
}
public static PointUnitEnum getEnum(String code) {
PointUnitEnum[] values = PointUnitEnum.values();
for (PointUnitEnum value : values) {
if (code != null && value.getCode().equals(code)) {
return value;
}
}
return null;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}

43
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/common/enu/SysResponseEnum.java

@ -0,0 +1,43 @@
package com.epmet.common.enu;
/**
* @author jianjun liu
* @date 2020-06-04 21:39
**/
public enum SysResponseEnum {
/**
*
* 业务代码枚举类
*
* 编码样式CCCBBOOXX
* 编码示例说明
* CCC 中心编码&业务系统 (112与端口号一致-积分系统服务)
* BB 业务类型00-默认
* OO 操作类型00-默认
* XX 具体编码00-成功,01-失败,02-参数错误,10-异常 99-系统错误
*
*/
/*通用枚举 */
EXCEPTION(10001,"系统异常"),
/*积分规则 业务 01*/
THIRD_SERVICE_ERROR(112010001,"调用第三方接口异常"),
POINT_RULE_IS_NOT_EXIST(112010002,"积分规则不存在"),
;
private Integer code;
private String msg;
SysResponseEnum(Integer code, String msg){
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}

40
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/BackDoorController.java

@ -0,0 +1,40 @@
package com.epmet.controller;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.dto.form.PointRuleFormDTO;
import com.epmet.service.PointRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author jianjun liu
* @date 2020-06-04 20:39
**/
@RestController
@RequestMapping("opback")
public class BackDoorController {
@Autowired
private PointRuleService pointRuleService;
/**
* desc:添加规则
*
* @param formDTO
* @return
*/
@PostMapping(value = "sysadd")
public Result<Boolean> add(@RequestBody PointRuleFormDTO formDTO) {
TokenDto tokenDTO = new TokenDto();
tokenDTO.setUserId("default");
formDTO.setCustomerId(tokenDTO.getCustomerId());
ValidatorUtils.validateEntity(formDTO, AddGroup.class);
pointRuleService.add(tokenDTO, formDTO);
return new Result<Boolean>().ok(true);
}
}

100
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/PointRuleController.java

@ -0,0 +1,100 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
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.dto.form.PointDetailFormDTO;
import com.epmet.dto.form.PointRuleFormDTO;
import com.epmet.dto.form.PointRuleListFormDTO;
import com.epmet.dto.result.CustomerFunctionResultDTO;
import com.epmet.dto.result.PointDetailResultDTO;
import com.epmet.dto.result.PointRuleResultDTO;
import com.epmet.service.PointRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 积分规则controller
*
* @author jianjun liu
* @date 2020-07-22 14:39
**/
@RestController
@RequestMapping("rule")
public class PointRuleController {
@Autowired
private PointRuleService pointRuleService;
/**
* desc:积分规则-获取客户有积分规则的功能列表
*
* @param tokenDTO
* @return
*/
@PostMapping(value = "functionlist")
public Result<List<CustomerFunctionResultDTO>> getFunctionList(@LoginUser TokenDto tokenDTO) {
return new Result<List<CustomerFunctionResultDTO>>().ok(pointRuleService.getFunctionList(tokenDTO.getCustomerId()));
}
/**
* desc:根据功能id获取积分规则
*
* @param tokenDTO
* @param formDTO
* @return
*/
@PostMapping(value = "list")
public Result<List<PointRuleResultDTO>> list(@LoginUser TokenDto tokenDTO, @RequestBody PointRuleListFormDTO formDTO) {
formDTO.setCustomerId(tokenDTO.getCustomerId());
ValidatorUtils.validateEntity(formDTO);
return new Result<List<PointRuleResultDTO>>().ok(pointRuleService.list(formDTO));
}
/**
* desc:根据规则id获取积分规则
*
* @param formDTO
* @return
*/
@PostMapping(value = "detail")
public Result<PointDetailResultDTO> detail(@RequestBody PointDetailFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
return new Result<PointDetailResultDTO>().ok(pointRuleService.detail(formDTO));
}
/**
* desc:根据功能id获取积分规则
*
* @param formDTO
* @return
*/
@PostMapping(value = "update")
public Result<Boolean> update(@LoginUser TokenDto tokenDTO, @RequestBody PointRuleFormDTO formDTO) {
formDTO.setCustomerId(tokenDTO.getCustomerId());
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class);
pointRuleService.update(tokenDTO,formDTO);
return new Result<Boolean>().ok(true);
}
/**
* desc:添加规则
*
* @param formDTO
* @return
*/
@PostMapping(value = "add")
public Result<Boolean> add(@LoginUser TokenDto tokenDTO, @RequestBody PointRuleFormDTO formDTO) {
formDTO.setCustomerId(tokenDTO.getCustomerId());
ValidatorUtils.validateEntity(formDTO, AddGroup.class);
pointRuleService.add(tokenDTO,formDTO);
return new Result<Boolean>().ok(true);
}
}

23
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointRuleDao.java

@ -18,8 +18,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.PointRuleListFormDTO;
import com.epmet.entity.PointRuleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 积分规则表
@ -29,5 +33,22 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface PointRuleDao extends BaseDao<PointRuleEntity> {
/**
* desc:获取该客户下有规则的功能Id
*
* @param customerId
* @return
*/
List<String> selectFunctionIds(@Param("customerId") String customerId);
/**
* desc:获取该客户下有规则的功能Id
*
* @param formDTO
* @return
*/
List<PointRuleEntity> selectListByFunctionId(PointRuleListFormDTO formDTO);
int updateByCustomerId(PointRuleEntity entity);
}

4
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/SysOperateLogDao.java → epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/RuleOperateLogDao.java

@ -18,7 +18,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.SysOperateLogEntity;
import com.epmet.entity.RuleOperateLogEntity;
import org.apache.ibatis.annotations.Mapper;
/**
@ -28,6 +28,6 @@ import org.apache.ibatis.annotations.Mapper;
* @since v1.0.0 2020-07-20
*/
@Mapper
public interface SysOperateLogDao extends BaseDao<SysOperateLogEntity> {
public interface RuleOperateLogDao extends BaseDao<RuleOperateLogEntity> {
}

32
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/entity/PointRuleEntity.java

@ -18,12 +18,11 @@
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;
import java.util.Objects;
/**
* 积分规则表
@ -58,11 +57,6 @@ public class PointRuleEntity extends BaseEpmetEntity {
*/
private String eventCode;
/**
* 事件名称 来自事件表
*/
private String eventName;
/**
* 操作类型 加积分:add;减积分:subtract
*/
@ -81,7 +75,7 @@ public class PointRuleEntity extends BaseEpmetEntity {
/**
* 获得积分值
*/
private Integer pointNum;
private Integer point;
/**
* 获得积分单位 time分钟minute小时hour
@ -93,4 +87,26 @@ public class PointRuleEntity extends BaseEpmetEntity {
*/
private String enabledFlag;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
PointRuleEntity entity = (PointRuleEntity) o;
return customerId.equals(entity.customerId) &&
ruleName.equals(entity.ruleName) &&
ruleDesc.equals(entity.ruleDesc) &&
eventCode.equals(entity.eventCode) &&
operateType.equals(entity.operateType) &&
upLimit.equals(entity.upLimit) &&
upLimitDesc.equals(entity.upLimitDesc) &&
point.equals(entity.point) &&
pointUnit.equals(entity.pointUnit) &&
enabledFlag.equals(entity.enabledFlag);
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), customerId, ruleName, ruleDesc, eventCode, operateType, upLimit, upLimitDesc, point, pointUnit, enabledFlag);
}
}

14
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/entity/SysOperateLogEntity.java → epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/entity/RuleOperateLogEntity.java

@ -18,13 +18,10 @@
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;
/**
* 积分系统操作记录表
*
@ -34,7 +31,7 @@ import java.util.Date;
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("sys_operate_log")
public class SysOperateLogEntity extends BaseEpmetEntity {
public class RuleOperateLogEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
@ -44,14 +41,9 @@ public class SysOperateLogEntity extends BaseEpmetEntity {
private String customerId;
/**
* 操作对象ID
*/
private String objectId;
/**
* 对象类型 规则:rule
* 规则ID
*/
private String objectType;
private String ruleId;
/**
* 操作类型 新建:add,编辑:edit删除:del

76
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointRuleService.java

@ -18,12 +18,16 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.PointRuleDTO;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.PointDetailFormDTO;
import com.epmet.dto.form.PointRuleFormDTO;
import com.epmet.dto.form.PointRuleListFormDTO;
import com.epmet.dto.result.CustomerFunctionResultDTO;
import com.epmet.dto.result.PointDetailResultDTO;
import com.epmet.dto.result.PointRuleResultDTO;
import com.epmet.entity.PointRuleEntity;
import java.util.List;
import java.util.Map;
/**
* 积分规则表
@ -34,62 +38,22 @@ import java.util.Map;
public interface PointRuleService extends BaseService<PointRuleEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<PointRuleDTO>
* @author generator
* @date 2020-07-20
* desc:根据用户id获取积分规则-功能列表
* @param customerId
* @return
*/
PageData<PointRuleDTO> page(Map<String, Object> params);
List<CustomerFunctionResultDTO> getFunctionList(String customerId);
/**
* 默认查询
*
* @param params
* @return java.util.List<PointRuleDTO>
* @author generator
* @date 2020-07-20
*/
List<PointRuleDTO> list(Map<String, Object> params);
/**
* desc根据客户Id 及功能Id获取规则列表
* @param formDTO
* @return
*/
List<PointRuleResultDTO> list(PointRuleListFormDTO formDTO);
/**
* 单条查询
*
* @param id
* @return PointRuleDTO
* @author generator
* @date 2020-07-20
*/
PointRuleDTO get(String id);
PointDetailResultDTO detail(PointDetailFormDTO formDTO);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-07-20
*/
void save(PointRuleDTO dto);
void update(TokenDto tokenDTO, PointRuleFormDTO formDTO);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-07-20
*/
void update(PointRuleDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-07-20
*/
void delete(String[] ids);
void add(TokenDto tokenDTO, PointRuleFormDTO formDTO);
}

4
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/SysOperateLogService.java

@ -20,7 +20,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.SysOperateLogDTO;
import com.epmet.entity.SysOperateLogEntity;
import com.epmet.entity.RuleOperateLogEntity;
import java.util.List;
import java.util.Map;
@ -31,7 +31,7 @@ import java.util.Map;
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-07-20
*/
public interface SysOperateLogService extends BaseService<SysOperateLogEntity> {
public interface SysOperateLogService extends BaseService<RuleOperateLogEntity> {
/**
* 默认分页

199
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRuleServiceImpl.java

@ -17,23 +17,40 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.alibaba.fastjson.JSON;
import com.epmet.common.enu.PointUnitEnum;
import com.epmet.common.enu.SysResponseEnum;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.enums.CommonOperateTypeEnum;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.PointRuleDao;
import com.epmet.dto.PointRuleDTO;
import com.epmet.dao.RuleOperateLogDao;
import com.epmet.dto.CustomerStaffDTO;
import com.epmet.dto.form.CustomerFunctionListFormDTO;
import com.epmet.dto.form.PointDetailFormDTO;
import com.epmet.dto.form.PointRuleFormDTO;
import com.epmet.dto.form.PointRuleListFormDTO;
import com.epmet.dto.result.CustomerFunctionResultDTO;
import com.epmet.dto.result.DefaultFunctionListResultDTO;
import com.epmet.dto.result.PointDetailResultDTO;
import com.epmet.dto.result.PointRuleResultDTO;
import com.epmet.entity.PointRuleEntity;
import com.epmet.entity.RuleOperateLogEntity;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.PointRuleService;
import org.apache.commons.lang3.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 积分规则表
@ -41,60 +58,116 @@ import java.util.Map;
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-07-20
*/
@Slf4j
@Service
public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRuleEntity> implements PointRuleService {
@Override
public PageData<PointRuleDTO> page(Map<String, Object> params) {
IPage<PointRuleEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, PointRuleDTO.class);
}
@Override
public List<PointRuleDTO> list(Map<String, Object> params) {
List<PointRuleEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, PointRuleDTO.class);
}
private QueryWrapper<PointRuleEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<PointRuleEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public PointRuleDTO get(String id) {
PointRuleEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, PointRuleDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(PointRuleDTO dto) {
PointRuleEntity entity = ConvertUtils.sourceToTarget(dto, PointRuleEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(PointRuleDTO dto) {
PointRuleEntity entity = ConvertUtils.sourceToTarget(dto, PointRuleEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Autowired
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
@Autowired
private EpmetUserOpenFeignClient epmetUserOpenFeignClient;
@Autowired
private RuleOperateLogDao ruleOperateLogDao;
@Override
public List<CustomerFunctionResultDTO> getFunctionList(String customerId) {
List<CustomerFunctionResultDTO> result = new ArrayList<>();
CustomerFunctionListFormDTO formDTO = new CustomerFunctionListFormDTO();
formDTO.setCustomerId(customerId);
Result<List<DefaultFunctionListResultDTO>> openedFunctionResult = operCustomizeOpenFeignClient.getOpenedFunctionList(formDTO);
if (!openedFunctionResult.success()) {
log.warn("getFunctionList getOpenedFunctionList fail,result:{}", JSON.toJSONString(openedFunctionResult));
throw new RenException(SysResponseEnum.THIRD_SERVICE_ERROR.getCode(), SysResponseEnum.THIRD_SERVICE_ERROR.getMsg());
}
List<DefaultFunctionListResultDTO> resultData = openedFunctionResult.getData();
if (CollectionUtils.isEmpty(resultData)) {
log.warn("getFunctionList customerId:{} have opened any function", customerId);
return result;
}
List<String> functionIds = baseDao.selectFunctionIds(customerId);
if (CollectionUtils.isEmpty(functionIds)) {
log.warn("getFunctionList customerId:{} have any pointRules", customerId);
return result;
}
return resultData.stream().filter(function -> functionIds.contains(function.getFunctionId()))
.map(fun -> ConvertUtils.sourceToTarget(fun, CustomerFunctionResultDTO.class))
.collect(Collectors.toList());
}
@Override
public List<PointRuleResultDTO> list(PointRuleListFormDTO formDTO) {
List<PointRuleResultDTO> result = new ArrayList<>();
List<PointRuleEntity> list = baseDao.selectListByFunctionId(formDTO);
if (CollectionUtils.isEmpty(list)) {
log.warn("list functionId:{} return empty", formDTO.getFunctionId());
return result;
}
result = list.stream().map(pointRuleEntity -> {
PointRuleResultDTO resultDTO = new PointRuleResultDTO();
resultDTO.setRuleId(pointRuleEntity.getId());
resultDTO.setRuleName(pointRuleEntity.getRuleName());
resultDTO.setRuleDesc(pointRuleEntity.getRuleDesc());
PointUnitEnum pointUnitEnum = PointUnitEnum.getEnum(pointRuleEntity.getPointUnit());
if (pointRuleEntity == null || pointRuleEntity.getPoint() == null) {
log.error("list ruleId:{} have not pointUnit or pointNum,pointRule:{}", JSON.toJSONString(pointRuleEntity));
return null;
}
resultDTO.setPointValue(pointRuleEntity.getPoint().toString().concat(StrConstant.SEPARATOR).concat(pointUnitEnum.getCode()));
return resultDTO;
}).filter(fun -> fun != null).collect(Collectors.toList());
return result;
}
@Override
public PointDetailResultDTO detail(PointDetailFormDTO formDTO) {
PointRuleEntity pointRuleEntity = baseDao.selectById(formDTO.getRuleId());
if (pointRuleEntity == null) {
throw new RenException(SysResponseEnum.POINT_RULE_IS_NOT_EXIST.getCode(), SysResponseEnum.POINT_RULE_IS_NOT_EXIST.getMsg());
}
return ConvertUtils.sourceToTarget(pointRuleEntity, PointDetailResultDTO.class);
}
@Override
public void update(TokenDto tokenDTO, PointRuleFormDTO formDTO) {
PointRuleEntity entityDB = baseDao.selectById(formDTO.getRuleId());
//数据库不存在或者客户Id不相等 则抛出异常
if (entityDB == null || !entityDB.getCustomerId().equals(formDTO.getCustomerId())) {
throw new RenException(SysResponseEnum.POINT_RULE_IS_NOT_EXIST.getCode(), SysResponseEnum.POINT_RULE_IS_NOT_EXIST.getMsg());
}
PointRuleEntity entityNew = ConvertUtils.sourceToTarget(formDTO, PointRuleEntity.class);
if (entityDB.equals(entityNew)) {
log.warn("update ignore tow entity is same");
return;
}
insertOperateRecord(tokenDTO, formDTO, entityDB, CommonOperateTypeEnum.EDIT.getCode());
baseDao.updateByCustomerId(entityNew);
}
@Override
public void add(TokenDto tokenDTO, PointRuleFormDTO formDTO) {
PointRuleEntity entity = ConvertUtils.sourceToTarget(formDTO, PointRuleEntity.class);
if (tokenDTO == null){
insertOperateRecord(tokenDTO, formDTO, null, CommonOperateTypeEnum.ADD.getCode());
}
baseDao.insert(entity);
}
private void insertOperateRecord(TokenDto tokenDTO, PointRuleFormDTO formDTO, PointRuleEntity entityDB, String opType) {
CustomerStaffDTO userInfo = getCustomerStaff(tokenDTO.getUserId());
RuleOperateLogEntity record = new RuleOperateLogEntity();
record.setCustomerId(formDTO.getCustomerId());
record.setRuleId(entityDB.getId());
record.setOpType(opType);
record.setOpUser(userInfo.getRealName());
record.setBefordData(JSON.toJSONString(entityDB));
record.setAfterData(JSON.toJSONString(formDTO));
ruleOperateLogDao.insert(record);
}
private CustomerStaffDTO getCustomerStaff(String userId) {
Result<CustomerStaffDTO> resultStaff = epmetUserOpenFeignClient.getCustomerStaff(userId);
if (!resultStaff.success() || null == resultStaff.getData()) {
throw new RenException(SysResponseEnum.THIRD_SERVICE_ERROR.getMsg());
}
return resultStaff.getData();
}
}

22
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/SysOperateLogServiceImpl.java

@ -20,12 +20,12 @@ 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.commons.tools.constant.FieldConstant;
import com.epmet.dao.SysOperateLogDao;
import com.epmet.dao.RuleOperateLogDao;
import com.epmet.dto.SysOperateLogDTO;
import com.epmet.entity.SysOperateLogEntity;
import com.epmet.entity.RuleOperateLogEntity;
import com.epmet.service.SysOperateLogService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -42,11 +42,11 @@ import java.util.Map;
* @since v1.0.0 2020-07-20
*/
@Service
public class SysOperateLogServiceImpl extends BaseServiceImpl<SysOperateLogDao, SysOperateLogEntity> implements SysOperateLogService {
public class SysOperateLogServiceImpl extends BaseServiceImpl<RuleOperateLogDao, RuleOperateLogEntity> implements SysOperateLogService {
@Override
public PageData<SysOperateLogDTO> page(Map<String, Object> params) {
IPage<SysOperateLogEntity> page = baseDao.selectPage(
IPage<RuleOperateLogEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
@ -55,15 +55,15 @@ public class SysOperateLogServiceImpl extends BaseServiceImpl<SysOperateLogDao,
@Override
public List<SysOperateLogDTO> list(Map<String, Object> params) {
List<SysOperateLogEntity> entityList = baseDao.selectList(getWrapper(params));
List<RuleOperateLogEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, SysOperateLogDTO.class);
}
private QueryWrapper<SysOperateLogEntity> getWrapper(Map<String, Object> params){
private QueryWrapper<RuleOperateLogEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<SysOperateLogEntity> wrapper = new QueryWrapper<>();
QueryWrapper<RuleOperateLogEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
@ -71,21 +71,21 @@ public class SysOperateLogServiceImpl extends BaseServiceImpl<SysOperateLogDao,
@Override
public SysOperateLogDTO get(String id) {
SysOperateLogEntity entity = baseDao.selectById(id);
RuleOperateLogEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, SysOperateLogDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(SysOperateLogDTO dto) {
SysOperateLogEntity entity = ConvertUtils.sourceToTarget(dto, SysOperateLogEntity.class);
RuleOperateLogEntity entity = ConvertUtils.sourceToTarget(dto, RuleOperateLogEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SysOperateLogDTO dto) {
SysOperateLogEntity entity = ConvertUtils.sourceToTarget(dto, SysOperateLogEntity.class);
RuleOperateLogEntity entity = ConvertUtils.sourceToTarget(dto, RuleOperateLogEntity.class);
updateById(entity);
}

52
epmet-module/epmet-point/epmet-point-server/src/main/resources/db/migration/epmet_point.sql

@ -1,33 +1,33 @@
CREATE TABLE point_rule(
ID VARCHAR(64) NOT NULL COMMENT '主键' ,
CUSTOMER_ID VARCHAR(64) COMMENT '客户ID' ,
RULE_NAME VARCHAR(32) COMMENT '规则名称 与事件名称保持一致即可' ,
RULE_DESC VARCHAR(32) COMMENT '规则说明 事件说明' ,
EVENT_CODE VARCHAR(32) COMMENT '事件CODE 来自事件表' ,
EVENT_NAME VARCHAR(32) COMMENT '事件名称 来自事件表' ,
OPERATE_TYPE VARCHAR(32) COMMENT '操作类型 加积分:add;减积分:subtract' ,
UP_LIMIT INT COMMENT '积分上限' ,
UP_LIMIT_DESC VARCHAR(64) COMMENT '积分上限描述' ,
POINT_NUM INT DEFAULT 0 COMMENT '获得积分值' ,
POINT_UNIT VARCHAR(32) COMMENT '获得积分单位 次:time;分钟:minute;小时:hour' ,
ENABLED_FLAG VARCHAR(1) COMMENT '是否启用 0-否,1-是' ,
DEL_FLAG VARCHAR(1) COMMENT '删除标识 0-否,1-是' ,
REVISION INT COMMENT '乐观锁' ,
CREATED_BY VARCHAR(32) COMMENT '创建人' ,
CREATED_TIME DATETIME COMMENT '创建时间' ,
UPDATED_BY VARCHAR(32) COMMENT '更新人' ,
UPDATED_TIME DATETIME COMMENT '更新时间' ,
PRIMARY KEY (ID)
) COMMENT = '积分规则表';
CREATE TABLE `point_rule` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '客户ID',
`RULE_NAME` varchar(32) DEFAULT NULL COMMENT '规则名称 与事件名称保持一致即可',
`RULE_DESC` varchar(32) DEFAULT NULL COMMENT '规则说明 事件说明',
`EVENT_CODE` varchar(32) DEFAULT NULL COMMENT '事件CODE 来自事件表',
`FUNCTION_ID` varchar(32) DEFAULT NULL COMMENT '功能分组Id 来自customize.function',
`OPERATE_TYPE` varchar(32) DEFAULT NULL COMMENT '操作类型 加积分:add;减积分:subtract',
`UP_LIMIT` int(11) DEFAULT NULL COMMENT '积分上限',
`UP_LIMIT_DESC` varchar(64) DEFAULT NULL COMMENT '积分上限描述',
`POINT` int(11) DEFAULT '0' COMMENT '单位积分值',
`POINT_UNIT` varchar(32) DEFAULT NULL COMMENT '获得积分单位 次:time;分钟:minute;小时:hour',
`ENABLED_FLAG` varchar(1) DEFAULT NULL COMMENT '是否启用 0-否,1-是',
`DEL_FLAG` varchar(1) DEFAULT NULL COMMENT '删除标识 0-否,1-是',
`REVISION` int(11) DEFAULT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) DEFAULT NULL COMMENT '创建人',
`CREATED_TIME` datetime DEFAULT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) DEFAULT NULL COMMENT '更新人',
`UPDATED_TIME` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`),
UNIQUE KEY `unx_cus_event` (`CUSTOMER_ID`,`EVENT_CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分规则表';
CREATE TABLE sys_operate_log(
CREATE TABLE rule_operate_log(
ID VARCHAR(64) NOT NULL COMMENT '主键' ,
CUSTOMER_ID VARCHAR(64) COMMENT '客户ID' ,
OBJECT_ID VARCHAR(64) COMMENT '操作对象ID' ,
OBJECT_TYPE VARCHAR(64) COMMENT '对象类型 规则:rule' ,
RULE_ID VARCHAR(64) COMMENT '规则ID' ,
OP_TYPE VARCHAR(32) COMMENT '操作类型 新建:add,编辑:edit,删除:del;' ,
OP_USER VARCHAR(64) COMMENT '操作用户 操作人' ,
BEFORD_DATA VARCHAR(1024) COMMENT '变更前数据 JSON串' ,
BEFORE_DATA VARCHAR(1024) COMMENT '变更前数据 JSON串' ,
AFTER_DATA VARCHAR(1024) COMMENT '变更后数据 JSON串' ,
DEL_FLAG VARCHAR(1) COMMENT '删除标识 0-否,1-是' ,
REVISION INT COMMENT '乐观锁' ,
@ -36,4 +36,4 @@ CREATE TABLE sys_operate_log(
UPDATED_BY VARCHAR(32) COMMENT '更新人' ,
UPDATED_TIME DATETIME COMMENT '更新时间' ,
PRIMARY KEY (ID)
) COMMENT = '积分系统操作记录表';
) COMMENT = '积分规则操作记录表';

19
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointRuleDao.xml

@ -9,11 +9,10 @@
<result property="ruleName" column="RULE_NAME"/>
<result property="ruleDesc" column="RULE_DESC"/>
<result property="eventCode" column="EVENT_CODE"/>
<result property="eventName" column="EVENT_NAME"/>
<result property="operateType" column="OPERATE_TYPE"/>
<result property="upLimit" column="UP_LIMIT"/>
<result property="upLimitDesc" column="UP_LIMIT_DESC"/>
<result property="pointNum" column="POINT_NUM"/>
<result property="point" column="POINT"/>
<result property="pointUnit" column="POINT_UNIT"/>
<result property="enabledFlag" column="ENABLED_FLAG"/>
<result property="delFlag" column="DEL_FLAG"/>
@ -23,6 +22,18 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectFunctionIds" resultType="java.lang.String">
SELECT DISTINCT FUNCTION_ID FROM point_rule WHERE CUSTOMSER_ID = #{customerId,jdbcType=VARCHAR}
</select>
<select id="selectListByFunctionId" resultMap="pointRuleMap">
SELECT ID,RULE_NAME,RULE_DESC,POINT_NUM,POINT_UNIT FROM point_rule WHERE CUSTOMSER_ID = #{customerId,jdbcType=VARCHAR}
</select>
<update id="updateByCustomerId">
UPDATE point_rule
SET
POINT = #{point,jdbcType=INTEGER},
ENABLED_FLAG = #{enabledFlag,jdbcType=VARCHAR},
UP_LIMIT = #{upLimit,jdbcType=INTEGER}
WHERE id = #{id,jdbcType=VARCHAR} and CUSTOMER_ID = #{customerId,jdbcType=VARCHAR}
</update>
</mapper>

4
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/SysOperateLogDao.xml → epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/RuleOperateLogDao.xml

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.SysOperateLogDao">
<mapper namespace="com.epmet.dao.RuleOperateLogDao">
<resultMap type="com.epmet.entity.SysOperateLogEntity" id="sysOperateLogMap">
<resultMap type="com.epmet.entity.RuleOperateLogEntity" id="sysOperateLogMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="objectId" column="OBJECT_ID"/>

10
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -1,9 +1,13 @@
package com.epmet.feign;
import org.springframework.cloud.openfeign.FeignClient;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.CustomerFunctionListFormDTO;
import com.epmet.dto.result.DefaultFunctionListResultDTO;
import com.epmet.feign.fallback.OperCustomizeOpenFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import java.util.List;
/**
* 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -13,5 +17,5 @@ import com.epmet.feign.fallback.OperCustomizeOpenFeignClientFallback;
*/
@FeignClient(name = ServiceConstant.OPER_CUSTOMIZE_SERVER, fallback = OperCustomizeOpenFeignClientFallback.class)
public interface OperCustomizeOpenFeignClient {
Result<List<DefaultFunctionListResultDTO>> getOpenedFunctionList(CustomerFunctionListFormDTO formDTO);
}

18
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java

@ -1,7 +1,16 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.form.CustomerFunctionListFormDTO;
import com.epmet.dto.result.DefaultFunctionListResultDTO;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
/**
* 本服务对外开放的API,其他服务通过引用此client调用该服务
@ -12,10 +21,13 @@ import org.springframework.stereotype.Component;
@Component
public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFeignClient {
/**
* 从缓存中查询已登录用户的基本信息以及角色等相关信息
* 获取客户已开通的功能列表
*
* @return
*/
//@PostMapping(value = "/epmetuser/user/loginuserdetails", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
//Result<LoginUserDetailsResultDTO> getLoginUserDetails(@RequestBody LoginUserDetailsFormDTO dto);
@Override
@PostMapping(value = "/oper/customize/customerfunction/getOpenedFunctionList", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
public Result<List<DefaultFunctionListResultDTO>> getOpenedFunctionList(CustomerFunctionListFormDTO formDTO){
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getOpenedFunctionList", formDTO);
}
}

6
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionController.java

@ -133,8 +133,8 @@ public class CustomerFunctionController {
* @param formDTO
* @return
*/
@PostMapping("customeropenedfunction")
public Result<List<DefaultFunctionListResultDTO>> customerOpenedFunction(@RequestBody CustomerFunctionListFormDTO formDTO) {
return new Result<List<DefaultFunctionListResultDTO>>().ok(customerFunctionService.customerOpenedFunction(formDTO));
@PostMapping("openedfunctionlist")
public Result<List<DefaultFunctionListResultDTO>> getOpenedFunctionList(@RequestBody CustomerFunctionListFormDTO formDTO) {
return new Result<List<DefaultFunctionListResultDTO>>().ok(customerFunctionService.getOpenedFunctionList(formDTO));
}
}

2
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionService.java

@ -118,5 +118,5 @@ public interface CustomerFunctionService extends BaseService<CustomerFunctionEnt
* @param formDTO
* @return
*/
List<DefaultFunctionListResultDTO> customerOpenedFunction(CustomerFunctionListFormDTO formDTO);
List<DefaultFunctionListResultDTO> getOpenedFunctionList(CustomerFunctionListFormDTO formDTO);
}

41
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionServiceImpl.java

@ -17,11 +17,13 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
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.utils.ConvertUtils;
@ -41,15 +43,15 @@ import com.epmet.entity.CustomerFunctionEntity;
import com.epmet.feign.OperCrmFeignClient;
import com.epmet.redis.CustomerFunctionRedis;
import com.epmet.service.CustomerFunctionService;
import lombok.extern.slf4j.Slf4j;
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 org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* 客户功能权限表
@ -57,6 +59,7 @@ import java.util.Map;
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-10
*/
@Slf4j
@Service
public class CustomerFunctionServiceImpl extends BaseServiceImpl<CustomerFunctionDao, CustomerFunctionEntity> implements CustomerFunctionService {
@ -211,8 +214,34 @@ public class CustomerFunctionServiceImpl extends BaseServiceImpl<CustomerFunctio
}
@Override
public List<DefaultFunctionListResultDTO> customerOpenedFunction(CustomerFunctionListFormDTO formDTO) {
return null;
public List<DefaultFunctionListResultDTO> getOpenedFunctionList(CustomerFunctionListFormDTO formDTO) {
if (StringUtils.isBlank(formDTO.getCustomerId())){
throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg());
}
List<DefaultFunctionListResultDTO> result = new ArrayList<>();
//查询所有已上架功能列表(默认、定制功能)
List<FunctionDTO> funList = functionDao.selectFunctionList();
if(CollectionUtils.isEmpty(funList)){
return result;
}
//查询当前客户已拥有的功能
List<CustomerFunctionDTO> openedList = baseDao.selectCustomerFunctionList(formDTO.getCustomerId());
if(CollectionUtils.isEmpty(openedList)){
log.warn("getOpenedFunctionList customerId:{} have any function",formDTO.getCustomerId());
return result;
}
Set<String> openedFunIdSet = openedList.stream().map(CustomerFunctionDTO::getFunctionId).collect(Collectors.toSet());
for (FunctionDTO function : funList) {
if (openedFunIdSet.contains(function.getId())) {
DefaultFunctionListResultDTO resultDTO = ConvertUtils.sourceToTarget(function, DefaultFunctionListResultDTO.class);
if (resultDTO == null) {
log.error("getOpenedFunctionList convert return null,function:{}", JSON.toJSONString(function));
continue;
}
result.add(resultDTO);
}
}
return result;
}
}
Loading…
Cancel
Save