fix(merchant): 允许公寓商家地址为空
| | |
| | | const merchantRules = computed<FormRules>(() => ({ |
| | | merchantName: [{ required: true, message: '请输入商家名称', trigger: 'blur' }], |
| | | contactMobile: [{ required: true, message: '请输入联系电话', trigger: 'blur' }], |
| | | address: [{ required: true, message: '请输入商家地址', trigger: 'blur' }], |
| | | address: isApartmentMerchant.value ? [] : [{ required: true, message: '请输入商家地址', trigger: 'blur' }], |
| | | coverUrl: [{ required: true, message: '请上传商家封面图', trigger: 'change' }], |
| | | businessHours: [{ |
| | | validator: (_rule, _value, callback) => isApprovalMerchant.value || hasValidBusinessHours() |
| | |
| | | |
| | | @Transactional |
| | | public Map<String, Object> createMerchant(MerchantCreateRequest request) { |
| | | validateMerchantAddress(request.merchantType(), request.address()); |
| | | validateScenicMerchantCreate(request); |
| | | jdbcTemplate.update(""" |
| | | insert into merchant(merchant_name, merchant_type, contact_name, contact_mobile, address, |
| | |
| | | return one("select * from merchant where id = ?", id); |
| | | } |
| | | |
| | | void validateMerchantAddress(String merchantType, String address) { |
| | | if (!"公寓租赁".equals(merchantType) && (address == null || address.isBlank())) { |
| | | throw new BusinessException(ErrorCode.BAD_REQUEST, "请输入商家地址"); |
| | | } |
| | | } |
| | | |
| | | private boolean hasMerchantAppAccess(MerchantCreateRequest request) { |
| | | return ("餐饮服务".equals(request.merchantType()) || "景区服务".equals(request.merchantType())) |
| | | && (request.canLoginMerchantApp() == null || request.canLoginMerchantApp() == 1); |
| | |
| | | @NotBlank(message = "请输入联系电话") |
| | | @Size(max = 20) |
| | | String contactMobile, |
| | | @NotBlank(message = "请输入商家地址") |
| | | @Size(max = 255) |
| | | String address, |
| | | String logoUrl, |
| New file |
| | |
| | | package com.talentcard.server.business.admin; |
| | | |
| | | import static org.assertj.core.api.Assertions.assertThatCode; |
| | | import static org.assertj.core.api.Assertions.assertThatThrownBy; |
| | | import static org.mockito.Mockito.mock; |
| | | |
| | | import com.talentcard.server.common.BusinessException; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.jdbc.core.JdbcTemplate; |
| | | |
| | | class AdminBusinessServiceTests { |
| | | |
| | | private final AdminBusinessService service = new AdminBusinessService(mock(JdbcTemplate.class)); |
| | | |
| | | @Test |
| | | void apartmentMerchantAllowsBlankAddress() { |
| | | assertThatCode(() -> service.validateMerchantAddress("公寓租赁", "")) |
| | | .doesNotThrowAnyException(); |
| | | } |
| | | |
| | | @Test |
| | | void otherMerchantTypesStillRequireAddress() { |
| | | assertThatThrownBy(() -> service.validateMerchantAddress("酒店服务", " ")) |
| | | .isInstanceOf(BusinessException.class) |
| | | .hasMessageContaining("请输入商家地址"); |
| | | } |
| | | } |