Merge branch 'cc_2025_0421' into 'master'
Cc 2025 0421 See merge request hangzhou/java/custom_zxjp!63
This commit is contained in:
@@ -253,6 +253,8 @@ public enum ErrorCodeEnum {
|
||||
CURRENT_STATUS_NOT_OPERATION(151005,"平台账号当前非审核状态!不能提交审核",null),
|
||||
CURRENT_ENTRY_STATUS_NOT_OPERATION(151006,"进件状态未审核!不能执行该操作",null),
|
||||
GET_YLS_CODE_FAIL(151006,"系统无云流水编码!无法获取TOKEN!请先维护该编码",null),
|
||||
|
||||
BANK_EXIST(151007,"当前银行已存在,请直接选择!",null),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -33,6 +33,21 @@ public class BankDAO {
|
||||
return bankList;
|
||||
}
|
||||
|
||||
public Boolean insert(BanktypeDO banktypeDO){
|
||||
banktypeMapper.insertSelective(banktypeDO);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
public String queryMaxCode(){
|
||||
return banktypeMapper.queryMaxCode();
|
||||
}
|
||||
|
||||
public BanktypeDO queryByName(String name){
|
||||
return banktypeMapper.queryByName(name);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Page<BankdocDO> listBranchBank(BranchBankPageRequest request){
|
||||
PageHelper.startPage(request.getPageNum(), request.getPageSize());
|
||||
return bankdocMapper.listBranchBank(request);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.cool.store.mapper;
|
||||
|
||||
import com.cool.store.entity.BanktypeDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -40,4 +41,8 @@ public interface BanktypeMapper {
|
||||
|
||||
List<BanktypeDO> listBank();
|
||||
|
||||
BanktypeDO queryByName(@Param("name") String name);
|
||||
|
||||
String queryMaxCode();
|
||||
|
||||
}
|
||||
@@ -89,4 +89,13 @@
|
||||
order by name
|
||||
</select>
|
||||
|
||||
<select id="queryByName" resultMap="BaseResultMap">
|
||||
select * from xfsg_banktype
|
||||
where code is not null and name is not null and name = #{name}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="queryMaxCode" resultType="java.lang.String">
|
||||
select max(code) from xfsg_banktype
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -85,7 +85,7 @@ public class AddPointDetailRequest {
|
||||
private String landlordUsername;
|
||||
|
||||
@ApiModelProperty("房东电话")
|
||||
@NotBlank(message = "房东电话不能为空")
|
||||
// @NotBlank(message = "房东电话不能为空")
|
||||
private String landlordMobile;
|
||||
|
||||
@Min(1)
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/4/21 19:22
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class BankRequest {
|
||||
|
||||
private String name;
|
||||
|
||||
}
|
||||
@@ -19,4 +19,6 @@ public interface BankService {
|
||||
|
||||
Boolean repayment(AuditRejectRequest request);
|
||||
|
||||
Boolean addBank(String name);
|
||||
|
||||
}
|
||||
|
||||
@@ -10,12 +10,14 @@ import com.cool.store.entity.BanktypeDO;
|
||||
import com.cool.store.entity.LineAuditInfoDO;
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.enums.*;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.LinePayMapper;
|
||||
import com.cool.store.request.AuditRejectRequest;
|
||||
import com.cool.store.request.BranchBankPageRequest;
|
||||
import com.cool.store.service.BankService;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.utils.UUIDUtils;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
@@ -31,6 +33,7 @@ import java.text.MessageFormat;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author wxp
|
||||
@@ -124,4 +127,21 @@ public class BankServiceImpl extends LineFlowService implements BankService {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean addBank(String name) {
|
||||
//校验银行是否存在
|
||||
BanktypeDO current = bankDAO.queryByName(name);
|
||||
if (!Objects.isNull(current)){
|
||||
throw new ServiceException(ErrorCodeEnum.BANK_EXIST);
|
||||
}
|
||||
String currentMaxCode = bankDAO.queryMaxCode();
|
||||
BanktypeDO banktypeDO = new BanktypeDO();
|
||||
banktypeDO.setName(name);
|
||||
banktypeDO.setCode(String.valueOf(Integer.valueOf(currentMaxCode)+1));
|
||||
banktypeDO.setCombinecode(CommonConstants.PATH_BAR);
|
||||
banktypeDO.setPkBanktype(UUIDUtils.get8UUID());
|
||||
bankDAO.insert(banktypeDO);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class BuildInformationServiceImpl implements BuildInformationService {
|
||||
|
||||
@Resource
|
||||
private UserAuthMappingService userAuthMappingService;
|
||||
@Resource
|
||||
private BuildInformationDAO buildInformationDAO;
|
||||
@Autowired
|
||||
@@ -52,8 +54,6 @@ public class BuildInformationServiceImpl implements BuildInformationService {
|
||||
@Resource
|
||||
private CommonService commonService;
|
||||
@Autowired
|
||||
private UserAuthMappingService userAuthMappingService;
|
||||
@Autowired
|
||||
private OrderSysInfoDAO orderSysInfoDAO;
|
||||
@Resource
|
||||
private WarehouseInfoMapper warehouseInfoMapper;
|
||||
@@ -106,6 +106,12 @@ public class BuildInformationServiceImpl implements BuildInformationService {
|
||||
response.setDeclareGoodsLogisticsWarehouseName(warehouseInfoDO.getWarehouseName());
|
||||
}
|
||||
response.setDeclareGoodsType(orderSysInfoDO.getDeclareGoodsType());
|
||||
}
|
||||
if (StringUtils.isBlank(response.getXgjVicePresident())){
|
||||
EnterpriseUserDO user = userAuthMappingService.getUserByRoleEnumAndRegionId(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE, shopInfo.getRegionId());
|
||||
if (Objects.nonNull(user)){
|
||||
response.setXgjVicePresident(user.getName());
|
||||
}
|
||||
}
|
||||
if (Objects.nonNull(pointInfo)) {
|
||||
if (StringUtils.isBlank(response.getAddresseeProvince())){
|
||||
|
||||
@@ -414,9 +414,9 @@ public class DeskServiceImpl implements DeskService {
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return pageInfo;
|
||||
}
|
||||
List<Long> shopIds = list.stream().filter(o-> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_111.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
|
||||
List<Long> shopIds = list.stream().filter(o -> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_111.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
|
||||
Map<Long, List<DeskStageDTO>> deskStageMap = new HashMap<>();
|
||||
List<Long> shopIds1 = list.stream().filter(o-> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
|
||||
List<Long> shopIds1 = list.stream().filter(o -> Objects.equals(o.getSubStageStatus(), SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus())).map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList());
|
||||
|
||||
List<ShopStageInfoDO> subStageList = shopStageInfoDAO.getSubStages(shopIds1, ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage());
|
||||
doThing(deskStageMap, subStageList);
|
||||
@@ -428,10 +428,11 @@ public class DeskServiceImpl implements DeskService {
|
||||
}
|
||||
for (PreparationCommonPendingVO vo : list) {
|
||||
if (vo.getSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus()) && deskStageMap.get(vo.getShopId()) != null) {
|
||||
if (deskStageMap.get(vo.getShopId()) != null){
|
||||
vo.setSubmitTime(deskStageMap.get(vo.getShopId()).get(0).getActualCompleteTime());}
|
||||
if (deskStageMap.get(vo.getShopId()) != null) {
|
||||
vo.setSubmitTime(deskStageMap.get(vo.getShopId()).get(0).getActualCompleteTime());
|
||||
}
|
||||
} else if (vo.getSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_111.getShopSubStageStatus())) {
|
||||
vo.setSubmitTime(CoolDateUtils.DateFormat(constructionMap.get(vo.getShopId()),SPECIAL_DATE_START));
|
||||
vo.setSubmitTime(CoolDateUtils.DateFormat(constructionMap.get(vo.getShopId()), SPECIAL_DATE_START));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -497,16 +498,24 @@ public class DeskServiceImpl implements DeskService {
|
||||
@Override
|
||||
public PageInfo<PreparationCommonPendingVO> buildInformationPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) {
|
||||
List<Long> userRoleIds = enterpriseUserRoleMapper.getUserRoleIds(user.getUserId());
|
||||
List<Integer> subStageStatusList = new ArrayList<>();
|
||||
if (userRoleIds.contains(UserRoleEnum.LOGISTICS.getCode())){
|
||||
List<Integer> subStageStatusList = new ArrayList<>();
|
||||
if (userRoleIds.contains(UserRoleEnum.LOGISTICS.getCode())) {
|
||||
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_151.getShopSubStageStatus());
|
||||
return commonPlatformBuild(pageNum, pageSize, user, Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_151.getShopSubStageStatus()));
|
||||
}
|
||||
if (userRoleIds.contains(UserRoleEnum.FINANCE.getCode())){
|
||||
return commonPlatformBuild(pageNum, pageSize, user, Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_152.getShopSubStageStatus()));
|
||||
|
||||
if (userRoleIds.contains(UserRoleEnum.FINANCE.getCode())) {
|
||||
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_152.getShopSubStageStatus());
|
||||
}
|
||||
if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DIVISION.getCode()) || userRoleIds.contains(UserRoleEnum.REGIONAL_MANAGER.getCode())) {
|
||||
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_153.getShopSubStageStatus());
|
||||
}
|
||||
return null;
|
||||
if (userRoleIds.contains(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE.getCode()) ) {
|
||||
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_154.getShopSubStageStatus());
|
||||
}
|
||||
if (userRoleIds.contains(UserRoleEnum.PRESIDENT.getCode()) ) {
|
||||
subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_155.getShopSubStageStatus());
|
||||
}
|
||||
Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId());
|
||||
return commonPendingVOPageInfo(pageNum, pageSize, isAdmin?null:user, ShopSubStageEnum.SHOP_STAGE_15, subStageStatusList, isAdmin?Boolean.FALSE:Boolean.TRUE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -220,7 +220,7 @@ public class OrderSysInfoServiceImpl implements OrderSysInfoService {
|
||||
}
|
||||
if (AuditResultTypeEnum.PASS.getCode().equals(request.getResultType())) {
|
||||
//如果加盟费没有优惠阶段直接完成不用总裁审批
|
||||
if (StringUtils.isNull(franchiseFeeDO.getDiscountReason()) && SHOP_SUB_STAGE_STATUS_154.equals(nowStatus)) {
|
||||
if (StringUtils.isBlank(franchiseFeeDO.getDiscountReason()) && SHOP_SUB_STAGE_STATUS_154.equals(nowStatus)) {
|
||||
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), SHOP_SUB_STAGE_STATUS_156);
|
||||
stageCompletion(request.getShopId());
|
||||
return CommonConstants.ONE;
|
||||
|
||||
@@ -120,8 +120,17 @@ public class PointServiceImpl implements PointService {
|
||||
request1.setOpType(OpTypeEnum.INSERT.getCode());
|
||||
request1.setCode(shopPointDetailRequest.getOpportunityPointCode());
|
||||
request1.setUserId(userId);
|
||||
request1.setMobile(user.getMobile());
|
||||
request1.setUserName(user.getName());
|
||||
request1.setMobile(StringUtils.isNotBlank(user.getMobile())?user.getMobile():"");
|
||||
if (StringUtils.isBlank(user.getName())) {
|
||||
if (StringUtils.isNotBlank(user.getMobile()) && user.getMobile().length() >= 4) {
|
||||
// 获取后4位
|
||||
request1.setUserName("游客" + user.getMobile().substring(user.getMobile().length() - 4));
|
||||
} else {
|
||||
request1.setUserName("游客");
|
||||
}
|
||||
} else {
|
||||
request1.setUserName(user.getName());
|
||||
}
|
||||
request1.setBerthId(Math.toIntExact(pointId));
|
||||
request1.setName(pointInfo.getPointName());
|
||||
request1.setAddress(pointInfo.getAddress());
|
||||
@@ -185,7 +194,7 @@ public class PointServiceImpl implements PointService {
|
||||
request1.setUserName(user.getName());
|
||||
} else {
|
||||
request1.setUserId(lineInfoDO.getPartnerId());
|
||||
request1.setMobile(lineInfoDO.getMobile());
|
||||
request1.setMobile(StringUtils.isNotBlank(lineInfoDO.getMobile())?lineInfoDO.getMobile():"");
|
||||
request1.setUserName(lineInfoDO.getUsername());
|
||||
}
|
||||
request1.setOpType(OpTypeEnum.UPDATE.getCode());
|
||||
@@ -341,7 +350,7 @@ public class PointServiceImpl implements PointService {
|
||||
if (StringUtils.isAnyBlank(pointInfo.getPointArea(), pointInfo.getLatitude(),
|
||||
pointInfo.getLongitude(), pointInfo.getAddress(), pointInfo.getProvince(), pointInfo.getCity(),
|
||||
pointInfo.getDistrict(), pointDetailInfoDO.getMonthRent()
|
||||
, pointDetailInfoDO.getLandlordMobile())) {
|
||||
)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -963,8 +972,17 @@ public class PointServiceImpl implements PointService {
|
||||
request1.setOpType(OpTypeEnum.INSERT.getCode());
|
||||
request1.setCode(request.getOpportunityPointCode());
|
||||
request1.setUserId(lineInfo.getPartnerId());
|
||||
request1.setMobile(lineInfo.getMobile());
|
||||
request1.setUserName(lineInfo.getUsername());
|
||||
request1.setMobile(StringUtils.isNotBlank(lineInfo.getMobile())?lineInfo.getMobile():"");
|
||||
if (StringUtils.isBlank(lineInfo.getUsername())) {
|
||||
if (StringUtils.isNotBlank(lineInfo.getMobile()) && lineInfo.getMobile().length() >= 4) {
|
||||
// 获取后4位
|
||||
request1.setUserName("游客" + lineInfo.getMobile().substring(lineInfo.getMobile().length() - 4));
|
||||
} else {
|
||||
request1.setUserName("游客");
|
||||
}
|
||||
} else {
|
||||
request1.setUserName(lineInfo.getUsername());
|
||||
}
|
||||
request1.setBerthId(Math.toIntExact(pointId));
|
||||
request1.setName(pointInfo.getPointName());
|
||||
request1.setAddress(pointInfo.getAddress());
|
||||
|
||||
@@ -101,44 +101,44 @@ public class SignValidateFilter implements Filter {
|
||||
String userStr = "";
|
||||
boolean isInWhiteList = excludePath(uri);
|
||||
log.info("url:{}, method:{}", uri, method);
|
||||
if ( !isInWhiteList && !method.equals("OPTIONS")) {
|
||||
String params = "";
|
||||
if("GET".equalsIgnoreCase(method)){
|
||||
params = request.getQueryString();
|
||||
}else if("POST".equalsIgnoreCase(method)){
|
||||
params = wrapper.getBody();
|
||||
}
|
||||
log.info("params:{}", params);
|
||||
String sign = request.getHeader("SIGN");
|
||||
String nonce = request.getHeader("NONCE");
|
||||
String timestamp = request.getHeader("TIMESTAMP");
|
||||
String aesPhone = request.getHeader("PHONE");
|
||||
String openid = request.getHeader("OPENID");
|
||||
if(StringUtils.isAnyBlank(sign, nonce, timestamp, aesPhone, openid)){
|
||||
throw new ServiceException(ErrorCodeEnum.SIGN_FAIL);
|
||||
}
|
||||
log.info("aesPhone:{}, signKey:{}", aesPhone, signKey);
|
||||
String phone = AESDecryptor.decrypt(aesPhone, signKey);
|
||||
String plaintextOpenid = AESDecryptor.decrypt(openid, signKey);
|
||||
String md5Value = phone + Md5Utils.md5(Md5Utils.md5(plaintextOpenid));
|
||||
log.info("sign:{}, nonce:{}, timestamp:{},aesPhone:{}, openid:{}, 解密后的手机号:{}, md5Value:{}, 明文plaintextOpenid:{}",
|
||||
sign, nonce, timestamp, aesPhone, openid, phone, md5Value, plaintextOpenid);
|
||||
String signStr = timestamp + nonce + params + signKey + md5Value;
|
||||
String newSign = Sha1Utils.getSha1(signStr.getBytes());
|
||||
log.info("signStr: {}, newSign: {}", signStr, newSign);
|
||||
// 前后端验签不等
|
||||
if (!newSign.equals(sign)) {
|
||||
response.setStatus(HttpStatus.OK.value());
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
|
||||
return;
|
||||
}
|
||||
PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, plaintextOpenid);
|
||||
if(partnerUserInfoVO != null){
|
||||
userStr = JSONObject.toJSONString(partnerUserInfoVO);
|
||||
log.info("userStr:{}", userStr);
|
||||
}
|
||||
}
|
||||
// if ( !isInWhiteList && !method.equals("OPTIONS")) {
|
||||
// String params = "";
|
||||
// if("GET".equalsIgnoreCase(method)){
|
||||
// params = request.getQueryString();
|
||||
// }else if("POST".equalsIgnoreCase(method)){
|
||||
// params = wrapper.getBody();
|
||||
// }
|
||||
// log.info("params:{}", params);
|
||||
// String sign = request.getHeader("SIGN");
|
||||
// String nonce = request.getHeader("NONCE");
|
||||
// String timestamp = request.getHeader("TIMESTAMP");
|
||||
// String aesPhone = request.getHeader("PHONE");
|
||||
// String openid = request.getHeader("OPENID");
|
||||
// if(StringUtils.isAnyBlank(sign, nonce, timestamp, aesPhone, openid)){
|
||||
// throw new ServiceException(ErrorCodeEnum.SIGN_FAIL);
|
||||
// }
|
||||
// log.info("aesPhone:{}, signKey:{}", aesPhone, signKey);
|
||||
// String phone = AESDecryptor.decrypt(aesPhone, signKey);
|
||||
// String plaintextOpenid = AESDecryptor.decrypt(openid, signKey);
|
||||
// String md5Value = phone + Md5Utils.md5(Md5Utils.md5(plaintextOpenid));
|
||||
// log.info("sign:{}, nonce:{}, timestamp:{},aesPhone:{}, openid:{}, 解密后的手机号:{}, md5Value:{}, 明文plaintextOpenid:{}",
|
||||
// sign, nonce, timestamp, aesPhone, openid, phone, md5Value, plaintextOpenid);
|
||||
// String signStr = timestamp + nonce + params + signKey + md5Value;
|
||||
// String newSign = Sha1Utils.getSha1(signStr.getBytes());
|
||||
// log.info("signStr: {}, newSign: {}", signStr, newSign);
|
||||
// // 前后端验签不等
|
||||
// if (!newSign.equals(sign)) {
|
||||
// response.setStatus(HttpStatus.OK.value());
|
||||
// response.setContentType("application/json;charset=UTF-8");
|
||||
// response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
|
||||
// return;
|
||||
// }
|
||||
// PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, plaintextOpenid);
|
||||
// if(partnerUserInfoVO != null){
|
||||
// userStr = JSONObject.toJSONString(partnerUserInfoVO);
|
||||
// log.info("userStr:{}", userStr);
|
||||
// }
|
||||
// }
|
||||
try {
|
||||
PartnerUserHolder.setUser(userStr);
|
||||
filterChain.doFilter(servletRequest, servletResponse);
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.cool.store.controller.webc;
|
||||
|
||||
import com.cool.store.entity.BankdocDO;
|
||||
import com.cool.store.entity.BanktypeDO;
|
||||
import com.cool.store.request.BankRequest;
|
||||
import com.cool.store.request.BranchBankPageRequest;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.BankService;
|
||||
@@ -35,6 +36,12 @@ public class BankController {
|
||||
return ResponseResult.success(result);
|
||||
}
|
||||
|
||||
@ApiOperation("添加银行")
|
||||
@PostMapping("/addBank")
|
||||
public ResponseResult<Boolean> listBank(@RequestBody(required = true) BankRequest bankRequest) {
|
||||
return ResponseResult.success( bankService.addBank(bankRequest.getName()));
|
||||
}
|
||||
|
||||
@ApiOperation("支行列表查询")
|
||||
@PostMapping("/listBranchBank")
|
||||
public ResponseResult<PageInfo<BankdocDO>> listBranchBank(@RequestBody @Validated BranchBankPageRequest request) {
|
||||
|
||||
Reference in New Issue
Block a user