diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
index 9f0155cab..ebfcfe168 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
@@ -475,6 +475,7 @@ public enum ErrorCodeEnum {
WALLET_PAY_CANNOT_CANCEL(1830020, "该交易无法取消", null),
TOTAL_FEES_NEED_EQUAL(1830021, "分账总金额需与合计缴费金额一致", null),
NOT_EXIST_WANG_SHANG_ACCOUNT(1830022, "当前门店未开通网商钱包账户,请先开通!", null),
+ SIGNER_NOT_EQUAL_LEGAL_PERSON(1840022, "法人与签约人不一致", null),
IP_LIMIT(1840000, "IP访问次数超限", null),
diff --git a/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml
index 91a158fb1..ba4ee369c 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/BuildInformationMapper.xml
@@ -41,6 +41,9 @@
+
+
+
@@ -52,7 +55,7 @@
settler_id_card_front,settler_id_card_reverse,settler_in_hand_front_picture,settler_in_hand_back_picture,settler_id_card_no,
settler_bank_number,settler_bank_mobile,settler_bank_name,
create_time,update_time,create_user,
- update_user,c_shop_name,settler_bank_back_photo_url,settler_is_same_partner,juridical_is_same_partner,juridical_name
+ update_user,c_shop_name,settler_bank_back_photo_url,settler_is_same_partner,juridical_is_same_partner,juridical_name,invoice_type,invoice_title,invoice_tin
diff --git a/coolstore-partner-dao/src/main/resources/mapper/CloseStoreInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/CloseStoreInfoMapper.xml
index 0b79a0263..747f7b549 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/CloseStoreInfoMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/CloseStoreInfoMapper.xml
@@ -65,9 +65,12 @@
AND
- c.region_path LIKE CONCAT('%', #{regionId}, '%')
+ c.region_path LIKE CONCAT('%/', #{regionId}, '/%')
+
+ AND c.region_path LIKE CONCAT('%/', #{request.regionId}, '/%')
+
ORDER BY b.create_time DESC
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java
index 45fc4eb20..0af6977d0 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/BuildInformationDO.java
@@ -214,4 +214,23 @@ public class BuildInformationDO {
@Column(name = "juridical_is_same_partner")
private Boolean juridicalIsSamePartner;
+
+ // ===== 开票信息 =====
+ /**
+ * 抬头类型
+ */
+ @Column(name = "invoice_type")
+ private Integer invoiceType;
+
+ /**
+ * 发票抬头
+ */
+ @Column(name = "invoice_title")
+ private String invoiceTitle;
+
+ /**
+ * 税号
+ */
+ @Column(name = "invoice_tin")
+ private String invoiceTin;
}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java
index 2a6ed014d..71a5f7750 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/BuildInformationRequest.java
@@ -178,6 +178,15 @@ public class BuildInformationRequest {
@ApiModelProperty(value = "详细地址" )
private String addresseeAddress;
+ @ApiModelProperty("抬头类型")
+ private Integer invoiceType;
+
+ @ApiModelProperty("发票抬头")
+ private String invoiceTitle;
+
+ @ApiModelProperty("税号")
+ private String invoiceTin;
+
public BuildInformationDO toDO(){
BuildInformationDO buildInformationDO = new BuildInformationDO();
buildInformationDO.setShopId(this.shopId);
@@ -210,6 +219,9 @@ public class BuildInformationRequest {
buildInformationDO.setCShopName(this.miniProgramsShopName);
buildInformationDO.setSettlerIsSamePartner(this.settlerIsSamePartner);
buildInformationDO.setJuridicalIsSamePartner(this.juridicalIsSamePartner);
+ buildInformationDO.setInvoiceType(this.invoiceType);
+ buildInformationDO.setInvoiceTitle(this.invoiceTitle);
+ buildInformationDO.setInvoiceTin(this.invoiceTin);
return buildInformationDO;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java
index 31688a725..1812986ef 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/StoreMasterDTO.java
@@ -125,6 +125,15 @@ public class StoreMasterDTO {
*/
private String storeTypeName;
+ @ApiModelProperty("抬头类型")
+ private Integer invoiceType;
+
+ @ApiModelProperty("发票抬头")
+ private String invoiceTitle;
+
+ @ApiModelProperty("税号")
+ private String invoiceTin;
+
@Data
public static class SignerInfo {
@ApiModelProperty("签约人1姓名")
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreQueryRequest.java
index 0dd5360d9..dfcba765e 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreQueryRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/close/store/CloseStoreQueryRequest.java
@@ -48,4 +48,7 @@ public class CloseStoreQueryRequest extends PageBasicInfo {
@ApiModelProperty(value = "所属品牌列表", hidden = true)
private List joinBrands;
+
+ @ApiModelProperty("区域id")
+ private Long regionId;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/BuildInformationResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/BuildInformationResponse.java
index 968d6d334..787ebaa28 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/response/BuildInformationResponse.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/response/BuildInformationResponse.java
@@ -212,4 +212,13 @@ public class BuildInformationResponse {
@ApiModelProperty("订货备注")
private String orderRemark;
+
+ @ApiModelProperty("抬头类型")
+ private Integer invoiceType;
+
+ @ApiModelProperty("发票抬头")
+ private String invoiceTitle;
+
+ @ApiModelProperty("税号")
+ private String invoiceTin;
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/BuildInformationService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/BuildInformationService.java
index 8634fb3a7..832184687 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/BuildInformationService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/BuildInformationService.java
@@ -28,4 +28,9 @@ public interface BuildInformationService {
* @param user 用户
*/
Boolean operationsConsultantAudit(AuditApproveRequest request, LoginUserInfo user);
+
+ /**
+ * 开票信息企业校验
+ */
+ Boolean companyInvoiceVerify(Long shopId);
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java
index f5ef67124..4abc4b2a1 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java
@@ -12,10 +12,12 @@ import com.cool.store.enums.*;
import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.exception.ServiceException;
+import com.cool.store.mapper.ApplyLicenseMapper;
import com.cool.store.mapper.WarehouseInfoMapper;
import com.cool.store.request.AuditApproveRequest;
import com.cool.store.request.BuildInformationRequest;
import com.cool.store.request.BuildSettlerRequest;
+import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.BuildInformationResponse;
import com.cool.store.service.*;
import com.cool.store.utils.RedisConstantUtil;
@@ -88,6 +90,10 @@ public class BuildInformationServiceImpl implements BuildInformationService {
private OperationLogDAO operationLogDAO;
@Autowired
private RegionDao regionDao;
+ @Resource
+ private SignFranchiseService signFranchiseService;
+ @Resource
+ private ApplyLicenseMapper applyLicenseMapper;
@Override
@@ -350,6 +356,9 @@ public class BuildInformationServiceImpl implements BuildInformationService {
response.setSettlerBankBackPhotoUrl(informationDO.getSettlerBankBackPhotoUrl());
response.setSettlerIsSamePartner(informationDO.getSettlerIsSamePartner());
response.setJuridicalIsSamePartner(informationDO.getJuridicalIsSamePartner());
+ response.setInvoiceType(informationDO.getInvoiceType());
+ response.setInvoiceTitle(informationDO.getInvoiceTitle());
+ response.setInvoiceTin(informationDO.getInvoiceTin());
}
private static @NotNull OrderSysInfoDO getOrderSysInfoDO(BuildInformationRequest request) {
@@ -465,6 +474,27 @@ public class BuildInformationServiceImpl implements BuildInformationService {
return true;
}
+ @Override
+ public Boolean companyInvoiceVerify(Long shopId) {
+ ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
+ if (Objects.isNull(shopInfo)) {
+ throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST);
+ }
+ ShopStageInfoDO stageInfo = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_3);
+ if (!stageInfo.getShopSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus())) {
+ throw new ServiceException(ErrorCodeEnum.LICENSE_LEGAL_STAGE_FAIL);
+ }
+ LicenseTransactDO license = applyLicenseMapper.selectByShopId(shopId);
+ if (Objects.isNull(license) || StringUtils.isBlank(license.getLicenseLegalPerson())) {
+ throw new ServiceException(ErrorCodeEnum.LICENSE_LEGAL_STAGE_FAIL);
+ }
+ AddSignFranchiseResponse signFranchise = signFranchiseService.getSignFranchise(shopId);
+ if (!signFranchise.getPartnershipSignatoryFirst().equals(license.getLicenseLegalPerson())
+ && !signFranchise.getPartnershipSignatorySecond().equals(license.getLicenseLegalPerson())) {
+ throw new ServiceException(ErrorCodeEnum.SIGNER_NOT_EQUAL_LEGAL_PERSON);
+ }
+ return true;
+ }
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java
index e2841b886..8e22da07d 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncMainSysServerImpl.java
@@ -150,6 +150,9 @@ public class SyncMainSysServerImpl implements SyncMainSysServer {
settlerInfo.setSettlerBankPhotoUrl(buildInformationDO.getSettlerBankPhotoUrl());
settlerInfo.setSettlerBankBackPhotoUrl(buildInformationDO.getSettlerBankBackPhotoUrl());
storeMasterDTO.setSettlerInfo(settlerInfo);
+ storeMasterDTO.setInvoiceType(buildInformationDO.getInvoiceType());
+ storeMasterDTO.setInvoiceTitle(buildInformationDO.getInvoiceTitle());
+ storeMasterDTO.setInvoiceTin(buildInformationDO.getInvoiceTin());
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java
index c0ab009b7..e5976080d 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/wallet/impl/WalletServiceImpl.java
@@ -369,12 +369,21 @@ public class WalletServiceImpl implements WalletService {
@Override
public AccountDataVO getAccountList(AccountQueryRequest request) {
String storeId = getStoreId(request);
+ // 处理shopInfo和store表storeId不一致的问题,使用开店shop_info表的storeId
+ if (StringUtils.isNotBlank(request.getStoreId())) {
+ StoreDO storeDO = storeDao.getByStoreId(request.getStoreId());
+ ShopInfoDO shopInfo = shopInfoDAO.getShopInfoByShopCode(storeDO.getStoreNum());
+ if (Objects.nonNull(shopInfo) && !storeDO.getStoreId().equals(shopInfo.getStoreId())) {
+ storeId = shopInfo.getStoreId();
+ }
+ }
List accountInfo = walletApiService.getAccountInfo(new OutStoreIdRequest(storeId));
+ String finalStoreId = storeId;
List accountList = accountInfo.stream()
.filter(v -> Objects.isNull(request.getWalletType()) || request.getWalletType().equals(v.getWalletType()))
.map(v -> {
AccountInfoVO vo = BeanUtil.toBean(v, AccountInfoVO.class);
- String key = MessageFormat.format(RedisConstant.WALLET_OPEN_FAIL, storeId, String.valueOf(v.getWalletType()));
+ String key = MessageFormat.format(RedisConstant.WALLET_OPEN_FAIL, finalStoreId, String.valueOf(v.getWalletType()));
vo.setFailReason(redisUtilPool.getString(key));
return vo;
}).collect(Collectors.toList());
diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCBuildInformationController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCBuildInformationController.java
index 2a4d8b80a..209705ec7 100644
--- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCBuildInformationController.java
+++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCBuildInformationController.java
@@ -52,4 +52,10 @@ public class PCBuildInformationController {
LoginUserInfo user = CurrentUserHolder.getUser();
return ResponseResult.success(buildInformationService.operationsConsultantAudit(request, user));
}
+
+ @ApiOperation("开票信息选择企业时校验")
+ @GetMapping("/companyInvoiceVerify")
+ public ResponseResult companyInvoiceVerify(@RequestParam(value = "shopId") Long shopId) {
+ return ResponseResult.success(buildInformationService.companyInvoiceVerify(shopId));
+ }
}
diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniBuildInformationController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniBuildInformationController.java
index a80f9e880..1c244bf42 100644
--- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniBuildInformationController.java
+++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniBuildInformationController.java
@@ -53,4 +53,9 @@ public class MiniBuildInformationController {
return ResponseResult.success(buildInformationService.updateBuildSettler(request,user.getPartnerId()));
}
+ @ApiOperation("开票信息选择企业时校验")
+ @GetMapping("/companyInvoiceVerify")
+ public ResponseResult companyInvoiceVerify(@RequestParam(value = "shopId") Long shopId) {
+ return ResponseResult.success(buildInformationService.companyInvoiceVerify(shopId));
+ }
}