From ba7903b5e99eb86b852060e76425f485fcf06a75 Mon Sep 17 00:00:00 2001 From: xmzhao71 Date: Tue, 24 Oct 2023 15:28:40 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=90=88?= =?UTF-8?q?=E4=BD=9C=E5=95=86=E5=92=8C=E7=A7=98=E9=92=A5=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sm/ServiceInfoController.java | 49 +++++++++++++++++++ .../sm/ThirdPartyApiController.java | 32 ++++++++++++ .../src/main/resources/application-dev.yml | 10 +++- .../src/main/resources/application-prod.yml | 10 +++- .../domain/dto/neuver/SaveServiceInfoDTO.java | 2 +- .../dto/neuver/SaveThirdPartyApiDTO.java | 18 +++++++ .../dto/neuver/UpdateServiceInfoDTO.java | 29 +++++++++++ .../neuver/UpdateServiceInfoStatusDTO.java | 14 ++++++ .../neuver/UpdateThirdPartyApiStatusDTO.java | 14 ++++++ .../iformall/domain/po/sm/ServiceInfo.java | 2 +- .../iformall/enums/sm/EnumThirdPartyType.java | 31 ++++++++++++ .../iformall/mapper/ServiceInfoMapper.java | 16 ++++++ .../mapper/WxThirdPartyApiMapper.java | 7 +++ .../service/WxThirdPartyApiService.java | 26 ++++++++++ .../impl/WxThirdPartyApiServiceImpl.java | 49 ++++++++++++++++++- .../service/sm/ServiceInfoService.java | 19 ++++++- .../sm/impl/ServiceInfoServiceImpl.java | 41 ++++++++++++++-- .../resources/mapper/ServiceInfoMapper.xml | 41 ++++++++++++++++ .../mapper/WxThirdPartyApiMapper.xml | 35 +++++++++++-- 19 files changed, 431 insertions(+), 14 deletions(-) create mode 100644 suimangAdmin/src/main/java/com/iformall/controller/sm/ServiceInfoController.java create mode 100644 suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java create mode 100644 suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveThirdPartyApiDTO.java create mode 100644 suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoDTO.java create mode 100644 suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoStatusDTO.java create mode 100644 suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateThirdPartyApiStatusDTO.java create mode 100644 suimangService/src/main/java/com/iformall/enums/sm/EnumThirdPartyType.java create mode 100644 suimangService/src/main/resources/mapper/ServiceInfoMapper.xml diff --git a/suimangAdmin/src/main/java/com/iformall/controller/sm/ServiceInfoController.java b/suimangAdmin/src/main/java/com/iformall/controller/sm/ServiceInfoController.java new file mode 100644 index 0000000..d87d6f3 --- /dev/null +++ b/suimangAdmin/src/main/java/com/iformall/controller/sm/ServiceInfoController.java @@ -0,0 +1,49 @@ +package com.iformall.controller.sm; + +import com.iformall.common.ResultData; +import com.iformall.controller.base.BaseController; +import com.iformall.domain.dto.neuver.SaveServiceInfoDTO; +import com.iformall.domain.dto.neuver.UpdateServiceInfoDTO; +import com.iformall.domain.dto.neuver.UpdateServiceInfoStatusDTO; +import com.iformall.domain.po.sm.ServiceInfo; +import com.iformall.service.sm.ServiceInfoService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/serviceInfo") +@Api(tags = "合作商接口") +public class ServiceInfoController extends BaseController { + + @Autowired + private ServiceInfoService serviceInfoService; + + @ApiOperation("分页查询合作商") + @GetMapping("/page") + public ResultData pageServiceInfo(ServiceInfo serviceInfo, Integer pageNum, Integer pageSize) { + return new ResultData(serviceInfoService.pageServiceInfo(serviceInfo, pageNum, pageSize)); + } + + @ApiOperation("新增合作商") + @PostMapping("/save") + public ResultData saveServiceInfo(@RequestBody SaveServiceInfoDTO dto) { + serviceInfoService.saveServiceInfo(dto); + return new ResultData(); + } + + @ApiOperation("修改合作商") + @PostMapping("/update") + public ResultData updateServiceInfo(@RequestBody UpdateServiceInfoDTO dto) { + serviceInfoService.updateServiceInfo(dto); + return new ResultData(); + } + + @ApiOperation("修改合作商状态") + @PostMapping("/updateStatus") + public ResultData updateServiceInfoStatus(@RequestBody UpdateServiceInfoStatusDTO dto) { + serviceInfoService.updateServiceInfoStatus(dto); + return new ResultData(); + } +} diff --git a/suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java b/suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java new file mode 100644 index 0000000..f8a9ffa --- /dev/null +++ b/suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java @@ -0,0 +1,32 @@ +package com.iformall.controller.sm; + +import com.iformall.common.ResultData; +import com.iformall.domain.dto.neuver.UpdateThirdPartyApiStatusDTO; +import com.iformall.domain.po.WxThirdPartyApi; +import com.iformall.service.WxThirdPartyApiService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/thirdPartyApi") +@Api(tags = "秘钥接口") +public class ThirdPartyApiController { + + @Autowired + private WxThirdPartyApiService thirdPartyApiService; + + @ApiOperation("分页查询秘钥") + @GetMapping("/page") + public ResultData pageThirdPartyApi(WxThirdPartyApi thirdPartyApi, Integer pageNum, Integer pageSize) { + return new ResultData(thirdPartyApiService.pageThirdPartyApi(thirdPartyApi, pageNum, pageSize)); + } + + @ApiOperation("修改秘钥状态") + @PostMapping("/updateStatus") + public ResultData updateThirdPartyApiStatus(@RequestBody UpdateThirdPartyApiStatusDTO dto) { + thirdPartyApiService.updateThirdPartyApiStatus(dto); + return new ResultData(); + } +} diff --git a/suimangAdmin/src/main/resources/application-dev.yml b/suimangAdmin/src/main/resources/application-dev.yml index 7cc67eb..5eaf35c 100644 --- a/suimangAdmin/src/main/resources/application-dev.yml +++ b/suimangAdmin/src/main/resources/application-dev.yml @@ -200,4 +200,12 @@ ueditor: logging: level: com.iformall: debug - path: ./logs/admin \ No newline at end of file + path: ./logs/admin + +suimang: + oral_broadcasting: xxx + photo_speak: xxx + photo_speak_hy: xxx + digital_avatar: xxx + digital_avatar_hy: xxx + callbackUrl: xxx \ No newline at end of file diff --git a/suimangAdmin/src/main/resources/application-prod.yml b/suimangAdmin/src/main/resources/application-prod.yml index f2849f4..a3241f1 100644 --- a/suimangAdmin/src/main/resources/application-prod.yml +++ b/suimangAdmin/src/main/resources/application-prod.yml @@ -156,4 +156,12 @@ ueditor: logging: level: com.iformall.mapper: debug - path: ./logs/admin \ No newline at end of file + path: ./logs/admin + +suimang: + oral_broadcasting: xxx + photo_speak: xxx + photo_speak_hy: xxx + digital_avatar: xxx + digital_avatar_hy: xxx + callbackUrl: xxx \ No newline at end of file diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java index ac6f1cd..7dcd4f8 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveServiceInfoDTO.java @@ -16,7 +16,7 @@ public class SaveServiceInfoDTO { private String name; @ApiModelProperty("所在地址") private String address; - @ApiModelProperty("客户唯一凭证,api接入需提供") + @ApiModelProperty("客户唯一凭证") private String code; @ApiModelProperty("接入方式(1:api接入,2:私有化接入)") private Integer type; 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 new file mode 100644 index 0000000..d993acc --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/SaveThirdPartyApiDTO.java @@ -0,0 +1,18 @@ +package com.iformall.domain.dto.neuver; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +@ApiModel(value = "新增开放接口秘钥") +@Data +@Builder +public class SaveThirdPartyApiDTO { + @ApiModelProperty("第三方类型(1:API接入,2:私有化接入)") + private Integer type; + @ApiModelProperty("名称") + private String name; + @ApiModelProperty("接入商id") + private Long serviceId; +} diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoDTO.java new file mode 100644 index 0000000..3e9d8ba --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoDTO.java @@ -0,0 +1,29 @@ +package com.iformall.domain.dto.neuver; + +import com.iformall.common.CommonConstants; +import com.iformall.domain.po.sm.ServiceInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@ApiModel(value = "修改接入商") +@Data +public class UpdateServiceInfoDTO { + @ApiModelProperty("id") + private Long id; + @ApiModelProperty("客户名称") + private String name; + @ApiModelProperty("所在地址") + private String address; + + public static ServiceInfo mapping(UpdateServiceInfoDTO dto) { + ServiceInfo serviceInfo = new ServiceInfo(); + serviceInfo.setId(dto.getId()); + serviceInfo.setUpdateTime(new Date()); + serviceInfo.setName(dto.getName()); + serviceInfo.setAddress(dto.getAddress()); + return serviceInfo; + } +} diff --git a/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoStatusDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoStatusDTO.java new file mode 100644 index 0000000..65cc181 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateServiceInfoStatusDTO.java @@ -0,0 +1,14 @@ +package com.iformall.domain.dto.neuver; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel(value = "更新接入商状态") +@Data +public class UpdateServiceInfoStatusDTO { + @ApiModelProperty("接入商id") + private Long id; + @ApiModelProperty("状态(0:正常,1:失效)") + private Integer status; +} 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 new file mode 100644 index 0000000..7c1f55c --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/dto/neuver/UpdateThirdPartyApiStatusDTO.java @@ -0,0 +1,14 @@ +package com.iformall.domain.dto.neuver; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel(value = "更新开放接口秘钥状态") +@Data +public class UpdateThirdPartyApiStatusDTO { + @ApiModelProperty("开放接口秘钥id") + private Long id; + @ApiModelProperty("状态(0:正常,1:失效)") + private Integer status; +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/ServiceInfo.java b/suimangService/src/main/java/com/iformall/domain/po/sm/ServiceInfo.java index e654ccc..40b0483 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/ServiceInfo.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/ServiceInfo.java @@ -44,7 +44,7 @@ public class ServiceInfo { @TableField("address") private String address; /** - * 客户唯一凭证,api接入需提供 + * 客户唯一凭证 */ @TableField("code") private String code; diff --git a/suimangService/src/main/java/com/iformall/enums/sm/EnumThirdPartyType.java b/suimangService/src/main/java/com/iformall/enums/sm/EnumThirdPartyType.java new file mode 100644 index 0000000..b5ccf3d --- /dev/null +++ b/suimangService/src/main/java/com/iformall/enums/sm/EnumThirdPartyType.java @@ -0,0 +1,31 @@ +package com.iformall.enums.sm; + +public enum EnumThirdPartyType { + API_JOIN(1, "API接入"), + PRIVATE_JOIN(2, "私有化接入"); + + public static EnumThirdPartyType getEnum(Integer code) { + for (EnumThirdPartyType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumThirdPartyType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/suimangService/src/main/java/com/iformall/mapper/ServiceInfoMapper.java b/suimangService/src/main/java/com/iformall/mapper/ServiceInfoMapper.java index 0e3645e..b678a16 100644 --- a/suimangService/src/main/java/com/iformall/mapper/ServiceInfoMapper.java +++ b/suimangService/src/main/java/com/iformall/mapper/ServiceInfoMapper.java @@ -3,5 +3,21 @@ package com.iformall.mapper; import com.iformall.common.CommonMapper; import com.iformall.domain.po.sm.ServiceInfo; +import java.util.List; + +/** + * 合作商service + * + * @author xmzhao71 + * @date 2023-10-24 + */ public interface ServiceInfoMapper extends CommonMapper { + + /** + * 全查询合作商 + * + * @param serviceInfo + * @return {@link List}<{@link ServiceInfo}> + */ + List listServiceInfo(ServiceInfo serviceInfo); } diff --git a/suimangService/src/main/java/com/iformall/mapper/WxThirdPartyApiMapper.java b/suimangService/src/main/java/com/iformall/mapper/WxThirdPartyApiMapper.java index 1374b8c..1347eb4 100644 --- a/suimangService/src/main/java/com/iformall/mapper/WxThirdPartyApiMapper.java +++ b/suimangService/src/main/java/com/iformall/mapper/WxThirdPartyApiMapper.java @@ -9,4 +9,11 @@ public interface WxThirdPartyApiMapper extends CommonMapper findList(WxThirdPartyApi apiConfig); + /** + * 全查询秘钥 + * + * @param thirdPartyApi + * @return {@link List}<{@link WxThirdPartyApi}> + */ + List listThirdPartyApi(WxThirdPartyApi thirdPartyApi); } diff --git a/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java b/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java index 4f37ecd..4c01e9a 100644 --- a/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java +++ b/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java @@ -1,5 +1,8 @@ package com.iformall.service; +import com.github.pagehelper.PageInfo; +import com.iformall.domain.dto.neuver.SaveThirdPartyApiDTO; +import com.iformall.domain.dto.neuver.UpdateThirdPartyApiStatusDTO; import com.iformall.domain.po.WxThirdPartyApi; import java.util.List; @@ -18,4 +21,27 @@ public interface WxThirdPartyApiService { WxThirdPartyApi findByApp(String appId, String appKey); + /** + * 分页查询秘钥 + * + * @param thirdPartyApi + * @param pageNum + * @param pageSize + * @return {@link PageInfo}<{@link WxThirdPartyApi}> + */ + PageInfo pageThirdPartyApi(WxThirdPartyApi thirdPartyApi, Integer pageNum, Integer pageSize); + + /** + * 新增秘钥 + * + * @param dto + */ + void saveThirdPartyApi(SaveThirdPartyApiDTO dto); + + /** + * 修改秘钥状态 + * + * @param dto + */ + void updateThirdPartyApiStatus(UpdateThirdPartyApiStatusDTO dto); } 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 00ba72c..77feeb9 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java @@ -1,12 +1,19 @@ package com.iformall.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iformall.domain.po.WxAppinfo; +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.IdWorker; +import com.iformall.domain.dto.neuver.SaveThirdPartyApiDTO; +import com.iformall.domain.dto.neuver.UpdateThirdPartyApiStatusDTO; import com.iformall.domain.po.WxThirdPartyApi; import com.iformall.mapper.WxThirdPartyApiMapper; import com.iformall.service.WxThirdPartyApiService; import com.iformall.utils.Constant; import com.iformall.utils.RedisCacheUtils; +import com.iformall.utils.sign.AppUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,4 +59,44 @@ public class WxThirdPartyApiServiceImpl implements WxThirdPartyApiService { RedisCacheUtils.cache(redisTemplate, Constant.publicApi + appId, apiConfig,0l); return apiConfig; } + + @Override + public PageInfo pageThirdPartyApi(WxThirdPartyApi thirdPartyApi, Integer pageNum, Integer pageSize) { + return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> wxThirdPartyApiMapper.listThirdPartyApi(thirdPartyApi)); + } + + @Override + public void saveThirdPartyApi(SaveThirdPartyApiDTO dto) { + WxThirdPartyApi thirdPartyApi = buildThirdPartyApi(dto); + wxThirdPartyApiMapper.insert(thirdPartyApi); + } + + @Override + public void updateThirdPartyApiStatus(UpdateThirdPartyApiStatusDTO dto) { + wxThirdPartyApiMapper.update(null, new LambdaUpdateWrapper() + .set(WxThirdPartyApi::getStatus, dto.getStatus()) + .eq(WxThirdPartyApi::getId, dto.getId())); + } + + /** + * 构建秘钥实体 + * + * @param dto + * @return {@link WxThirdPartyApi} + */ + private WxThirdPartyApi buildThirdPartyApi(SaveThirdPartyApiDTO dto) { + WxThirdPartyApi thirdPartyApi = new WxThirdPartyApi(); + thirdPartyApi.setId(IdWorker.get().nextId()); + thirdPartyApi.setType(dto.getType()); + thirdPartyApi.setName(dto.getName()); + thirdPartyApi.setServiceId(dto.getServiceId()); + String appId = AppUtils.getAppId(); + String appKey = AppUtils.getAppKey(appId); + String signKey = AppUtils.getSignKey(appId, appKey); + thirdPartyApi.setAppId(appId); + thirdPartyApi.setAppKey(appKey); + thirdPartyApi.setSignKey(signKey); + thirdPartyApi.setStatus(CommonConstants.STATUS_NORMAL); + return thirdPartyApi; + } } diff --git a/suimangService/src/main/java/com/iformall/service/sm/ServiceInfoService.java b/suimangService/src/main/java/com/iformall/service/sm/ServiceInfoService.java index 71d5d60..7acd4ea 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/ServiceInfoService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/ServiceInfoService.java @@ -2,6 +2,9 @@ package com.iformall.service.sm; import com.github.pagehelper.PageInfo; import com.iformall.domain.dto.neuver.SaveServiceInfoDTO; +import com.iformall.domain.dto.neuver.UpdateServiceInfoDTO; +import com.iformall.domain.dto.neuver.UpdateServiceInfoStatusDTO; +import com.iformall.domain.po.sm.ServiceInfo; import com.iformall.domain.vo.neuver.PageServiceInfoVO; /** @@ -26,5 +29,19 @@ public interface ServiceInfoService { * @param pageSize * @return {@link PageInfo}<{@link PageServiceInfoVO}> */ - PageInfo pageServiceInfo(Integer pageNum, Integer pageSize); + PageInfo pageServiceInfo(ServiceInfo serviceInfo, Integer pageNum, Integer pageSize); + + /** + * 修改接入商 + * + * @param dto + */ + void updateServiceInfo(UpdateServiceInfoDTO dto); + + /** + * 修改接入商状态 + * + * @param dto + */ + void updateServiceInfoStatus(UpdateServiceInfoStatusDTO dto); } 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 860d6f1..76fad3d 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 @@ -1,18 +1,23 @@ package com.iformall.service.sm.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.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.po.sm.ServiceInfo; -import com.iformall.domain.vo.neuver.PageServiceInfoVO; import com.iformall.exception.BizException; import com.iformall.mapper.ServiceInfoMapper; +import com.iformall.service.WxThirdPartyApiService; import com.iformall.service.sm.ServiceInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Optional; @@ -21,20 +26,46 @@ public class ServiceInfoServiceImpl implements ServiceInfoService { @Autowired private ServiceInfoMapper serviceInfoMapper; + @Autowired + private WxThirdPartyApiService thirdPartyApiService; + @Transactional(rollbackFor = Exception.class) @Override public void saveServiceInfo(SaveServiceInfoDTO dto) { // 校验 ServiceInfo serviceInfo = serviceInfoMapper.selectOne(new LambdaQueryWrapper() .eq(ServiceInfo::getDelFlag, CommonConstants.DEL_FLAG_NORMAL) .eq(ServiceInfo::getCode, dto.getCode())); - Optional.ofNullable(serviceInfo).orElseThrow(() -> new BizException(ErrorCode.CODE_ALREADY_EXISTS)); + if (serviceInfo != null) { + throw new BizException(ErrorCode.CODE_ALREADY_EXISTS); + } + + ServiceInfo mapping = SaveServiceInfoDTO.mapping(dto); + serviceInfoMapper.insert(mapping); + + // 生成秘钥 + SaveThirdPartyApiDTO thirdPartyApi = SaveThirdPartyApiDTO.builder() + .type(mapping.getType()) + .name(mapping.getName()) + .serviceId(mapping.getId()) + .build(); + thirdPartyApiService.saveThirdPartyApi(thirdPartyApi); + } - serviceInfoMapper.insert(SaveServiceInfoDTO.mapping(dto)); + @Override + public PageInfo pageServiceInfo(ServiceInfo serviceInfo, Integer pageNum, Integer pageSize) { + return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> serviceInfoMapper.listServiceInfo(serviceInfo)); + } + + @Override + public void updateServiceInfo(UpdateServiceInfoDTO dto) { + serviceInfoMapper.updateById(UpdateServiceInfoDTO.mapping(dto)); } @Override - public PageInfo pageServiceInfo(Integer pageNum, Integer pageSize) { - return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> serviceInfoMapper.selectList(null)); + public void updateServiceInfoStatus(UpdateServiceInfoStatusDTO dto) { + serviceInfoMapper.update(null, new LambdaUpdateWrapper() + .set(ServiceInfo::getStatus, dto.getStatus()) + .eq(ServiceInfo::getId, dto.getId())); } } diff --git a/suimangService/src/main/resources/mapper/ServiceInfoMapper.xml b/suimangService/src/main/resources/mapper/ServiceInfoMapper.xml new file mode 100644 index 0000000..6331589 --- /dev/null +++ b/suimangService/src/main/resources/mapper/ServiceInfoMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + `id`, `create_time`, `update_time`, `name`, `address`, `code`, `type`, `status`, `del_flag` + + + + where 1 = 1 + + and `id` = #{id} + + + and `name` LIKE CONCAT('%', #{name},'%') + + + and `code` = #{code} + + + and `type` = #{type} + + + and `status` = #{status} + + + and `del_flag` = #{delFlag} + + + + + + + \ No newline at end of file diff --git a/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml b/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml index 85a0e4b..e8cb59f 100644 --- a/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml +++ b/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml @@ -21,8 +21,33 @@ - `id`,`tenant_id`,`parent_tenant_id`,`type`,`name`,`app_id`,`app_key`,`sign_key`,`api_url`, `token`,`token_expired_time`,`user_name`,`password`,`version`,`remark`,`tp_id` + `id`, `tenant_id`, `parent_tenant_id`, `type`, `name`, `service_id`, `app_id`, `app_key`, `sign_key`, `api_url`, `token`, `token_expired_time`, `user_name`, `password`, `version`, `tp_id`, `remark`, `status` + + + WHERE 1 = 1 + + AND `id` = #{id} + + + AND `type` = #{type} + + + AND `name` = #{name} + + + AND `service_id` = #{serviceId} + + + AND `app_id` = #{appId} + + + AND `app_key` = #{appKey} + + + AND `status` = #{status} + + where 1 = 1 @@ -62,6 +87,10 @@ - - +