Commit d7578025 authored by zhengyi's avatar zhengyi

检查国家区域是否与手机号国家区号一致

parent 147ed595
...@@ -188,6 +188,8 @@ public interface ErrorCodeConstants { ...@@ -188,6 +188,8 @@ public interface ErrorCodeConstants {
ErrorCode CUSTOMER_APPROVAL_IN_PROCESSING = new ErrorCode(1004006043, "customer.approval.in.processing"); ErrorCode CUSTOMER_APPROVAL_IN_PROCESSING = new ErrorCode(1004006043, "customer.approval.in.processing");
ErrorCode AREA_CODE_NOT_NULL = new ErrorCode(1004006044, "area.code.not.null");
ErrorCode CURRENCY_ID_NOT_NULL = new ErrorCode(1004006045, "currency.id.not.null");
} }
......
...@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.ecw.controller.admin.region; ...@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.ecw.controller.admin.region;
import cn.iocoder.yudao.framework.apollo.core.event.ChannelDataEvent; import cn.iocoder.yudao.framework.apollo.core.event.ChannelDataEvent;
import cn.iocoder.yudao.framework.apollo.core.event.QueryChannelInfoEvent; import cn.iocoder.yudao.framework.apollo.core.event.QueryChannelInfoEvent;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -26,6 +27,7 @@ import cn.iocoder.yudao.framework.excel.util.ExcelUtils; ...@@ -26,6 +27,7 @@ import cn.iocoder.yudao.framework.excel.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import static cn.iocoder.yudao.module.ecw.enums.ErrorCodeConstants.*;
import cn.iocoder.yudao.module.ecw.controller.admin.region.vo.*; import cn.iocoder.yudao.module.ecw.controller.admin.region.vo.*;
import cn.iocoder.yudao.module.ecw.dal.dataobject.region.RegionDO; import cn.iocoder.yudao.module.ecw.dal.dataobject.region.RegionDO;
...@@ -217,4 +219,22 @@ public class RegionController { ...@@ -217,4 +219,22 @@ public class RegionController {
List<RegionDO> cityList = regionService.getCityListByParentId(parentId); List<RegionDO> cityList = regionService.getCityListByParentId(parentId);
return success(RegionConvert.INSTANCE.convertList(cityList)); return success(RegionConvert.INSTANCE.convertList(cityList));
} }
@GetMapping("/check/dest-currency/area-code/")
@ApiOperation("检查国家区域是否与手机号国家区号一致")
@ApiImplicitParams({
@ApiImplicitParam(name = "currencyId", value = "国家ID", required = true, example = "1024", dataTypeClass = Long.class),
@ApiImplicitParam(name = "areaCode", value = "手机国家区号", required = true, example = "86", dataTypeClass = String.class)
})
public CommonResult<Boolean> checkDestCurrencyAndAreaCode(@RequestParam("currencyId") Long currencyId,
@RequestParam("areaCode") String areaCode) {
if (currencyId == null) {
return CommonResult.error(CURRENCY_ID_NOT_NULL);
}
if (StringUtils.isBlank(areaCode)) {
return CommonResult.error(AREA_CODE_NOT_NULL);
}
return success(regionService.countByIdAndAreaCode(currencyId, areaCode));
}
} }
...@@ -10,7 +10,9 @@ import cn.iocoder.yudao.module.ecw.dal.dataobject.region.RegionDO; ...@@ -10,7 +10,9 @@ import cn.iocoder.yudao.module.ecw.dal.dataobject.region.RegionDO;
import cn.iocoder.yudao.module.ecw.service.region.RegionService; import cn.iocoder.yudao.module.ecw.service.region.RegionService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
...@@ -25,6 +27,8 @@ import java.util.stream.Collectors; ...@@ -25,6 +27,8 @@ import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR; import static cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.module.ecw.enums.ErrorCodeConstants.AREA_CODE_NOT_NULL;
import static cn.iocoder.yudao.module.ecw.enums.ErrorCodeConstants.CURRENCY_ID_NOT_NULL;
@Api(tags = "app-web - 国家城市管理") @Api(tags = "app-web - 国家城市管理")
@RestController @RestController
...@@ -130,6 +134,24 @@ public class AppRegionController { ...@@ -130,6 +134,24 @@ public class AppRegionController {
return success(RegionConvert.INSTANCE.convertList(cityList)); return success(RegionConvert.INSTANCE.convertList(cityList));
} }
@GetMapping("/check/dest-currency/area-code/")
@ApiOperation("检查国家区域是否与手机号国家区号一致")
@ApiImplicitParams({
@ApiImplicitParam(name = "currencyId", value = "国家ID", required = true, example = "1024", dataTypeClass = Long.class),
@ApiImplicitParam(name = "areaCode", value = "手机国家区号", required = true, example = "86", dataTypeClass = String.class)
})
public CommonResult<Boolean> checkDestCurrencyAndAreaCode(@RequestParam("currencyId") Long currencyId,
@RequestParam("areaCode") String areaCode) {
if (currencyId == null) {
return CommonResult.error(CURRENCY_ID_NOT_NULL);
}
if (StringUtils.isBlank(areaCode)) {
return CommonResult.error(AREA_CODE_NOT_NULL);
}
return success(regionService.countByIdAndAreaCode(currencyId, areaCode));
}
private RegionRespVO buildChildTree(RegionRespVO pNode, List<RegionRespVO> allDatas){ private RegionRespVO buildChildTree(RegionRespVO pNode, List<RegionRespVO> allDatas){
List<RegionRespVO> childs = new ArrayList<>(); List<RegionRespVO> childs = new ArrayList<>();
for(RegionRespVO itemNode : allDatas) { for(RegionRespVO itemNode : allDatas) {
......
...@@ -44,6 +44,14 @@ public interface RegionService { ...@@ -44,6 +44,14 @@ public interface RegionService {
*/ */
RegionDO getRegion(Long id); RegionDO getRegion(Long id);
/**
* 根据国家id和手机国家区号统计数值,判断区号是否与国家一致
* @param id
* @param areaCode
* @return
*/
Boolean countByIdAndAreaCode(Long id, String areaCode);
/** /**
* 获得区域设置列表 * 获得区域设置列表
* *
......
package cn.iocoder.yudao.module.ecw.service.region; package cn.iocoder.yudao.module.ecw.service.region;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.*; import java.util.*;
import cn.iocoder.yudao.module.ecw.controller.admin.region.vo.*; import cn.iocoder.yudao.module.ecw.controller.admin.region.vo.*;
import cn.iocoder.yudao.module.ecw.dal.dataobject.region.RegionDO; import cn.iocoder.yudao.module.ecw.dal.dataobject.region.RegionDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
...@@ -31,12 +35,12 @@ public class RegionServiceImpl implements RegionService { ...@@ -31,12 +35,12 @@ public class RegionServiceImpl implements RegionService {
@Override @Override
public Long createRegion(RegionCreateReqVO createReqVO) { public Long createRegion(RegionCreateReqVO createReqVO) {
if (Objects.equals(createReqVO.getType(), "1") || Objects.equals(createReqVO.getType(), "3")){ if (Objects.equals(createReqVO.getType(), "1") || Objects.equals(createReqVO.getType(), "3")) {
if (StringUtils.isBlank(createReqVO.getLabelCode())){ if (StringUtils.isBlank(createReqVO.getLabelCode())) {
throw exception(REGION_LABEL_CODE_NOT_NULL); throw exception(REGION_LABEL_CODE_NOT_NULL);
} }
String[] codes = createReqVO.getLabelCode().split(StrUtil.DASHED); String[] codes = createReqVO.getLabelCode().split(StrUtil.DASHED);
if (codes.length < 2){ if (codes.length < 2) {
throw exception(REGION_LABEL_CODE_COUNTRY_AND_CITY_AND_AIR_COUNTRY); throw exception(REGION_LABEL_CODE_COUNTRY_AND_CITY_AND_AIR_COUNTRY);
} }
} }
...@@ -49,12 +53,12 @@ public class RegionServiceImpl implements RegionService { ...@@ -49,12 +53,12 @@ public class RegionServiceImpl implements RegionService {
@Override @Override
public void updateRegion(RegionUpdateReqVO updateReqVO) { public void updateRegion(RegionUpdateReqVO updateReqVO) {
if (Objects.equals(updateReqVO.getType(), "1") || Objects.equals(updateReqVO.getType(), "3")){ if (Objects.equals(updateReqVO.getType(), "1") || Objects.equals(updateReqVO.getType(), "3")) {
if (StringUtils.isBlank(updateReqVO.getLabelCode())){ if (StringUtils.isBlank(updateReqVO.getLabelCode())) {
throw exception(REGION_LABEL_CODE_NOT_NULL); throw exception(REGION_LABEL_CODE_NOT_NULL);
} }
String[] codes = updateReqVO.getLabelCode().split(StrUtil.DASHED); String[] codes = updateReqVO.getLabelCode().split(StrUtil.DASHED);
if (codes.length < 2){ if (codes.length < 2) {
throw exception(REGION_LABEL_CODE_COUNTRY_AND_CITY_AND_AIR_COUNTRY); throw exception(REGION_LABEL_CODE_COUNTRY_AND_CITY_AND_AIR_COUNTRY);
} }
} }
...@@ -94,6 +98,13 @@ public class RegionServiceImpl implements RegionService { ...@@ -94,6 +98,13 @@ public class RegionServiceImpl implements RegionService {
return regionMapper.selectById(id); return regionMapper.selectById(id);
} }
@Override
public Boolean countByIdAndAreaCode(Long id, String areaCode) {
Long count = regionMapper.selectCount(new LambdaQueryWrapper<RegionDO>().eq(RegionDO::getId, id).eq(RegionDO::getAreaCode, areaCode));
return Objects.nonNull(count) && count > 0L;
}
@Override @Override
public List<RegionDO> getRegionList(Collection<Long> ids) { public List<RegionDO> getRegionList(Collection<Long> ids) {
return regionMapper.selectBatchIds(ids); return regionMapper.selectBatchIds(ids);
......
...@@ -300,4 +300,8 @@ customer.approval.in.processing= ...@@ -300,4 +300,8 @@ customer.approval.in.processing=
order.overseas.warehouse.update.is.or.no= order.overseas.warehouse.update.is.or.no=
order.is.overseas.warehouse.order= order.is.overseas.warehouse.order=
order.not.is.overseas.warehouse.order= order.not.is.overseas.warehouse.order=
\ No newline at end of file
area.code.not.null=
currency.id.not.null=
\ No newline at end of file
...@@ -1107,4 +1107,8 @@ customer.approval.in.processing=Non-main customer approval is in progress and ca ...@@ -1107,4 +1107,8 @@ customer.approval.in.processing=Non-main customer approval is in progress and ca
order.overseas.warehouse.update.is.or.no=Please select order overseas warehouse modification Yes or No order.overseas.warehouse.update.is.or.no=Please select order overseas warehouse modification Yes or No
order.is.overseas.warehouse.order=This order is already an overseas warehouse order order.is.overseas.warehouse.order=This order is already an overseas warehouse order
order.not.is.overseas.warehouse.order=This order is already a non overseas warehouse order order.not.is.overseas.warehouse.order=This order is already a non overseas warehouse order
\ No newline at end of file
area.code.not.null=The national mobile phone area code cannot be empty
currency.id.not.null=The country ID cannot be empty
\ No newline at end of file
...@@ -1107,4 +1107,8 @@ customer.approval.in.processing=\u975E\u4E3B\u5BA2\u6237\u5BA1\u6279\u6B63\u5728 ...@@ -1107,4 +1107,8 @@ customer.approval.in.processing=\u975E\u4E3B\u5BA2\u6237\u5BA1\u6279\u6B63\u5728
order.overseas.warehouse.update.is.or.no=\u8bf7\u9009\u62e9\u8ba2\u5355\u6d77\u5916\u4ed3\u4fee\u6539\u662f\u6216\u5426 order.overseas.warehouse.update.is.or.no=\u8bf7\u9009\u62e9\u8ba2\u5355\u6d77\u5916\u4ed3\u4fee\u6539\u662f\u6216\u5426
order.is.overseas.warehouse.order=\u8be5\u8ba2\u5355\u5df2\u7ecf\u662f\u6d77\u5916\u4ed3\u8ba2\u5355 order.is.overseas.warehouse.order=\u8be5\u8ba2\u5355\u5df2\u7ecf\u662f\u6d77\u5916\u4ed3\u8ba2\u5355
order.not.is.overseas.warehouse.order=\u8be5\u8ba2\u5355\u5df2\u7ecf\u662f\u975e\u6d77\u5916\u4ed3\u8ba2\u5355 order.not.is.overseas.warehouse.order=\u8be5\u8ba2\u5355\u5df2\u7ecf\u662f\u975e\u6d77\u5916\u4ed3\u8ba2\u5355
\ No newline at end of file
area.code.not.null=\u56fd\u5bb6\u624b\u673a\u533a\u53f7\u4e0d\u80fd\u4e3a\u7a7a
currency.id.not.null=\u56fd\u5bb6id\u4e0d\u80fd\u4e3a\u7a7a
\ No newline at end of file
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