3
0
Fork 0

## 空单注册添加去掉产品信息;空单注册添加手机号唯一校验;

This commit is contained in:
cabbage 2025-08-25 11:07:57 +08:00
parent 9cb2b44fac
commit 87a9d48bce
45 changed files with 119 additions and 1459 deletions

View File

@ -2,9 +2,7 @@ package com.hzs.sale.order;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
import com.hzs.common.domain.sale.ext.SaDeliverItemsExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.sale.order.SaOrderItems;
import com.hzs.sale.order.dto.*;
@ -75,15 +73,6 @@ public interface ISaOrderServiceApi {
**/
R<List<SaOrderExt>> selfAddressOrderList(String orderCode, Integer editType, Long memberId, Integer pkCountry);
/**
* 批量保存订单
*
* @param orderList 订单列表需要pk_id
* @param orderItemsList 订单明细列表
* @return
*/
R<?> saveOrderBatch(List<SaOrder> orderList, List<SaOrderItems> orderItemsList);
/**
* 查询注册订单数量
*

View File

@ -2,11 +2,8 @@ package com.hzs.system.base;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.base.ext.BdCubasdocExt;
import com.hzs.common.domain.system.sys.SysCorp;
import com.hzs.system.base.dto.CurrencyDTO;
import java.util.Collection;
import java.util.List;
import java.util.Set;
@ -45,19 +42,6 @@ public interface ICurrencyServiceApi {
*/
R<BdStorehouse> queryBdStorehouseByProvince(Integer province, Integer... type);
/**
* 根据省查询对应的发货仓库
*/
R<BdStorehouse> queryBdStorehouseById(Integer pkId);
/**
* 根据省查询对应的发货仓库
*
* @param provinceList 省列表
* @return
*/
R<List<BdStorehouse>> queryBdStorehouseMapByProvince(Collection<Integer> provinceList);
/**
* 根据id 查询所属历史币种
*
@ -70,23 +54,4 @@ public interface ICurrencyServiceApi {
*/
R<List<CurrencyDTO>> findAll();
/**
* 提供查询供应商的dubbo调用
*/
R<BdCubasdocExt> queryBdCubasdocById(Integer pkId, Integer pkCountry);
/**
* 提供查询供应商的dubbo调用
*/
R<BdCubasdocExt> queryBdCustomerById(Integer pkId, Integer pkCountry);
/**
* 提供查询采购组织的dubbo调用
*/
R<SysCorp> querySysCorp(Integer pkId, Integer pkCountry);
/**
* 根据仓库主键查询仓库
*/
R<List<BdStorehouse>> queryStorehouseByIds(Set<Integer> storehouseIdSet, Integer pkCountry, Integer pkCorp);
}

View File

@ -283,6 +283,19 @@ public interface CuMemberMapper extends BaseMapper<CuMember> {
@Param("checkEmpty") Boolean checkEmpty,
@Param("excludeMemberEmpty") Long excludeMemberEmpty);
/**
* 校验会员编号是否存在
*
* @param phoneList 会员联系方式列表
* @param checkEmpty 是否需要校验批量空单数据
* @param excludeMemberEmpty 排除的批次
* @return
*/
List<MemberCountDTO> checkMemberPhoneExist(@Param("phoneList") Collection<String> phoneList,
@Param("checkEmpty") Boolean checkEmpty,
@Param("excludeMemberEmpty") Long excludeMemberEmpty);
/**
* 查询全部用户
*

View File

@ -488,6 +488,16 @@ public interface ICuMemberService extends IService<CuMember> {
*/
Map<String, Integer> checkMemberCodeExist(Collection<String> codeList, Boolean checkEmpty, Long excludeMemberEmpty);
/**
* 校验会员联系方式是否存在
*
* @param phoneList 会员联系方式列表
* @param checkEmpty 是否需要校验批量空单数据
* @param excludeMemberEmpty 排除的批次
* @return
*/
Map<String, Integer> checkMemberPhoneExist(Collection<String> phoneList, Boolean checkEmpty, Long excludeMemberEmpty);
/**
* 查询全部用户
*

View File

@ -30,7 +30,6 @@ import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.sale.wares.BdWaresAuthority;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.domain.system.config.BdGrade;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
import com.hzs.common.security.service.UserTokenService;
import com.hzs.common.security.utils.SecurityUtils;
@ -77,7 +76,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -2506,6 +2504,19 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
return resultMap;
}
@Override
public Map<String, Integer> checkMemberPhoneExist(Collection<String> phoneList, Boolean checkEmpty, Long excludeMemberEmpty) {
Map<String, Integer> resultMap = new HashMap<>();
List<MemberCountDTO> list = baseMapper.checkMemberPhoneExist(phoneList, checkEmpty, excludeMemberEmpty);
if (CollectionUtil.isNotEmpty(list)) {
for (MemberCountDTO memberCountDTO : list) {
resultMap.put(memberCountDTO.getPhone(), memberCountDTO.getMemberCount());
}
}
return resultMap;
}
@Override
public List<CuMemberExt> findAll() {
return baseMapper.findAll();

View File

@ -12,11 +12,7 @@ import java.util.ArrayList;
import java.util.List;
/**
* @Description: 空单生成会员编号控制器
* @Author: jiang chao
* @Time: 2023/8/29 11:14
* @Classname: CuMemberEmptyCodeController
* @PackageName: com.hzs.member.empty.controller.manage
* 空单生成会员编号控制器
*/
@RequestMapping("/manage/member-empty-code")
@RestController

View File

@ -24,13 +24,11 @@ import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.empty.CuMemberEmpty;
import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductDTO;
import com.hzs.common.security.service.UserTokenService;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.empty.dto.MemberEmptyDetailDTO;
import com.hzs.member.empty.dto.MemberEmptyProductDTO;
import com.hzs.member.empty.param.MemberEmptyAddParam;
import com.hzs.member.empty.param.MemberEmptySignParam;
import com.hzs.member.empty.param.MemberEmptyQueryParam;
@ -220,21 +218,6 @@ public class CuMemberEmptyController extends BaseController {
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM));
}
}
// 选购产品需要校验产品以及地址信息
if (EYesNo.YES.getIntValue() == detail.getProductFlag()) {
if (StringUtils.isAnyEmpty(detail.getRecName(), detail.getRecPhone(), detail.getRecAddress())
|| null == detail.getRecProvince() || null == detail.getRecCity() || CollectionUtil.isEmpty(detail.getProductList())) {
// 缺少参数
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM));
}
for (MemberEmptyProductDTO product : detail.getProductList()) {
if (StringUtils.isAnyEmpty(product.getSpecsName(), product.getSpecsNameId())
|| null == product.getPkProduct() || null == product.getQuantity()) {
// 缺少参数
return AjaxResult.error(TransactionUtils.getContent(CommonMsgConstants.MISSING_PARAM));
}
}
}
}
if (iMemberEmptyService.updateDate(paramList, SecurityUtils.getUserId(), SecurityUtils.getPkCountry())) {
@ -443,10 +426,6 @@ public class CuMemberEmptyController extends BaseController {
detailDTO.setPkCountryVal(emptyDetail.getCountryName());
detailDTO.setPkSettleCountryVal(emptyDetail.getSettleCountryName());
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
// 处理产品信息
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
}
dataList.add(detailDTO);
}
}
@ -496,25 +475,8 @@ public class CuMemberEmptyController extends BaseController {
detailDTO.setOrderTypeVal(cacheMap.get(EnumsPrefixConstants.ORDER_TYPE + emptyDetail.getOrderType()));
detailDTO.setPointStatusVal(cacheMap.get(EnumsPrefixConstants.POINT_STATUS + emptyDetail.getPointStatus()));
detailDTO.setSettlementFlagVal(cacheMap.get(EnumsPrefixConstants.YES_NO + emptyDetail.getSettlementFlag()));
detailDTO.setProductFlagVal(cacheMap.get(EnumsPrefixConstants.YES_NO + emptyDetail.getProductFlag()));
detailDTO.setAutoFlagVal(cacheMap.get(EnumsPrefixConstants.DEALER_YES_NO + emptyDetail.getAutoFlag()));
// 处理产品显示数据
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
// 产品信息拼接
StringBuilder productSb = new StringBuilder();
List<CuMemberEmptyProductDTO> productList = emptyDetail.getProductDTOList();
for (CuMemberEmptyProductDTO productDTO : productList) {
productSb.append(productDTO.getProductName())
.append("(")
.append(productDTO.getSpecsName())
.append(") * ")
.append(productDTO.getQuantity())
.append("; \n");
}
detailDTO.setProductStr(productSb.toString());
}
resultList.add(detailDTO);
}
}
@ -548,11 +510,6 @@ public class CuMemberEmptyController extends BaseController {
for (CuMemberEmptyDetailExt emptyDetail : detailList) {
MemberEmptyDetailDTO detailDTO = BeanUtil.copyProperties(emptyDetail, MemberEmptyDetailDTO.class);
// 处理产品信息
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
}
paramList.add(detailDTO);
}
@ -600,11 +557,6 @@ public class CuMemberEmptyController extends BaseController {
for (CuMemberEmptyDetailExt emptyDetail : detailList) {
MemberEmptyDetailDTO detailDTO = BeanUtil.copyProperties(emptyDetail, MemberEmptyDetailDTO.class);
// 处理产品信息
if (CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
}
paramList.add(detailDTO);
}

View File

@ -11,13 +11,10 @@ import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.member.empty.param.MemberEmptyRegisterQueryParam;
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
import com.hzs.member.empty.service.ICuMemberEmptyService;
import com.hzs.member.empty.vo.MemberEmptyRegisterQueryProductVO;
import com.hzs.member.empty.vo.MemberEmptyRegisterQueryVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -27,14 +24,9 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 空单注册列表控制器
* @Author: jiang chao
* @Time: 2023/7/6 15:06
* @Classname: CuMemberEmptyRegisterController
* @PackageName: com.hzs.member.empty.controller.manage
* 空单注册列表控制器
*/
@RequestMapping("/manage/member-empty-register")
@RestController
@ -43,8 +35,6 @@ public class CuMemberEmptyRegisterController extends BaseController {
@Autowired
private ICuMemberEmptyService iCuMemberEmptyService;
@Autowired
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
@Autowired
private ITransactionCommonService iTransactionCommonService;
/**
@ -66,19 +56,8 @@ public class CuMemberEmptyRegisterController extends BaseController {
startPage();
List<CuMemberEmptyDetailExt> list = iCuMemberEmptyService.emptyRegisterList(param, pkCountry);
if (CollectionUtil.isNotEmpty(list)) {
// 查询空单批次产品信息
Map<Long, List<CuMemberEmptyProductExt>> productMap = iCuMemberEmptyProductService.queryProductList(list.stream().map(CuMemberEmptyDetailExt::getPkId).collect(Collectors.toList()));
for (CuMemberEmptyDetailExt emptyDetailExt : list) {
MemberEmptyRegisterQueryVO queryVO = BeanUtil.copyProperties(emptyDetailExt, MemberEmptyRegisterQueryVO.class);
// 产品数据处理
List<CuMemberEmptyProductExt> emptyProductList = productMap.get(emptyDetailExt.getPkId());
if (CollectionUtil.isNotEmpty(emptyProductList)) {
queryVO.setDetailList(BeanUtil.copyToList(emptyProductList, MemberEmptyRegisterQueryProductVO.class));
}
resultList.add(queryVO);
}
}
@ -105,10 +84,6 @@ public class CuMemberEmptyRegisterController extends BaseController {
List<CuMemberEmptyDetailExt> list = iCuMemberEmptyService.emptyRegisterList(param, pkCountry);
if (CollectionUtil.isNotEmpty(list)) {
// 查询空单批次产品信息
Map<Long, List<CuMemberEmptyProductExt>> productMap = iCuMemberEmptyProductService.queryProductList(list.stream().map(CuMemberEmptyDetailExt::getPkId).collect(Collectors.toList()));
// 获取翻译内容
Map<String, String> cacheMap = iTransactionCommonService.exportEnumTransaction(EPlaceDept.values(), EOrderSource.values(), EOrderType.values(), EDealerYesNo.values());
Map<Integer, String> dbMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE, EnumsPrefixConstants.KEY_AWARD);
@ -123,24 +98,6 @@ public class CuMemberEmptyRegisterController extends BaseController {
queryVO.setOrderSourceVal(cacheMap.get(EnumsPrefixConstants.ORDER_SOURCE + queryVO.getOrderSource()));
queryVO.setOrderTypeVal(cacheMap.get(EnumsPrefixConstants.ORDER_TYPE + queryVO.getOrderType()));
queryVO.setSettlementFlagVal(cacheMap.get(EnumsPrefixConstants.DEALER_YES_NO + queryVO.getSettlementFlag()));
queryVO.setProductFlagVal(cacheMap.get(EnumsPrefixConstants.DEALER_YES_NO + queryVO.getProductFlag()));
// 产品信息拼接
StringBuilder productSb = new StringBuilder();
// 产品信息
List<CuMemberEmptyProductExt> emptyProductList = productMap.get(emptyDetailExt.getPkId());
if (CollectionUtil.isNotEmpty(emptyProductList)) {
for (CuMemberEmptyProductExt emptyProduct : emptyProductList) {
productSb.append(emptyProduct.getProductName())
.append("(")
.append(emptyProduct.getSpecsName())
.append(") * ")
.append(emptyProduct.getQuantity())
.append("; \n");
}
}
queryVO.setProductStr(productSb.toString());
resultList.add(queryVO);
}
}

View File

@ -1,38 +0,0 @@
package com.hzs.member.empty.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Description:
* @Author: jiang chao
* @Time: 2023/7/4 11:36
* @Classname: CuMemberPhoneDTO
* @PackageName: com.hzs.member.empty.dto
*/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class EmptyMemberDTO {
/**
* 联系方式
*/
private String phone;
/**
* 结算国家
*/
private Integer pkSettleCountry;
/**
* 明细数据
*/
private List<EmptyMemberDetailDTO> detailList;
}

View File

@ -1,31 +0,0 @@
package com.hzs.member.empty.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 查询会员明细DTO
* @Author: jiang chao
* @Time: 2023/7/4 11:36
* @Classname: CuMemberPhoneDetailDTO
* @PackageName: com.hzs.member.empty.dto
*/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class EmptyMemberDetailDTO {
/**
* 会员编号
*/
private String memberCode;
/**
* 会员名称
*/
private String memberName;
}

View File

@ -6,7 +6,6 @@ import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* 空单注册明细DTO
@ -173,71 +172,6 @@ public class MemberEmptyDetailDTO {
@Excel(name = "上传业绩")
private BigDecimal transferAchieve;
/**
* 选购产品0=1=
*/
@Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
private Integer productFlag;
/**
* 选购产品显示
*/
@Excel(name = "选购产品")
private String productFlagVal;
/**
* 产品拼装导出使用
*/
@Excel(name = "产品信息")
private String productStr;
/**
* 收货人
*/
@Excel(name = "收货人")
private String recName;
/**
* 联系方式
*/
@Excel(name = "联系方式")
private String recPhone;
/**
*
*/
private Integer recProvince;
/**
*
*/
@Excel(name = "")
private String recProvinceVal;
/**
*
*/
private Integer recCity;
/**
*
*/
@Excel(name = "")
private String recCityVal;
/**
*
*/
private Integer recCounty;
/**
*
*/
@Excel(name = "")
private String recCountyVal;
/**
* 详细地址
*/
@Excel(name = "详细地址")
private String recAddress;
/**
* 是否激活标记0=1=
*/
@ -271,9 +205,4 @@ public class MemberEmptyDetailDTO {
@Excel(name = "生成备注")
private String remark;
/**
* 产品列表
*/
private List<MemberEmptyProductDTO> productList;
}

View File

@ -1,45 +0,0 @@
package com.hzs.member.empty.dto;
import lombok.Data;
/**
* @Description: 空单产品DTO
* @Author: jiang chao
* @Time: 2023/6/19 14:45
* @Classname: CuMemberEmptyProductDTO
* @PackageName: com.hzs.member.empty.dto
*/
@Data
public class MemberEmptyProductDTO {
/**
* 产品ID
*/
private Integer pkProduct;
/**
* 产品编号
*/
private String productCode;
/**
* 产品名称
*/
private String productName;
/**
* 产品规格
*/
private String specsName;
/**
* 产品规格ID
*/
private String specsNameId;
/**
* 产品数量
*/
private Integer quantity;
}

View File

@ -11,9 +11,6 @@ import java.util.List;
/**
* 空单批次 Mapper 接口
*
* @author hzs
* @since 2023-06-16
*/
public interface CuMemberEmptyMapper extends BaseMapper<CuMemberEmpty> {
@ -45,5 +42,4 @@ public interface CuMemberEmptyMapper extends BaseMapper<CuMemberEmpty> {
*/
String queryLastCode();
}

View File

@ -2,46 +2,10 @@ package com.hzs.member.empty.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 空单批次明细产品 Mapper 接口
*
* @author hzs
* @since 2023-08-28
*/
public interface CuMemberEmptyProductMapper extends BaseMapper<CuMemberEmptyProduct> {
/**
* 批量删除会员空单产品
*
* @param emptyProductList 空单产品数据
* @param pkMemberEmpty 空单批次ID
* @param userId 当前会员
* @return
*/
int deleteBatch(@Param("emptyProductList") List<CuMemberEmptyProduct> emptyProductList,
@Param("pkMemberEmpty") Long pkMemberEmpty,
@Param("userId") Long userId);
/**
* 批量插入会员空单产品
*
* @param emptyProductList 空单产品数据
* @param userId 当前会员
* @return
*/
int insertOrUpdateBatch(@Param("emptyProductList") List<CuMemberEmptyProduct> emptyProductList, @Param("userId") Long userId);
/**
* 查询空单明细产品信息列表
*
* @param emptyDetailIdList 空单明细ID列表
* @return
*/
List<CuMemberEmptyProductExt> queryProductList(@Param("emptyDetailIdList") List<Long> emptyDetailIdList);
}

View File

@ -10,9 +10,6 @@ import java.util.List;
/**
* 空单批次明细 服务类
*
* @author hzs
* @since 2023-06-16
*/
public interface ICuMemberEmptyDetailService extends IService<CuMemberEmptyDetail> {

View File

@ -2,44 +2,11 @@ package com.hzs.member.empty.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
import java.util.List;
import java.util.Map;
/**
* 空单批次明细产品 服务类
*
* @author hzs
* @since 2023-08-28
*/
public interface ICuMemberEmptyProductService extends IService<CuMemberEmptyProduct> {
/**
* 批量删除会员空单产品
*
* @param emptyProductList 空单产品数据
* @param pkMemberEmpty 空单批次ID
* @param userId 当前会员
* @return
*/
int deleteBatch(List<CuMemberEmptyProduct> emptyProductList, Long pkMemberEmpty, Long userId);
/**
* 批量插入会员空单产品
*
* @param emptyProductList 空单产品数据
* @param userId 当前会员
* @return
*/
int insertOrUpdateBatch(List<CuMemberEmptyProduct> emptyProductList, Long userId);
/**
* 查询空单明细产品信息列表
*
* @param emptyDetailIdList 空单明细ID列表
* @return
*/
Map<Long, List<CuMemberEmptyProductExt>> queryProductList(List<Long> emptyDetailIdList);
}

View File

@ -9,11 +9,7 @@ import com.hzs.system.sys.dto.LoginUser;
import java.util.List;
/**
* @Description: 空单处理服务
* @Author: jiang chao
* @Time: 2023/6/17 14:07
* @Classname: IMemberEMptyService
* @PackageName: com.hzs.member.empty.service
* 空单处理服务
*/
public interface IMemberEmptyService {

View File

@ -7,14 +7,12 @@ import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.domain.member.empty.CuMemberEmpty;
import com.hzs.common.domain.member.empty.CuMemberEmptyCode;
import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
import com.hzs.member.empty.dto.MemberEmptyDetailDTO;
import com.hzs.member.empty.mapper.CuMemberEmptyDetailMapper;
import com.hzs.member.empty.param.MemberEmptyAddParam;
import com.hzs.member.empty.service.ICuMemberEmptyCodeService;
import com.hzs.member.empty.service.ICuMemberEmptyDetailService;
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
import com.hzs.member.empty.service.ICuMemberEmptyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -25,9 +23,6 @@ import java.util.stream.Collectors;
/**
* 空单批次明细 服务实现类
*
* @author hzs
* @since 2023-06-16
*/
@Service
public class CuMemberEmptyDetailServiceImpl extends ServiceImpl<CuMemberEmptyDetailMapper, CuMemberEmptyDetail> implements ICuMemberEmptyDetailService {
@ -36,8 +31,6 @@ public class CuMemberEmptyDetailServiceImpl extends ServiceImpl<CuMemberEmptyDet
private ICuMemberEmptyService iCuMemberEmptyService;
@Autowired
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
@Autowired
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
@Transactional(rollbackFor = Exception.class)
@Override
@ -92,15 +85,6 @@ public class CuMemberEmptyDetailServiceImpl extends ServiceImpl<CuMemberEmptyDet
codeUpdateWrapper.set(CuMemberEmptyCode::getModifiedTime, nowDate);
iCuMemberEmptyCodeService.update(codeUpdateWrapper);
// 删除空单明细产品
LambdaUpdateWrapper<CuMemberEmptyProduct> productUpdateWrapper = new LambdaUpdateWrapper<>();
productUpdateWrapper.in(CuMemberEmptyProduct::getPkMemberEmptyDetail, detailIdList);
productUpdateWrapper.eq(CuMemberEmptyProduct::getDelFlag, EDelFlag.UN_DELETE.getValue());
productUpdateWrapper.set(CuMemberEmptyProduct::getDelFlag, EDelFlag.DELETE.getValue());
productUpdateWrapper.set(CuMemberEmptyProduct::getPkModified, userId);
productUpdateWrapper.set(CuMemberEmptyProduct::getModifiedTime, nowDate);
iCuMemberEmptyProductService.update(productUpdateWrapper);
// 删除空单明细
LambdaUpdateWrapper<CuMemberEmptyDetail> detailUpdateWrapper = new LambdaUpdateWrapper<>();
detailUpdateWrapper.in(CuMemberEmptyDetail::getPkId, detailIdList);

View File

@ -1,48 +1,16 @@
package com.hzs.member.empty.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt;
import com.hzs.member.empty.mapper.CuMemberEmptyProductMapper;
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 空单批次明细产品 服务实现类
*
* @author hzs
* @since 2023-08-28
*/
@Service
public class CuMemberEmptyProductServiceImpl extends ServiceImpl<CuMemberEmptyProductMapper, CuMemberEmptyProduct> implements ICuMemberEmptyProductService {
@Override
public int deleteBatch(List<CuMemberEmptyProduct> emptyProductList, Long pkMemberEmpty, Long userId) {
return baseMapper.deleteBatch(emptyProductList, pkMemberEmpty, userId);
}
@Override
public int insertOrUpdateBatch(List<CuMemberEmptyProduct> emptyProductList, Long userId) {
return baseMapper.insertOrUpdateBatch(emptyProductList, userId);
}
@Override
public Map<Long, List<CuMemberEmptyProductExt>> queryProductList(List<Long> emptyDetailIdList) {
Map<Long, List<CuMemberEmptyProductExt>> resultMap = new HashMap<>();
List<CuMemberEmptyProductExt> resultList = baseMapper.queryProductList(emptyDetailIdList);
if (CollectionUtil.isNotEmpty(resultList)) {
for (CuMemberEmptyProductExt productExt : resultList) {
resultMap.computeIfAbsent(productExt.getPkMemberEmptyDetail(), k -> new ArrayList<>()).add(productExt);
}
}
return resultMap;
}
}

View File

@ -6,13 +6,11 @@ import com.hzs.common.core.enums.EDelFlag;
import com.hzs.common.core.enums.EOrderPrefix;
import com.hzs.common.domain.member.empty.CuMemberEmpty;
import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
import com.hzs.member.empty.mapper.CuMemberEmptyMapper;
import com.hzs.member.empty.param.MemberEmptyQueryParam;
import com.hzs.member.empty.param.MemberEmptyRegisterQueryParam;
import com.hzs.member.empty.service.ICuMemberEmptyDetailService;
import com.hzs.member.empty.service.ICuMemberEmptyProductService;
import com.hzs.member.empty.service.ICuMemberEmptyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -23,17 +21,12 @@ import java.util.List;
/**
* 空单批次 服务实现类
*
* @author hzs
* @since 2023-06-16
*/
@Service
public class CuMemberEmptyServiceImpl extends ServiceImpl<CuMemberEmptyMapper, CuMemberEmpty> implements ICuMemberEmptyService {
@Autowired
private ICuMemberEmptyDetailService iCuMemberEmptyDetailService;
@Autowired
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
@Override
public List<CuMemberEmpty> queryList(MemberEmptyQueryParam param, Integer pkCountry, Integer systemType) {
@ -62,14 +55,6 @@ public class CuMemberEmptyServiceImpl extends ServiceImpl<CuMemberEmptyMapper, C
emptyDetailUpdateWrapper.set(CuMemberEmptyDetail::getPkModified, userId);
emptyDetailUpdateWrapper.set(CuMemberEmptyDetail::getModifiedTime, nowDate);
iCuMemberEmptyDetailService.update(emptyDetailUpdateWrapper);
// 删除空单产品明细
LambdaUpdateWrapper<CuMemberEmptyProduct> emptyProductUpdateWrapper = new LambdaUpdateWrapper<>();
emptyProductUpdateWrapper.in(CuMemberEmptyProduct::getPkMemberEmpty, pkIdList);
emptyProductUpdateWrapper.set(CuMemberEmptyProduct::getDelFlag, EDelFlag.DELETE.getValue());
emptyProductUpdateWrapper.set(CuMemberEmptyProduct::getPkModified, userId);
emptyProductUpdateWrapper.set(CuMemberEmptyProduct::getModifiedTime, nowDate);
iCuMemberEmptyProductService.update(emptyProductUpdateWrapper);
}
@Override

View File

@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.hzs.common.core.constant.CacheConstants;
import com.hzs.common.core.constant.RabbitMqConstants;
import com.hzs.common.core.constant.SysConstants;
import com.hzs.common.core.constant.msg.CommonMsgConstants;
@ -14,7 +13,6 @@ import com.hzs.common.core.constant.msg.MemberMsgConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.service.RedisService;
import com.hzs.common.core.utils.CommonUtil;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
@ -26,11 +24,6 @@ import com.hzs.common.domain.member.detail.CuMemberGrade;
import com.hzs.common.domain.member.detail.CuMemberLevel;
import com.hzs.common.domain.member.empty.*;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyDetailExt;
import com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductDTO;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.sale.order.SaOrderItems;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.config.BdAccount;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.util.TransactionUtils;
@ -41,10 +34,8 @@ import com.hzs.member.base.service.ICuMemberRegisterService;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.detail.service.ICuMemberLevelService;
import com.hzs.member.empty.dto.MemberEmptyDetailDTO;
import com.hzs.member.empty.dto.MemberEmptyProductDTO;
import com.hzs.member.empty.param.MemberEmptySignParam;
import com.hzs.member.empty.service.*;
import com.hzs.sale.order.ISaOrderServiceApi;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAccountServiceApi;
@ -78,8 +69,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
@Autowired
private ICuMemberEmptyCodeService iCuMemberEmptyCodeService;
@Autowired
private ICuMemberEmptyProductService iCuMemberEmptyProductService;
@Autowired
private ICuMemberEmptyLogService iCuMemberEmptyLogService;
@Autowired
private ICuMemberService iCuMemberService;
@ -101,13 +90,8 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
@DubboReference
IAccountServiceApi iAccountServiceApi;
@DubboReference
ISaOrderServiceApi iSaOrderServiceApi;
@DubboReference
IApprovalServiceApi iApprovalServiceApi;
@Autowired
private RedisService redisService;
@Override
public void importTemplate(List<MemberEmptyDetailDTO> resultList) {
// 会员编号列表导入会员编号去重
@ -187,8 +171,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
CuMemberEmpty memberEmpty = new CuMemberEmpty();
// 空单明细数据
List<CuMemberEmptyDetail> detailList = new ArrayList<>();
// 空单明细产品数据
List<CuMemberEmptyProduct> productList = new ArrayList<>();
// 空单数据
MemberEmptyDetailDTO tmpDetail = resultList.get(0);
@ -200,34 +182,12 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
// 空单明细数据
for (MemberEmptyDetailDTO detailDTO : resultList) {
detailList.add(BeanUtil.copyProperties(detailDTO, CuMemberEmptyDetail.class));
// 产品列表数据
List<MemberEmptyProductDTO> tmpProductList = detailDTO.getProductList();
if (CollectionUtil.isNotEmpty(tmpProductList)) {
for (MemberEmptyProductDTO productDTO : tmpProductList) {
CuMemberEmptyProduct cuMemberEmptyProduct = new CuMemberEmptyProduct();
cuMemberEmptyProduct.setPkMemberEmpty(detailDTO.getPkMemberEmpty());
cuMemberEmptyProduct.setPkMemberEmptyDetail(detailDTO.getPkId());
cuMemberEmptyProduct.setPkProduct(productDTO.getPkProduct());
cuMemberEmptyProduct.setQuantity(productDTO.getQuantity());
cuMemberEmptyProduct.setSpecsName(productDTO.getSpecsName());
cuMemberEmptyProduct.setSpecsNameId(productDTO.getSpecsNameId());
cuMemberEmptyProduct.setPkCountry(pkCountry);
productList.add(cuMemberEmptyProduct);
}
}
}
// 修改空单批次
iCuMemberEmptyService.updateById(memberEmpty);
// 更新空单批次明细
iCuMemberEmptyDetailService.updateBatch(detailList, userId);
// 删除部分空单产品数据
iCuMemberEmptyProductService.deleteBatch(productList, userId, tmpDetail.getPkMemberEmpty());
if (CollectionUtil.isNotEmpty(productList)) {
// 插入或更新空间批次产品
iCuMemberEmptyProductService.insertOrUpdateBatch(productList, userId);
}
return true;
}
@ -264,8 +224,8 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
// 查询会员编号是否存在
Map<String, Integer> checkCodeMap = iCuMemberService.checkMemberCodeExist(checkMemberList, true, pkMemberEmpty);
// // 查询联系方式是否存在
// Map<String, Integer> checkPhoneMap = iCuMemberService.checkMemberPhoneExist(checkPhoneList, true, pkMemberEmpty, systemType);
// 查询联系方式是否存在
Map<String, Integer> checkPhoneMap = iCuMemberService.checkMemberPhoneExist(checkPhoneList, true, pkMemberEmpty);
// 查询推荐编号是否存在在本次推荐数据中的直接排除掉
final Map<String, Integer> checkParentCodeMap = new HashMap<>();
@ -284,6 +244,15 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
bool[0] = false;
}
}
if (checkPhoneMap.size() > 0) {
if (null != checkPhoneMap.get(detail.getPhone()) && checkPhoneMap.get(detail.getPhone()) >= 1) {
// 导入的会员联系方式已经存在数据库中异常状态
detail.setPointStatus(EPointStatus.ABNORMAL.getValue());
// 会员联系方式存在重复
detail.setContentAbstract(detail.getContentAbstract().replace(TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT), "") + TransactionUtils.getContent(MemberMsgConstants.EMPTY_PHONE_NOT) + ";");
bool[0] = false;
}
}
// 处理校验推荐编号是否存在
if (!checkMemberList.contains(detail.getParentCode()) && checkParentCodeMap.get(detail.getParentCode()) == null) {
// 推荐编号不在本次导入的会员中也不在数据库中异常状态
@ -313,8 +282,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
Map<String, Long> memberAccountSeqMap = new HashMap<>();
// 需要查询汇率数据
Set<Integer> queryRateSet = new HashSet<>();
// 需要查询仓库数据
Set<Integer> queryStoreHouseSet = new HashSet<>();
// 需要查询奖金账户数据
Set<Integer> queryAccountSet = new HashSet<>();
@ -323,8 +290,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
// 生成需要入库的会员账户ID列表
List<Long> memberAccountSeqList = iCuMemberAccountService.querySeqList(detailList.size());
// 订单需要生成seq的数量
int orderSeqCount = 0;
// 遍历空单明细数据提取准备的数据
for (int i = 0; i < detailList.size(); i++) {
CuMemberEmptyDetailExt emptyDetail = detailList.get(i);
@ -339,14 +304,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
// 需要查库的汇率数据
queryRateSet.add(emptyDetail.getPkSettleCountry());
// 如果选购产品并且存在产品信息
if (EYesNo.YES.getIntValue() == emptyDetail.getProductFlag() && CollectionUtil.isNotEmpty(emptyDetail.getProductDTOList())) {
// 累计订单数量
orderSeqCount++;
// 记录查询仓库数据
queryStoreHouseSet.add(emptyDetail.getRecProvince());
}
if (null != emptyDetail.getBackAmount() && emptyDetail.getBackAmount().compareTo(BigDecimal.ZERO) > 0) {
// 回调金额大于0记录查询账户国家
queryAccountSet.add(emptyDetail.getPkSettleCountry());
@ -378,18 +335,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
}
}
// 省对应发货仓库key: 省IDvalue: 仓库ID)
Map<Integer, Integer> storehouseMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(queryStoreHouseSet)) {
// 查询省对应仓库
List<BdStorehouse> storehouseList = iCurrencyServiceApi.queryBdStorehouseMapByProvince(queryStoreHouseSet).getData();
if (CollectionUtil.isNotEmpty(storehouseList)) {
for (BdStorehouse storehouse : storehouseList) {
storehouseMap.put(storehouse.getProvince(), storehouse.getPkId());
}
}
}
// 回填金额账户数据key: 国家IDvalue: 账户ID)
Map<Integer, Integer> accountMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(queryAccountSet)) {
@ -402,14 +347,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
}
}
// 生成订单seq数据
List<Long> orderSeqList = new ArrayList<>(orderSeqCount);
if (0 != orderSeqCount) {
orderSeqList = iSaOrderServiceApi.querySeqList(orderSeqCount).getData();
}
// 订单seq数据下标
int orderSeqInt = 0;
////////// 封装入口相关数据开始 //////////
// 当前时间
@ -422,10 +359,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
List<CuMemberRegister> registerMemberList = new ArrayList<>(detailList.size());
// 入库会员账户流水列表
List<CuMemberTrade> saveMemberTradeList = new ArrayList<>();
// 入库订单列表
List<SaOrder> saveOrderList = new ArrayList<>();
// 入库订单明细列表
List<SaOrderItems> saveOrderItemList = new ArrayList<>();
// 查询批次下推荐架构顶点
List<CuMemberEmptyDetailExt> placeTopList = iCuMemberEmptyDetailService.queryPlaceParentTopAndProduct(pkMemberEmpty);
@ -444,15 +377,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
CuMember cuMember = this.createMember(saveMemberList, saveMemberAccountList, registerMemberList, saveMemberTradeList,
memberSeqMap, memberMap, memberAccountSeqMap, treeDetail,
accountMap.get(pkSettleCountry), currencyMap.get(pkSettleCountry), userId, nowDate, systemType);
// 如果选购产品并且存在产品信息
if (EYesNo.YES.getIntValue() == treeDetail.getProductFlag() && CollectionUtil.isNotEmpty(treeDetail.getProductDTOList())) {
// 获取订单ID
Long pkOrder = orderSeqList.get(orderSeqInt++);
this.createOrder(saveOrderList, saveOrderItemList, treeDetail, cuMember,
currencyMap.get(pkSettleCountry), storehouseMap.get(treeDetail.getRecCounty()),
pkOrder, userId, nowDate, systemType);
}
}
}
}
@ -467,15 +391,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
CuMember cuMember = this.createMember(saveMemberList, saveMemberAccountList, registerMemberList, saveMemberTradeList,
memberSeqMap, memberMap, memberAccountSeqMap, topDetail,
accountMap.get(pkSettleCountry), currencyMap.get(pkSettleCountry), userId, nowDate, systemType);
// 如果选购产品并且存在产品信息
if (EYesNo.YES.getIntValue() == topDetail.getProductFlag() && CollectionUtil.isNotEmpty(topDetail.getProductDTOList())) {
// 获取订单ID
Long pkOrder = orderSeqList.get(orderSeqInt++);
this.createOrder(saveOrderList, saveOrderItemList, topDetail, cuMember,
currencyMap.get(pkSettleCountry), storehouseMap.get(topDetail.getRecCounty()),
pkOrder, userId, nowDate, systemType);
}
}
} catch (Exception e) {
log.error("空单注册处理异常", e);
@ -529,14 +444,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
memberEmptyUpdateWrapper.set(CuMemberEmpty::getModifiedTime, nowDate);
iCuMemberEmptyService.update(memberEmptyUpdateWrapper);
// 购买产品订单以及订单明细入库
if (CollectionUtil.isNotEmpty(saveOrderList)) {
R<?> orderResult = iSaOrderServiceApi.saveOrderBatch(saveOrderList, saveOrderItemList);
if (!orderResult.isSuccess()) {
throw new ServiceException("空单注册生成订单异常");
}
}
if (pushLogFlag) {
// 推送业务操作日志
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, Collections.singletonList(logDTO));
@ -710,108 +617,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
return cuMember;
}
/**
* 封装订单以及订单详情数据
*
* @param saveOrderList 入库订单列表
* @param saveOrderItemList 入库订单明细列表
* @param emptyDetail 空单明细数据
* @param cuMember 新会员数据
* @param pkRate 汇率ID
* @param pkStoreHouse 仓库ID
* @param pkOrder 订单ID
* @param userId 当前会员
* @param nowDate 当前时间
*/
private void createOrder(List<SaOrder> saveOrderList, List<SaOrderItems> saveOrderItemList,
CuMemberEmptyDetailExt emptyDetail, CuMember cuMember,
Integer pkRate, Integer pkStoreHouse,
Long pkOrder, Long userId, Date nowDate, Integer systemType) {
// 封装订单信息
SaOrder saOrder = SaOrder.builder()
.pkId(pkOrder)
.orderCode(CommonUtil.createSerialNumber(EOrderPrefix.ORDER_CODE))
.orderType(EOrderType.REGISTER_ORDER.getValue())
.pkRate(pkRate)
.orderAmount(BigDecimal.ZERO)
.orderAchieve(null != emptyDetail.getSettlementAchieve() ? emptyDetail.getSettlementAchieve() : BigDecimal.ZERO)
.uploadAchieve(null != emptyDetail.getTransferAchieve() ? emptyDetail.getTransferAchieve() : BigDecimal.ZERO)
.recName(emptyDetail.getRecName())
.recPhone(emptyDetail.getRecPhone())
.recProvince(emptyDetail.getRecProvince())
.recCity(emptyDetail.getRecCity())
.recCounty(emptyDetail.getRecCounty())
.recAddress(emptyDetail.getRecAddress())
.payTime(nowDate)
.payType(EOrderPayType.WALLET.getValue())
.orderStatus(EPayStatus.PAID.getValue())
.pkMember(emptyDetail.getPkId())
.pkReference(cuMember.getPkParent())
.pkPlacement(cuMember.getPkPlaceParent())
.pkVertex(cuMember.getPkVertex())
.pkStorehouse(pkStoreHouse)
.systemType(systemType)
.build();
saOrder.setPkCountry(emptyDetail.getPkSettleCountry());
saOrder.setPkCreator(userId);
saOrder.setCreationTime(nowDate);
saveOrderList.add(saOrder);
// 产品信息
List<CuMemberEmptyProductDTO> productDTOList = emptyDetail.getProductDTOList();
if (CollectionUtil.isNotEmpty(productDTOList)) {
for (CuMemberEmptyProductDTO productDTO : productDTOList) {
// 封装订单明细停放上
SaOrderItems saOrderItems = SaOrderItems.builder()
.pkOrder(pkOrder)
.pkProduct(productDTO.getPkProduct())
.pkRate(pkRate)
.quantity(productDTO.getQuantity())
.pkGrade(cuMember.getPkSettleGrade())
.pkAwards(cuMember.getPkAwards())
.orderStatus(EOrderStatus.PAY.getValue())
.specsName(productDTO.getSpecsName())
.specsNameId(productDTO.getSpecsNameId())
.waresQuantity(productDTO.getQuantity())
.pkStorehouse(pkStoreHouse)
.build();
saOrderItems.setPkCountry(emptyDetail.getPkSettleCountry());
saOrderItems.setPkCreator(userId);
saOrderItems.setCreationTime(nowDate);
saveOrderItemList.add(saOrderItems);
}
}
}
/**
* 安置位置验证以及锁定
*
* @param emptyDetail 空单明细数据
* @param redisLockList redis锁定列表
* @return
*/
private Long placeLock(CuMemberEmptyDetail emptyDetail, List<String> redisLockList) {
// 查询最末安置人
CuMemberExt cuMemberExt = iCuMemberService.queryLastPlaceByMemberCode(emptyDetail.getPlaceParentCode(), emptyDetail.getPlaceDept());
if (null == cuMemberExt) {
cuMemberExt = iCuMemberService.getMemberByCode(emptyDetail.getPlaceParentCode());
}
// 需要锁安置位置
String redisLock = CacheConstants.POSITION + cuMemberExt.getPkId() + emptyDetail.getPlaceDept();
if (redisService.lockKeyOnce(redisLock)) {
redisLockList.add(redisLock);
return cuMemberExt.getPkId();
}
try {
Thread.sleep(200);
return this.placeLock(emptyDetail, redisLockList);
} catch (Exception e) {
log.error("空单注册锁定安置异常", e);
throw new ServiceException("空单注册锁定安置异常");
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public String submit(MemberEmptySignParam param, List<CuMemberEmptyDetailExt> detailList, LoginUser loginUser) {
@ -901,11 +706,6 @@ public class MemberEmptyServiceImpl implements IMemberEmptyService {
for (CuMemberEmptyDetailExt emptyDetail : detailList) {
MemberEmptyDetailDTO detailDTO = BeanUtil.copyProperties(emptyDetail, MemberEmptyDetailDTO.class);
if (StringUtils.isNotEmpty(emptyDetail.getProductDTOList())) {
// 处理产品信息
detailDTO.setProductList(BeanUtil.copyToList(emptyDetail.getProductDTOList(), MemberEmptyProductDTO.class));
}
paramList.add(detailDTO);
}

View File

@ -1,36 +0,0 @@
package com.hzs.member.empty.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 空单注册列表产品查询VO
* @Author: jiang chao
* @Time: 2023/7/6 17:30
* @Classname: MemberEmptyRegisterQueryProductVO
* @PackageName: com.hzs.member.empty.vo
*/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class MemberEmptyRegisterQueryProductVO {
/**
* 产品名称
*/
private String productName;
/**
* 产品规格名称
*/
private String specsName;
/**
* 产品数量
*/
private Integer quantity;
}

View File

@ -6,14 +6,9 @@ import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @Description: 空单注册列表查询VO
* @Author: jiang chao
* @Time: 2023/7/6 16:02
* @Classname: MemberEmptyRegisterQueryVO
* @PackageName: com.hzs.member.empty.vo
* 空单注册列表查询VO
*/
@Data
public class MemberEmptyRegisterQueryVO {
@ -42,14 +37,6 @@ public class MemberEmptyRegisterQueryVO {
@Excel(name = "联系方式")
private String phone;
/**
* 隶属体系
*/
/**
* 隶属团队
*/
/**
* 推荐编号
*/
@ -163,73 +150,4 @@ public class MemberEmptyRegisterQueryVO {
@Excel(name = "上传业绩")
private BigDecimal transferAchieve;
/**
* 选购产品
*/
@Transaction(transactionKey = EnumsPrefixConstants.DEALER_YES_NO)
private Integer productFlag;
/**
* 选购产品显示
*/
@Excel(name = "选购产品")
private String productFlagVal;
/**
* 产品信息VO
*/
private List<MemberEmptyRegisterQueryProductVO> detailList;
/**
* 产品信息
*/
@Excel(name = "产品信息")
private String productStr;
/**
* 收货人
*/
@Excel(name = "收货人")
private String recName;
/**
* 收货电话
*/
@Excel(name = "收货电话")
private String recPhone;
/**
*
*/
private Integer recProvince;
/**
* 省显示
*/
@Excel(name = "")
private String recProvinceVal;
/**
*
*/
private Integer recCity;
/**
* 市显示
*/
@Excel(name = "")
private String recCityVal;
/**
*
*/
private Integer recCounty;
/**
* 县显示
*/
@Excel(name = "")
private String recCountyVal;
/**
* 详细地址
*/
@Excel(name = "详细地址")
private String recAddress;
}

View File

@ -1534,6 +1534,47 @@
group by tmp.member_code
</select>
<!-- 校验会员联系方式是否存在 -->
<select id="checkMemberPhoneExist" resultType="com.hzs.member.base.dto.MemberCountDTO">
select tmp.phone, count(tmp.phone) member_count
from (
select cm.phone
from cu_member cm
where cm.del_flag = 0
and (cm.phone in ('0'
<foreach collection="phoneList" item="item" close=")" index="index">
<choose>
<when test="index % 500 == 0">) or cm.phone in (#{item}</when>
<otherwise>, #{item}</otherwise>
</choose>
</foreach>
)
<if test="checkEmpty != null and checkEmpty">
<!-- 需要校验批量空单数据 -->
union all
select cmed.phone
from CU_MEMBER_EMPTY_DETAIL cmed
inner join CU_MEMBER_EMPTY cme
on cme.pk_id = cmed.pk_member_empty
and cme.status in (1, 2, 4)
and cme.del_flag = 0
where cmed.del_flag = 0
<if test="excludeMemberEmpty != null">
and cmed.pk_member_empty != #{excludeMemberEmpty}
</if>
and (cmed.phone in ('0'
<foreach collection="phoneList" item="item" close=")" index="index">
<choose>
<when test="index % 500 == 0">) or cmed.phone in (#{item}</when>
<otherwise>, #{item}</otherwise>
</choose>
</foreach>
)
</if>
) tmp
group by tmp.phone
</select>
<select id="findAll" resultMap="MemberResultMap">
select *
from cu_member

View File

@ -46,18 +46,7 @@
<result column="settle_country_name" property="settleCountryName"/>
<result column="pk_grade_key" property="pkGradeKey"/>
<result column="pk_award_key" property="pkAwardKey"/>
<result column="rec_province_val" property="recProvinceVal"/>
<result column="rec_city_val" property="recCityVal"/>
<result column="rec_county_val" property="recCountyVal"/>
<result column="remark" property="remark"/>
<collection property="productDTOList" ofType="com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductDTO">
<result column="pk_product" property="pkProduct"/>
<result column="product_code" property="productCode"/>
<result column="product_name" property="productName"/>
<result column="specs_name" property="specsName"/>
<result column="specs_name_id" property="specsNameId"/>
<result column="quantity" property="quantity"/>
</collection>
</resultMap>
<!-- 查询指定数量SEQ -->

View File

@ -2,117 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.member.empty.mapper.CuMemberEmptyProductMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.member.empty.CuMemberEmptyProduct">
<id column="PK_ID" property="pkId"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_MEMBER_EMPTY" property="pkMemberEmpty"/>
<result column="PK_MEMBER_EMPTY_DETAIL" property="pkMemberEmptyDetail"/>
<result column="PK_PRODUCT" property="pkProduct"/>
<result column="QUANTITY" property="quantity"/>
<result column="SPECS_NAME" property="specsName"/>
<result column="SPECS_NAME_ID" property="specsNameId"/>
</resultMap>
<!-- 批量删除会员空单产品 -->
<update id="deleteBatch">
update cu_member_empty_product cmep
set cmep.del_flag = 0,
cmep.pk_modified = #{userId},
cmep.modified_time = sysdate
where cmep.del_flag = 0
and cmep.pk_member_empty = #{pkMemberEmpty}
and cmep.pk_id in
(select cmep.pk_id
from cu_member_empty_product cmep
where cmep.del_flag = 0
and cmep.pk_member_empty = #{pkMemberEmpty}
<if test="emptyProductList != null and emptyProductList.size > 0">
and (
<foreach collection="emptyProductList" item="item" separator=" or ">
(
cmep.pk_member_empty_detail = #{item.pkMemberEmptyDetail}
and cmep.pk_product = #{item.pkProduct}
and cmep.specs_name_id = #{item.specsNameId}
)
</foreach>
)
</if>
)
</update>
<!-- 批量插入会员空单产品 -->
<insert id="insertOrUpdateBatch">
merge into CU_MEMBER_EMPTY_PRODUCT cmep
using (
<foreach collection="emptyProductList" item="item" separator=" union ">
select
#{item.pkMemberEmpty} PK_MEMBER_EMPTY,
#{item.pkMemberEmptyDetail} PK_MEMBER_EMPTY_DETAIL,
#{item.pkProduct} PK_PRODUCT,
#{item.quantity} QUANTITY,
#{item.specsName} SPECS_NAME,
#{item.specsNameId} SPECS_NAME_ID,
#{item.pkCountry} PK_COUNTRY
from dual
</foreach>
) tmp
on (
cmep.DEL_FLAG = 0
and tmp.PK_MEMBER_EMPTY = cmep.PK_MEMBER_EMPTY
and tmp.PK_MEMBER_EMPTY_DETAIL = cmep.PK_MEMBER_EMPTY_DETAIL
and tmp.PK_PRODUCT = cmep.PK_PRODUCT
and tmp.SPECS_NAME_ID = cmep.SPECS_NAME_ID
)
WHEN MATCHED THEN
update set
cmep.QUANTITY = tmp.QUANTITY,
cmep.SPECS_NAME = tmp.SPECS_NAME,
cmep.PK_MODIFIED = #{userId},
cmep.MODIFIED_TIME = sysdate
WHEN NOT MATCHED THEN
insert (
pk_id,
PK_MEMBER_EMPTY,
PK_MEMBER_EMPTY_DETAIL,
PK_PRODUCT,
QUANTITY,
SPECS_NAME,
SPECS_NAME_ID,
PK_COUNTRY,
PK_CREATOR
)
values (
CU_MEMBER_EMPTY_PRODUCT.Nextval,
tmp.PK_MEMBER_EMPTY,
tmp.PK_MEMBER_EMPTY_DETAIL,
tmp.PK_PRODUCT,
tmp.QUANTITY,
tmp.SPECS_NAME,
tmp.SPECS_NAME_ID,
tmp.PK_COUNTRY,
#{userId}
)
</insert>
<!-- 查询空单明细产品信息列表 -->
<select id="queryProductList" resultType="com.hzs.common.domain.member.empty.ext.CuMemberEmptyProductExt">
select cmep.*, bp.product_name, bp.product_code
from cu_member_empty_product cmep
left join bd_product bp
on bp.pk_id = cmep.pk_product
and bp.del_flag = 0
where cmep.del_flag = 0
and cmep.pk_member_empty_detail in
<foreach collection="emptyDetailIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
order by cmep.pk_member_empty_detail desc
</select>
</mapper>

View File

@ -20,9 +20,6 @@ import java.util.List;
/**
* 销售订单-明细表 Mapper 接口
*
* @author hzs
* @since 2022-08-31
*/
public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
@ -119,33 +116,15 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
* 更新订单明细表将订单明细更改为删除
*
* @param saOrder 订单
* @return: Boolean
* @Author: sui q
* @Date: 2022/10/24 20:48
*/
Integer updateOrderItems(SaOrder saOrder);
/*
* @description:
* @author: sui q
* @date: 2023/7/27 16:16
* @param: null null
*
**/
void updateOrderItemsByMemberList(@Param("memberList") List<Long> memberList, @Param("pkApprove") Long pkApprove,
@Param("currentDateTime") Date currentDateTime);
/**
* 根据主键列表更新订单明细删除部分退的订单
*
* @param pkOrderItemsId 订单明细
* @param pkApprove 审核人
* @param currentDate 更新时间
* @return: Boolean
* @Author: sui q
* @Date: 2023/3/28 11:25
*/
Integer updateOrderItemsById(@Param("pkOrderItemsId") List<Long> pkOrderItemsId, @Param("pkApprove") Long pkApprove, @Param("currentDate") Date currentDate);
/**
* 根据订单ID查询订单明细列表前台使用尽量只查能用到的
*
@ -155,11 +134,7 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
List<SaOrderItemsExt> queryListByOrderId(@Param("orderIdList") List<Long> orderIdList);
/**
* @description: 根据订单ID查询订单商品明细列表
* @author: zhang jing
* @date: 2023/5/29 15:38
* @param: [orderIdList, tOrderIdList]
* @return: java.util.List<com.hzs.common.domain.sale.ext.SaOrderItemsExt>
* 根据订单ID查询订单商品明细列表
**/
List<WaresOrderVo> waresListByOrderId(@Param("orderIdList") List<Long> orderIdList);
@ -171,7 +146,6 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
*/
List<WaresOrderVo> queryWaresListByOrderId(@Param("orderId") Long orderId);
/**
* 根据订单明细ID查询订单明细列表
*
@ -206,11 +180,7 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
List<SaOrderItemsExt> selectByList(@Param("pkOrder") Long pkOrder);
/**
* @description: 根据订单ID查询商品
* @author: zhang jing
* @date: 2023/4/21 18:02
* @param: [canApplyOrderVO]
* @return: java.util.List<com.hzs.sale.order.vo.CanApplyOrderVO>
* 根据订单ID查询商品
**/
List<OrderItemsParam> getOrderItemsParams(@Param("orderIdList") List<Long> orderIdList);
@ -222,14 +192,6 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
*/
List<SaOrderItems> queryDeliverByOrder(@Param("pkOrder") Long pkOrder);
/**
* 批量插入订单明细数据
*
* @param orderItemsList 订单明细数据
* @return
*/
int insertBach(@Param("orderItemsList") List<SaOrderItems> orderItemsList);
/**
* 校验订单商品是否下架
*
@ -260,22 +222,6 @@ public interface SaOrderItemsMapper extends BaseMapper<SaOrderItems> {
*/
List<OrderItemsParam> selectByWaresCodeList(@Param("orderCode") String orderCode);
/**
* 查询新零售购买指定商品数量
*
* @param pkMember 会员ID
* @param waresCodeList 商品编号列表
* @param payTime 支付时间可为null
* @param orderTypeList 订单类型列表
* @param systemType 系统类型可为null
* @return
*/
int getRetailWaresQuantity(@Param("pkMember") Long pkMember,
@Param("waresCodeList") List<String> waresCodeList,
@Param("payTime") Date payTime,
@Param("orderTypeList") List<Integer> orderTypeList,
@Param("systemType") Integer systemType);
/**
* 查询新零售购买指定商品数量
*

View File

@ -83,18 +83,6 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi {
return R.ok(iSaOrderService.selfAddressOrderList(param, memberId, pkCountry));
}
@Override
public R<?> saveOrderBatch(List<SaOrder> orderList, List<SaOrderItems> orderItemsList) {
try {
if (iSaOrderService.insertBach(orderList, orderItemsList) > 0) {
return R.ok();
}
} catch (Exception e) {
log.error("批量插入订单和订单明细异常", e);
}
return R.fail();
}
@Override
public List<MemberFirstOrderDTO> checkMemberIsFirstOrder(List<String> memberCodeList) {
List<MemberFirstOrderVo> memberFirstOrderVos = iSaOrderService.checkMemberIsFirstOrder(memberCodeList);

View File

@ -20,9 +20,6 @@ import java.util.List;
/**
* 销售订单-明细表 服务类
*
* @author hzs
* @since 2022-08-31
*/
public interface ISaOrderItemsService extends IService<SaOrderItems> {
@ -76,32 +73,14 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
* 更新订单明细表将订单明细更改为删除
*
* @param saOrder
* @return: Boolean
* @Author: sui q
* @Date: 2022/10/24 20:48
*/
Boolean updateOrderItems(SaOrder saOrder);
/*
* @description:
* @author: sui q
* @date: 2023/7/27 16:16
* @param: null null
*
**/
void updateOrderItemsByMemberList(List<Long> memberList, Long pkApprove, Date currentDateTime);
/**
* 根据主键列表更新订单明细删除部分退的订单
*
* @param pkOrderItemsId 订单明细
* @param pkApprove 审核人
* @param currentDate 更新时间
* @return: Boolean
* @Author: sui q
* @Date: 2023/3/28 11:25
*/
Boolean updateOrderItemsById(List<Long> pkOrderItemsId, Long pkApprove, Date currentDate);
/**
* 根据订单ID查询订单明细列表
*
@ -111,11 +90,7 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
List<SaOrderItemsExt> queryListByOrderId(List<Long> orderIdList);
/**
* @description: 根据订单id查询订单商品列表
* @author: zhang jing
* @date: 2023/5/29 15:37
* @param: [orderIdList, tOrderIdList]
* @return: java.util.List<com.hzs.common.domain.sale.ext.SaOrderItemsExt>
* 根据订单id查询订单商品列表
**/
List<WaresOrderVo> waresListByOrderId(List<Long> orderIdList);
@ -157,11 +132,7 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
List<SaOrderItemsExt> selectByList(Long pkOrder);
/**
* @description: 根据订单ID查询商品
* @author: zhang jing
* @date: 2023/4/21 18:02
* @param: [canApplyOrderVO]
* @return: java.util.List<com.hzs.sale.order.vo.CanApplyOrderVO>
* 根据订单ID查询商品
**/
List<OrderItemsParam> getOrderItemsParams(@Param("orderIdList") List<Long> orderIdList);
@ -173,14 +144,6 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
*/
List<SaOrderItems> queryDeliverByOrder(Long pkOrder);
/**
* 批量插入订单明细数据
*
* @param orderItemsList 订单明细数据
* @return
*/
int insertBach(List<SaOrderItems> orderItemsList);
/**
* 校验订单商品是否下架
*
@ -228,18 +191,6 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
*/
List<OrderItemsParam> selectByWaresCodeList(String orderCode);
/**
* 查询新零售购买指定商品数量
*
* @param pkMember 会员ID
* @param waresCodeList 商品编号列表
* @param payTime 支付时间可为null
* @param orderTypeList 订单类型列表
* @param systemType 系统类型可为null
* @return
*/
int getRetailWaresQuantity(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType);
/**
* 查询新零售购买指定商品数量
*

View File

@ -537,14 +537,6 @@ public interface ISaOrderService extends IService<SaOrder> {
*/
List<Long> querySeqList(Integer param);
/**
* 批量插入订单数据
*
* @param orderList 订单列表
* @return
*/
int insertBach(List<SaOrder> orderList, List<SaOrderItems> orderItemsList);
/**
* 根据编号查询会员首单
*

View File

@ -64,11 +64,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
baseMapper.updateOrderItemsByMemberList(memberList, pkApprove, currentDateTime);
}
@Override
public Boolean updateOrderItemsById(List<Long> pkOrderItemsId, Long pkApprove, Date currentDate) {
return baseMapper.updateOrderItemsById(pkOrderItemsId, pkApprove, currentDate) > 0;
}
@Override
public List<SaOrderItemsExt> queryListByOrderId(List<Long> orderIdList) {
return baseMapper.queryListByOrderId(orderIdList);
@ -94,32 +89,16 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
return baseMapper.selectByInvestmentList(waresOrderParam);
}
/**
* 定时关闭订单
*/
@Override
public void closeOrder(Integer pkCountry, String data, Integer orderType) {
baseMapper.closeOrder(pkCountry, data, orderType);
}
/**
* 根据订单主键查询信息
*
* @param pkOrder
* @return
*/
@Override
public List<SaOrderItemsExt> selectByList(Long pkOrder) {
return baseMapper.selectByList(pkOrder);
}
/**
* @description: 根据订单ID查询商品
* @author: zhang jing
* @date: 2023/4/21 18:02
* @param: [canApplyOrderVO]
* @return: java.util.List<com.hzs.sale.order.vo.CanApplyOrderVO>
**/
@Override
public List<OrderItemsParam> getOrderItemsParams(List<Long> orderIdList) {
return baseMapper.getOrderItemsParams(orderIdList);
@ -130,11 +109,6 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
return baseMapper.queryDeliverByOrder(pkOrder);
}
@Override
public int insertBach(List<SaOrderItems> orderItemsList) {
return baseMapper.insertBach(orderItemsList);
}
@Override
public int checkOrderItemsPutOn(String orderCode) {
return baseMapper.checkOrderItemsPutOn(orderCode);
@ -175,22 +149,11 @@ public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaO
return baseMapper.copyDeductionItems(pkOrderOld, pkOrderNew, userId, nowDate);
}
/**
* 根据订单编号查询订单项
*
* @param orderCode
* @return
*/
@Override
public List<OrderItemsParam> selectByWaresCodeList(String orderCode) {
return baseMapper.selectByWaresCodeList(orderCode);
}
@Override
public int getRetailWaresQuantity(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
return baseMapper.getRetailWaresQuantity(pkMember, waresCodeList, payTime, orderTypeList, systemType);
}
@Override
public BigDecimal getRetailWaresQuantityNew(Long pkMember, List<String> waresCodeList, Date payTime, List<Integer> orderTypeList, Integer systemType) {
return baseMapper.getRetailWaresQuantityNew(pkMember, waresCodeList, payTime, orderTypeList, systemType);

View File

@ -1715,16 +1715,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return baseMapper.querySeqList(param);
}
@Transactional(rollbackFor = Exception.class)
@Override
public int insertBach(List<SaOrder> orderList, List<SaOrderItems> orderItemsList) {
int i = baseMapper.insertBach(orderList);
if (i > 0 && CollectionUtil.isNotEmpty(orderItemsList)) {
iSaOrderItemsService.insertBach(orderItemsList);
}
return i;
}
@Override
public List<MemberFirstOrderVo> checkMemberIsFirstOrder(List<String> memberCodeList) {
return baseMapper.checkMemberIsFirstOrder(memberCodeList);

View File

@ -660,16 +660,6 @@
and pk_order = #{pkId}
and del_flag = 0
</update>
<update id="updateOrderItemsById">
update SA_ORDER_ITEMS
set del_flag = 1,
pk_modified=#{pkApprove},
modified_time=#{currentDate}
where del_flag = 0 and pk_id in
<foreach collection="pkOrderItemsId" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</update>
<!-- 根据订单ID查询订单明细列表前台使用尽量只查能用到的 -->
<select id="queryListByOrderId" resultType="com.hzs.common.domain.sale.ext.SaOrderItemsExt">
@ -1021,26 +1011,6 @@
and soi.pk_order = #{pkOrder}
</select>
<!-- 批量插入订单明细数据 -->
<insert id="insertBach">
INSERT ALL
<foreach collection="orderItemsList" item="item" separator=" ">
into SA_ORDER_ITEMS (
PK_ORDER, PK_PRODUCT, QUANTITY, PK_RATE,
PK_GRADE, PK_AWARDS, ORDER_STATUS,
SPECS_NAME, SPECS_NAME_ID, WARES_QUANTITY,
PK_CREATOR, CREATION_TIME, PK_COUNTRY
)
values (
#{item.pkOrder}, #{item.pkProduct}, #{item.quantity}, #{item.pkRate, jdbcType=NUMERIC},
#{item.pkGrade}, #{item.pkAwards}, #{item.orderStatus},
#{item.specsName}, #{item.specsNameId}, #{item.waresQuantity},
#{item.pkCreator}, #{item.creationTime}, #{item.pkCountry}
)
</foreach>
SELECT 1 FROM dual
</insert>
<!-- 校验订单商品是否下架 -->
<select id="checkOrderItemsPutOn" resultType="int">
select count(1)
@ -1130,35 +1100,6 @@
and so.ORDER_CODE = #{orderCode}
</select>
<!-- 查询新零售购买指定商品数量 -->
<select id="getRetailWaresQuantity" resultType="int">
select nvl(sum(soi.wares_quantity), 0) wares_quantity
from sa_order so
left join sa_order_items soi
on soi.pk_order = so.pk_id
and soi.del_flag = 0
and soi.is_gift = 1
left join bd_wares bw
on bw.pk_id = soi.pk_wares
where so.del_flag = 0
and so.order_status = 1
and so.pk_member = #{pkMember}
<if test="systemType != null">
and so.system_type = #{systemType}
</if>
and so.order_type in
<foreach collection="orderTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and bw.wares_code in
<foreach collection="waresCodeList" item="items" open="(" close=")" separator=",">
#{items}
</foreach>
<if test="payTime != null">
and so.pay_time > #{payTime}
</if>
</select>
<!-- 查询新零售购买指定商品数量(新) -->
<select id="getRetailWaresQuantityNew" resultType="decimal">
select sum(so.box_num) wares_quantity

View File

@ -6,42 +6,21 @@ import com.hzs.common.domain.system.base.BdStorehouseAreaMiddle;
import com.hzs.system.base.vo.BdStorehouseAreaMiddleVO;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
/**
* <p>
* 仓库地区中间表 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-05-05
*/
public interface BdStorehouseAreaMiddleMapper extends BaseMapper<BdStorehouseAreaMiddle> {
/**
* @description: 查询地区绑定仓库列表
* @author: zhang jing
* @date: 2023/5/5 20:09
* @param: [storehouseAreaMiddleVO]
* @return: java.util.List<com.hzs.system.base.vo.BdStorehouseAreaMiddleVO>
* 查询地区绑定仓库列表
**/
List<BdStorehouseAreaMiddleVO> getBdStorehouseAreaMiddleList(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
/*
* @description: 根据省查询对应的发货仓库
* @author: sui q
* @date: 2023/5/8 14:22
* @param: null null
* 根据省查询对应的发货仓库
**/
List<BdStorehouse> queryBdStorehouseByProvince(@Param("province") Integer province, @Param("type") Integer type);
/**
* 批量查询省对应仓库列表
*
* @param provinceList 省列表
* @return
*/
List<BdStorehouse> queryStorehouseListByProvince(@Param("provinceList") Collection<Integer> provinceList);
}

View File

@ -1,20 +1,13 @@
package com.hzs.system.base.provider;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.common.core.domain.R;
import com.hzs.common.domain.system.base.BdCurrency;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.base.ext.BdCubasdocExt;
import com.hzs.common.domain.system.sys.SysCorp;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.base.param.BdCubasdocParam;
import com.hzs.system.base.service.IBdCubasdocService;
import com.hzs.system.base.service.IBdCurrencyService;
import com.hzs.system.base.service.IBdStorehouseAreaMiddleService;
import com.hzs.system.base.service.IBdStorehouseService;
import com.hzs.system.sys.service.ISysCorpService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
@ -28,12 +21,6 @@ public class CurrencyServiceProvider implements ICurrencyServiceApi {
private IBdCurrencyService currencyService;
@Autowired
private IBdStorehouseAreaMiddleService storehouseAreaMiddleService;
@Autowired
private IBdCubasdocService bdCubasdocService;
@Autowired
private ISysCorpService sysCorpService;
@Autowired
private IBdStorehouseService storehouseService;
@Override
public R<CurrencyDTO> getCurrency(Integer pkCountry) {
@ -76,16 +63,6 @@ public class CurrencyServiceProvider implements ICurrencyServiceApi {
return R.ok(storehouseAreaMiddleService.queryBdStorehouseByProvince(province, storeType));
}
@Override
public R<BdStorehouse> queryBdStorehouseById(Integer pkId) {
return R.ok(storehouseService.getById(pkId));
}
@Override
public R<List<BdStorehouse>> queryBdStorehouseMapByProvince(Collection<Integer> provinceList) {
return R.ok(storehouseAreaMiddleService.queryStorehouseListByProvince(provinceList));
}
@Override
public R<CurrencyDTO> getByHistoryPkId(Integer currencyId) {
BdCurrency bdCurrency = currencyService.getByHistoryPkid(currencyId);
@ -99,39 +76,4 @@ public class CurrencyServiceProvider implements ICurrencyServiceApi {
return R.ok(currencyDtoList);
}
@Override
public R<BdCubasdocExt> queryBdCubasdocById(Integer pkId, Integer pkCountry) {
BdCubasdocParam cubasdocParam = BdCubasdocParam.builder()
.pkCountry(pkCountry)
.pkId(pkId)
.build();
List<BdCubasdocExt> bdCubasdocList = bdCubasdocService.querySupplierByCondition(cubasdocParam);
if (CollectionUtil.isNotEmpty(bdCubasdocList)) {
return R.ok(bdCubasdocList.get(0));
}
return R.ok(null);
}
@Override
public R<BdCubasdocExt> queryBdCustomerById(Integer pkId, Integer pkCountry) {
BdCubasdocParam customerParam = BdCubasdocParam.builder()
.pkCountry(pkCountry)
.pkId(pkId)
.build();
List<BdCubasdocExt> bdCubasdocList = bdCubasdocService.queryCustomerByCondition(customerParam);
if (CollectionUtil.isNotEmpty(bdCubasdocList)) {
return R.ok(bdCubasdocList.get(0));
}
return R.ok(null);
}
@Override
public R<SysCorp> querySysCorp(Integer pkId, Integer pkCountry) {
return R.ok(sysCorpService.getSysCorp(pkId, pkCountry));
}
@Override
public R<List<BdStorehouse>> queryStorehouseByIds(Set<Integer> storehouseIdSet, Integer pkCountry, Integer pkCorp) {
return R.ok(storehouseService.queryStorehouseByIds(storehouseIdSet, pkCountry, pkCorp));
}
}

View File

@ -1,65 +1,35 @@
package com.hzs.system.base.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.base.BdStorehouseAreaMiddle;
import com.hzs.system.base.vo.BdStorehouseAreaMiddleVO;
import java.util.Collection;
import java.util.List;
/**
* <p>
* 仓库地区中间表 服务类
* </p>
*
* @author hzs
* @since 2023-05-05
*/
public interface IBdStorehouseAreaMiddleService extends IService<BdStorehouseAreaMiddle> {
/**
* @description: 查询地区绑定仓库列表
* @author: zhang jing
* @date: 2023/5/5 20:09
* @param: [storehouseAreaMiddleVO]
* @return: java.util.List<com.hzs.system.base.vo.BdStorehouseAreaMiddleVO>
* 查询地区绑定仓库列表
**/
List<BdStorehouseAreaMiddleVO> getBdStorehouseAreaMiddleList(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
/**
* @description: 新增地区仓库
* @author: zhang jing
* @date: 2023/5/5 20:28
* @param: [storehouseAreaMiddleVO]
* @return: boolean
* 新增地区仓库
**/
boolean intStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
/**
* @description: 修改地区仓库
* @author: zhang jing
* @date: 2023/5/5 20:28
* @param: [storehouseAreaMiddleVO]
* @return: boolean
* 修改地区仓库
**/
boolean upStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO);
/*
* @description: 根据省查询对应的发货仓库
* @author: sui q
* @date: 2023/5/8 14:22
* @param: null null
* 根据省查询对应的发货仓库
**/
BdStorehouse queryBdStorehouseByProvince(Integer province, Integer type);
/**
* 批量查询省对应仓库列表
*
* @param provinceList 省列表
* @return
*/
List<BdStorehouse> queryStorehouseListByProvince(Collection<Integer> provinceList);
}

View File

@ -10,61 +10,34 @@ import com.hzs.system.base.service.IBdStorehouseAreaMiddleService;
import com.hzs.system.base.vo.BdStorehouseAreaMiddleVO;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
/**
* <p>
* 仓库地区中间表 服务实现类
* </p>
*
* @author hzs
* @since 2023-05-05
*/
@Service
public class BdStorehouseAreaMiddleServiceImpl extends ServiceImpl<BdStorehouseAreaMiddleMapper, BdStorehouseAreaMiddle> implements IBdStorehouseAreaMiddleService {
/**
* @description: 查询地区绑定仓库列表
* @author: zhang jing
* @date: 2023/5/5 20:09
* @param: [storehouseAreaMiddleVO]
* @return: java.util.List<com.hzs.system.base.vo.BdStorehouseAreaMiddleVO>
**/
@Override
public List<BdStorehouseAreaMiddleVO> getBdStorehouseAreaMiddleList(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO) {
return baseMapper.getBdStorehouseAreaMiddleList(storehouseAreaMiddleVO);
}
/**
* @description: 新增地区仓库
* @author: zhang jing
* @date: 2023/5/5 20:37
* @param: [storehouseAreaMiddleVO]
* @return: boolean
**/
@Override
public boolean intStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO) {
BdStorehouseAreaMiddle sto= BeanUtil.copyProperties(storehouseAreaMiddleVO, BdStorehouseAreaMiddle.class);
for(Integer i: storehouseAreaMiddleVO.getProvinceList()){
BdStorehouseAreaMiddle sto = BeanUtil.copyProperties(storehouseAreaMiddleVO, BdStorehouseAreaMiddle.class);
for (Integer i : storehouseAreaMiddleVO.getProvinceList()) {
sto.setProvince(i);
baseMapper.insert(sto);
}
return true;
}
/**
* @description: 修改地区仓库
* @author: zhang jing
* @date: 2023/5/5 20:37
* @param: [storehouseAreaMiddleVO]
* @return: boolean
**/
@Override
public boolean upStoArMiddle(BdStorehouseAreaMiddleVO storehouseAreaMiddleVO) {
BdStorehouseAreaMiddle sto= BeanUtil.copyProperties(storehouseAreaMiddleVO, BdStorehouseAreaMiddle.class);
BdStorehouseAreaMiddle sto = BeanUtil.copyProperties(storehouseAreaMiddleVO, BdStorehouseAreaMiddle.class);
sto.setPkStorehouse(storehouseAreaMiddleVO.getPkStorehouse());
for(Integer i: storehouseAreaMiddleVO.getProvinceList()){
for (Integer i : storehouseAreaMiddleVO.getProvinceList()) {
sto.setProvince(i);
baseMapper.updateById(sto);
}
@ -74,15 +47,10 @@ public class BdStorehouseAreaMiddleServiceImpl extends ServiceImpl<BdStorehouseA
@Override
public BdStorehouse queryBdStorehouseByProvince(Integer province, Integer type) {
List<BdStorehouse> bdStorehouseList = baseMapper.queryBdStorehouseByProvince(province, type);
if(CollectionUtil.isNotEmpty(bdStorehouseList)){
if (CollectionUtil.isNotEmpty(bdStorehouseList)) {
return bdStorehouseList.get(0);
}
return null;
}
@Override
public List<BdStorehouse> queryStorehouseListByProvince(Collection<Integer> provinceList) {
return baseMapper.queryStorehouseListByProvince(provinceList);
}
}

View File

@ -2,19 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzs.system.base.mapper.BdStorehouseAreaMiddleMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.hzs.common.domain.system.base.BdStorehouseAreaMiddle">
<id column="PK_ID" property="pkId"/>
<result column="CREATION_TIME" property="creationTime"/>
<result column="MODIFIED_TIME" property="modifiedTime"/>
<result column="DEL_FLAG" property="delFlag"/>
<result column="PK_COUNTRY" property="pkCountry"/>
<result column="PK_CREATOR" property="pkCreator"/>
<result column="PK_MODIFIED" property="pkModified"/>
<result column="PK_STOREHOUSE" property="pkStorehouse"/>
<result column="PROVINCE" property="province"/>
</resultMap>
<resultMap id="BdStorehouseAreaMiddleVO" type="com.hzs.system.base.vo.BdStorehouseAreaMiddleVO">
<id column="PK_ID" property="pkId"/>
<result column="CREATION_TIME" property="creationTime"/>
@ -26,7 +13,6 @@
<result column="provinceVal" property="provinceVal"/>
</resultMap>
<!--查询地区绑定仓库列表-->
<select id="getBdStorehouseAreaMiddleList" parameterType="com.hzs.system.base.vo.BdStorehouseAreaMiddleVO"
resultMap="BdStorehouseAreaMiddleVO">
@ -51,33 +37,19 @@
AND bse.NAME like '%' || #{name} || '%'
</if>
</select>
<select id="queryBdStorehouseByProvince" resultType="com.hzs.common.domain.system.base.BdStorehouse">
select bs.pk_id, bs.name, bs.code,bs.pk_corp
from bd_storehouse bs
inner join bd_storehouse_area_middle bm
on bs.pk_id = bm.pk_storehouse
where bs.del_flag = 0
and bm.del_flag = 0
and bs.enable_state = 0
and bm.province = #{province}
<if test="type != null">
and bs.store_type = #{type}
</if>
</select>
<!-- 批量查询省对应仓库列表 -->
<select id="queryStorehouseListByProvince" resultType="com.hzs.common.domain.system.base.BdStorehouse">
select bs.pk_id, bs.name, bs.code, bm.province
from bd_storehouse bs
inner join bd_storehouse_area_middle bm
on bs.pk_id = bm.pk_storehouse
where bs.del_flag = 0
and bm.del_flag = 0
and bs.enable_state = 0
and bm.province in
<foreach collection="provinceList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and bm.province = #{province}
<if test="type != null">
and bs.store_type = #{type}
</if>
</select>
</mapper>

View File

@ -223,6 +223,10 @@ public class MemberMsgConstants {
* 空单注册导入的会员编号中存在重复 -- 会员编号存在重复
*/
public static final String EMPTY_MEMBER_REPEAT = "会员编号存在重复";
/**
* 空单注册导入的会员联系方式中存在重复 -- 联系方式存在重复
*/
public static final String EMPTY_PHONE_NOT = "联系方式存在重复";
/**
* 空单注册导入的会员编号中存在重复 -- 推荐编号不存在
*/

View File

@ -13,9 +13,6 @@ import lombok.experimental.Accessors;
/**
* 空单批次
*
* @author hzs
* @since 2023-06-16
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -11,9 +11,6 @@ import lombok.experimental.Accessors;
/**
* 空单批次明细产品
*
* @author hzs
* @since 2023-08-28
*/
@Data
@EqualsAndHashCode(callSuper = true)

View File

@ -4,14 +4,8 @@ import com.hzs.common.domain.member.empty.CuMemberEmptyDetail;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @Description: 空单批次明细扩展类
* @Author: jiang chao
* @Time: 2023/7/6 15:33
* @Classname: CuMemberEmptyDetailExt
* @PackageName: com.hzs.common.domain.member.empty.ext
* 空单批次明细扩展类
*/
@EqualsAndHashCode(callSuper = true)
@Data
@ -55,27 +49,9 @@ public class CuMemberEmptyDetailExt extends CuMemberEmptyDetail {
*/
private String awardsVal;
/**
* 省名称
*/
private String recProvinceVal;
/**
* 市名称
*/
private String recCityVal;
/**
* 县名称
*/
private String recCountyVal;
/**
* 生成备注
*/
private String remark;
/**
* 空单明细产品列表
*/
private List<CuMemberEmptyProductDTO> productDTOList;
}

View File

@ -1,45 +0,0 @@
package com.hzs.common.domain.member.empty.ext;
import lombok.Data;
/**
* @Description: 空单批次明细产品展示
* @Author: jiang chao
* @Time: 2023/8/30 10:44
* @Classname: CuMemberEmptyProductOther
* @PackageName: com.hzs.common.domain.member.empty.ext
*/
@Data
public class CuMemberEmptyProductDTO {
/**
* 产品ID
*/
private Integer pkProduct;
/**
* 产品编号
*/
private String productCode;
/**
* 产品名称
*/
private String productName;
/**
* 产品规格名称
*/
private String specsName;
/**
* 产品规格ID
*/
private String specsNameId;
/**
* 产品数量
*/
private Integer quantity;
}

View File

@ -1,30 +0,0 @@
package com.hzs.common.domain.member.empty.ext;
import com.hzs.common.domain.member.empty.CuMemberEmptyProduct;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Description: 空单明细产品扩展
* @Author: jiang chao
* @Time: 2023/8/30 11:51
* @Classname: CuMemberEmptyProductExtt
* @PackageName: com.hzs.common.domain.member.empty.ext
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class CuMemberEmptyProductExt extends CuMemberEmptyProduct {
private static final long serialVersionUID = 2283368663097538169L;
/**
* 产品名称
*/
private String productName;
/**
* 产品编码
*/
private String productCode;
}

View File

@ -10,12 +10,7 @@ import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 仓库地区中间表
* </p>
*
* @author hzs
* @since 2023-05-05
*/
@Data
@EqualsAndHashCode(callSuper = true)