diff --git a/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java b/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java index 11bd0fd..169289b 100644 --- a/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java +++ b/open-api/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java @@ -68,7 +68,6 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { } try{ logger.info("请求body{}--"+body); -// JSONObject parameterMap = JSON.parseObject(body); Map parameterMap = JSONObject.parseObject(body, Map.class); if(parameterMap.isEmpty()){ throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"参数格式不正确"); diff --git a/suimangService/src/main/java/com/iformall/common/ErrorCode.java b/suimangService/src/main/java/com/iformall/common/ErrorCode.java index b7b4129..90fc767 100644 --- a/suimangService/src/main/java/com/iformall/common/ErrorCode.java +++ b/suimangService/src/main/java/com/iformall/common/ErrorCode.java @@ -678,6 +678,9 @@ public enum ErrorCode{ ORDER_CREAT_OVERRUN(64000, "重复生成次数超限"), CODE_ALREADY_EXISTS(71000, "该code已存在"), + + SECRET_NOT_EXISTS(71001, "该秘钥不存在"), + SERVICE_LOCKED(71002, "合作商被锁定,无法修改"), ; private int code; diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceVideoRecordDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceVideoRecordDTO.java index a9abc44..e146f73 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceVideoRecordDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceVideoRecordDTO.java @@ -4,14 +4,18 @@ import com.iformall.common.IdWorker; import com.iformall.domain.po.sm.ServiceVideoRecord; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.Date; @ApiModel(value = "新增生成视频时长记录") @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class SaveServiceVideoRecordDTO { @ApiModelProperty("接入商标识") private Long serviceId; diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveThirdPartyApiDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveThirdPartyApiDTO.java index d993acc..79bec50 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveThirdPartyApiDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveThirdPartyApiDTO.java @@ -2,12 +2,16 @@ package com.iformall.domain.dto.neuver; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; @ApiModel(value = "新增开放接口秘钥") @Data @Builder +@NoArgsConstructor +@AllArgsConstructor public class SaveThirdPartyApiDTO { @ApiModelProperty("第三方类型(1:API接入,2:私有化接入)") private Integer type; diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateThirdPartyApiStatusDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateThirdPartyApiStatusDTO.java index 7c1f55c..c3b059d 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateThirdPartyApiStatusDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateThirdPartyApiStatusDTO.java @@ -2,6 +2,7 @@ package com.iformall.domain.dto.neuver; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; @ApiModel(value = "更新开放接口秘钥状态") diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java index 77feeb9..d3db214 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java @@ -1,14 +1,19 @@ package com.iformall.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.CommonConstants; +import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.domain.dto.neuver.SaveThirdPartyApiDTO; import com.iformall.domain.dto.neuver.UpdateThirdPartyApiStatusDTO; import com.iformall.domain.po.WxThirdPartyApi; +import com.iformall.domain.po.sm.ServiceInfo; +import com.iformall.exception.BizException; +import com.iformall.mapper.ServiceInfoMapper; import com.iformall.mapper.WxThirdPartyApiMapper; import com.iformall.service.WxThirdPartyApiService; import com.iformall.utils.Constant; @@ -32,6 +37,8 @@ public class WxThirdPartyApiServiceImpl implements WxThirdPartyApiService { @Autowired WxThirdPartyApiMapper wxThirdPartyApiMapper; + @Autowired + private ServiceInfoMapper serviceInfoMapper; @Autowired @Qualifier("objectCommonRedisTemplate") @@ -55,6 +62,7 @@ public class WxThirdPartyApiServiceImpl implements WxThirdPartyApiService { WxThirdPartyApi apiQ = new WxThirdPartyApi(); apiQ.setAppId(appId); apiQ.setAppKey(appKey); + apiQ.setStatus(CommonConstants.STATUS_NORMAL); apiConfig = wxThirdPartyApiMapper.selectOne(new QueryWrapper<>(apiQ)); RedisCacheUtils.cache(redisTemplate, Constant.publicApi + appId, apiConfig,0l); return apiConfig; @@ -73,6 +81,14 @@ public class WxThirdPartyApiServiceImpl implements WxThirdPartyApiService { @Override public void updateThirdPartyApiStatus(UpdateThirdPartyApiStatusDTO dto) { + WxThirdPartyApi thirdPartyApi = wxThirdPartyApiMapper.selectOne(new LambdaQueryWrapper().eq(WxThirdPartyApi::getId, dto.getId())); + if (thirdPartyApi == null) { + throw new BizException(ErrorCode.SECRET_NOT_EXISTS); + } + ServiceInfo serviceInfo = serviceInfoMapper.selectOne(new LambdaQueryWrapper().eq(ServiceInfo::getId, thirdPartyApi.getServiceId())); + if (serviceInfo == null || CommonConstants.STATUS_ABNORMAL.equals(serviceInfo.getStatus())) { + throw new BizException(ErrorCode.SERVICE_LOCKED); + } wxThirdPartyApiMapper.update(null, new LambdaUpdateWrapper() .set(WxThirdPartyApi::getStatus, dto.getStatus()) .eq(WxThirdPartyApi::getId, dto.getId())); diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceInfoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceInfoServiceImpl.java index 76fad3d..64e113c 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceInfoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/ServiceInfoServiceImpl.java @@ -6,13 +6,12 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.CommonConstants; import com.iformall.common.ErrorCode; -import com.iformall.domain.dto.neuver.SaveServiceInfoDTO; -import com.iformall.domain.dto.neuver.SaveThirdPartyApiDTO; -import com.iformall.domain.dto.neuver.UpdateServiceInfoDTO; -import com.iformall.domain.dto.neuver.UpdateServiceInfoStatusDTO; +import com.iformall.domain.dto.neuver.*; +import com.iformall.domain.po.WxThirdPartyApi; import com.iformall.domain.po.sm.ServiceInfo; import com.iformall.exception.BizException; import com.iformall.mapper.ServiceInfoMapper; +import com.iformall.mapper.WxThirdPartyApiMapper; import com.iformall.service.WxThirdPartyApiService; import com.iformall.service.sm.ServiceInfoService; import org.springframework.beans.factory.annotation.Autowired; @@ -28,6 +27,8 @@ public class ServiceInfoServiceImpl implements ServiceInfoService { private ServiceInfoMapper serviceInfoMapper; @Autowired private WxThirdPartyApiService thirdPartyApiService; + @Autowired + private WxThirdPartyApiMapper wxThirdPartyApiMapper; @Transactional(rollbackFor = Exception.class) @Override @@ -62,10 +63,19 @@ public class ServiceInfoServiceImpl implements ServiceInfoService { serviceInfoMapper.updateById(UpdateServiceInfoDTO.mapping(dto)); } + @Transactional(rollbackFor = Exception.class) @Override public void updateServiceInfoStatus(UpdateServiceInfoStatusDTO dto) { + // 修改合作商状态 serviceInfoMapper.update(null, new LambdaUpdateWrapper() .set(ServiceInfo::getStatus, dto.getStatus()) .eq(ServiceInfo::getId, dto.getId())); + + if (CommonConstants.STATUS_ABNORMAL.equals(dto.getStatus())) { + // 若合作商为锁定状态,则修改秘钥状态 + wxThirdPartyApiMapper.update(null, new LambdaUpdateWrapper() + .set(WxThirdPartyApi::getStatus, dto.getStatus()) + .eq(WxThirdPartyApi::getServiceId, dto.getId())); + } } }