+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+
+/**
+ * 积分动作管理表 积分动作管理表
+ *
+ * @author elink elink@elink-cn.com
+ * @since v1.0.0 2020-04-28
+ */
+@Data
+public class PointsBehaviorDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ private String id;
+
+ /**
+ * 动作编码
+ */
+ private String behaviorCode;
+
+ /**
+ * 动作描述
+ */
+ private String behaviorDesc;
+
+ /**
+ * 动作记录时机 0-方法执行前,1-方法执行后
+ */
+ private String behaviorRecordingTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 乐观锁
+ */
+ private Integer revision;
+
+ /**
+ * 删除标识 0-否,1-是
+ */
+ private String delFlag;
+
+ /**
+ * 创建人
+ */
+ private String createdBy;
+
+ /**
+ * 创建时间
+ */
+ private Date createdTime;
+
+ /**
+ * 更新人
+ */
+ private String updatedBy;
+
+ /**
+ * 更新时间
+ */
+ private Date updatedTime;
+
+ /**
+ * 虚字段 - 序号
+ */
+ private int orderNumber;
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/controller/PointsBehaviorController.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/controller/PointsBehaviorController.java
new file mode 100644
index 00000000..4f11d63f
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/controller/PointsBehaviorController.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.controller;
+
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
+import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
+import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
+import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
+import com.elink.esua.epdc.dto.PointsBehaviorDTO;
+import com.elink.esua.epdc.excel.PointsBehaviorExcel;
+import com.elink.esua.epdc.service.PointsBehaviorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 积分动作管理表 积分动作管理表
+ *
+ * @author zhangyong
+ * @since v1.0.0 2020-04-28
+ */
+@RestController
+@RequestMapping("pointsbehavior")
+public class PointsBehaviorController {
+
+ @Autowired
+ private PointsBehaviorService pointsBehaviorService;
+
+ @GetMapping("page")
+ public Result> page(@RequestParam Map params){
+ PageData page = pointsBehaviorService.page(params);
+ return new Result>().ok(page);
+ }
+
+ @GetMapping("{id}")
+ public Result get(@PathVariable("id") String id){
+ PointsBehaviorDTO data = pointsBehaviorService.get(id);
+ return new Result().ok(data);
+ }
+
+ @PostMapping
+ public Result save(@RequestBody PointsBehaviorDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
+ return pointsBehaviorService.save(dto);
+ }
+
+ @PutMapping
+ public Result update(@RequestBody PointsBehaviorDTO dto){
+ //效验数据
+ ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
+ return pointsBehaviorService.update(dto);
+ }
+
+ @DeleteMapping
+ public Result delete(@RequestBody String[] ids){
+ //效验数据
+ AssertUtils.isArrayEmpty(ids, "id");
+ pointsBehaviorService.delete(ids);
+ return new Result();
+ }
+
+ @GetMapping("export")
+ public void export(@RequestParam Map params, HttpServletResponse response) throws Exception {
+ List list = pointsBehaviorService.list(params);
+ ExcelUtils.exportExcelToTarget(response, null, list, PointsBehaviorExcel.class);
+ }
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/dao/PointsBehaviorDao.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/dao/PointsBehaviorDao.java
new file mode 100644
index 00000000..2044180c
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/dao/PointsBehaviorDao.java
@@ -0,0 +1,45 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.dao;
+
+import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
+import com.elink.esua.epdc.dto.PointsBehaviorDTO;
+import com.elink.esua.epdc.entity.PointsBehaviorEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 积分动作管理表 积分动作管理表
+ *
+ * @author zhangyong
+ * @since v1.0.0 2020-04-28
+ */
+@Mapper
+public interface PointsBehaviorDao extends BaseDao {
+
+ /**
+ * @Description: 动作管理 列表查询
+ * @Param: [params]
+ * @return: java.util.List
+ * @Author: zy
+ * @Date: 2020-04-28
+ */
+ List selectListPointsBehavior(Map params);
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/entity/PointsBehaviorEntity.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/entity/PointsBehaviorEntity.java
new file mode 100644
index 00000000..fbfe0239
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/entity/PointsBehaviorEntity.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+/**
+ * 积分动作管理表 积分动作管理表
+ *
+ * @author zhangyong
+ * @since v1.0.0 2020-04-28
+ */
+@Data
+@EqualsAndHashCode(callSuper=false)
+@TableName("epdc_points_behavior")
+public class PointsBehaviorEntity extends BaseEpdcEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 动作编码
+ */
+ private String behaviorCode;
+
+ /**
+ * 动作描述
+ */
+ private String behaviorDesc;
+
+ /**
+ * 动作记录时机 0-方法执行前,1-方法执行后
+ */
+ private String behaviorRecordingTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/excel/PointsBehaviorExcel.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/excel/PointsBehaviorExcel.java
new file mode 100644
index 00000000..505596ce
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/excel/PointsBehaviorExcel.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.excel;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 积分动作管理表 积分动作管理表
+ *
+ * @author zhangyong
+ * @since v1.0.0 2020-04-28
+ */
+@Data
+public class PointsBehaviorExcel {
+
+ @Excel(name = "ID")
+ private String id;
+
+ @Excel(name = "动作编码")
+ private String behaviorCode;
+
+ @Excel(name = "动作描述")
+ private String behaviorDesc;
+
+ @Excel(name = "动作记录时机 0-方法执行前,1-方法执行后")
+ private String behaviorRecordingTime;
+
+ @Excel(name = "备注")
+ private String remark;
+
+ @Excel(name = "乐观锁")
+ private Integer revision;
+
+ @Excel(name = "删除标识 0-否,1-是")
+ private String delFlag;
+
+ @Excel(name = "创建人")
+ private String createdBy;
+
+ @Excel(name = "创建时间")
+ private Date createdTime;
+
+ @Excel(name = "更新人")
+ private String updatedBy;
+
+ @Excel(name = "更新时间")
+ private Date updatedTime;
+
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/redis/PointsBehaviorRedis.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/redis/PointsBehaviorRedis.java
new file mode 100644
index 00000000..2329ecc3
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/redis/PointsBehaviorRedis.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.redis;
+
+import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 积分动作管理表 积分动作管理表
+ *
+ * @author zhangyong
+ * @since v1.0.0 2020-04-28
+ */
+@Component
+public class PointsBehaviorRedis {
+ @Autowired
+ private RedisUtils redisUtils;
+
+ public void delete(Object[] ids) {
+
+ }
+
+ public void set(){
+
+ }
+
+ public String get(String id){
+ return null;
+ }
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsBehaviorService.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsBehaviorService.java
new file mode 100644
index 00000000..6615e57f
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/service/PointsBehaviorService.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.elink.esua.epdc.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
+import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
+import com.elink.esua.epdc.commons.tools.page.PageData;
+import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
+import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
+import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
+import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
+import com.elink.esua.epdc.commons.tools.utils.Result;
+import com.elink.esua.epdc.dao.PointsBehaviorDao;
+import com.elink.esua.epdc.dto.PointsBehaviorDTO;
+import com.elink.esua.epdc.entity.PointsBehaviorEntity;
+import com.elink.esua.epdc.redis.PointsBehaviorRedis;
+import com.elink.esua.epdc.service.PointsBehaviorService;
+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 javax.xml.bind.SchemaOutputResolver;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 积分动作管理表 积分动作管理表
+ *
+ * @author zhangyong
+ * @since v1.0.0 2020-04-28
+ */
+@Service
+public class PointsBehaviorServiceImpl extends BaseServiceImpl implements PointsBehaviorService {
+
+ @Autowired
+ private PointsBehaviorRedis pointsBehaviorRedis;
+
+ @Autowired
+ private RedisUtils redisUtils;
+
+ @Override
+ public PageData page(Map params) {
+ IPage page = getPage(params);
+ List list = baseDao.selectListPointsBehavior(params);
+ return new PageData<>(list, page.getTotal());
+ }
+
+ @Override
+ public List list(Map params) {
+ List entityList = baseDao.selectList(getWrapper(params));
+
+ return ConvertUtils.sourceToTarget(entityList, PointsBehaviorDTO.class);
+ }
+
+ private QueryWrapper getWrapper(Map params){
+ String id = (String)params.get(FieldConstant.ID_HUMP);
+
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
+
+ return wrapper;
+ }
+
+ @Override
+ public PointsBehaviorDTO get(String id) {
+ PointsBehaviorEntity entity = baseDao.selectById(id);
+ return ConvertUtils.sourceToTarget(entity, PointsBehaviorDTO.class);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result save(PointsBehaviorDTO dto) {
+ Result checkBehaviorCode = this.checkBehaviorCodeIsExist(dto.getBehaviorCode());
+ if (checkBehaviorCode.getCode() == ErrorCode.INTERNAL_SERVER_ERROR) {
+ return checkBehaviorCode;
+ }
+ PointsBehaviorEntity entity = ConvertUtils.sourceToTarget(dto, PointsBehaviorEntity.class);
+ insert(entity);
+ // 存入redis
+ redisUtils.set(RedisKeys.getAllRuleCodeKey(entity.getBehaviorCode()) , entity.getBehaviorCode());
+ return new Result();
+ }
+
+ /**
+ * @Description: 查询动作编码是否存在
+ * @Param: [behaviorCode]
+ * @return: com.elink.esua.epdc.commons.tools.utils.Result
+ * @Author: zy
+ * @Date: 2020-04-28
+ */
+ private Result checkBehaviorCodeIsExist(String behaviorCode) {
+ Object bhc = redisUtils.get(RedisKeys.getAllRuleCodeKey(behaviorCode));
+ if (bhc != null) {
+ return new Result().error("动作编码已存在,请重新设置");
+ }
+ return new Result();
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result update(PointsBehaviorDTO dto) {
+ // 查询之前的动作编码
+ PointsBehaviorEntity queryEntity = baseDao.selectById(dto.getId());
+ // 判断本次修改操作是否修改了动作编码, 如果改动了,查询新的动作编码是否已存在
+ if (!(queryEntity.getBehaviorCode().equals(dto.getBehaviorCode()))) {
+ Result checkBehaviorCode = this.checkBehaviorCodeIsExist(dto.getBehaviorCode());
+ if (checkBehaviorCode.getCode() == ErrorCode.INTERNAL_SERVER_ERROR) {
+ return checkBehaviorCode;
+ }
+ }
+ // 删除redis中的存储信息
+ redisUtils.delete(RedisKeys.getAllRuleCodeKey(queryEntity.getBehaviorCode()));
+ PointsBehaviorEntity entity = ConvertUtils.sourceToTarget(dto, PointsBehaviorEntity.class);
+ updateById(entity);
+ // 新增redis信息
+ redisUtils.set(RedisKeys.getAllRuleCodeKey(entity.getBehaviorCode()) , entity.getBehaviorCode());
+ return new Result();
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void delete(String[] ids) {
+ PointsBehaviorEntity entity = baseDao.selectById(ids[0]);
+ // 删除redis中的存储信息
+ redisUtils.delete(RedisKeys.getAllRuleCodeKey(entity.getBehaviorCode()));
+ // 逻辑删除(@TableLogic 注解)
+ baseDao.deleteBatchIds(Arrays.asList(ids));
+ }
+
+}
\ No newline at end of file
diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/mapper/PointsBehaviorDao.xml b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/mapper/PointsBehaviorDao.xml
new file mode 100644
index 00000000..2d752c77
--- /dev/null
+++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/mapper/PointsBehaviorDao.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file