Commit d1895f33 by 程裕兵

feat:get latest apply

parent b8c45eab
......@@ -7,6 +7,7 @@ import com.jiejing.fitness.finance.api.merchant.request.AuthStudioSubChannelRequ
import com.jiejing.fitness.finance.api.merchant.request.BindStudioMerchantRequest;
import com.jiejing.fitness.finance.api.merchant.request.BindStudioMerchantXcxAppIdRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetAuthStudioSubChannelRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioLatestMerchantApplyRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioMerchantApplyRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioMerchantRequest;
import com.jiejing.fitness.finance.api.merchant.request.PageStudioMerchantApplyRequest;
......@@ -51,6 +52,10 @@ public interface StudioMerchantApi {
@PostMapping(value = "/private/studioMerchant/getApply")
JsonResult<StudioMerchantApplyVO> getApply(GetStudioMerchantApplyRequest request);
@ApiOperation(value = "查询最近一条申请记录", tags = {TAG})
@PostMapping(value = "/private/studioMerchant/getLatestApply")
JsonResult<StudioMerchantApplyVO> getLatestApply(GetStudioLatestMerchantApplyRequest request);
@ApiOperation(value = "分页查询场馆进件申请记录", tags = {TAG})
@PostMapping(value = "/private/studioMerchant/pageApply")
JsonResult<PageVO<StudioMerchantApplyVO>> pageApply(PageStudioMerchantApplyRequest request);
......
......@@ -7,6 +7,7 @@ import com.jiejing.fitness.finance.api.merchant.request.AuthStudioSubChannelRequ
import com.jiejing.fitness.finance.api.merchant.request.BindStudioMerchantRequest;
import com.jiejing.fitness.finance.api.merchant.request.BindStudioMerchantXcxAppIdRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetAuthStudioSubChannelRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioLatestMerchantApplyRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioMerchantApplyRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioMerchantRequest;
import com.jiejing.fitness.finance.api.merchant.request.PageStudioMerchantApplyRequest;
......@@ -57,6 +58,11 @@ public class StudioMerchantApiFallback implements FallbackFactory<StudioMerchant
}
@Override
public JsonResult<StudioMerchantApplyVO> getLatestApply(GetStudioLatestMerchantApplyRequest request) {
return JsonResult.rpcError();
}
@Override
public JsonResult<PageVO<StudioMerchantApplyVO>> pageApply(PageStudioMerchantApplyRequest request) {
return JsonResult.rpcError();
}
......
package com.jiejing.fitness.finance.api.merchant.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 查询最近一条申请记录
*
* @author chengyubing
* @since 2024/2/20 14:03
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "查询最近一条申请记录")
public class GetStudioLatestMerchantApplyRequest {
@ApiModelProperty(value = "场馆ID", required = true)
@NotNull(message = "场馆ID不能为空")
private Long studioId;
}
......@@ -6,6 +6,7 @@ import com.jiejing.paycenter.common.enums.merchant.CompanyTypeEnums;
import com.jiejing.paycenter.common.model.vo.SubChannelConfigVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
......@@ -102,4 +103,7 @@ public class BrandMerchantVO {
@ApiModelProperty("子渠道配置记录")
private List<SubChannelConfigVO> subChannelConfigs;
@ApiModelProperty("开通成功时间")
private Date finishTime;
}
......@@ -9,6 +9,7 @@ import com.jiejing.fitness.finance.api.merchant.request.AuthStudioSubChannelRequ
import com.jiejing.fitness.finance.api.merchant.request.BindStudioMerchantRequest;
import com.jiejing.fitness.finance.api.merchant.request.BindStudioMerchantXcxAppIdRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetAuthStudioSubChannelRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioLatestMerchantApplyRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioMerchantApplyRequest;
import com.jiejing.fitness.finance.api.merchant.request.GetStudioMerchantRequest;
import com.jiejing.fitness.finance.api.merchant.request.PageStudioMerchantApplyRequest;
......@@ -84,6 +85,14 @@ public class StudioMerchantController implements StudioMerchantApi {
return JsonResult.success(studioMerchantService.getApply(request.getId()));
}
@ApiOperation(value = "查询最近一条申请记录", tags = {TAG})
@PostMapping(value = "/private/studioMerchant/getLatestApply")
@Override
public JsonResult<StudioMerchantApplyVO> getLatestApply(
@RequestBody @Valid GetStudioLatestMerchantApplyRequest request) {
return JsonResult.success(studioMerchantService.getLatestApply(request.getStudioId()));
}
@ApiOperation(value = "分页查询场馆进件申请记录", tags = {TAG})
@PostMapping(value = "/private/studioMerchant/pageApply")
@Override
......
......@@ -24,8 +24,11 @@ import com.jiejing.fitness.finance.repository.mapper.StudioMerchantApplyMapper;
import com.jiejing.fitness.finance.repository.query.PageStudioMerchantApplyQuery;
import com.jiejing.mbp.MapperRepoService;
import com.jiejing.paycenter.common.enums.common.OpenStateEnums;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
......@@ -109,4 +112,26 @@ public class StudioMerchantApplyRpService extends
return this.baseMapper.listByMinId(minId, merchantId, size);
}
public List<StudioMerchantApply> listByMerchantIds(List<Long> merchantIds) {
QueryWrapper<StudioMerchantApply> wrapper = new QueryWrapper<>();
wrapper.in(StudioMerchantApply.MERCHANT_ID, merchantIds);
wrapper.eq(StudioMerchantApply.OPEN_STATE, OpenStateEnums.SUCCESS.getCode());
wrapper.in(StudioMerchantApply.APPLY_TYPE,
Lists.newArrayList(ApplyTypeEnum.OPEN.getCode(), ApplyTypeEnum.RE_OPEN.getCode()));
return Optional.ofNullable(this.baseMapper.selectList(wrapper)).orElse(new ArrayList<>(1));
}
public Map<Long, StudioMerchantApply> mapByMerchantIds(List<Long> merchantIds) {
List<StudioMerchantApply> applies = this.listByMerchantIds(merchantIds);
return applies.stream().collect(Collectors.toMap(StudioMerchantApply::getMerchantId, e -> e));
}
public StudioMerchantApply getLatestApply(Long studioId) {
QueryWrapper<StudioMerchantApply> wrapper = new QueryWrapper<>();
wrapper.eq(StudioMerchantApply.STUDIO_ID, studioId);
wrapper.orderByDesc(StudioMerchantApply.ID);
return Optional.ofNullable(this.baseMapper.selectList(wrapper)).orElse(new ArrayList<>(1)).stream()
.findFirst().orElse(null);
}
}
......@@ -81,6 +81,14 @@ public interface StudioMerchantService {
PageVO<StudioMerchantApplyVO> pageApply(PageStudioMerchantApplyParams params);
/**
* 获取最后一条申请记录
*
* @param studioId 场馆ID
* @return 申请记录
*/
StudioMerchantApplyVO getLatestApply(Long studioId);
/**
* 绑定小程序AppId
*
* @param studioId 场馆ID
......
......@@ -517,7 +517,7 @@ public class MerchantConvert {
}
private static BrandMerchantVO convertBrandMerchant(Long brandId, List<String> studioNames,
MerchantVO merchant, SubChannelInfoDTO dto) {
MerchantVO merchant, SubChannelInfoDTO dto, StudioMerchantApply apply) {
Map<SubChannelOpenTypeEnums, SubChannelInfo> channelMap = convertSubChannelMap(
JsonUtil.convertList(merchant.getSubChannels(), SubChannelInfo.class), dto.getSubChannels());
SubChannelInfo ali = channelMap.get(SubChannelOpenTypeEnums.ALI_OFFLINE);
......@@ -549,15 +549,16 @@ public class MerchantConvert {
.legal(convertLegal(merchant.getLegal(), merchant.getContact()))
.bankCard(JsonUtil.convertObject(merchant.getBankCard(), BrandBankCardVO.class))
.subChannelConfigs(merchant.getSubChannelConfigs())
.finishTime(apply.getFinishTime())
.build();
}
public static List<BrandMerchantVO> convertBrandMerchantList(Long brandId, List<MerchantVO> merchants,
SubChannelInfoDTO dto, Map<Long, List<StudioVO>> studioMap) {
SubChannelInfoDTO dto, Map<Long, List<StudioVO>> studioMap, Map<Long, StudioMerchantApply> applyMap) {
return merchants.stream().map(e -> {
List<String> studioNames = studioMap.getOrDefault(e.getId(), new ArrayList<>()).stream()
.map(StudioVO::getName).collect(Collectors.toList());
return convertBrandMerchant(brandId, studioNames, e, dto);
return convertBrandMerchant(brandId, studioNames, e, dto, applyMap.get(e.getId()));
}).collect(Collectors.toList());
}
......
......@@ -74,6 +74,7 @@ public class BrandMerchantServiceImpl implements BrandMerchantService {
channel);
List<Long> merchantIds = relations.stream().map(PartyToMerchant::getMerchantId)
.collect(Collectors.toList());
Map<Long, StudioMerchantApply> applyMap = studioMerchantApplyRpService.mapByMerchantIds(merchantIds);
List<PartyToMerchant> studioRelations = partyToMerchantRpService.listByMerchantIdsAndPartyType(
merchantIds, PartyTypeEnum.STUDIO);
List<Long> studioIds = studioRelations.stream().map(PartyToMerchant::getPartyId)
......@@ -81,7 +82,7 @@ public class BrandMerchantServiceImpl implements BrandMerchantService {
Map<Long, List<StudioVO>> studioMap = studioRpcService.mapStudioByBrandId(studioIds);
List<MerchantVO> merchants = merchantRpcService.listByIds(merchantIds);
return MerchantConvert.convertBrandMerchantList(brandId, merchants,
configService.getDefaultBrandSubChannelInfo(), studioMap);
configService.getDefaultBrandSubChannelInfo(), studioMap, applyMap);
}
}
......@@ -199,6 +199,15 @@ public class StudioMerchantServiceImpl implements StudioMerchantService {
}
@Override
public StudioMerchantApplyVO getLatestApply(Long studioId) {
StudioMerchantApply apply = studioMerchantApplyRpService.getLatestApply(studioId);
if (null == apply) {
return null;
}
return MerchantConvert.convertApply(apply);
}
@Override
public StudioMerchantBindXcxAppIdVO bindXcxAppId(Long studioId, String appId) {
PartyToMerchant relation = getRelation(studioId);
if (null == relation) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment