diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISynchronizedService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISynchronizedService.java new file mode 100644 index 0000000..317e832 --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/base/ISynchronizedService.java @@ -0,0 +1,23 @@ +package cn.estsh.i3plus.core.api.iservice.base; + +import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; +import io.swagger.annotations.ApiOperation; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2019-09-03 13:59 + * @Modify: + **/ +public interface ISynchronizedService { + + /** + * 根据单号代码获取单号信息 + * @param code 单号代码 + * @return 单号信息 + */ + @ApiOperation(value = "根据code查询最新单号规则") + SysOrderNoRule nextOrderNo(String code); + +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 8b39770..0a1b1a2 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.controller.base; +import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginService; import cn.estsh.i3plus.core.api.iservice.busi.*; @@ -18,7 +19,6 @@ import cn.estsh.impp.framework.base.controller.CoreBaseController; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.fastdfs.FastDFSClient; import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; @@ -74,7 +74,7 @@ public class WhiteController extends CoreBaseController { private ISysDictionaryService dictionaryService; @Autowired - private ISysOrderNoRuleService sysOrderNoRuleService; + private ISynchronizedService synchronizedService; @Autowired private ISysOrganizeService sysOrganizeService; @@ -306,7 +306,7 @@ public class WhiteController extends CoreBaseController { try { ValidatorBean.checkNotNull(code, "code不能为空"); - SysOrderNoRule sysOrderNoRule = sysOrderNoRuleService.doGetSysOrderNoRuleCode(code); + SysOrderNoRule sysOrderNoRule = synchronizedService.nextOrderNo(code); return ResultBean.success("操作成功").setResultObject(sysOrderNoRule).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java index 5a758d3..b00e393 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysOrderNoRuleController.java @@ -1,5 +1,6 @@ package cn.estsh.i3plus.core.apiservice.controller.busi; +import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService; import cn.estsh.i3plus.core.api.iservice.busi.ISysConfigService; import cn.estsh.i3plus.core.api.iservice.busi.ISysFileService; import cn.estsh.i3plus.core.api.iservice.busi.ISysMessageService; @@ -53,6 +54,9 @@ public class SysOrderNoRuleController extends CoreBaseController { private ISysOrderNoRuleService sysOrderNoRuleService; @Autowired + private ISynchronizedService synchronizedService; + + @Autowired private ISysConfigService sysConfigService; @Autowired @@ -382,11 +386,11 @@ public class SysOrderNoRuleController extends CoreBaseController { */ @GetMapping(value = "/get-order-no/{code}") @ApiOperation(value = "根据单号规则代码,生成单号") - public synchronized ResultBean getOrderNo(@PathVariable("code") String code) { + public ResultBean getOrderNo(@PathVariable("code") String code) { try { ValidatorBean.checkNotNull(code, "code不能为空"); - SysOrderNoRule sysOrderNoRule = sysOrderNoRuleService.doGetSysOrderNoRuleCode(code); + SysOrderNoRule sysOrderNoRule = synchronizedService.nextOrderNo(code); return ResultBean.success("操作成功").setResultObject(sysOrderNoRule).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); @@ -403,14 +407,14 @@ public class SysOrderNoRuleController extends CoreBaseController { */ @GetMapping(value = "/get-order-no/{code}/{num}") @ApiOperation(value = "根据单号规则代码,生成单号") - public synchronized ResultBean getOrderNo(@PathVariable("code") String code,@PathVariable("num") Integer num) { + public ResultBean getOrderNo(@PathVariable("code") String code,@PathVariable("num") Integer num) { try { ValidatorBean.checkNotNull(code, "code不能为空"); ValidatorBean.checkNotZero(num,"次数不能为零"); List orderNoList = new ArrayList<>(); for (int i = 0; i < num; i++) { - orderNoList.add(sysOrderNoRuleService.doGetSysOrderNoRuleCode(code).getOrderNo()); + orderNoList.add(synchronizedService.nextOrderNo(code).getOrderNo()); } return ResultBean.success("操作成功").setResultList(orderNoList).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SynchronizedService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SynchronizedService.java new file mode 100644 index 0000000..95904f8 --- /dev/null +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/base/SynchronizedService.java @@ -0,0 +1,26 @@ +package cn.estsh.i3plus.core.apiservice.serviceimpl.base; + +import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService; +import cn.estsh.i3plus.core.api.iservice.busi.ISysOrderNoRuleService; +import cn.estsh.i3plus.pojo.platform.bean.SysOrderNoRule; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : + * @Reference : + * @Author : yunhao + * @CreateDate : 2019-09-03 14:00 + * @Modify: + **/ +@Service +public class SynchronizedService implements ISynchronizedService { + + @Autowired + private ISysOrderNoRuleService sysOrderNoRuleService; + + @Override + public synchronized SysOrderNoRule nextOrderNo(String code) { + return sysOrderNoRuleService.doGetSysOrderNoRuleCode(code); + } +}