商家入驻,方法优化, fix bug

This commit is contained in:
Jack 2025-06-22 00:58:21 +08:00
parent 241022582c
commit a030b8cd4c
10 changed files with 201 additions and 84 deletions

View File

@ -33,13 +33,13 @@ public class ShopMchEntry implements Serializable {
@TableId(value = "id", type = IdType.INPUT) @TableId(value = "id", type = IdType.INPUT)
private Long id; private Long id;
@ApiModelProperty(value = "入驻商家的登录手机号") @ApiModelProperty(value = "入驻商家的登录手机号", required = true)
private String login_mobile; private String login_mobile;
@ApiModelProperty(value = "商家店铺的ID") @ApiModelProperty(value = "商家店铺的ID")
private String store_id; private String store_id;
@ApiModelProperty(value = "商家店铺的名称") @ApiModelProperty(value = "商家店铺的名称", required = true)
private String store_name; private String store_name;
@ApiModelProperty(value = "商家店铺LOGO图片") @ApiModelProperty(value = "商家店铺LOGO图片")
@ -51,7 +51,7 @@ public class ShopMchEntry implements Serializable {
@ApiModelProperty(value = "入驻商家的联系人姓名") @ApiModelProperty(value = "入驻商家的联系人姓名")
private String contact_name; private String contact_name;
@ApiModelProperty(value = "商家一级主营类目,用数字表示不同类目") @ApiModelProperty(value = "商家一级主营类目,用数字表示不同类目", required = true)
private Integer biz_category; private Integer biz_category;
@ApiModelProperty(value = "商家二级主营类目,用数字表示不同类目") @ApiModelProperty(value = "商家二级主营类目,用数字表示不同类目")
@ -87,16 +87,16 @@ public class ShopMchEntry implements Serializable {
@ApiModelProperty(value = "店铺地区名称,省份/城市/区") @ApiModelProperty(value = "店铺地区名称,省份/城市/区")
private String store_area; private String store_area;
@ApiModelProperty(value = "入驻商家店铺的详细地址") @ApiModelProperty(value = "入驻商家店铺的详细地址", required = true)
private String store_address; private String store_address;
@ApiModelProperty(value = "入驻商家店铺门面正面图片的存储路径") @ApiModelProperty(value = "入驻商家店铺门面正面图片的存储路径", required = true)
private String front_facade_image; private String front_facade_image;
@ApiModelProperty(value = "入驻商家店铺门面环境图片的存储路径") @ApiModelProperty(value = "入驻商家店铺门面环境图片的存储路径", required = true)
private String environment_image; private String environment_image;
@ApiModelProperty(value = "入驻主体类型企业或个人1-企业2-个人;") @ApiModelProperty(value = "入驻主体类型企业或个人1-企业2-个人;", required = true)
private Integer entity_type; private Integer entity_type;
@ApiModelProperty(value = "企业入驻时的营业执照编号") @ApiModelProperty(value = "企业入驻时的营业执照编号")
@ -165,7 +165,7 @@ public class ShopMchEntry implements Serializable {
@ApiModelProperty(value = "个人身份证有效期结束时间") @ApiModelProperty(value = "个人身份证有效期结束时间")
private String individual_id_period_end; private String individual_id_period_end;
@ApiModelProperty(value = "入驻商家的开户银行名称") @ApiModelProperty(value = "入驻商家的开户银行名称", required = true)
private String bank_name; private String bank_name;
@ApiModelProperty(value = "结算账户银行卡图片") @ApiModelProperty(value = "结算账户银行卡图片")
@ -174,22 +174,22 @@ public class ShopMchEntry implements Serializable {
@ApiModelProperty(value = "结算账号省市区编号 省code/市code/区code必填项") @ApiModelProperty(value = "结算账号省市区编号 省code/市code/区code必填项")
private String bank_district; private String bank_district;
@ApiModelProperty(value = "结算银行地区名称,格式: 省份/城市/区") @ApiModelProperty(value = "结算银行地区名称,格式: 省份/城市/区", required = true)
private String bank_area; private String bank_area;
@ApiModelProperty(value = "结算账号类型57-对公 58-对私") @ApiModelProperty(value = "结算账号类型57-对公 58-对私", required = true)
private String account_type; private String account_type;
@ApiModelProperty(value = "结算账户⾏号") @ApiModelProperty(value = "结算账户⾏号", required = true)
private String openning_bank_code; private String openning_bank_code;
@ApiModelProperty(value = "结算账户清算⾏号") @ApiModelProperty(value = "结算账户清算⾏号")
private String clearing_bank_code; private String clearing_bank_code;
@ApiModelProperty(value = "入驻商家的收款账户号码") @ApiModelProperty(value = "入驻商家的收款账户号码", required = true)
private String account_number; private String account_number;
@ApiModelProperty(value = "入驻商家的收款账户姓名") @ApiModelProperty(value = "入驻商家的收款账户姓名", required = true)
private String account_holder_name; private String account_holder_name;
@ApiModelProperty(value = "入驻商家的审批状态1-已通过2-未通过3-待审核4-未申请过5-已提交审核;") @ApiModelProperty(value = "入驻商家的审批状态1-已通过2-未通过3-待审核4-未申请过5-已提交审核;")

View File

@ -316,7 +316,7 @@ public class EsignContractServiceImpl extends BaseServiceImpl<EsignContractMappe
} }
// 更新商家的hasEsigned状态=1 // 更新商家的hasEsigned状态=1
shopMchEntryService.updateMulStatus(esignContract.getMch_mobile(), "", 1, 0, 0, 0, 0); shopMchEntryService.updateMulStatus(esignContract.getMch_mobile(), "", 1, 0, 0, 0, 0, 0, CommonConstant.MCH_APPR_STA_LKL_PADDING);
return new ResponseEntity<>(new JSONObject().put("code", 200).put("msg", "success").toString(), HttpStatus.OK); return new ResponseEntity<>(new JSONObject().put("code", 200).put("msg", "success").toString(), HttpStatus.OK);
} }

View File

@ -1019,7 +1019,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
} }
// 更新商家分账申请状态为已申请hasApplySplit=1 // 更新商家分账申请状态为已申请hasApplySplit=1
shopMchEntryService.updateMulStatus("", merCupNo, 0, 1, 0, 0, 0); shopMchEntryService.updateMulStatus("", merCupNo, 0, 0, 0, 1, 0, 0, CommonConstant.MCH_APPR_STA_LKL_PADDING);
log.debug("商户分账业务申请回调处理成功applyId={}", applyId); log.debug("商户分账业务申请回调处理成功applyId={}", applyId);
return JSONUtil.createObj().put("code", "SUCCESS").put("message", "操作成功!"); return JSONUtil.createObj().put("code", "SUCCESS").put("message", "操作成功!");
@ -1160,7 +1160,7 @@ public class LakalaApiServiceImpl implements LakalaApiService {
} }
// 更新商户分账状态 // 更新商户分账状态
shopMchEntryService.updateMulStatus(mchMobile, "", 0, 0, 1, 0, 0); shopMchEntryService.updateMulStatus(mchMobile, "", 0, 0, 0, 0, 1, 0, CommonConstant.MCH_APPR_STA_LKL_PADDING);
return CommonResult.success(receiver, "创建接收方成功!"); return CommonResult.success(receiver, "创建接收方成功!");
} catch (Exception e) { } catch (Exception e) {
@ -1385,8 +1385,9 @@ public class LakalaApiServiceImpl implements LakalaApiService {
} }
// 7. 成功后更新商户绑定状态为已绑定 // 7. 成功后更新商户绑定状态为已绑定
shopMchEntryService.updateMulStatus("", merCupNo, 0, 0, 0, 1, 0); shopMchEntryService.updateMulStatus("", merCupNo, 0, 0, 0, 0, 0, 1, CommonConstant.MCH_APPR_STA_PASS);
shopMchEntryService.checkMerchEntryFinished("", merCupNo);
// 8. 日志记录并返回成功响应 // 8. 日志记录并返回成功响应
log.debug("商家绑定分账接收方异步通知处理完成merCupNo{}", merCupNo); log.debug("商家绑定分账接收方异步通知处理完成merCupNo{}", merCupNo);
return JSONUtil.createObj().put("code", "SUCCESS").put("message", "操作成功"); return JSONUtil.createObj().put("code", "SUCCESS").put("message", "操作成功");

View File

@ -243,7 +243,7 @@ public class LklLedgerReceiverServiceImpl extends BaseServiceImpl<LklLedgerRecei
boolean success = successCnt > 0; boolean success = successCnt > 0;
if (success) { if (success) {
// 更新多个状态 // 更新多个状态
shopMchEntryService.updateMulStatus("", merCupNo, 0, 0, 1, 0, 0); shopMchEntryService.updateMulStatus("", merCupNo, 0, 0, 0, 0, 1, 0, CommonConstant.MCH_APPR_STA_LKL_PADDING);
} }
return success; return success;

View File

@ -644,7 +644,8 @@ public class LklTkServiceImpl {
Pair<Integer, String> retPair = shopStoreBaseService.merchEntryInfo2StoreInfo(mchMobile, false); Pair<Integer, String> retPair = shopStoreBaseService.merchEntryInfo2StoreInfo(mchMobile, false);
if (retPair.getFirst() > 0) { if (retPair.getFirst() > 0) {
boolean updateSuccess = shopMchEntryService.updateMerchEntryStoreStatus(mchMobile, CommonConstant.Enable); boolean updateSuccess = shopMchEntryService.updateMulStatus(mchMobile, "", 0, 0, 1, 0, 0, 1, CommonConstant.MCH_APPR_STA_LKL_PADDING);
// boolean updateSuccess = shopMchEntryService.updateMerchEntryStoreStatus(mchMobile, CommonConstant.Enable);
if (!updateSuccess) { if (!updateSuccess) {
logger.warn("更新店铺状态失败: mchMobile={}", mchMobile); logger.warn("更新店铺状态失败: mchMobile={}", mchMobile);
} else { } else {

View File

@ -18,7 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.util.Pair; import org.springframework.data.util.Pair;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -40,7 +39,6 @@ public class OrderPayedListener {
// private ShopStorePrinterService shopStorePrinterService; // private ShopStorePrinterService shopStorePrinterService;
// @Autowired // @Autowired
// private MqMessageService mqMessageService; // private MqMessageService mqMessageService;
@Resource
@Autowired @Autowired
private SFExpressApiService sfExpressApiService; private SFExpressApiService sfExpressApiService;
@ -114,7 +112,6 @@ public class OrderPayedListener {
logger.info("顺丰同城下单成功"); logger.info("顺丰同城下单成功");
// 个推推送消息 // 个推推送消息
sfExpressApiService.pushMessageToStoreEmployee(null, orderId, "你有一笔同城订单[" + orderId + "],请及时处理。", ""); sfExpressApiService.pushMessageToStoreEmployee(null, orderId, "你有一笔同城订单[" + orderId + "],请及时处理。", "");

View File

@ -2678,7 +2678,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl<ShopOrderBaseMappe
for (String order_id : order_ids) { for (String order_id : order_ids) {
logger.debug("设置付款状态的单个订单ID:{}", order_id); logger.debug("设置付款状态的单个订单ID:{}", order_id);
String prefix = order_id.substring(0, 2); String prefix = order_id.substring(0, 2);
if ("XX".equals(prefix)) { if ("XX".equalsIgnoreCase(prefix)) {
// 线下消费分佣处理 // 线下消费分佣处理
// 分销功能 // 分销功能
Map params = new HashMap(); Map params = new HashMap();

View File

@ -125,6 +125,15 @@ public interface ShopMchEntryService {
*/ */
ShopMchEntry getShopMerchEntryByMerInnerNo(String merInnerNo); ShopMchEntry getShopMerchEntryByMerInnerNo(String merInnerNo);
/**
* 根据手机号或商户号获取商户入驻信息
*
* @param loginMobile 登录手机号
* @param merchantCupNo 商户号
* @return 商户入驻信息如果不存在则返回 null
*/
ShopMchEntry getShopMerchEntryByMobileOrMerCupNo(String loginMobile, String merchantCupNo);
/** /**
* 根据商家注册的手机号更新合同签署状态和合同下载地址 * 根据商家注册的手机号更新合同签署状态和合同下载地址
* *
@ -205,18 +214,21 @@ public interface ShopMchEntryService {
Boolean updateMerchEntryApprovalByMchId(Long mchId, String mchMobile, Integer approvalStatus, String approvalRemark); Boolean updateMerchEntryApprovalByMchId(Long mchId, String mchMobile, Integer approvalStatus, String approvalRemark);
/** /**
* 根据商户号或商家手机号修改商户分账多个状态 * 根据商户号或商家手机号修改商户入驻信息多个状态
* *
* @param mchMobile * @param merchantMobile 商家手机号
* @param merCupNo * @param merchantCupNo 商户号
* @param hasEcSigned * @param hasEcSigned 是否已签署电子合同
* @param hasApplySplit * @param hasApplyMerchant 是否已申请商户进件
* @param hasApplyReceiver * @param storeStatus 店铺状态
* @param hasBindReceiver * @param hasApplySplit 是否已申请分账
* @param hasApplyMer * @param hasApplyReceiver 是否已申请收款方
* @return * @param hasBindReceiver 是否已绑定收款方
* @param approvalStatus 审批状态
* @return 更新结果true为成功false为失败
*/ */
Boolean updateMulStatus(String mchMobile, String merCupNo, Integer hasEcSigned, Integer hasApplySplit, Integer hasApplyReceiver, Integer hasBindReceiver, Integer hasApplyMer); Boolean updateMulStatus(String merchantMobile, String merchantCupNo, Integer hasEcSigned, Integer hasApplyMerchant, Integer storeStatus,
Integer hasApplySplit, Integer hasApplyReceiver, Integer hasBindReceiver, Integer approvalStatus);
/** /**
* 更新商家入网电子合同结果通知地址 * 更新商家入网电子合同结果通知地址
@ -226,4 +238,13 @@ public interface ShopMchEntryService {
* @return * @return
*/ */
Boolean updateMerchEntryEcResultUrlByMchId(Long mchId, String lklEcResultUrl); Boolean updateMerchEntryEcResultUrlByMchId(Long mchId, String lklEcResultUrl);
/**
* 根据商户手机号和商户号检查商家入驻整个流程是否全部完成
*
* @param merchantMobile 商家手机号
* @param merchantCupNo 商户号
* @return
*/
Boolean checkMerchEntryFinished(String merchantMobile, String merchantCupNo);
} }

View File

@ -869,6 +869,35 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
return recordList.get(0); return recordList.get(0);
} }
/**
* 根据手机号或商户号获取商户入驻信息
*
* @param loginMobile 登录手机号
* @param merchantCupNo 商户号
* @return 商户入驻信息如果不存在则返回 null
*/
@Override
public ShopMchEntry getShopMerchEntryByMobileOrMerCupNo(String loginMobile, String merchantCupNo) {
// 1. 校验手机号和商户号不能同时为空
if (StrUtil.isAllBlank(loginMobile, merchantCupNo)) {
return null;
}
// 2. 构建查询条件
QueryWrapper<ShopMchEntry> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", CommonConstant.Enable).orderByAsc("id");
// 3. 使用 OR 连接手机号和商户号的查询条件只要满足一个条件即可
queryWrapper.and(qw -> qw.eq(StrUtil.isNotBlank(loginMobile), "login_mobile", loginMobile)
.or().eq(StrUtil.isNotBlank(merchantCupNo), "lkl_mer_cup_no", merchantCupNo));
// 4. 执行查询
List<ShopMchEntry> recordList = list(queryWrapper);
// 5. 处理查询结果
return CollectionUtil.isNotEmpty(recordList) ? recordList.get(0) : null;
}
/** /**
* 根据商家注册的手机号更新合同签署状态和合同下载地址 * 根据商家注册的手机号更新合同签署状态和合同下载地址
* *
@ -1184,56 +1213,121 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
} }
} }
/** /**
* 根据商户号或商家手机号修改商户分账多个状态 * 检查商户入驻流程是否全部完成并更新审批状态
* *
* @param mchMobile * @param merchantMobile 商家手机号
* @param merCupNo * @param merchantCupNo 商户号
* @param hasEcSigned * @return 如果全部完成返回 true否则返回 false
* @param hasApplySplit
* @param hasApplyReceiver
* @param hasBindReceiver
* @param hasApplyMer
* @return
*/ */
@Override @Override
public Boolean updateMulStatus(String mchMobile, String merCupNo, Integer hasEcSigned, public Boolean checkMerchEntryFinished(String merchantMobile, String merchantCupNo) {
Integer hasApplySplit, Integer hasApplyReceiver, Integer hasBindReceiver, Integer hasApplyMer) { // 1. 参数校验商户号和商家手机号不能同时为空
// 参数校验 if (StrUtil.isAllBlank(merchantCupNo, merchantMobile)) {
if (StrUtil.isAllBlank(merCupNo, mchMobile)) { log.error("检查商户入驻流程完成状态失败:商户号和商家手机号不能同时为空");
log.error("缺少merCupNo或mchMobile参数");
return false; return false;
} }
UpdateWrapper<ShopMchEntry> updateWrapper = new UpdateWrapper<>(); try {
// 设置查询条件 // 2. 根据手机号或商户号获取商户入驻信息
Optional.ofNullable(mchMobile) ShopMchEntry merchantEntry = getShopMerchEntryByMobileOrMerCupNo(merchantMobile, merchantCupNo);
.filter(StrUtil::isNotBlank) if (merchantEntry == null) {
.ifPresent(mobile -> updateWrapper.eq("login_mobile", mobile)); log.error("检查商户入驻流程完成状态失败:商户不存在, merchantMobile={}, merchantCupNo={}", merchantMobile, merchantCupNo);
Optional.ofNullable(merCupNo) return false;
.filter(StrUtil::isNotBlank) }
.ifPresent(cupNo -> updateWrapper.eq("lkl_mer_cup_no", cupNo));
// 流式构建更新字段 // 3. 检查各项状态是否已完成
Map<String, Integer> fieldMap = new LinkedHashMap<>(); boolean isFinished = CommonConstant.Enable.equals(merchantEntry.getHas_ec_signed())
fieldMap.put("has_ec_signed", hasEcSigned); && CommonConstant.Enable.equals(merchantEntry.getHas_apply_mer())
fieldMap.put("has_apply_split", hasApplySplit); && CommonConstant.Enable.equals(merchantEntry.getStore_status())
fieldMap.put("has_apply_receiver", hasApplyReceiver); && CommonConstant.Enable.equals(merchantEntry.getHas_apply_split())
fieldMap.put("has_bind_receiver", hasBindReceiver); && CommonConstant.Enable.equals(merchantEntry.getHas_apply_receiver())
fieldMap.put("has_apply_mer", hasApplyMer); && CommonConstant.Enable.equals(merchantEntry.getHas_bind_receiver());
// 过滤有效字段并设置 // 4. 如果所有状态都已完成则更新商户入驻信息简化if嵌套
fieldMap.entrySet().stream() if (!isFinished) {
.filter(entry -> entry.getValue() != null && entry.getValue() > 0) return false; // 返回 false表示入驻流程未全部完成
.forEach(entry -> updateWrapper.set(entry.getKey(), entry.getValue())); }
ShopMchEntry merchantEntryUpd = new ShopMchEntry();
merchantEntryUpd.setId(merchantEntry.getId());
merchantEntryUpd.setApproval_status(CommonConstant.MCH_APPR_STA_PASS); // 设置审批状态为已通过
merchantEntryUpd.setApproval_remark("入驻流程已全部完成!"); // 设置审批备注
boolean updateResult = updateById(merchantEntry); // 更新商户入驻信息
if (!updateResult) {
log.error("更新商户入驻信息状态失败, merchantId={}", merchantEntry.getId());
}
return true; // 返回 true表示入驻流程已全部完成
} catch (Exception e) {
// 5. 捕获异常并记录错误日志
log.error("检查商户入驻流程完成状态时发生异常, merchantMobile={}, merchantCupNo={}", merchantMobile, merchantCupNo, e);
return false; // 发生异常时返回 false
}
}
/**
* 根据商户号或商家手机号修改商户入驻信息多个状态
*
* @param merchantMobile 商家手机号
* @param merchantCupNo 商户号
* @param hasEcSigned 是否已签署电子合同
* @param hasApplyMerchant 是否已申请商户进件
* @param storeStatus 店铺状态
* @param hasApplySplit 是否已申请分账
* @param hasApplyReceiver 是否已申请收款方
* @param hasBindReceiver 是否已绑定收款方
* @param approvalStatus 审批状态
* @return 更新结果true为成功false为失败
*/
@Override
public Boolean updateMulStatus(String merchantMobile, String merchantCupNo, Integer hasEcSigned, Integer hasApplyMerchant, Integer storeStatus,
Integer hasApplySplit, Integer hasApplyReceiver, Integer hasBindReceiver, Integer approvalStatus) {
// 1. 参数校验商户号和商家手机号不能同时为空
if (StrUtil.isAllBlank(merchantCupNo, merchantMobile)) {
log.error("更新商户多个状态失败:商户号和商家手机号不能同时为空");
return false;
}
try { try {
// 2. 构建 UpdateWrapper 对象用于构建更新条件
UpdateWrapper<ShopMchEntry> updateWrapper = new UpdateWrapper<>();
// 3. 设置查询条件优先使用商户手机号如果为空则使用商户号
Optional.ofNullable(merchantMobile)
.filter(StrUtil::isNotBlank)
.ifPresent(mobile -> updateWrapper.eq("login_mobile", mobile));
Optional.ofNullable(merchantCupNo)
.filter(StrUtil::isNotBlank)
.ifPresent(cupNo -> updateWrapper.eq("lkl_mer_cup_no", cupNo));
// 4. 构建需要更新的字段和值的映射关系
Map<String, Integer> updateFieldMap = new LinkedHashMap<>();
updateFieldMap.put("approval_status", approvalStatus); // 审批状态
updateFieldMap.put("has_ec_signed", hasEcSigned); // 是否已签署电子合同
updateFieldMap.put("has_apply_mer", hasApplyMerchant); // 是否已申请商户进件
updateFieldMap.put("store_status", storeStatus); // 店铺状态
updateFieldMap.put("has_apply_split", hasApplySplit); // 是否已申请分账
updateFieldMap.put("has_apply_receiver", hasApplyReceiver); // 是否已申请收款方
updateFieldMap.put("has_bind_receiver", hasBindReceiver); // 是否已绑定收款方
// 5. 过滤掉值为 null 或小于等于 0 的字段避免更新无效字段
updateFieldMap.entrySet().stream()
.filter(entry -> entry.getValue() != null && entry.getValue() > 0)
.forEach(entry -> updateWrapper.set(entry.getKey(), entry.getValue()));
// 6. 执行更新操作并返回结果
return update(updateWrapper); return update(updateWrapper);
} catch (Exception e) { } catch (Exception e) {
log.error("更新商家分账业务多个状态失败", e); // 7. 异常处理记录异常信息避免程序中断
return false; log.error("更新商户入驻信息多个状态失败", e);
// 可以选择抛出异常 Spring 事务管理器进行回滚
// throw new RuntimeException("更新商户多个状态失败", e);
return false; // 发生异常时返回 false
} }
} }
} }

View File

@ -3185,21 +3185,24 @@ public class ShopStoreBaseServiceImpl extends BaseServiceImpl<ShopStoreBaseMappe
return Pair.of(0, "新增店铺公司失败"); return Pair.of(0, "新增店铺公司失败");
} }
// shop_store_employee 店铺员工添加管理员
ShopStoreEmployee shopStoreEmployee = new ShopStoreEmployee();
shopStoreEmployee.setStore_id(storeId);
shopStoreEmployee.setUser_id(userId);
shopStoreEmployee.setRights_group_id(""); // 店铺管理员,店铺
shopStoreEmployee.setEmployee_is_admin(CommonConstant.Enable);
shopStoreEmployee.setEmployee_is_kefu(CommonConstant.Enable);
shopStoreEmployeeService.save(shopStoreEmployee);
if (!shopStoreEmployeeService.save(shopStoreEmployee)) {
logger.error("生成店铺:新增店铺员工失败");
if (allowThrown) {
throw new ApiException(I18nUtil._("新增店铺员工失败"));
}
return Pair.of(0, "新增店铺员工失败"); QueryWrapper<ShopStoreEmployee> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id", storeId).eq("user_id", userId);
if (shopStoreEmployeeService.count(queryWrapper) <= 0) {
// shop_store_employee 店铺员工添加管理员
ShopStoreEmployee shopStoreEmployee = new ShopStoreEmployee();
shopStoreEmployee.setStore_id(storeId);
shopStoreEmployee.setUser_id(userId);
shopStoreEmployee.setRights_group_id(""); // 店铺管理员,店铺
shopStoreEmployee.setEmployee_is_admin(CommonConstant.Enable);
shopStoreEmployee.setEmployee_is_kefu(CommonConstant.Enable);
if (!shopStoreEmployeeService.save(shopStoreEmployee)) {
logger.error("生成店铺:新增店铺员工失败");
if (allowThrown) {
throw new ApiException(I18nUtil._("新增店铺员工失败"));
}
return Pair.of(0, "新增店铺员工失败");
}
} }
// 生成店铺的太阳码 2025-03-31 // 生成店铺的太阳码 2025-03-31