From aa566e55023f6d4fa0d4223434b95cd064c3d0d0 Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期一, 27 三月 2023 09:25:10 +0800 Subject: [PATCH] 直接使用业务字典完成功能,检查字典是否存在,存在即返回,不存在新增 --- Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 82 insertions(+), 9 deletions(-) diff --git a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java index 729f287..15a6b43 100644 --- a/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java +++ b/Source/BladeX/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/StrategyServiceImpl.java @@ -1,16 +1,17 @@ package org.springblade.system.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.common.constant.CommonConstant; import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.utils.Func; import org.springblade.system.entity.Strategy; import org.springblade.system.mapper.StrategyMapper; import org.springblade.system.service.IStrategyService; -import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -39,20 +40,28 @@ */ @Override public Strategy queryById(String id) { - return this.strategyMapper.queryById(id); + return this.getById(id); + } + + /** + * 鏌ヨ榛樿瀵嗙爜绛栫暐 + * @return + */ + @Override + public Strategy queryByIsDefault() { + return this.strategyMapper.queryByIsDefault(); } /** * 鍒嗛〉鏌ヨ * - * @param strategy 绛涢�夋潯浠� - * @param pageRequest 鍒嗛〉瀵硅薄 + * @param query 鍒嗛〉瀵硅薄 * @return 鏌ヨ缁撴灉 */ @Override - public Page<Strategy> queryAllByPage(Strategy strategy, PageRequest pageRequest) { - long total = this.strategyMapper.count(strategy); - return new PageImpl<>(this.strategyMapper.queryAllByPage(strategy, pageRequest), pageRequest, total); + public PageImpl<Strategy> queryAllByPage(Query query) { + Page<Strategy> strategyPage = new Page<>(query.getCurrent(), query.getSize()); + return new PageImpl<>(this.strategyMapper.queryAllByPage(strategyPage)); } /** @@ -65,12 +74,30 @@ public boolean submit(Strategy strategy) { //鍒ゆ柇鏄惁鎼哄甫id if(Func.isEmpty(strategy.getId())){ - //鏂板 + //鎵ц鏂板 Strategy dbstrategy = this.getOne(Wrappers.<Strategy>query().lambda() .eq(Strategy::getStrategyName, strategy.getStrategyName())); //濡傛灉鏁版嵁搴撲腑瀛樺湪杩欐潯缁勫悎鍚嶇О鐨勮褰曠洿鎺ヨ繑鍥� if(!Func.isEmpty(dbstrategy)){ throw new ServiceException("璇ュ瘑鐮佺瓥鐣ュ凡瀛樺湪!"); + } + //濡傛灉褰撳墠鏂板璁剧疆涓洪粯璁ゅ瘑鐮佺瓥鐣ワ紝闇�瑕佸皢宸插瓨鍦ㄩ粯璁ゅ瘑鐮佺瓥鐣ヤ慨鏀逛负闈為粯璁� + if(strategy.getIsDefault().equals("1") || strategy.getIsDefault() == 1){ + this.update(Wrappers.<Strategy>update().lambda() + .set(Strategy::getIsDefault, CommonConstant.NOT_SEALED_ID) + .eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY)); + } + if(strategy.getRequiredType() > 0){ + throw new ServiceException("蹇呭~绉嶇被涓嶈兘灏忎簬绛変簬0!"); + } + if(strategy.getRequiredType() > strategy.getCombinationIds().split(",").length){ + throw new ServiceException("蹇呭~绉嶇被涓嶈兘澶т簬鎵�閫夋嫨鐨勫瘑鐮佺粍鍚堟柟寮忕殑涓暟!"); + } + if(strategy.getMaxPwdLen() > strategy.getMinPwdLen()){ + throw new ServiceException("瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庢渶灏忛暱搴�!"); + } + if(strategy.getMinPwdLen() < strategy.getCombinationIds().split(",").length || strategy.getMaxPwdLen() < strategy.getCombinationIds().split(",").length){ + throw new ServiceException("瀵嗙爜鏈�灏忛暱搴︿笉鑳藉皬浜庣瀵嗙瓥鐣ョ殑鍊�!"); } if(Func.isEmpty(strategy.getCreateTime())){ strategy.setCreateTime(new Date()); @@ -81,6 +108,16 @@ boolean temp = super.saveOrUpdate(strategy); return temp; }else { + //濡傛灉褰撳墠淇敼璁剧疆涓洪粯璁ゅ瘑鐮佺瓥鐣ワ紝闇�瑕佸皢宸插瓨鍦ㄩ粯璁ゅ瘑鐮佺瓥鐣ヤ慨鏀逛负闈為粯璁� + if(strategy.getIsDefault().equals("1") || strategy.getIsDefault() == 1){ + this.update(Wrappers.<Strategy>update().lambda() + .set(Strategy::getIsDefault,CommonConstant.NOT_SEALED_ID) + .eq(Strategy::getIsDefault,CommonConstant.DATA_SCOPE_CATEGORY)); + }else { + if(Func.isEmpty(queryByIsDefault())){ + throw new ServiceException("榛樿瀵嗙爜绛栫暐蹇呴』鏈変笖浠呮湁涓�鏉�!"); + } + } if(Func.isEmpty(strategy.getUpdateTime())){ strategy.setUpdateTime(new Date()); } @@ -97,8 +134,44 @@ */ @Override public boolean deleteByIds(List<String> ids) { + Strategy strategy = this.getOne(Wrappers.<Strategy>query().lambda() + .in(Strategy::getId,ids) + .eq(Strategy::getIsDefault, CommonConstant.DATA_SCOPE_CATEGORY)); + //濡傛灉瀛樺湪榛樿绛栫暐鐨刬d锛屽氨涓嶈兘鐩存帴鍒犻櫎缁欏嚭鎻愮ず + if(!Func.isEmpty(strategy)){ + throw new ServiceException("涓嶈兘鍒犻櫎榛樿瀵嗙爜绛栫暐!"); + } boolean tenantTemp = this.removeBatchByIds(ids); return tenantTemp; } + /** + * 閫氳繃绉熸埛id浠ュ強鐢ㄦ埛鍚嶆煡璇㈠瘑鐮佺瓥鐣� + * @param tenantId + * @param name + * @return + */ + @Override + public Strategy queryByNameAndTenantId(String tenantId, String name) { + Strategy strategy = this.strategyMapper.queryByNameAndTenantId(tenantId,name); + if(!Func.isEmpty(strategy)){ + return strategy; + } + return queryByIsDefault(); + } + + /** + * 鏍规嵁鐢ㄦ埛id鏌ヨ瀵嗙爜绛栫暐 + * @param userId + * @return + */ + @Override + public Strategy queryByUserId(Long userId) { + Strategy strategy = this.strategyMapper.queryByUserId(userId); + if(!Func.isEmpty(strategy)){ + return strategy; + } + return queryByIsDefault(); + } + } -- Gitblit v1.9.3