From 26a445dc62440f59f25e324079ed97de825d0434 Mon Sep 17 00:00:00 2001 From: Parker Date: Fri, 18 Sep 2020 16:30:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=20=E7=83=AD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modulars/test/entity/TestEntity.java | 2 +- .../modulars/test/mapper/TestMapper.java | 19 +++ .../modulars/test/mapper/xml/TestMapper.xml | 28 +++++ .../modulars/test/service/ITestService.java | 22 ++++ .../modulars/test/service/TestService.java | 45 ------- .../test/service/impl/TestServiceImpl.java | 105 ++++++++++++++++ ...oller.java => TestRestRestController.java} | 115 +++++++++++++----- 7 files changed, 257 insertions(+), 79 deletions(-) create mode 100644 opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/TestMapper.java create mode 100644 opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/xml/TestMapper.xml create mode 100644 opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/ITestService.java delete mode 100644 opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/TestService.java create mode 100644 opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/impl/TestServiceImpl.java rename opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/{TestRestController.java => TestRestRestController.java} (61%) diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/entity/TestEntity.java b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/entity/TestEntity.java index a8190b1c..ec55d4ca 100644 --- a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/entity/TestEntity.java +++ b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/entity/TestEntity.java @@ -2,7 +2,7 @@ package org.opsli.modulars.test.entity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import org.opsli.common.base.entity.BaseEntity; +import org.opsli.core.base.entity.BaseEntity; /** * @BelongsProject: opsli-boot diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/TestMapper.java b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/TestMapper.java new file mode 100644 index 00000000..a8cba71e --- /dev/null +++ b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/TestMapper.java @@ -0,0 +1,19 @@ +package org.opsli.modulars.test.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.opsli.modulars.test.entity.TestEntity; + +/** + * @BelongsProject: opsli-boot + * @BelongsPackage: org.opsli.modulars.test.mapper + * @Author: Parker + * @CreateTime: 2020-09-17 13:01 + * @Description: TODO + */ +@Mapper +public interface TestMapper extends BaseMapper { + + TestEntity getByName(TestEntity testEntity); + +} diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/xml/TestMapper.xml b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/xml/TestMapper.xml new file mode 100644 index 00000000..e1a9e6b7 --- /dev/null +++ b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/mapper/xml/TestMapper.xml @@ -0,0 +1,28 @@ + + + + + + + a.id as id, + a.name as name, + a.remark as remark, + a.create_by as createBy, + a.create_time as createTime, + a.update_by as updateBy, + a.update_time as updateTime, + a.version as version + + + + + + + + \ No newline at end of file diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/ITestService.java b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/ITestService.java new file mode 100644 index 00000000..1b4e64a6 --- /dev/null +++ b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/ITestService.java @@ -0,0 +1,22 @@ +package org.opsli.modulars.test.service; + +import org.opsli.core.base.service.interfaces.CrudServiceInterface; +import org.opsli.modulars.test.entity.TestEntity; + +/** + * @BelongsProject: opsli-boot + * @BelongsPackage: org.opsli.modulars.test.service + * @Author: Parker + * @CreateTime: 2020-09-17 13:07 + * @Description: 测试接口 + */ +public interface ITestService extends CrudServiceInterface { + + /** + * 根据名称 获得对象 + * @param testEntity + * @return + */ + TestEntity getByName(TestEntity testEntity); + +} diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/TestService.java b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/TestService.java deleted file mode 100644 index 7ff1d19b..00000000 --- a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/TestService.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.opsli.modulars.test.service; - -import org.opsli.common.annotation.HotDataDel; -import org.opsli.common.annotation.HotDataPut; -import org.opsli.modulars.test.entity.TestEntity; -import org.springframework.stereotype.Service; - - -/** - * @BelongsProject: opsli-boot - * @BelongsPackage: org.opsli.modulars.test.service - * @Author: Parker - * @CreateTime: 2020-09-16 17:34 - * @Description: 测试接口 - */ -@Service -public class TestService { - - /** - * 测试 存入热点数据 - * @param testEntity - * @return - */ - @HotDataPut - public TestEntity save(TestEntity testEntity){ - - - return testEntity; - } - - - /** - * 测试 存入热点数据 - * @param id - * @return - */ - @HotDataDel - public TestEntity del(String id){ - TestEntity t = new TestEntity(); - t.setId(id); - - return t; - } - -} diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/impl/TestServiceImpl.java b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/impl/TestServiceImpl.java new file mode 100644 index 00000000..2f3888d9 --- /dev/null +++ b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/service/impl/TestServiceImpl.java @@ -0,0 +1,105 @@ +package org.opsli.modulars.test.service.impl; + +import org.opsli.common.annotation.EnableHotData; +import org.opsli.common.annotation.HotDataDel; +import org.opsli.common.annotation.HotDataPut; +import org.opsli.core.base.service.impl.CrudServiceImpl; +import org.opsli.modulars.test.entity.TestEntity; +import org.opsli.modulars.test.mapper.TestMapper; +import org.opsli.modulars.test.service.ITestService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collection; + + +/** + * @BelongsProject: opsli-boot + * @BelongsPackage: org.opsli.modulars.test.service + * @Author: Parker + * @CreateTime: 2020-09-16 17:34 + * @Description: 测试接口 + * + * 需要开启热点数据的 需要首先 接口 开启 @EnableHotData 注解 + * + * 然后对 需要处理数据的 方法重写 并且加上 热数据处理 注解 + * -- @HotDataPut 热数据更新 @HotDataDel 热数据删除 + * + */ +@Service +// 开启热数据标示 不加不生效 +@EnableHotData +public class TestServiceImpl extends CrudServiceImpl implements ITestService { + + @Autowired(required = false) + private TestMapper mapper; + + @Override + public TestEntity getByName(TestEntity testEntity) { + return mapper.getByName(testEntity); + } + + // ============== 重写 父类方法 实现热数据操作 ============== + + @Override + @HotDataPut + public TestEntity insert(TestEntity entity) { + return super.insert(entity); + } + + @Override + @HotDataPut + public TestEntity update(TestEntity entity) { + return super.update(entity); + } + + @Override + @HotDataDel + public int delete(String id) { + return super.delete(id); + } + + @Override + @HotDataDel + public int delete(TestEntity entity) { + return super.delete(entity); + } + + @Override + @HotDataDel + public int deleteByLogic(String id) { + return super.deleteByLogic(id); + } + + @Override + @HotDataDel + public int deleteByLogic(TestEntity entity) { + return super.deleteByLogic(entity); + } + + @Override + @HotDataDel + public int deleteAll(String[] ids) { + return super.deleteAll(ids); + } + + @Override + @HotDataDel + public int deleteAll(Collection entitys) { + return super.deleteAll(entitys); + } + + @Override + @HotDataDel + public int deleteAllByLogic(String[] ids) { + return super.deleteAllByLogic(ids); + } + + @Override + @HotDataDel + public int deleteAllByLogic(Collection entities) { + return super.deleteAllByLogic(entities); + } +} + + diff --git a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestController.java b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestRestController.java similarity index 61% rename from opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestController.java rename to opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestRestController.java index c5334e86..77c70f8a 100644 --- a/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestController.java +++ b/opsli-modulars/opsli-modulars-test/src/main/java/org/opsli/modulars/test/web/TestRestRestController.java @@ -2,14 +2,13 @@ package org.opsli.modulars.test.web; import cn.hutool.core.thread.ThreadUtil; import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.builder.ToStringBuilder; +import org.opsli.common.annotation.ApiRestController; import org.opsli.common.api.ResultVo; -import org.opsli.common.base.concroller.BaseController; -import org.opsli.core.cache.local.CacheUtil; +import org.opsli.core.base.concroller.BaseRestController; import org.opsli.core.cache.pushsub.enums.CacheType; import org.opsli.core.cache.pushsub.msgs.DictMsgFactory; import org.opsli.modulars.test.entity.TestEntity; -import org.opsli.modulars.test.service.TestService; +import org.opsli.modulars.test.service.ITestService; import org.opsli.plugins.mail.MailPlugin; import org.opsli.plugins.mail.model.MailModel; import org.opsli.plugins.redis.RedisLockPlugins; @@ -18,12 +17,13 @@ import org.opsli.plugins.redis.lock.RedisLock; import org.opsli.plugins.redis.pushsub.entity.BaseSubMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; +import java.util.List; import java.util.Random; import java.util.concurrent.TimeUnit; + /** * @BelongsProject: opsli-boot * @BelongsPackage: org.opsli.modulars.test.web @@ -31,9 +31,8 @@ import java.util.concurrent.TimeUnit; * @CreateTime: 2020-09-13 17:40 * @Description: 测试类 */ -@RestController -@RequestMapping("/{opsli.prefix}/{opsli.version}/test") -public class TestRestController extends BaseController { +@ApiRestController("/test") +public class TestRestRestController extends BaseRestController { private Random random = new Random(); @@ -47,9 +46,6 @@ public class TestRestController extends BaseController { @Autowired private RedisLockPlugins redisLockPlugins; - @Autowired - private TestService testService; - @GetMapping("/sendMail") public ResultVo sendMail(){ @@ -127,55 +123,108 @@ public class TestRestController extends BaseController { } /** - * 发送 Redis 分布式锁 + * 新增数据 + * @return + */ + @GetMapping("/insert") + public ResultVo insert(TestEntity entity){ + + + entity.setId(null); + entity.setName("测试名称"+random.nextInt()); + entity.setRemark("测试备注"+random.nextInt()); + + TestEntity saveObj = IService.insert(entity); + if(saveObj == null){ + ResultVo success = ResultVo.error("新增对象失败!"); + success.put("object",entity); + return success; + } + + ResultVo success = ResultVo.success("新增对象成功!"); + success.put("object",saveObj); + + return success; + } + + /** + * 修改数据 * @return */ - @GetMapping("/save") - public ResultVo save(String id){ + @GetMapping("/update") + public ResultVo update(TestEntity entity){ - if(StringUtils.isEmpty(id)){ - id = String.valueOf(random.nextLong()); + if(StringUtils.isEmpty(entity.getId())){ + entity.setId(String.valueOf(random.nextLong())); } - TestEntity testEntity = new TestEntity(); - testEntity.setId(id); - testEntity.setName("测试名称"+random.nextInt()); - testEntity.setRemark("测试备注"+random.nextInt()); + entity.setName("修改名称"+random.nextInt()); + entity.setRemark("修改备注"+random.nextInt()); - TestEntity saveObj = testService.save(testEntity); + TestEntity saveObj = IService.update(entity); if(saveObj == null){ - ResultVo success = ResultVo.error("保存对象失败!"); - success.put("object",testEntity); + ResultVo success = ResultVo.error("修改对象失败!"); + success.put("object",entity); return success; } - TestEntity o = CacheUtil.get(id, TestEntity.class); - ResultVo success = ResultVo.success("保存对象成功!"); - success.put("object",o); + ResultVo success = ResultVo.success("修改对象成功!"); + success.put("object",saveObj); return success; } /** - * 发送 Redis 分布式锁 + * 查看对象 + * @return + */ + @GetMapping("/get") + public ResultVo get(TestEntity entity){ + ResultVo success = ResultVo.success("操作成功!"); + TestEntity byName = IService.getByName(entity); + success.put("object",entity); + success.put("byName",byName); + return success; + } + + + /** + * 删除对象 * @return */ @GetMapping("/del") public ResultVo del(String id){ - TestEntity ret = testService.del(id); - if(ret == null){ + TestEntity testEntity1 = new TestEntity(); + testEntity1.setId(id); + String[] ids = {id}; + List idList = new ArrayList<>(); + idList.add(testEntity1); + + int count = 0; + + count = IService.delete(id); + + //count = IService.delete(testEntity1); + + //count = IService.deleteAll(ids); + + //count = IService.deleteAll(idList); + + + if(count == 0){ ResultVo success = ResultVo.error("删除对象失败!"); - success.put("object",ret); + success.put("object",id); return success; } - TestEntity o = CacheUtil.get(id, TestEntity.class); ResultVo success = ResultVo.success("删除对象成功!"); - success.put("object",o); + success.put("object",id); return success; } + + }