Compare commits

...

15 Commits

183 changed files with 1650 additions and 4886 deletions

View File

@ -6,12 +6,6 @@ import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
/**
* 自助服务
*
* @Description:
* @Author: ljc
* @Time: 2023/4/19 16:09
* @Classname: ICuSelfServiceServiceApi
* @Package_name: com.hzs.member.self
*/
public interface ICuSelfServiceServiceApi {

View File

@ -108,10 +108,6 @@ public interface ISaOrderServiceApi {
*/
R<?> saveOrderBatch(List<SaOrder> orderList, List<SaOrderItems> orderItemsList);
/* 保存销售订单
**/
R<?> saveOrder(SaOrderExt saOrderExt);
/**
* 查询注册订单数量
*

View File

@ -7,13 +7,6 @@ import com.hzs.system.config.dto.TradeConfigDTO;
import java.util.List;
/**
* @Description:
* @Author: ljc
* @Time: 2023/8/21 15:05
* @Classname: ITradeConfigApi
* @Package_name: com.hzs.system.config
*/
public interface ITradeConfigServiceApi {
/**
@ -32,7 +25,6 @@ public interface ITradeConfigServiceApi {
*/
R<BdTradeWhiteConfig> selectTradeWhiteConfigByCondition(TradeConfigDTO tradeConfigDTO);
/**
* 根据会员ID查询账户白名单
*
@ -42,7 +34,6 @@ public interface ITradeConfigServiceApi {
*/
R<List<Integer>> selectTransferWhiteByPkMember(Long pkMember, Integer pkCountry);
/**
* 查询配置伞下白名单的会员
*
@ -51,5 +42,4 @@ public interface ITradeConfigServiceApi {
*/
R<List<Long>> selectTradeWhiteConfigByUnderBlood(TradeConfigDTO tradeConfigDTO);
}

View File

@ -9,19 +9,15 @@ import java.io.Serializable;
/**
* 交易配置DTO
*
* @Description:
* @Author: ljc
* @Time: 2023/8/21 15:30
* @Classname: TradeConfigDTO
* @Package_name: com.hzs.system.config.dto
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TradeConfigDTO implements Serializable {
private static final long serialVersionUID = -5961829479214505354L;
/**
* 注册等级
*/
@ -30,25 +26,21 @@ public class TradeConfigDTO implements Serializable {
/**
* 真实奖衔
*/
private Integer pkAwards;
/**
* 1:提现 2:转账 (来源枚举EBusinessModule)
*/
private Integer businessModule;
/**
* 实名状态 1:禁止 0允许 (来源枚举EYesNo)
*/
private Integer realNameState;
/**
* 营业执照状态 1:禁止 0允许 (来源枚举EYesNo)
*/
private Integer licenseState;
/**
@ -75,4 +67,5 @@ public class TradeConfigDTO implements Serializable {
* 会员类型 1:正常 2伞下来源枚举ETradeMemberWhite
*/
private Integer memberType;
}

View File

@ -8,11 +8,7 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @Description: 业务操作日志DTO
* @Author: jiang chao
* @Time: 2023/8/2 11:30
* @Classname: BusinessLogDTO
* @PackageName: com.hzs.system.sys.dto
* 业务操作日志DTO
*/
@Builder
@NoArgsConstructor

View File

@ -2,12 +2,9 @@ package com.hzs.third.sms;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EAliSmsTemplate;
import com.hzs.third.sms.dto.SmsServiceDTO;
/**
* 短信服务接口
*
* @author hzs
*/
public interface ISmsServiceApi {

View File

@ -1,57 +0,0 @@
package com.hzs.third.sms.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 短信服务参数DTO
*/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Data
public class SmsServiceDTO implements Serializable {
private static final long serialVersionUID = 9096130356166559652L;
/**
* 短信模板编号 -- 必传
*/
private String templateCode;
/**
* 发送会员ID
*/
private Long pkMember;
/**
* 发送手机号 -- 必传
*/
private String phone;
/**
* 参数列表 -- 根据模板实际参数确定
*/
private List<String> paramList;
/**
* 操作人
*/
private Long userId;
/**
* 操作人所属国家 -- 必传
*/
private Integer pkCountry;
/**
* 是否记录发送日志默认为记录false=不记录日志
*/
private Boolean saveFlag;
}

View File

@ -1,15 +1,17 @@
package com.hzs.member.account.controller.api;
import cn.hutool.core.util.IdcardUtil;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.OssUtil;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.utils.ThreadUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.system.config.BdTradeConfig;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
import com.hzs.common.security.utils.SecurityUtils;
@ -18,7 +20,7 @@ import com.hzs.member.account.service.ICuMemberAuthenticationService;
import com.hzs.member.account.service.ICuMemberBaseService;
import com.hzs.member.account.vo.CuMemberAuthenticationVO;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.sms.service.IApiCodeService;
import com.hzs.member.sms.service.IApiAliSmsService;
import com.hzs.third.idcard.IdCardServiceApi;
import com.hzs.third.idcard.dto.IdCardOcrDTO;
import org.apache.dubbo.config.annotation.DubboReference;
@ -26,7 +28,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
/**
@ -37,7 +38,7 @@ import java.time.format.DateTimeFormatter;
public class ApiCuMemberAuthenticationController extends BaseController {
@Autowired
private IApiCodeService iApiCodeService;
private IApiAliSmsService iApiAliSmsService;
@Autowired
private ICuMemberAuthenticationService iCuMemberAuthenticationService;
@Autowired
@ -48,6 +49,31 @@ public class ApiCuMemberAuthenticationController extends BaseController {
@DubboReference
IdCardServiceApi idCardServiceApi;
/**
* 是否需要实名认证
*
* @param businessModule 1:提现 2:转账 (来源枚举EBusinessModule)
* @return AjaxResult
*/
@GetMapping("/is-auth")
public AjaxResult isAuth(Integer businessModule) {
String flag = EYesNo.YES.getValue();
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
// 是否配置提现转账白名单
BdTradeWhiteConfig bdTradeWhiteConfig = iCuMemberBaseService.selectConfigWhite(pkMember, pkCountry, businessModule);
if (isStopStatus(businessModule, bdTradeWhiteConfig)) {
// 查询配置实名认证
BdTradeConfig bdTradeConfig = iCuMemberBaseService.selectConfigTrade(pkMember, pkCountry, businessModule, EVerificationModule.REAL_NAME);
// 配置后才进行验证
if (null != bdTradeConfig) {
//查询是否已实名认证
CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
flag = null == authenticationVO ? EYesNo.NO.getValue() : EYesNo.YES.getValue();
}
}
return AjaxResult.success().put("flag", flag);
}
/**
* 调用身份证OCR接口
@ -72,7 +98,6 @@ public class ApiCuMemberAuthenticationController extends BaseController {
return AjaxResult.error(result.getMsg());
}
/**
* 调用身份证OCR反面接口
*
@ -100,7 +125,6 @@ public class ApiCuMemberAuthenticationController extends BaseController {
ThreadUtils.threadPoolExecutor.submit(() -> OssUtil.deleteFile(idCardUrl));
}
return AjaxResult.error(result.getMsg());
}
/**
@ -115,65 +139,48 @@ public class ApiCuMemberAuthenticationController extends BaseController {
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
//查询是否已实名
CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
if (null != queryAuthenticationVO) {
return AjaxResult.error(FinanceMsgConstants.MEMBER_REAL_NAME);
}
// 验证码是否为空
String verificationCode = authenticationVO.getVerificationCode();
if (StringUtils.isEmpty(verificationCode)) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY));
}
//真实姓名
// 真实姓名
String accountName = authenticationVO.getAccountName();
if (StringUtils.isEmpty(accountName)) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.REAL_NAME_CANNOT_EMPTY));
}
if (StringUtils.isEmpty(authenticationVO.getIdFront())) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ID_FRONT_CANNOT_EMPTY));
}
if (StringUtils.isEmpty(authenticationVO.getIdBack())) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ID_BACK_CANNOT_EMPTY));
}
if (StringUtils.isEmpty(authenticationVO.getAddress())) {
return AjaxResult.error("详细地址不能为空!");
}
// 查询是否已实名
CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
if (null != queryAuthenticationVO) {
return AjaxResult.error(FinanceMsgConstants.MEMBER_REAL_NAME);
}
// 真实姓名与注册的会员姓名不一致
CuMember member = iCuMemberService.getMember(pkMember);
if (!member.getMemberName().equals(accountName)) {
return AjaxResult.error("真实姓名与会员姓名不一致");
}
String message = iApiCodeService.checkCode(authenticationVO.getPhone(), verificationCode, null);
String message = iApiAliSmsService.checkCode(authenticationVO.getPhone(), verificationCode, null, member.getPkId());
if (null != message) {
return AjaxResult.error(message);
}
// 从身份证获取出生日期
authenticationVO.setBirthDate(DateUtils.parseDateOne(IdcardUtil.getBirthByIdCard(authenticationVO.getIdCard()), DateUtils.YAMMER));
authenticationVO.setPkCountry(pkCountry);
authenticationVO.setPkMember(pkMember);
return toAjax(iCuMemberAuthenticationService.saveAuthentication(authenticationVO));
}
/**
* 是否需要实名认证
*
* @param businessModule 1:提现 2:转账 (来源枚举EBusinessModule)
* @return AjaxResult
*/
@GetMapping("/is-auth")
public AjaxResult isAuth(Integer businessModule) {
String flag = EYesNo.YES.getValue();
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
//查询是否配置了实名认证白名单
BdTradeWhiteConfig bdTradeWhiteConfig = iCuMemberBaseService.selectConfigWhite(pkMember, pkCountry, businessModule);
if (isStopStatus(businessModule, bdTradeWhiteConfig)) {
//查询配置实名认证
BdTradeConfig bdTradeConfig = iCuMemberBaseService.selectConfigTrade(pkMember, pkCountry, businessModule, EVerificationModule.REAL_NAME);
//配置后才进行验证
if (null != bdTradeConfig) {
//查询是否已实名认证
CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
flag = null == authenticationVO ? EYesNo.NO.getValue() : EYesNo.YES.getValue();
}
}
return AjaxResult.success().put("flag", flag);
}
/**
* 查询白名单的配置状态
*
@ -191,7 +198,6 @@ public class ApiCuMemberAuthenticationController extends BaseController {
return businessModule.equals(EBusinessModule.TRANSFER_ACCOUNTS.getValue()) && bdTradeWhiteConfig.getTransferState().equals(EYesNo.NO.getIntValue());
}
/**
* 查看详情
*
@ -205,69 +211,4 @@ public class ApiCuMemberAuthenticationController extends BaseController {
return AjaxResult.success(authenticationVO);
}
/**
* 协议处理校验实名
*
* @return
*/
@GetMapping("/agreement-real-name")
public AjaxResult agreementRealName() {
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
// 查询实名认证信息
CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
if (null != authenticationVO) {
// 存在实名认证信息则返回成功
return AjaxResult.success("", EYesNo.YES.getIntValue());
}
return AjaxResult.success("", EYesNo.YES.getIntValue());
}
/**
* 是否显示续约
*
* @return AjaxResult
*/
@GetMapping("/is-expire")
public AjaxResult isExpire() {
int flag = EYesNo.NO.getIntValue();
Long pkMember = SecurityUtils.getUserId();
CuMemberExt member = iCuMemberService.getMemberById(pkMember);
Integer isRealName = member.getIsRealName();
//未实名
if (isRealName.equals(flag)) {
return AjaxResult.success().put("flag", flag);
}
//到期日期
LocalDate expireDate = member.getExpireDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//到期三个月
LocalDate beforeMonthDate = expireDate.minusMonths(3);
LocalDate localDate = LocalDate.now();
if (localDate.equals(beforeMonthDate) || localDate.isAfter(beforeMonthDate)) {
flag = EYesNo.YES.getIntValue();
}
return AjaxResult.success().put("flag", flag);
}
/**
* 续约
*
* @return AjaxResult
*/
@GetMapping("/renewal_contract")
public AjaxResult renewalContract() {
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
//查询是否已实名
CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
if (null == queryAuthenticationVO) {
return AjaxResult.error(FinanceMsgConstants.MEMBER_NOT_REAL_NAME);
}
return toAjax(iCuMemberAuthenticationService.memberRenewalContract(pkMember));
}
}

View File

@ -7,7 +7,6 @@ import com.hzs.common.core.constant.msg.FinanceMsgConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EBusinessModule;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
@ -20,7 +19,7 @@ import com.hzs.member.account.service.ICuMemberBankService;
import com.hzs.member.account.service.ICuMemberBaseService;
import com.hzs.member.account.service.ICuMemberWithdrawService;
import com.hzs.member.account.vo.CuMemberBankVO;
import com.hzs.member.sms.service.IApiCodeService;
import com.hzs.member.sms.service.IApiAliSmsService;
import com.hzs.third.bankcard.IBankCardServiceApi;
import com.hzs.third.bankcard.dto.BankCardParam;
import org.apache.dubbo.config.annotation.DubboReference;
@ -28,14 +27,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
* 会员银行卡 前端控制器
*
* @author hzs
* @since 2022-09-06
*/
@RestController
@RequestMapping("/api/bank")
@ -44,11 +39,11 @@ public class ApiCuMemberBankController extends BaseController {
@Autowired
private ICuMemberBankService cuMemberBankService;
@Autowired
private IApiCodeService iApiCodeService;
@Autowired
private ICuMemberBaseService iCuMemberBaseService;
@Autowired
private ICuMemberWithdrawService cuMemberWithdrawService;
@Autowired
private IApiAliSmsService iApiAliSmsService;
@DubboReference
IBankCardServiceApi bankCardServiceApi;
@ -151,7 +146,7 @@ public class ApiCuMemberBankController extends BaseController {
String cardNumber = cuMemberBankParam.getCardNumber();
cuMemberBankParam.setCardNumber(StringUtils.deleteWhitespace(cardNumber));
String message = iApiCodeService.checkCode(cuMemberBankParam.getPhone(), verificationCode, null);
String message = iApiAliSmsService.checkCode(cuMemberBankParam.getPhone(), verificationCode, null, pkMember);
if (null != message) {
return AjaxResult.error(message);
}

View File

@ -4,23 +4,16 @@ import cn.hutool.core.bean.BeanUtil;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
import com.hzs.common.core.enums.EApproveStatus;
import com.hzs.common.core.enums.EVerificationModule;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.account.CuMemberBusinessLicense;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.system.config.BdTradeConfig;
import com.hzs.common.domain.system.config.BdTradeWhiteConfig;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.account.service.ICuMemberAuthenticationService;
import com.hzs.member.account.service.ICuMemberBaseService;
import com.hzs.member.account.service.ICuMemberBusinessLicenseService;
import com.hzs.member.account.vo.CuMemberAuthenticationVO;
import com.hzs.member.account.vo.CuMemberBusinessLicenseVO;
import com.hzs.member.base.service.ICuMemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -34,13 +27,9 @@ import java.util.Date;
public class ApiCuMemberBusinessLicenseController extends BaseController {
@Autowired
private ICuMemberBusinessLicenseService cuMemberBusinessLicenseService;
private ICuMemberBusinessLicenseService iCuMemberBusinessLicenseService;
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private ICuMemberBaseService iCuMemberBaseService;
@Autowired
private ICuMemberAuthenticationService authenticationService;
private ICuMemberAuthenticationService iCuMemberAuthenticationService;
/**
@ -57,7 +46,7 @@ public class ApiCuMemberBusinessLicenseController extends BaseController {
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
//查询是否已实名认证
CuMemberAuthenticationVO authenticationVO = authenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
//验证实名认证的真实姓名与法人的姓名是否一致
if (null != authenticationVO) {
String accountName = authenticationVO.getAccountName();
@ -72,11 +61,10 @@ public class ApiCuMemberBusinessLicenseController extends BaseController {
CuMemberBusinessLicense memberBusinessLicense = BeanUtil.copyProperties(businessLicense, CuMemberBusinessLicense.class);
memberBusinessLicense.setApproveStatus(EApproveStatus.ALREADY_SUBMIT.getValue());
memberBusinessLicense.setPkCreator(pkMember);
return toAjax(cuMemberBusinessLicenseService.save(memberBusinessLicense));
return toAjax(iCuMemberBusinessLicenseService.save(memberBusinessLicense));
} else {
return VerifyParameters(businessLicense);
}
}
@ -92,7 +80,7 @@ public class ApiCuMemberBusinessLicenseController extends BaseController {
//参数校验
if (VerifyParameters(businessLicense).equals(AjaxResult.success())) {
//查询是否已实名认证
CuMemberAuthenticationVO authenticationVO = authenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(SecurityUtils.getUserId()).pkCountry(SecurityUtils.getPkCountry()).build());
CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(SecurityUtils.getUserId()).pkCountry(SecurityUtils.getPkCountry()).build());
//验证实名认证的真实姓名与法人的姓名是否一致
if (null != authenticationVO) {
String accountName = authenticationVO.getAccountName();
@ -106,7 +94,7 @@ public class ApiCuMemberBusinessLicenseController extends BaseController {
memberBusinessLicense.setModifiedTime(new Date());
memberBusinessLicense.setPkModified(SecurityUtils.getUserId());
memberBusinessLicense.setApproveStatus(EApproveStatus.ALREADY_SUBMIT.getValue());
return toAjax(cuMemberBusinessLicenseService.updateById(memberBusinessLicense));
return toAjax(iCuMemberBusinessLicenseService.updateById(memberBusinessLicense));
} else {
return VerifyParameters(businessLicense);
}
@ -121,37 +109,9 @@ public class ApiCuMemberBusinessLicenseController extends BaseController {
*/
@GetMapping("/detail")
public AjaxResult showDetail() {
return AjaxResult.success(cuMemberBusinessLicenseService.selectBusinessLicenseById(SecurityUtils.getUserId(), SecurityUtils.getPkCountry()));
return AjaxResult.success(iCuMemberBusinessLicenseService.selectBusinessLicenseById(SecurityUtils.getUserId(), SecurityUtils.getPkCountry()));
}
/**
* 是否上传营业执照
*
* @param businessModule 1:提现 2:转账 (来源枚举EBusinessModule)
* @return AjaxResult
*/
@GetMapping("/is-exist")
public AjaxResult isExistBusinessLicence(Integer businessModule) {
String flag = EYesNo.YES.getValue();
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
//查询配置白名单
BdTradeWhiteConfig bdTradeWhiteConfig = iCuMemberBaseService.selectConfigWhite(pkMember, pkCountry, businessModule);
if (null == bdTradeWhiteConfig) {
//查询是否配置营业执照
BdTradeConfig bdTradeConfig = iCuMemberBaseService.selectConfigTrade(pkMember, pkCountry, businessModule, EVerificationModule.BUSINESS_LICENSE);
//配置后才进行验证
if (null != bdTradeConfig) {
//查询是否完成经销商认证
CuMember cuMember = iCuMemberService.queryMember(pkMember);
flag = null != cuMember && cuMember.getIsDealer().equals(EYesNo.YES.getIntValue()) ? EYesNo.YES.getValue() : EYesNo.NO.getValue();
}
}
return AjaxResult.success().put("flag", flag);
}
/**
* 校验参数
*

View File

@ -1,6 +1,5 @@
package com.hzs.member.account.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.account.CuMemberTransfer;
import com.hzs.common.domain.member.account.CuMemberTransferExt;
@ -9,12 +8,7 @@ import com.hzs.member.account.vo.CuMemberTransferVO;
import java.util.List;
/**
* <p>
* 会员转账表 Mapper 接口
* </p>
*
* @author hzs
* @since 2022-09-06
*/
public interface CuMemberTransferMapper extends BaseMapper<CuMemberTransfer> {

View File

@ -19,14 +19,6 @@ public interface ICuMemberAuthenticationService extends IService<CuMemberAuthent
*/
Boolean saveAuthentication(CuMemberAuthenticationVO authenticationVO);
/**
* 会员续约
*
* @param pkMember 会员ID
* @return Boolean
*/
Boolean memberRenewalContract(Long pkMember);
/**
* 查询实名认证详情
*

View File

@ -9,14 +9,10 @@ import com.hzs.member.handlebusiness.vo.BusinessMemberVO;
import java.util.List;
/**
* <p>
* 会员信息-银行卡信息 服务类
* </p>
*
* @author hzs
* @since 2022-08-31
*/
public interface ICuMemberBankService extends IService<CuMemberBank> {
/**
* 根据主键查询银行卡信息
*
@ -36,8 +32,8 @@ public interface ICuMemberBankService extends IService<CuMemberBank> {
/**
* 解绑银行卡
*
* @param pkId 银行卡ID
* @param pkMember 会员ID
* @param pkId 银行卡ID
* @param pkMember 会员ID
* @return Boolean
*/
Boolean unbindBank(Long pkId, Long pkMember);
@ -50,7 +46,6 @@ public interface ICuMemberBankService extends IService<CuMemberBank> {
*/
Integer saveMemberBank(CuMemberBankParam cuMemberBankParam);
/**
* 查询绑定的银行卡
*

View File

@ -1,24 +1,16 @@
package com.hzs.member.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.account.CuMemberTransfer;
import com.hzs.common.domain.member.account.CuMemberTransferExt;
import com.hzs.common.domain.system.config.BdTransfer;
import com.hzs.member.account.vo.CuMemberTransferVO;
/**
* <p>
* 会员转账表 服务类
* </p>
*
* @author hzs
* @since 2022-09-06
*/
public interface ICuMemberTransferService extends IService<CuMemberTransfer> {
/**
* 是否在血缘线上
*
@ -81,16 +73,15 @@ public interface ICuMemberTransferService extends IService<CuMemberTransfer> {
*/
BdTransfer getBdTransfer(Integer pkCountry);
/**
* 保存转账
*
* @param cuMemberTransfer 转账信息
* @param cuMemberAccount 转出的账户信息
* @param toMemberAccount 转入的账户信息
* @param cuMemberAccount 转出的账户信息
* @param toMemberAccount 转入的账户信息
* @return Integer
*/
Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount,CuMemberAccount toMemberAccount);
Integer saveMemberTransferInfo(CuMemberTransfer cuMemberTransfer, CuMemberAccount cuMemberAccount, CuMemberAccount toMemberAccount);
/**
* 根据条件查询转账列表

View File

@ -1,6 +1,5 @@
package com.hzs.member.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.account.CuMemberWithdraw;
@ -14,14 +13,10 @@ import java.math.BigDecimal;
import java.util.List;
/**
* <p>
* 会员提现表 服务类
* </p>
*
* @author hzs
* @since 2022-09-06
*/
public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
/**
* 根据用户ID查询用户的提现次数
*
@ -63,7 +58,6 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
*/
Integer updateWithdrawByCode(MemberAccountAudit memberAccountAudit);
/**
* 查询列表信息
*
@ -72,7 +66,6 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
*/
Object[] selectMemberWithdrawList(CuMemberWithdrawVO cuMemberWithdrawVO);
/**
* 查询提现信息详情
*
@ -97,7 +90,6 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
*/
Integer withdrawPaymentPositiveByPkId(CuMemberWithdrawVO memberWithdrawVO);
/**
* 获取余额
*
@ -214,6 +206,7 @@ public interface ICuMemberWithdrawService extends IService<CuMemberWithdraw> {
/**
* 提现驳回
*
* @param param
*/
void withdrawReject(CuMemberWithdrawRejectParam param);

View File

@ -3,13 +3,9 @@ package com.hzs.member.account.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.enums.EServiceStatus;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.domain.member.account.CuMemberAuthentication;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.account.mapper.CuMemberAuthenticationMapper;
import com.hzs.member.account.service.ICuMemberAuthenticationService;
import com.hzs.member.account.vo.CuMemberAuthenticationVO;
@ -18,8 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
@ -52,22 +46,7 @@ public class CuMemberAuthenticationServiceImpl extends ServiceImpl<CuMemberAuthe
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getIsRealName, EYesNo.YES.getIntValue());
updateWrapper.set(CuMember::getIdCard, authenticationVO.getIdCard());
updateWrapper.set(CuMember::getMemberName, authenticationVO.getAccountName());
updateWrapper.set(CuMember::getServiceAgreement, EServiceStatus.SIGNED.getValue());
updateWrapper.set(CuMember::getModifiedTime, new Date());
updateWrapper.set(CuMember::getPkModified, pkMember);
updateWrapper.eq(CuMember::getPkId, pkMember);
return iCuMemberService.update(updateWrapper);
}
@Override
public Boolean memberRenewalContract(Long pkMember) {
CuMemberExt member = iCuMemberService.getMemberById(SecurityUtils.getUserId());
//到期日期
LocalDate expireDate = member.getExpireDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getServiceAgreement, EServiceStatus.SIGNED.getValue());
updateWrapper.set(CuMember::getExpireDate, DateUtils.toDate(expireDate.plusYears(1).atStartOfDay()));
updateWrapper.set(CuMember::getBirthDate, authenticationVO.getBirthDate());
updateWrapper.set(CuMember::getModifiedTime, new Date());
updateWrapper.set(CuMember::getPkModified, pkMember);
updateWrapper.eq(CuMember::getPkId, pkMember);

View File

@ -78,7 +78,6 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
return iCurrencyServiceApi.getByHistoryPkId(pkId).getData();
}
@Override
public BdAccount getAccount(Integer pkId) {
return iAccountServiceApi.getAccount(pkId).getData();
@ -95,7 +94,6 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
return awardsKey == null ? pkAccount : awardsKey.getPkTransactionKey();
}
@Override
public Integer getAccountValueById(Integer pkAccount) {
BdAccount bdAccount = getAccount(pkAccount);
@ -121,7 +119,6 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
iCuMemberTradeDetailService.batchInsertMemberTradeDetailFromTrade(sourceCode, cuMemberSettlePeriodByDate.getPkId());
}
@Override
public void handleMemberTradeDetailAndBonus(List<CuMemberAccount> memberAccountList, String sourceCode, Map<Long, Long> idsMap, Integer module) {
//查询充值奖金币的交易流水
@ -135,7 +132,6 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
}
}
@Override
public void handleRepeatMemberTradeDetailAndBonus(List<CuMemberAccountRechargeExt> memberAccountList, Integer module) {
for (CuMemberAccountRechargeExt cuMemberAccount : memberAccountList) {
@ -186,7 +182,6 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
//插入奖金发放流水
iCuMemberTradeBonusService.save(bonus);
}
}
@ -319,11 +314,12 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
@Override
public BdTradeWhiteConfig selectConfigWhite(Long pkMember, Integer pkCountry, Integer businessModule) {
TradeConfigDTO whiteDTO = TradeConfigDTO.builder().pkMember(pkMember).pkCountry(pkCountry).memberType(ETradeMemberWhite.BLOOD_UNDER_UMBRELLA.getValue()).build();
//查询个人配置实名认证白名单
// 查询个人配置实名认证白名单
BdTradeWhiteConfig whiteConfig = tradeConfigServiceApi.selectTradeWhiteConfigByCondition(whiteDTO).getData();
if (null != whiteConfig) {
return whiteConfig;
} else {//查询伞下配置白名单
} else {
// 查询伞下配置白名单
return iCuMemberService.selectMemberByUnderBlood(pkMember, ETradeMemberWhite.BLOOD_UNDER_UMBRELLA.getValue());
}
}
@ -340,7 +336,7 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
} else {
tradeConfigDTO.setLicenseState(EYesNo.YES.getIntValue());
}
//查询配置是否实名认证
// 查询配置是否实名认证
return tradeConfigServiceApi.selectTradeConfigByCondition(tradeConfigDTO).getData();
}
@ -362,7 +358,6 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
return result;
}
@Override
public void operationLogMQ(List<BusinessLogDTO> businessLogDTOList) {
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, businessLogDTOList);
@ -373,7 +368,6 @@ public class CuMemberBaseServiceImpl implements ICuMemberBaseService {
return cuMember.getMemberCode();
}
@Override
public String getMemberNameByVertex(CuMember cuMember) {
return cuMember.getMemberName();

View File

@ -34,32 +34,22 @@ import java.math.RoundingMode;
import java.util.*;
/**
* <p>
* 会员转账表 服务实现类
* </p>
*
* @author hzs
* @since 2022-09-06
*/
@Service
public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMapper, CuMemberTransfer> implements ICuMemberTransferService {
@Autowired
private ICuMemberService cuMemberService;
private ICuMemberService iCuMemberService;
@Autowired
private ICuMemberAccountService cuMemberAccountService;
private ICuMemberAccountService iCuMemberAccountService;
@Autowired
private ICuMemberTradeService cuMemberTradeService;
private ICuMemberTradeService iCuMemberTradeService;
@Autowired
private ICuMemberBaseService iCuMemberBaseService;
@DubboReference
private ITransferServiceApi transferServiceApi;
@Autowired
private ICuMemberBaseService cuMemberBaseService;
ITransferServiceApi iTransferServiceApi;
@Override
public Boolean isBloodLine(Long pkMember, Long toPkMember) {
@ -71,14 +61,13 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
@Override
public BdTransfer getBdTransfer(Integer pkCountry) {
return transferServiceApi.queryTransfer(pkCountry).getData();
return iTransferServiceApi.queryTransfer(pkCountry).getData();
}
@Override
public Boolean isBloodKinshipOnUmbrella(Long pkMember, Long toPkMember) {
//查找血缘伞上推荐人
List<CuMemberExt> cuMemberUp = cuMemberService.queryBloodKinshipOnUmbrella(pkMember);
List<CuMemberExt> cuMemberUp = iCuMemberService.queryBloodKinshipOnUmbrella(pkMember);
Optional<CuMemberExt> upOptional = cuMemberUp.stream().filter(up -> toPkMember.equals(up.getPkId())).findFirst();
return upOptional.isPresent();
}
@ -86,7 +75,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
@Override
public Boolean isBloodKinshipUnderUmbrella(Long pkMember, Long toPkMember) {
//查找血缘伞下推荐人
List<CuMemberExt> cuMemberDown = cuMemberService.queryBloodKinshipUnderUmbrella(pkMember);
List<CuMemberExt> cuMemberDown = iCuMemberService.queryBloodKinshipUnderUmbrella(pkMember);
Optional<CuMemberExt> downOptional = cuMemberDown.stream().filter(down -> toPkMember.equals(down.getPkId())).findFirst();
return downOptional.isPresent();
}
@ -102,14 +91,14 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
@Override
public Boolean isPlaceSponsorOnUmbrella(Long pkMember, Long toPkMember) {
// TODO 此处会查询整颗树会出现问题
List<CuMemberExt> memberPlaceOn = cuMemberService.queryPlaceSponsorOnUmbrella(pkMember);
List<CuMemberExt> memberPlaceOn = iCuMemberService.queryPlaceSponsorOnUmbrella(pkMember);
Optional<CuMemberExt> onPlaceOptional = memberPlaceOn.stream().filter(placeOn -> toPkMember.equals(placeOn.getPkId())).findFirst();
return onPlaceOptional.isPresent();
}
@Override
public Boolean isPlaceSponsorUnderUmbrella(Long pkMember, Long toPkMember) {
List<CuMemberExt> memberPlaceUnder = cuMemberService.queryPlaceSponsorUnderUmbrella(pkMember);
List<CuMemberExt> memberPlaceUnder = iCuMemberService.queryPlaceSponsorUnderUmbrella(pkMember);
Optional<CuMemberExt> underPlaceOptional = memberPlaceUnder.stream().filter(placeUnder -> toPkMember.equals(placeUnder.getPkId())).findFirst();
return underPlaceOptional.isPresent();
}
@ -136,7 +125,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
Integer pkToAccount = cuMemberTransfer.getPkToAccount();
String transferCode = cuMemberTransfer.getTransferCode();
//转出方
if (cuMemberBaseService.getAccountValueById(pkAccount).equals(EAccount.BONUS.getValue())) {
if (iCuMemberBaseService.getAccountValueById(pkAccount).equals(EAccount.BONUS.getValue())) {
memberAccountList = new ArrayList<>();
memberAccountList.add(cuMemberAccount);
idsMap = new HashMap<>();
@ -144,7 +133,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
saveTransferMemberTradeDetailAndBonus(memberAccountList, ETransferType.TRANSFER_OUT.getValue(), transferCode, idsMap);
}
//转入方
if (cuMemberBaseService.getAccountValueById(pkToAccount).equals(EAccount.BONUS.getValue())) {
if (iCuMemberBaseService.getAccountValueById(pkToAccount).equals(EAccount.BONUS.getValue())) {
memberAccountList = new ArrayList<>();
memberAccountList.add(toMemberAccount);
idsMap = new HashMap<>();
@ -163,13 +152,12 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
private void saveTransferMemberTradeDetailAndBonus(List<CuMemberAccount> memberAccountList, Integer type, String businessCode, Map<Long, Long> idsMap) {
//转出方
if (type.equals(ETransferType.TRANSFER_OUT.getValue())) {
cuMemberBaseService.handleMemberTradeDetailAndBonus(memberAccountList, businessCode, idsMap, EConsumeType.TRANSFER.getValue());
iCuMemberBaseService.handleMemberTradeDetailAndBonus(memberAccountList, businessCode, idsMap, EConsumeType.TRANSFER.getValue());
} else {
cuMemberBaseService.saveMemberTradeDetail(businessCode);
iCuMemberBaseService.saveMemberTradeDetail(businessCode);
}
}
/**
* 更新交易流水和余额
*
@ -178,7 +166,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
*/
private Integer updateTradeAndBalancd(CuMemberTransfer cuMemberTransfer, int type) {
CuMemberTrade cuMemberTrade = type == (ETransferType.TRANSFER_OUT.getValue()) ? this.getCuMemberTradeToTransferOut(cuMemberTransfer) : this.getCuMemberTradeToTransferIn(cuMemberTransfer);
cuMemberTradeService.save(cuMemberTrade);
iCuMemberTradeService.save(cuMemberTrade);
//更新余额表
Long pkMember = cuMemberTransfer.getPkMember();
Long toPkMember = cuMemberTransfer.getToPkMember();
@ -192,14 +180,14 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
//转账金额
BigDecimal transferMoney = type == (ETransferType.TRANSFER_OUT.getValue()) ? cuMemberTransfer.getTransferMoney() : cuMemberTransfer.getIssuedAmount();
BigDecimal amount = type == (ETransferType.TRANSFER_OUT.getValue()) ? transferMoney.negate() : transferMoney;
Integer pkAccountValue = cuMemberBaseService.getAccountValueById(pkAccount);
Integer pkAccountValue = iCuMemberBaseService.getAccountValueById(pkAccount);
CuMemberAccountParam param = CuMemberAccountParam.builder().pkMember(memberId)
.accountType(pkAccountValue).amount(amount).pkModified(cuMemberTransfer.getPkCreator())
.accountClassify(ETradeClassify.TRANSFER.getValue()).pkCountry(cuMemberTransfer.getPkCountry())
.transferType(type).build();
return cuMemberAccountService.updateMemberAccountByMemberCode(param);
return iCuMemberAccountService.updateMemberAccountByMemberCode(param);
}
/**
@ -211,15 +199,15 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
private CuMemberTrade getCuMemberTradeToTransferOut(CuMemberTransfer cuMemberTransfer) {
Long pkMember = cuMemberTransfer.getPkMember();
Long toPkMember = cuMemberTransfer.getToPkMember();
CuMember member = cuMemberService.queryMember(pkMember);
CuMember toMember = cuMemberService.queryMember(toPkMember);
CuMember member = iCuMemberService.queryMember(pkMember);
CuMember toMember = iCuMemberService.queryMember(toPkMember);
//提现金额
BigDecimal tradeAmount = cuMemberTransfer.getTransferMoney();
BigDecimal amount = tradeAmount.negate();
int accountType = cuMemberTransfer.getPkAccount();
String tradeCode = CommonUtil.createSerialNumber(EOrderPrefix.TRANSFER_CODE.getValue());
//查询余额
BigDecimal balance = cuMemberAccountService.selectBalanceByMemberCode(pkMember, cuMemberBaseService.getAccountValueById(accountType));
BigDecimal balance = iCuMemberAccountService.selectBalanceByMemberCode(pkMember, iCuMemberBaseService.getAccountValueById(accountType));
CuMemberTrade memberTrade = CuMemberTrade.builder().pkMember(pkMember)
.tradeCode(tradeCode)
.pkAccount(cuMemberTransfer.getPkAccount())
@ -231,7 +219,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
.tradeBalance(balance.add(amount))
.sourceCode(cuMemberTransfer.getTransferCode())
.tradeStatue(ETradeStatus.TAKE_EFFECT.getValue())
.remarks(getTransferRemarks(toMember, member, tradeAmount,ETransferType.TRANSFER_OUT))
.remarks(getTransferRemarks(toMember, member, tradeAmount, ETransferType.TRANSFER_OUT))
.build();
memberTrade.setPkCountry(cuMemberTransfer.getPkCountry());
memberTrade.setPkCreator(cuMemberTransfer.getPkCreator());
@ -248,14 +236,14 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
private CuMemberTrade getCuMemberTradeToTransferIn(CuMemberTransfer cuMemberTransfer) {
Long pkMember = cuMemberTransfer.getPkMember();
Long toPkMember = cuMemberTransfer.getToPkMember();
CuMember member = cuMemberService.queryMember(pkMember);
CuMember toMember = cuMemberService.queryMember(toPkMember);
CuMember member = iCuMemberService.queryMember(pkMember);
CuMember toMember = iCuMemberService.queryMember(toPkMember);
//提现金额
BigDecimal tradeAmount = cuMemberTransfer.getIssuedAmount();
int accountType = cuMemberTransfer.getPkToAccount();
String tradeCode = CommonUtil.createSerialNumber(EOrderPrefix.TRANSFER_CODE.getValue());
//查询余额
BigDecimal balance = cuMemberAccountService.selectBalanceByMemberCode(toPkMember, cuMemberBaseService.getAccountValueById(accountType));
BigDecimal balance = iCuMemberAccountService.selectBalanceByMemberCode(toPkMember, iCuMemberBaseService.getAccountValueById(accountType));
CuMemberTrade memberTrade = CuMemberTrade.builder().pkMember(toPkMember)
.tradeCode(tradeCode)
.pkAccount(cuMemberTransfer.getPkToAccount())
@ -267,7 +255,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
.tradeBalance(balance.add(tradeAmount))
.sourceCode(cuMemberTransfer.getTransferCode())
.tradeStatue(ETradeStatus.TAKE_EFFECT.getValue())
.remarks(getTransferRemarks(member, toMember, tradeAmount,ETransferType.TRANSFER_IN))
.remarks(getTransferRemarks(member, toMember, tradeAmount, ETransferType.TRANSFER_IN))
.build();
memberTrade.setPkCountry(cuMemberTransfer.getPkCountry());
memberTrade.setPkCreator(cuMemberTransfer.getPkCreator());
@ -285,7 +273,7 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
*/
private String getTransferRemarks(CuMember member, CuMember toMember, BigDecimal tradeAmount, ETransferType eTransferType) {
StringBuilder remarks = new StringBuilder();
remarks.append(cuMemberBaseService.getMemberName(toMember))
remarks.append(iCuMemberBaseService.getMemberName(toMember))
.append("(")
.append(toMember.getMemberName())
.append(") ");
@ -294,9 +282,9 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
} else {
remarks.append(TransactionUtils.getContent(FinanceMsgConstants.TRANSFER_ACCOUNTS));
}
remarks.append(cuMemberBaseService.getMemberName(member))
remarks.append(iCuMemberBaseService.getMemberName(member))
.append("(")
.append(cuMemberBaseService.getMemberNameByVertex(member))
.append(iCuMemberBaseService.getMemberNameByVertex(member))
.append(") ")
.append(TransactionUtils.getContent(FinanceMsgConstants.AMOUNT_MONEY))
.append(tradeAmount);
@ -304,8 +292,6 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
}
@Override
public Object[] selectMemberTransferList(CuMemberTransferVO cuMemberTransferVO) {
CuMemberTransferVO memberTransferVO;
@ -319,11 +305,9 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
cuMemberTransferVOS.add(memberTransferVO);
}
}
Object[] objects = new Object[]{cuMemberTransferExts, cuMemberTransferVOS};
return objects;
return new Object[]{cuMemberTransferExts, cuMemberTransferVOS};
}
/**
* 页面显示公用参数
*
@ -335,17 +319,17 @@ public class CuMemberTransferServiceImpl extends ServiceImpl<CuMemberTransferMap
Integer pkRate = memberTransfer.getPkRate();
if (null != pkRate) {
//汇率
exchangeRate = cuMemberBaseService.getCurrencyById(pkRate).getInExchangeRate();
exchangeRate = iCuMemberBaseService.getCurrencyById(pkRate).getInExchangeRate();
} else {
//取最新的汇率
CurrencyDTO currencyDTO = cuMemberBaseService.getCurrency(cuMemberTransferVO.getPkCountry());
CurrencyDTO currencyDTO = iCuMemberBaseService.getCurrency(cuMemberTransferVO.getPkCountry());
exchangeRate = currencyDTO.getInExchangeRate();
}
//翻译key键
Integer pkAccount = cuMemberTransferVO.getPkAccount();
cuMemberTransferVO.setPkAccount(cuMemberBaseService.translateAccountValue(pkAccount));
cuMemberTransferVO.setPkAccount(iCuMemberBaseService.translateAccountValue(pkAccount));
Integer pkToAccount = cuMemberTransferVO.getPkToAccount();
cuMemberTransferVO.setPkToAccount(cuMemberBaseService.translateAccountValue(pkToAccount));
cuMemberTransferVO.setPkToAccount(iCuMemberBaseService.translateAccountValue(pkToAccount));
//转账本币
if (null != exchangeRate) {
BigDecimal settleTransferMoney = memberTransfer.getTransferMoney().divide(exchangeRate, 4, RoundingMode.HALF_UP);

View File

@ -8,23 +8,18 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 实名认证VO
*
* @Description:
* @Author: ljc
* @Time: 2023/4/17 13:52
* @Classname: CuMemberAuthenticationVO
* @Package_name: com.hzs.member.account.vo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberAuthenticationVO implements Serializable {
private static final long serialVersionUID = 4142922801656536607L;
private static final long serialVersionUID = 4142922801656536607L;
/**
* 主键
@ -158,4 +153,9 @@ public class CuMemberAuthenticationVO implements Serializable {
*/
private String idCardBackUrl;
/**
* 出生日期
*/
private Date birthDate;
}

View File

@ -79,7 +79,7 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO {
/**
* 个人所得税
*/
@Excel(name = "个税", scale = 2)
@Excel(name = "服务费", scale = 2)
@BigDecimalFormat()
private BigDecimal incomeTax;
@ -93,28 +93,28 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO {
/**
* 提现金额
*/
@Excel(name = "本次提现($", scale = 2)
// @Excel(name = "本次提现($", scale = 2)
@BigDecimalFormat()
private BigDecimal settleCashAmount;
/**
* 手续费
*/
@Excel(name = "手续费($", scale = 2)
// @Excel(name = "手续费($", scale = 2)
@BigDecimalFormat()
private BigDecimal settleServiceCharge;
/**
* 个人所得税
*/
@Excel(name = "个税($", scale = 2)
// @Excel(name = "个税($", scale = 2)
@BigDecimalFormat()
private BigDecimal settleIncomeTax;
/**
* 实发金额
*/
@Excel(name = "实发金额($", scale = 2)
// @Excel(name = "实发金额($", scale = 2)
@BigDecimalFormat()
private BigDecimal settleIssuedAmount;

View File

@ -2,8 +2,6 @@ package com.hzs.member.base.controller.api;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.constant.msg.CommonMsgConstants;
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
import com.hzs.common.core.constant.msg.MemberMsgConstants;
@ -19,7 +17,6 @@ import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.detail.CuMemberChangeLog;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.base.param.ForgetPasswordParam;
import com.hzs.member.base.param.MemberDataParam;
@ -27,9 +24,7 @@ import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.base.service.IMemberInfoService;
import com.hzs.common.core.utils.UploadFileUtil;
import com.hzs.member.base.vo.*;
import com.hzs.member.sms.service.IApiCodeService;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.member.sms.service.IApiAliSmsService;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.GradeDTO;
import lombok.extern.slf4j.Slf4j;
@ -39,7 +34,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.*;
/**
@ -50,33 +44,15 @@ import java.util.*;
@RestController
public class ApiMemberController extends BaseController {
@Autowired
private ITransactionCommonService iTransactionCommonService;
@Autowired
private IMemberInfoService iMemberInfoService;
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private IApiCodeService iApiCodeService;
private IApiAliSmsService iApiAliSmsService;
@DubboReference
IGradeServiceApi gradeServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
// /**
// * 获取登录会员信息
// *
// * @return
// */
// @GetMapping("/get-info")
// public AjaxResult getInfo() {
// MemberInfoVO memberInfo = iMemberInfoService.getMemberInfo(SecurityUtils.getUserId());
// if (null == memberInfo) {
// return AjaxResult.error();
// }
// return AjaxResult.success(memberInfo);
// }
IGradeServiceApi iGradeServiceApi;
/**
* 更新个人资料昵称
@ -261,7 +237,7 @@ public class ApiMemberController extends BaseController {
Long memberId = cuMemberExt.getPkId();
// 校验短信验证码是否有效
String checkSmsStr = iApiCodeService.checkRecoverCode(param.getPhone(), param.getCode());
String checkSmsStr = iApiAliSmsService.checkRecoverCode(param.getPhone(), param.getCode(), memberId);
if (null != checkSmsStr) {
return AjaxResult.error(checkSmsStr);
}
@ -306,7 +282,7 @@ public class ApiMemberController extends BaseController {
Long memberId = cuMemberExt.getPkId();
// 校验短信验证码是否有效
String checkSmsStr = iApiCodeService.checkPayPasswordCode(cuMemberExt.getPhone(), param.getCode());
String checkSmsStr = iApiAliSmsService.checkPayPasswordCode(cuMemberExt.getPhone(), param.getCode(), memberId);
if (null != checkSmsStr) {
return AjaxResult.error(checkSmsStr);
}
@ -356,18 +332,10 @@ public class ApiMemberController extends BaseController {
/**
* 会员 推荐列表直推列表
*
* @return
*/
@GetMapping("parent-list")
public TableDataInfo parentList(String memberCode, String memberName, Date startCreateTime, Date endCreateTime, String memberInfo) {
Long memberId = SecurityUtils.getUserId();
// 查询等级
Integer pkCountry = SecurityUtils.getPkCountry();
R<List<GradeDTO>> grderDate = gradeServiceApi.findAll();
List<GradeDTO> grderList = grderDate.getData();
if (endCreateTime != null) {
endCreateTime = DateUtils.getEndTime(endCreateTime);
}
@ -376,27 +344,21 @@ public class ApiMemberController extends BaseController {
List<ParentMemberVo> list = iCuMemberService.parentList(memberId, memberCode, memberName, startCreateTime, endCreateTime, memberInfo);
if (CollectionUtil.isNotEmpty(list)) {
Map<Integer, String> transactionMap = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE);
R<CurrencyDTO> currency = currencyServiceApi.getCurrency(SecurityUtils.getPkCountry());
BigDecimal inExchangeRate = currency.getData().getInExchangeRate();
R<List<GradeDTO>> gradeDate = iGradeServiceApi.findAll();
List<GradeDTO> gradeList = gradeDate.getData();
for (ParentMemberVo cuMember : list) {
cuMember.setMemberCode(cuMember.getMemberCode());
cuMember.setMemberName(cuMember.getMemberName());
for (GradeDTO gradeDTO : grderList) {
for (GradeDTO gradeDTO : gradeList) {
if (gradeDTO.getPkId().equals(cuMember.getPkRegisterGrade())) {
cuMember.setPkRegisterGradeStr(transactionMap.get(gradeDTO.getPkTransaction()));
cuMember.setPkRegisterGradeStr(gradeDTO.getGradeName());
}
}
for (GradeDTO gradeDTO : grderList) {
for (GradeDTO gradeDTO : gradeList) {
if (gradeDTO.getPkId().equals(cuMember.getPkSettleGrade())) {
cuMember.setPkSettleGradeStr(transactionMap.get(gradeDTO.getPkTransaction()));
}
}
if (pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
if (cuMember.getConsumeAchieve() != null) {
cuMember.setConsumeAchieve(cuMember.getConsumeAchieve().multiply(inExchangeRate));
cuMember.setPkSettleGradeStr(gradeDTO.getGradeName());
}
}
}

View File

@ -3,16 +3,12 @@ package com.hzs.member.base.controller.manage;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64Encoder;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdcardUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hzs.common.core.annotation.AccessPermissions;
import com.hzs.common.core.annotation.ColumnAuthority;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.constant.TableNameConstants;
import com.hzs.common.core.constant.VertexConstants;
import com.hzs.common.core.constant.msg.MemberMsgConstants;
import com.hzs.common.core.domain.R;
@ -23,9 +19,6 @@ import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.account.CuMemberTransfer;
import com.hzs.common.domain.member.account.CuMemberWithdraw;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.system.config.BdAwards;
@ -33,20 +26,14 @@ import com.hzs.common.security.service.MemberTokenService;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.account.service.ICuMemberTransferService;
import com.hzs.member.account.service.ICuMemberWithdrawService;
import com.hzs.member.achieve.service.ICuMemberSettlePeriodService;
import com.hzs.member.achieve.service.ICuMemberTreeService;
import com.hzs.member.base.dto.LoginMember;
import com.hzs.member.base.dto.MemberBusinessTemplate;
import com.hzs.member.base.param.*;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.base.service.ICuMemberTeamService;
import com.hzs.member.base.vo.*;
import com.hzs.member.login.service.IMemberLoginService;
import com.hzs.member.swing.param.CuMemberSwingNetParam;
import com.hzs.member.swing.vo.CuMemberRetVO;
import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.ICurrencyServiceApi;
import com.hzs.system.base.dto.CurrencyDTO;
import com.hzs.system.config.IAwardsServiceApi;
@ -64,7 +51,6 @@ import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@RequestMapping("/manager/member")
@ -72,17 +58,7 @@ import java.util.stream.Collectors;
public class CuMemberController extends BaseController {
@Autowired
private ICuMemberWithdrawService memberWithdrawService;
@Autowired
private ICuMemberSettlePeriodService memberSettlePeriodService;
@Autowired
private ICuMemberTransferService memberTransferService;
@Autowired
private ICuMemberService cuMemberService;
@Autowired
private ICuMemberTeamService memberTeamService;
@Autowired
private ICuMemberTreeService memberTreeService;
private ICuMemberService iCuMemberService;
@Autowired
private ITransactionCommonService iTransactionCommonService;
@Autowired
@ -97,15 +73,13 @@ public class CuMemberController extends BaseController {
@DubboReference
IGradeServiceApi iGradeServiceApi;
@DubboReference
IAreaServiceApi iAreaServiceApi;
@DubboReference
ICurrencyServiceApi iCurrencyServiceApi;
@DubboReference
IMenuColumnServiceApi iMenuColumnServiceApi;
@Autowired
public void setCuMemberService(ICuMemberService cuMemberService) {
this.cuMemberService = cuMemberService;
public void setCuMemberService(ICuMemberService iCuMemberService) {
this.iCuMemberService = iCuMemberService;
}
@ -169,17 +143,12 @@ public class CuMemberController extends BaseController {
/**
* 真实信息
*
* @author: zhang jing
* @date: 2022/11/15 17:59
* @param: [memberParam]
* @return: com.hzs.common.core.web.page.TableDataInfo
**/
@Log(module = EOperationModule.MEMBER_INFORMATION, business = EOperationBusiness.MEMBER_INFO_REAL, method = EOperationMethod.SELECT)
@PostMapping("/real-member")
public TableDataInfo realMember(@RequestBody CuMemberVO memberParam) {
memberParam.setPkCountry(SecurityUtils.getPkCountry());
List<CuMemberVO> cuMemberVOS = cuMemberService.realCuMemberByCondition(memberParam);
List<CuMemberVO> cuMemberVOS = iCuMemberService.realCuMemberByCondition(memberParam);
if (CollectionUtil.isNotEmpty(cuMemberVOS)) {
for (CuMemberVO cvo : cuMemberVOS) {
if (cvo.getSex() == ESex.MAN.getValue()) {
@ -191,18 +160,6 @@ public class CuMemberController extends BaseController {
if (cvo.getCardType() == ECardType.CARD.getValue()) {
cvo.setCardTypeVal(ECardType.CARD.getLabel());
}
if (cvo.getCardType() == ECardType.OFFICER.getValue()) {
cvo.setCardTypeVal(ECardType.OFFICER.getLabel());
}
if (cvo.getCardType() == ECardType.STUDENT.getValue()) {
cvo.setCardTypeVal(ECardType.STUDENT.getLabel());
}
if (cvo.getCardType() == ECardType.DRIVE.getValue()) {
cvo.setCardTypeVal(ECardType.DRIVE.getLabel());
}
if (cvo.getCardType() == ECardType.PASSPORT.getValue()) {
cvo.setCardTypeVal(ECardType.PASSPORT.getLabel());
}
}
}
return getDataTable(cuMemberVOS);
@ -210,15 +167,10 @@ public class CuMemberController extends BaseController {
/**
* 根据会员编号查询会员信息
*
* @author: zhang jing
* @date: 2022/11/9 18:25
* @param: [pkId]
* @return: com.hzs.common.core.web.domain.AjaxResult
**/
@GetMapping("/getOne/{memberCode}")
public AjaxResult getOne(@PathVariable String memberCode) {
CuMember cuMember = cuMemberService.getMember(memberCode);
CuMember cuMember = iCuMemberService.getMember(memberCode);
return AjaxResult.success(cuMember);
}
@ -277,7 +229,7 @@ public class CuMemberController extends BaseController {
* @param param
*/
private void handleMemberSelect(List<MemberSelectVO> resultList, MemberSelectParam param) {
List<CuMemberExt> cuMemberExtList = cuMemberService.queryMemberSelect(param, SecurityUtils.getPkCountry());
List<CuMemberExt> cuMemberExtList = iCuMemberService.queryMemberSelect(param, SecurityUtils.getPkCountry());
if (CollectionUtil.isNotEmpty(cuMemberExtList)) {
for (CuMemberExt cuMemberExt : cuMemberExtList) {
MemberSelectVO memberSelectVO = BeanUtil.copyProperties(cuMemberExt, MemberSelectVO.class);
@ -307,41 +259,18 @@ public class CuMemberController extends BaseController {
UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData();
memberRealInfoParam.setVertexList(userAuthorityDTO.getUserVertexList());
memberRealInfoParam.setTeamList(userAuthorityDTO.getUserTeamList());
if (StringUtils.isNotEmpty(memberRealInfoParam.getBirthDate())) {
memberRealInfoParam.setBirthDate(memberRealInfoParam.getBirthDate().replace("-", ""));
}
startPage();
List<MemberRealInfoVO> resultList = cuMemberService.selectByMemberRealInfo(memberRealInfoParam);
List<MemberRealInfoVO> resultList = iCuMemberService.selectByMemberRealInfo(memberRealInfoParam);
if (CollectionUtil.isNotEmpty(resultList)) {
//数据库内容翻译
Map<Integer, String> transactionMap1 = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE,
EnumsPrefixConstants.KEY_AWARD);
R<List<BdAwards>> awardsListDate = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry());
// 奖衔
R<List<BdAwards>> awardsListDate = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry());
List<BdAwards> awardsList = awardsListDate.getData();
R<List<GradeDTO>> gradeListDate = iGradeServiceApi.queryGradeList(SecurityUtils.getPkCountry());
// 等级
R<List<GradeDTO>> gradeListDate = iGradeServiceApi.queryGradeList(SecurityUtils.getPkCountry());
List<GradeDTO> gradeList = gradeListDate.getData();
Map<Integer, String> areaDate = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData();
for (MemberRealInfoVO cuMemberExt : resultList) {
cuMemberExt.setRegisterGradeVal(transactionMap1.get(cuMemberExt.getPkRegisterGrade()));
cuMemberExt.setSettleGradeVal(transactionMap1.get(cuMemberExt.getPkSettleGrade()));
cuMemberExt.setAwardsVal(transactionMap1.get(cuMemberExt.getPkAwards()));
if (cuMemberExt.getPkProvince() != null) {
//
cuMemberExt.setProvinceName(areaDate.get(cuMemberExt.getPkProvince()));
}
if (cuMemberExt.getPkCity() != null) {
//
cuMemberExt.setCityName(areaDate.get(cuMemberExt.getPkCity()));
}
if (cuMemberExt.getPkCounty() != null) {
// 区县
cuMemberExt.setCountyName(areaDate.get(cuMemberExt.getPkCounty()));
}
// 注册等级
if (cuMemberExt.getPkRegisterGrade() != null) {
for (GradeDTO grade : gradeList) {
@ -366,215 +295,16 @@ public class CuMemberController extends BaseController {
}
}
}
// 生日
if (StringUtils.isNotBlank(cuMemberExt.getIdCard()) && (checkIdCard(cuMemberExt.getIdCard()))) {
cuMemberExt.setBirthDate(IdcardUtil.getBirthDate(cuMemberExt.getIdCard()));
}
if (cuMemberExt.getIdType() != null) {
cuMemberExt.setCardTypeVal(EIdType.getLabel(cuMemberExt.getIdType()));
}
cuMemberExt.setCardTypeVal(EIdType.getLabelByValue(cuMemberExt.getIdType()));
cuMemberExt.setSexVal(ESex.getLabelByValue(cuMemberExt.getSex()));
}
}
return getDataTable(resultList);
}
/**
* 会员团队信息
*
* @return
*/
@AccessPermissions("TeamInfo")
@GetMapping("/member-team-info")
public TableDataInfo memberTeamInfo(MemberTeamInfoParam memberTeamInfoParam) {
String time;
String settleTableName;
CuMemberSettlePeriod csPeriod;
List<MemberTeamVo> memberTeamList = new ArrayList<>();
R<List<BdAwards>> awardsDto = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry());
if (memberTeamInfoParam.getQueryDate() == null) {
// 昨日
time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtil.offsetDay(new Date(), -1));
csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time);
settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId();
} else {
String queryDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate());
String currentDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentDate());
time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate());
csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time);
if (queryDate.equals(currentDate)) {
settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId();
} else {
// 历史
settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId();
}
}
// 如果表格不存在则返回空数据
Integer tableNumber = memberTreeService.queryExistOracleTable(settleTableName);
if (tableNumber == null || tableNumber == 0) {
return getDataTable(new ArrayList<>());
}
memberTeamInfoParam.setSettleTableName(settleTableName);
memberTeamInfoParam.setPeriod(csPeriod.getPkId());
startPage();
if (StringUtils.isNotBlank(memberTeamInfoParam.getMemberCode())) {
if (memberTeamInfoParam.getRelaType() != null && memberTeamInfoParam.getRelaType().equals(ERealType.XY.getIntValue())) {
// 血缘
memberTeamList = memberTeamService.queryMemberTeamInfoList(memberTeamInfoParam);
} else {
// 安置
memberTeamList = memberTeamService.queryMemberTeamInfoPlaceParentList(memberTeamInfoParam);
}
}
for (MemberTeamVo memberTeamVo : memberTeamList) {
// 查询安置层级
if (memberTeamVo.getPlaceDept() != null) {
memberTeamVo.setPlaceDept(memberTeamVo.getPlaceDept());
memberTeamVo.setPlaceDeptStr(EPlaceDept.getEPlaceDept(memberTeamVo.getPlaceDept()));
}
if (memberTeamVo.getPkAwards() != null) {
for (BdAwards date : awardsDto.getData()) {
if (memberTeamVo.getPkAwards().equals(date.getPkId())) {
memberTeamVo.setPkAwardsStr(date.getAwardsName());
}
}
}
if (memberTeamVo.getPkPlaceParent() != null) {
CuMember member = cuMemberService.getMember(memberTeamVo.getPkPlaceParent());
if (member != null) {
memberTeamVo.setPlaceParentCode(member.getMemberCode());
}
}
memberTeamVo.setResettleLevel(memberTeamVo.getLevel());
//TODO 血缘代数
memberTeamVo.setConsanguinityAlgebra("" + memberTeamVo.getLevel() + "");
//TODO 奖金大盘占比
memberTeamVo.setBonusLargeMarketProportion(BigDecimal.ZERO);
// 直推人数
Long directPushPeopleNumber = memberTreeService.queryCuMemberTreeParentTableCount(settleTableName, memberTeamVo.getMemberId());
memberTeamVo.setDirectPushPeopleNumber(directPushPeopleNumber);
// 转账次数
LambdaQueryWrapper<CuMemberTransfer> qew = new LambdaQueryWrapper<>();
qew.eq(CuMemberTransfer::getPkMember, memberTeamVo.getMemberId());
int memberTransferCount = memberTransferService.count(qew);
memberTeamVo.setMemberTransferCount(memberTransferCount);
// 提现次数
LambdaQueryWrapper<CuMemberWithdraw> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuMemberWithdraw::getPkMember, memberTeamVo.getMemberId());
int memberWithdrawCount = memberWithdrawService.count(queryWrapper);
memberTeamVo.setWithdrawalNumber(memberWithdrawCount);
// 最后一次登录时间
if (memberTeamVo.getLastLoginTime() != null) {
// 计算当前时间和 最后一次登陆时间间隔
memberTeamVo.setLastLoginTimeIntervalDays(DateUtil.betweenDay(DateUtils.currentDate(), memberTeamVo.getLastLoginTime(), true));
}
}
return getDataTable(memberTeamList);
}
/**
* 会员团队信息导出
*/
@PostMapping("/member-team-info-export")
public void memberTeamInfoExport(MemberTeamInfoParam memberTeamInfoParam, HttpServletResponse response) {
String time;
String settleTableName;
CuMemberSettlePeriod csPeriod;
List<MemberTeamVo> memberTeamList = new ArrayList<>();
R<List<BdAwards>> awardsDto = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry());
if (memberTeamInfoParam.getQueryDate() == null) {
// 昨日
time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtil.offsetDay(new Date(), -1));
csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time);
settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId();
} else {
String queryDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate());
String currentDate = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, DateUtils.currentDate());
time = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, memberTeamInfoParam.getQueryDate());
csPeriod = memberSettlePeriodService.getCuMemberSettlePeriodByDate(time);
if (queryDate.equals(currentDate)) {
settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId();
} else {
// 历史
settleTableName = TableNameConstants.CU_MEMBER_SETTLE + csPeriod.getPkId();
}
}
// 如果表格不存在则返回空数据
Integer tableNumber = memberTreeService.queryExistOracleTable(settleTableName);
if (tableNumber == null || tableNumber == 0) {
ExcelUtil<MemberTeamVo> util = new ExcelUtil<>(MemberTeamVo.class);
util.exportExcel(response, memberTeamList, "会员团队信息");
}
memberTeamInfoParam.setSettleTableName(settleTableName);
memberTeamInfoParam.setPeriod(csPeriod.getPkId());
startPage();
if (StringUtils.isNotBlank(memberTeamInfoParam.getMemberCode())) {
if (memberTeamInfoParam.getRelaType() != null && memberTeamInfoParam.getRelaType().equals(ERealType.XY.getIntValue())) {
// 血缘
memberTeamList = memberTeamService.queryMemberTeamInfoList(memberTeamInfoParam);
} else {
// 安置
memberTeamList = memberTeamService.queryMemberTeamInfoPlaceParentList(memberTeamInfoParam);
}
}
for (MemberTeamVo memberTeamVo : memberTeamList) {
// 查询安置层级
if (memberTeamVo.getPlaceDept() != null) {
memberTeamVo.setPlaceDept(memberTeamVo.getPlaceDept());
memberTeamVo.setPlaceDeptStr(EPlaceDept.getEPlaceDept(memberTeamVo.getPlaceDept()));
}
if (memberTeamVo.getPkAwards() != null) {
for (BdAwards date : awardsDto.getData()) {
if (memberTeamVo.getPkAwards().equals(date.getPkId())) {
memberTeamVo.setPkAwardsStr(date.getAwardsName());
}
}
}
if (memberTeamVo.getPkPlaceParent() != null) {
CuMember member = cuMemberService.getMember(memberTeamVo.getPkPlaceParent());
if (member != null) {
memberTeamVo.setPlaceParentCode(member.getMemberCode());
}
}
memberTeamVo.setResettleLevel(memberTeamVo.getLevel());
//血缘代数
memberTeamVo.setConsanguinityAlgebra("" + memberTeamVo.getLevel() + "");
//奖金大盘占比
memberTeamVo.setBonusLargeMarketProportion(BigDecimal.ZERO);
// 直推人数
Long directPushPeopleNumber = memberTreeService.queryCuMemberTreeParentTableCount(settleTableName, memberTeamVo.getMemberId());
memberTeamVo.setDirectPushPeopleNumber(directPushPeopleNumber);
// 转账次数
LambdaQueryWrapper<CuMemberTransfer> qew = new LambdaQueryWrapper<>();
qew.eq(CuMemberTransfer::getPkMember, memberTeamVo.getMemberId());
int memberTransferCount = memberTransferService.count(qew);
memberTeamVo.setMemberTransferCount(memberTransferCount);
// 提现次数
LambdaQueryWrapper<CuMemberWithdraw> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuMemberWithdraw::getPkMember, memberTeamVo.getMemberId());
int memberWithdrawCount = memberWithdrawService.count(queryWrapper);
memberTeamVo.setWithdrawalNumber(memberWithdrawCount);
// 最后一次登录时间
if (memberTeamVo.getLastLoginTime() != null) {
// 计算当前时间和 最后一次登陆时间间隔
memberTeamVo.setLastLoginTimeIntervalDays(DateUtil.betweenDay(DateUtils.currentDate(), memberTeamVo.getLastLoginTime(), true));
}
}
ExcelUtil<MemberTeamVo> util = new ExcelUtil<>(MemberTeamVo.class, iMenuColumnServiceApi.queryMenuColumn("TeamInfo", SecurityUtils.getUserId()).getData());
util.exportExcel(response, memberTeamList, "会员团队信息");
}
/**
* 导出真实信息
*
* @author: zhang jing
* @date: 2023/7/15 17:02
* @param: [response, memberRealInfoParam]
* @return: void
**/
@Log(module = EOperationModule.MEMBER_INFORMATION, business = EOperationBusiness.MEMBER_INFORMATION, method = EOperationMethod.EXPORT)
@PostMapping("/real-info-export")
@ -586,50 +316,51 @@ public class CuMemberController extends BaseController {
UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData();
memberRealInfoParam.setVertexList(userAuthorityDTO.getUserVertexList());
memberRealInfoParam.setTeamList(userAuthorityDTO.getUserTeamList());
List<MemberRealInfoVO> resultList = cuMemberService.selectByMemberRealInfo(memberRealInfoParam);
List<MemberRealInfoVO> resultList = iCuMemberService.selectByMemberRealInfo(memberRealInfoParam);
if (CollectionUtil.isNotEmpty(resultList)) {
// 获取需要翻译的枚举翻译
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(ECardType.values(),
ESex.values()
);
//数据库内容翻译
Map<Integer, String> transactionMap1 = iTransactionCommonService.exportEnumTransactionByDB(EnumsPrefixConstants.KEY_GRADE,
EnumsPrefixConstants.KEY_AWARD);
// 奖衔
R<List<BdAwards>> awardsListDate = iAwardsServiceApi.queryAwards(SecurityUtils.getPkCountry());
List<BdAwards> awardsList = awardsListDate.getData();
// 等级
R<List<GradeDTO>> gradeListDate = iGradeServiceApi.queryGradeList(SecurityUtils.getPkCountry());
List<GradeDTO> gradeList = gradeListDate.getData();
Map<Integer, String> areaDate = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData();
for (MemberRealInfoVO cuMemberExt : resultList) {
cuMemberExt.setRegisterGradeVal(transactionMap1.get(cuMemberExt.getPkRegisterGrade()));
cuMemberExt.setSettleGradeVal(transactionMap1.get(cuMemberExt.getPkSettleGrade()));
cuMemberExt.setAwardsVal(transactionMap1.get(cuMemberExt.getPkAwards()));
cuMemberExt.setPkMaxAwardsVal(transactionMap1.get(cuMemberExt.getPkMaxAwards()));
if (cuMemberExt.getPkProvince() != null) {
//
cuMemberExt.setProvinceName(areaDate.get(cuMemberExt.getPkProvince()));
// 注册等级
if (cuMemberExt.getPkRegisterGrade() != null) {
for (GradeDTO grade : gradeList) {
if (grade.getPkId().equals(cuMemberExt.getPkRegisterGrade())) {
cuMemberExt.setRegisterGradeVal(grade.getGradeName());
}
}
}
if (cuMemberExt.getPkCity() != null) {
//
cuMemberExt.setCityName(areaDate.get(cuMemberExt.getPkCity()));
// 结算等级
if (cuMemberExt.getPkSettleGrade() != null) {
for (GradeDTO grade : gradeList) {
if (grade.getPkId().equals(cuMemberExt.getPkSettleGrade())) {
cuMemberExt.setSettleGradeVal(grade.getGradeName());
}
}
}
if (cuMemberExt.getPkCounty() != null) {
// 区县
cuMemberExt.setCountyName(areaDate.get(cuMemberExt.getPkCounty()));
// 真实奖衔
if (cuMemberExt.getPkAwards() != null) {
for (BdAwards awards : awardsList) {
if (awards.getPkId().equals(cuMemberExt.getPkAwards())) {
cuMemberExt.setAwardsVal(awards.getAwardsName());
}
}
}
// 证件类型
if (cuMemberExt.getCardType() != null) {
cuMemberExt.setCardTypeVal(transactionMap.get(EnumsPrefixConstants.CARD_TYPE + cuMemberExt.getCardType()));
}
// 性别
if (cuMemberExt.getSex() != null) {
cuMemberExt.setSexVal(transactionMap.get(EnumsPrefixConstants.SEX + cuMemberExt.getSex()));
}
// 生日
if (StringUtils.isNotBlank(cuMemberExt.getIdCard()) && (checkIdCard(cuMemberExt.getIdCard()))) {
cuMemberExt.setBirthDate(IdcardUtil.getBirthDate(cuMemberExt.getIdCard()));
}
if (cuMemberExt.getIdType() != null) {
cuMemberExt.setCardTypeVal(EIdType.getLabel(cuMemberExt.getIdType()));
// 真实奖衔
if (cuMemberExt.getPkMaxAwards() != null) {
for (BdAwards awards : awardsList) {
if (awards.getPkId().equals(cuMemberExt.getPkMaxAwards())) {
cuMemberExt.setAwardsVal(awards.getAwardsName());
}
}
}
cuMemberExt.setCardTypeVal(EIdType.getLabelByValue(cuMemberExt.getIdType()));
cuMemberExt.setSexVal(ESex.getLabelByValue(cuMemberExt.getSex()));
}
}
ExcelUtil<MemberRealInfoVO> util = new ExcelUtil<>(MemberRealInfoVO.class, iMenuColumnServiceApi.queryMenuColumn("RealInfo", SecurityUtils.getUserId()).getData());
@ -651,21 +382,6 @@ public class CuMemberController extends BaseController {
util.exportExcel(response, list, "会员编号");
}
/**
* 校验身份证格式
*
* @author: zhang jing
* @date: 2023/10/17 14:10
* @param: [idCard]
* @return: boolean
**/
public boolean checkIdCard(String idCard) {
// 正则表达式校验身份证号码格式
String reg = "\\d{17}[\\d|x|X]";
return Pattern.matches(reg, idCard);
}
/**
* 查询顶点会员
*
@ -674,7 +390,7 @@ public class CuMemberController extends BaseController {
@GetMapping("/query-top-member")
public AjaxResult queryTopMember() {
List<TopMemberVO> resultList = new ArrayList<>();
List<CuMemberExt> list = cuMemberService.queryPlaceMemberList(VertexConstants.GJ30720200CODE, SecurityUtils.getPkCountry());
List<CuMemberExt> list = iCuMemberService.queryPlaceMemberList(VertexConstants.GJ30720200CODE, SecurityUtils.getPkCountry());
if (CollectionUtil.isNotEmpty(list)) {
resultList = BeanUtil.copyToList(list, TopMemberVO.class);
}
@ -702,7 +418,7 @@ public class CuMemberController extends BaseController {
BigDecimal chinaInExchangeRate = chinaCurrency.getData().getInExchangeRate();
startPage();
memberConsumptionStatParam.setPkCountry(SecurityUtils.getPkCountry());
List<MemberConsumptionStatVo> memberConsumptionStatVoList = cuMemberService.getMemberConsumptionStat(memberConsumptionStatParam);
List<MemberConsumptionStatVo> memberConsumptionStatVoList = iCuMemberService.getMemberConsumptionStat(memberConsumptionStatParam);
for (MemberConsumptionStatVo memberConsumptionStatVo : memberConsumptionStatVoList) {
memberConsumptionStatVo.setOrderAchieve(memberConsumptionStatVo.getOrderAchieve().multiply(chinaInExchangeRate).setScale(2, BigDecimal.ROUND_HALF_UP));
}
@ -730,7 +446,7 @@ public class CuMemberController extends BaseController {
R<CurrencyDTO> chinaCurrency = iCurrencyServiceApi.getCurrency(CountryConstants.CHINA_COUNTRY);
BigDecimal chinaInExchangeRate = chinaCurrency.getData().getInExchangeRate();
memberConsumptionStatParam.setPkCountry(SecurityUtils.getPkCountry());
List<MemberConsumptionStatVo> memberConsumptionStatVoList = cuMemberService.getMemberConsumptionStat(memberConsumptionStatParam);
List<MemberConsumptionStatVo> memberConsumptionStatVoList = iCuMemberService.getMemberConsumptionStat(memberConsumptionStatParam);
for (MemberConsumptionStatVo memberConsumptionStatVo : memberConsumptionStatVoList) {
memberConsumptionStatVo.setOrderAchieve(memberConsumptionStatVo.getOrderAchieve().multiply(chinaInExchangeRate).setScale(2, BigDecimal.ROUND_HALF_UP));
}
@ -745,7 +461,7 @@ public class CuMemberController extends BaseController {
@GetMapping("/member_awards_query")
public TableDataInfo memberAwardsQuery(MemberAwardsQueryParam param) {
startPage();
List<MemberAwardsQueryVO> memberAwardsList = cuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry());
List<MemberAwardsQueryVO> memberAwardsList = iCuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry());
if (CollectionUtil.isNotEmpty(memberAwardsList)) {
// 中国汇率
CurrencyDTO currency = iCurrencyServiceApi.getCurrency(CountryConstants.CHINA_COUNTRY).getData();
@ -769,7 +485,7 @@ public class CuMemberController extends BaseController {
*/
@PostMapping("/member_awards_query_export")
public void memberAwardsQueryExport(MemberAwardsQueryParam param, HttpServletResponse response) {
List<MemberAwardsQueryVO> memberAwardsList = cuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry());
List<MemberAwardsQueryVO> memberAwardsList = iCuMemberService.listMemberAwards(param, SecurityUtils.getPkCountry());
if (CollectionUtil.isNotEmpty(memberAwardsList)) {
// 中国汇率
CurrencyDTO currency = iCurrencyServiceApi.getCurrency(CountryConstants.CHINA_COUNTRY).getData();
@ -850,7 +566,7 @@ public class CuMemberController extends BaseController {
memberParam.setTeamList(userAuthorityDTO.getUserTeamList());
startPage();
List<RetailMemberVO> cuMemberVOList = cuMemberService.retailMemberList(memberParam);
List<RetailMemberVO> cuMemberVOList = iCuMemberService.retailMemberList(memberParam);
if (CollectionUtil.isNotEmpty(cuMemberVOList)) {
// 获取需要翻译的枚举翻译
@ -965,7 +681,7 @@ public class CuMemberController extends BaseController {
memberParam.setVertexList(userAuthorityDTO.getUserVertexList());
memberParam.setTeamList(userAuthorityDTO.getUserTeamList());
List<RetailMemberVO> cuMemberVOList = cuMemberService.retailMemberList(memberParam);
List<RetailMemberVO> cuMemberVOList = iCuMemberService.retailMemberList(memberParam);
if (CollectionUtil.isNotEmpty(cuMemberVOList)) {
// 获取需要翻译的枚举翻译
@ -1030,7 +746,7 @@ public class CuMemberController extends BaseController {
if (StringUtils.isEmpty(param.getMemberCode())) {
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_NOT_EXITS));
}
CuMember cuMember = cuMemberService.getMember(param.getMemberCode());
CuMember cuMember = iCuMemberService.getMember(param.getMemberCode());
if (cuMember == null) {
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_NOT_EXITS));
}
@ -1055,7 +771,7 @@ public class CuMemberController extends BaseController {
*/
@GetMapping("/copy-pwd")
public AjaxResult copyPwd(@RequestParam Long pkId) {
CuMember cuMember = cuMemberService.getOne(Wrappers.<CuMember>lambdaQuery()
CuMember cuMember = iCuMemberService.getOne(Wrappers.<CuMember>lambdaQuery()
.eq(CuMember::getPkId, pkId)
);
String tmpPwd = DateUtils.parseDateToFormat(DateUtils.MM_DD, new Date()) + cuMember.getLoginPassword();

View File

@ -3,9 +3,6 @@ package com.hzs.member.base.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.base.CuMemberTeam;
import com.hzs.common.domain.member.ext.CuMemberTeamExt;
import com.hzs.common.domain.vertex.BdVertex;
import com.hzs.member.base.param.MemberTeamInfoParam;
import com.hzs.member.base.vo.MemberTeamVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -17,22 +14,6 @@ public interface CuMemberTeamMapper extends BaseMapper<CuMemberTeam> {
List<CuMemberTeamExt> queryCuMemberTeam(CuMemberTeamExt cuMemberTeamExt);
/**
* 查询会员团队信息
*
* @param memberTeamInfoParam
* @return
*/
List<MemberTeamVo> queryMemberTeamInfoList(MemberTeamInfoParam memberTeamInfoParam);
/**
* 查询会员安置团队信息
*
* @param memberTeamInfoParam
* @return
*/
List<MemberTeamVo> queryMemberTeamInfoPlaceParentList(MemberTeamInfoParam memberTeamInfoParam);
/**
* 更新团队为空
*

View File

@ -1,26 +1,9 @@
package com.hzs.member.base.param;/**
* @Description:
* @Author: yuhui
* @Time: 2023/4/26 10:08
* @Classname: MemberRealInfo
* @PackageName: com.hzs.member.base.param
*/
package com.hzs.member.base.param;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.param
*@Author: yh
*@CreateTime: 2023-04-26 10:08
*@Description: TODO
*@Version: 1.0
*/
@Data
public class MemberRealInfoParam {
@ -69,47 +52,10 @@ public class MemberRealInfoParam {
*/
private String birthDate;
/**
* 省id
*/
private Integer pkProvince;
/**
* 市id
*/
private Integer pkCity;
/**
* 区县id
*/
private Integer pkCounty;
/**
* 详细地址
*/
private String address;
/**
* 性别0=未知,1=,2=
*/
private Integer sex;
/**
* 银行名称
*/
private String bankName;
/**
* 支行名称
*/
private String subBankName;
/**
* 银行卡号
*/
private String cardNumber;
/**
* 邮箱
*/
private String email;
/**
* 开始认证时间

View File

@ -1,81 +0,0 @@
package com.hzs.member.base.param;/**
* @Description:
* @Author: yuhui
* @Time: 2023/5/29 14:53
* @Classname: MemberTeamInfoParam
* @PackageName: com.hzs.member.base.param
*/
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.param
*@Author: yh
*@CreateTime: 2023-05-29 14:53
*@Description: TODO
*@Version: 1.0
*/
@Data
public class MemberTeamInfoParam {
/**
* 查询date 时间
*/
private Date queryDate;
/**
* 查询业绩表名
*/
private String settleTableName;
/**
* 期间值
*/
private Integer period;
/**
* 会员编号
*/
private String memberCode ;
/**
* 真实奖衔
*/
private Integer pkAwards;
/**
* 关系类型 1 血缘 2 安置
*/
private Integer relaType;
/**
* 安置部门
*/
private Integer placeDept;
/**
* 血缘代数
*/
private Integer consanguinityAlgebra;
/**
* 安置层级
* 查询当前会员在团队的第几层 查询伞下的所有人
*/
private Integer resettleLevel;
/**
* 安置位置
*/
private String resettleLocation;
/**
* 奖金收益
*/
private BigDecimal realIncomeTotal;
}

View File

@ -3,8 +3,6 @@ package com.hzs.member.base.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.base.CuMemberTeam;
import com.hzs.common.domain.member.ext.CuMemberTeamExt;
import com.hzs.member.base.param.MemberTeamInfoParam;
import com.hzs.member.base.vo.MemberTeamVo;
import java.util.List;
@ -41,22 +39,6 @@ public interface ICuMemberTeamService extends IService<CuMemberTeam> {
**/
void updateCuMemberTeamByVertex(Long pkTeamCode);
/**
* 查询会员团队信息
*
* @param memberTeamInfoParam
* @return
*/
List<MemberTeamVo> queryMemberTeamInfoList(MemberTeamInfoParam memberTeamInfoParam);
/**
* 查询会员安置信息团队
*
* @param memberTeamInfoParam
* @return
*/
List<MemberTeamVo> queryMemberTeamInfoPlaceParentList(MemberTeamInfoParam memberTeamInfoParam);
/**
* 查询刷新团队数据
*

View File

@ -2453,13 +2453,14 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
@Override
public boolean updateMemberNameAndPhone(Long pkMember, String memberName, String phone, Long pkModified) {
LambdaUpdateWrapper<CuMember> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(CuMember::getMemberName, memberName);
updateWrapper.set(CuMember::getPhone, phone);
updateWrapper.set(CuMember::getPkModified, pkModified);
updateWrapper.set(CuMember::getModifiedTime, new Date());
updateWrapper.eq(CuMember::getPkId, pkMember);
return update(updateWrapper);
CuMember cuMember = new CuMember();
cuMember.setPkId(pkMember);
cuMember.setMemberName(memberName);
cuMember.setPhone(phone);
cuMember.setBirthDate(null);
cuMember.setPkModified(pkModified);
cuMember.setModifiedTime(new Date());
return updateById(cuMember);
}
@Override

View File

@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.domain.member.base.CuMemberTeam;
import com.hzs.common.domain.member.ext.CuMemberTeamExt;
import com.hzs.member.base.mapper.CuMemberTeamMapper;
import com.hzs.member.base.param.MemberTeamInfoParam;
import com.hzs.member.base.service.ICuMemberTeamService;
import com.hzs.member.base.vo.MemberTeamVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -61,16 +59,6 @@ public class CuMemberTeamServiceImpl extends ServiceImpl<CuMemberTeamMapper, CuM
}
}
@Override
public List<MemberTeamVo> queryMemberTeamInfoList(MemberTeamInfoParam memberTeamInfoParam) {
return baseMapper.queryMemberTeamInfoList(memberTeamInfoParam);
}
@Override
public List<MemberTeamVo> queryMemberTeamInfoPlaceParentList(MemberTeamInfoParam memberTeamInfoParam) {
return baseMapper.queryMemberTeamInfoPlaceParentList(memberTeamInfoParam);
}
@Override
public void flushAllTeam(Integer pkCountry) {
List<CuMemberTeam> list = this.list(Wrappers.<CuMemberTeam>lambdaQuery()

View File

@ -1,32 +0,0 @@
package com.hzs.member.base.vo;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
*
* 账户状态翻译
* @Description:
* @Author: zhangjing
* @Time: 2023/2/4 14:56
* @Classname: AccountPointOutVO
* @Package_name: com.hzs.member.base.vo
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AccountPointOutVO implements Serializable {
/**
* 账户状态
*/
@Transaction(transactionKey = EnumsPrefixConstants.ACCOUNT_STATUS)
private Integer accountState;
private String accountStateVal;
}

View File

@ -1,36 +0,0 @@
package com.hzs.member.base.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description: 服务有效期返回VO
* @Author: jiang chao
* @Time: 2024/1/15 14:08
* @Classname: AgreementExpireVO
* @PackageName: com.hzs.member.base.vo
*/
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class AgreementExpireVO {
/**
* 提示标记0=弹窗提示1=不弹窗提示
*/
private Integer promptFlag;
/**
* 提示信息
*/
private String promptMsg;
/**
* 跳转页面1=实名认证2=续约专区
*/
private Integer jumpPage;
}

View File

@ -1,63 +0,0 @@
package com.hzs.member.base.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2023/6/8 11:47
* @Classname: CuHonorWallVo
* @PackageName: com.hzs.member.base.vo
*/
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.vo
*@Author: yh
*@CreateTime: 2023-06-08 11:47
*@Description: TODO
*@Version: 1.0
*/
@Data
public class CuHonorWallVo {
/**
* 用户ID
*/
private Long pkId;
/**
* 类型 1 等级 2 奖衔 3 时长 4 推荐月 5 推荐季度 6 推荐年 7 抗衰月 8 抗衰季度 9 抗衰年
*/
private Integer type;
/**
* 类型 1 等级 2 奖衔 3 时长 4 推荐月 5 推荐季度 6 推荐年 7 抗衰月 8 抗衰季度 9 抗衰年
*/
private String typeStr;
private String name;
/**
* 类型属性值
*/
private Integer value;
/**
* 类型属性值
*/
private String valueStr;
/**
* 展示图片
*/
private String img;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date creationTime;
private String title;
}

View File

@ -1,103 +0,0 @@
package com.hzs.member.base.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.web.domain.BaseApprovalEntity;
import com.hzs.member.account.dto.MemberAmountDTO;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* <p>
* 注水业绩记录表VO
* </p>
*
* @author hzs
* @since 2022-08-22
*/
@Data
public class CuMemberAchieveLogParentVO extends BaseApprovalEntity {
private static final long serialVersionUID = 1L;
/**
* 注水方式 EInfusingWaterType 1 增加 2减少 3 最终
*/
private Integer infusingWaterType;
private BigDecimal aSumrealModifyPv;
private BigDecimal bSumrealModifyPv;
/**
* 注水备注
*/
private String remarks;
/**
* 业务单号
*/
private String businessNo;
/**
* 审批业务类型 来源于枚举 EApprovalBusiness
*/
private Integer editType;
/**
* 审核状态 2 待审核 4 已驳回 5 已完成(审核成功) 枚举 EApproveStatus
*/
private Integer approveStatus;
/**
* 流程类型1 免签呈 2免付费 3免签呈+免付费 4 需要签呈需要付费
*/
private Integer processType;
/**
* 扣款币种类型
*/
private Integer pkAccount;
/**
* 扣款币种类型
*/
@Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
private Integer pkAccountKey;
/**
* 扣款币种类型
*/
private String pkAccountKeyVal;
/**
* 会员手续费
*/
List<MemberAmountDTO> memberAmountDTOList;
/**
* 错误信息
*/
private String errorMasg;
/**
* 情况说明
*/
private String remark;
/**
* 业务涨及会员ID列表 --提交审核必传
*/
private Set<Long> pkMemberList;
/**
* 期间
*/
private Integer period;
/**
* 注水业绩记录
*/
private List<CuMemberAchieveLogVO> cmalvList;
/**
* 国家
*/
private Integer pkCountry;
}

View File

@ -1,77 +0,0 @@
package com.hzs.member.base.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2023/8/25 15:48
* @Classname: DirectPushNewVo
* @PackageName: com.hzs.member.base.vo
*/
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.vo
*@Author: yh
*@CreateTime: 2023-08-25 15:48
*@Description: TODO
*@Version: 1.0
*/
@Data
public class DirectPushNewVo {
/**
* 国旗
*/
private String nationalFlag1;
/**
* 国家名称
*/
private String shortName;
/**
* 会员编号
*/
private String memberCode;
/**
* 会员名称
*/
private String memberName;
/**
* 联系方式
*/
private String phone;
/**
* 真实奖衔
*/
private String awardsVal;
/**
* 隶属体系
*/
private String vertexVal;
/**
* 隶属团队
*/
private String teamCode;
/**
* 新增金额
*/
private String consumeMoney;
/**
* 新增业绩
*/
private String consumeAchieve;
/**
* 支付时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date payTime;
}

View File

@ -1,65 +0,0 @@
package com.hzs.member.base.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2023/3/29 9:04
* @Classname: MemberChargingVo
* @PackageName: com.hzs.member.base.vo
*/
import lombok.Data;
import java.math.BigDecimal;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.vo
*@Author: yh
*@CreateTime: 2023-03-29 09:04
*@Description: TODO
*@Version: 1.0
*/
@Data
public class MemberChargingVo {
/**
* 会员编号
*/
private String memberCode;
/**
* 会员姓名
*/
private String memberName;
/**
* 变更前推荐编号
*/
private String editOldParentMemberCode;
/**
* 变更前推荐姓名
*/
private String editOldParentMemberName;
/**
* 变更后推荐编号
*/
private String editNewParentMemberCode;
/**
* 变更后推荐姓名
*/
private String editNewParentMemberName;
/**
* 扣款币种
*/
private Integer pkAccount;
/**
* 币种名称
*/
private String accountName;
/**
* 扣费金额
*/
private BigDecimal accountAmount;
}

View File

@ -1,83 +0,0 @@
package com.hzs.member.base.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2024/1/17 14:10
* @Classname: MemberDirectPushVO
* @PackageName: com.hzs.member.base.vo
*/
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.vo
*@Author: yh
*@CreateTime: 2024-01-17 14:10
*@Description: TODO
*@Version: 1.0
*/
@Data
public class MemberDirectPushVO {
/**
* 统计时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "统计时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date payTime;
/**
* 排名
*/
@Excel(name = "排名")
private Integer ranking;
/**
* 会员编号
*/
@Excel(name = "会员编号")
private String memberCode;
/**
* 会员名称
*/
@Excel(name = "会员名称")
private String memberName;
/**
* 等级名称
*/
@Excel(name = "结算等级")
private String gradeName;
/**
* 奖衔名称
*/
@Excel(name = "真实奖衔")
private String awardsName;
/**
* 会员头像
*/
private String headPath;
/**
* 订单达标业绩
*/
@Excel(name = "直推业绩")
private BigDecimal orderAchieve;
/**
* 脱敏业绩
*/
private String orderAchieveStr;
/**
* 是否登录会员 对应 EyesNo 枚举
*/
private Integer isLoginMember;
}

View File

@ -62,13 +62,11 @@ public class MemberRealInfoVO {
/**
* 证件类型 ECardType
*/
@Transaction(transactionKey = EnumsPrefixConstants.CARD_TYPE)
private Integer cardType;
/**
* 性别0=未知,1=,2=Esex
*/
@Transaction(transactionKey = EnumsPrefixConstants.SEX)
private Integer sex;
/**
@ -325,53 +323,11 @@ public class MemberRealInfoVO {
*/
private String idBack;
/**
* 省id
*/
private Integer pkProvince;
/**
* 省名称
*/
@Excel(name = "", sort = 11)
private String provinceName;
/**
* 市id
*/
private Integer pkCity;
/**
* 市名称
*/
@Excel(name = "", sort = 12)
private String cityName;
/**
* 区县id
*/
private Integer pkCounty;
/**
* 区县名
*/
@Excel(name = "区/县", sort = 13)
private String countyName;
/**
* 详细地址
*/
@Excel(name = "详细地址", sort = 14)
private String address;
/**
* 银行名称
*/
@Excel(name = "银行名称", sort = 15)
private String bankName;
/**
* 支行名称
*/
@Excel(name = "支行名称", sort = 16)
private String subBankName;
/**
* 真实姓名开户姓名
*/
@Excel(name = "开户姓名", sort = 17)
private String accountName;
/**
* 证件类型 字符
*/

View File

@ -1,285 +0,0 @@
package com.hzs.member.base.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2023/5/29 16:02
* @Classname: MemberTeamVo
* @PackageName: com.hzs.member.base.vo
*/
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.vo
*@Author: yh
*@CreateTime: 2023-05-29 16:02
*@Description: TODO
*@Version: 1.0
*/
@Data
public class MemberTeamVo {
/**
* 会员主键
*/
private Long memberId;
/**
* 安置人主键
*/
private Long pkPlaceParent;
/**
* 会员编号
*/
@Excel(name = "会员编号")
private String memberCode;
/**
* 会员名称
*/
@Excel(name = "会员姓名")
private String memberName;
/**
* 真实奖衔
*/
private Integer pkAwards;
/**
* 真实奖衔 str
*/
@Excel(name = "真实奖衔")
private String pkAwardsStr;
/**
* 安置层数
* 查询当前会员在团队的第几层 查询伞下的所有人
*/
@Excel(name = "安置层数")
private Integer resettleLevel;
/**
* 安置部门 str
*/
@Excel(name = "安置位置")
private String placeDeptStr;
/**
* 安置位置
*/
private String resettleLocation;
/**
* 安置人编号
*/
@Excel(name = "安置编号")
private String placeParentCode;
/**
* 血缘代数
*/
@Excel(name = "血缘代数")
private String consanguinityAlgebra;
/**
* 左区首购业绩
*/
@Excel(name = "左区首购业绩($)")
private BigDecimal afirstPv;
/**
* 右区首购业绩
*/
@Excel(name = "右区首购业绩($)")
private BigDecimal bfirstPv;
/**
* 安置部门
*/
private Integer placeDept;
/**
* 血缘首购业绩
*/
@Excel(name = "血缘首购业绩($)")
private BigDecimal consanguinityFirstPv;
/**
* 左区复购业绩
*/
@Excel(name = "左区复购业绩($)")
private BigDecimal repASumPv;
/**
* 右区复购业绩
*/
@Excel(name = "右区复购业绩($)")
private BigDecimal repBSumPv;
/**
* 血缘复购业绩
*/
@Excel(name = "血缘复购业绩($)")
private BigDecimal consanguinityRepBSumPv;
/**
*左区真实业绩(PV)
*/
@Excel(name = "左区真实业绩($)")
private BigDecimal aSumRealPv;
/**
* B区真实业绩(PV)
*/
@Excel(name = "右区真实业绩($)")
private BigDecimal bSumRealPv;
/**
* 血缘真实业绩pv
*/
@Excel(name = "血缘真实业绩($)")
private BigDecimal consanguinityRealPv;
/**
* 奖金收益
*/
// @Excel(name = "奖金收益($)")
private BigDecimal realIncomeTotal;
/**
* 奖金团队占比
*/
@Excel(name = "奖金团队占比(%)",suffix = "%")
private BigDecimal bonusTeamProportion;
/**
* 奖金大盘占比
*/
@Excel(name = "奖金大盘占比%")
private BigDecimal bonusLargeMarketProportion;
/**
* 直推人数
*/
@Excel(name = "直推人数")
private Long directPushPeopleNumber;
/**
* 直推业绩
*/
@Excel(name = "直推业绩")
private Long directPushPeoplePv;
/**
* 复购金额
*/
@Excel(name = "复购金额$")
private BigDecimal repurchaseAmount;
/**
* 复购业绩
*/
@Excel(name = "复购业绩")
private BigDecimal repurchasePv;
/**
* 复购积分
*/
@Excel(name = "复购积分")
private BigDecimal repurchaseIntegral;
/**
* 福利金额$
*/
@Excel(name = "福利金额($)")
private BigDecimal benefitAmount;
/**
* 福利业绩(pv)
*/
@Excel(name = "福利业绩($)")
private BigDecimal benefitPv;
/**
* 福利积分
*/
@Excel(name = "福利积分")
private BigDecimal welfarePoints;
/**
* 转账次数
*/
@Excel(name = "转账次数")
private Integer memberTransferCount;
/**
* 转账金额$
*/
@Excel(name = "转账金额($)")
private BigDecimal transferAmount;
/**
* 充值金额$
*/
@Excel(name = "充值金额($)")
private BigDecimal rechargeAmount;
/**
* 提现次数
*/
@Excel(name = "提现次数")
private Integer withdrawalNumber;
/**
* 提现金额$
*/
@Excel(name = "提现金额($)")
private Integer withdrawalAmount;
/**
* 登录次数
*/
// @Excel(name = "登录次数")
private Integer loginNumber;
/**
* 最后一次登录时间
*/
@Excel(name = "最近登录",dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastLoginTime;
/**
* 最后一次登录时间间隔天数
*/
// @Excel(name = "最后一次登录时间间隔天数")
private Long lastLoginTimeIntervalDays;
/**
* 创建时间
*/
@Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date creationTime;
/**
* 支付时间
*/
@Excel(name = "支付时间",dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date payTime;
/**
* 修改直推次数
*/
@Excel(name = "修改直推次数")
private Integer directPushNumber;
/**
* 层级
*/
private Integer level;
}

View File

@ -1,40 +0,0 @@
package com.hzs.member.base.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @Description: 列表筛选显现隐藏实体vo
* @Author: zhangjing
* @Time: 2022/10/13 11:21
* @Classname: CuMemberVO
* @PackageName: com.hzs.member.base.vo
*/
@Data
@AllArgsConstructor
public class TheLableVO {
private static final long serialVersionUID = 1L;
/**
* 表头名称
*/
private String titel;
/**
* 对应字段
*/
private String prop;
/**
* key键
*/
private Integer keyId;
/**
* 显示隐藏
*/
private String show;
}

View File

@ -1,31 +0,0 @@
package com.hzs.member.base.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2024/4/30 15:11
* @Classname: WaresAuthorityParentVo
* @PackageName: com.hzs.member.base.vo
*/
import lombok.Data;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.member.base.vo
*@Author: yh
*@CreateTime: 2024-04-30 15:11
*@Description: TODO
*@Version: 1.0
*/
@Data
public class WaresAuthorityParentVo {
/**
* 会员主键
*/
private Integer pkMember;
/**
* 会员编号
*/
private Long memberCount;
}

View File

@ -2,14 +2,12 @@ package com.hzs.member.self.controller.api;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
import com.hzs.common.core.enums.EApprovalBusiness;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.member.self.CuSelfServiceLog;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.account.service.ICuMemberAuthenticationService;
@ -18,14 +16,10 @@ import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.self.service.ICuSelfServiceLogService;
import com.hzs.member.self.vo.DomicileChangeVO;
import com.hzs.member.sms.service.IApiAliSmsService;
import com.hzs.system.config.IServiceChargeServiceApi;
import com.hzs.system.config.dto.ServiceChargeDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.List;
/**
@ -41,12 +35,9 @@ public class ApiDomicileChangeController extends BaseController {
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private IApiAliSmsService iApiAliSmsService;
@Autowired
private ICuSelfServiceLogService iCuSelfServiceLogService;
@DubboReference
IServiceChargeServiceApi iServiceChargeServiceApi;
@Autowired
private IApiAliSmsService iApiAliSmsService;
/**
* 查询可申请信息
@ -55,45 +46,45 @@ public class ApiDomicileChangeController extends BaseController {
*/
@GetMapping("/application-info-list")
public AjaxResult applicationInformation() {
Long pkMember = SecurityUtils.getUserId();
CuMemberExt member = iCuMemberService.getMemberById(pkMember);
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().memberCode(member.getMemberCode())
.memberName(member.getMemberName()).phone(member.getPhone())
.changeNum(MagicNumberConstants.CHANGE_NUM).build();
CuMemberExt member = iCuMemberService.getMemberById(SecurityUtils.getUserId());
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder()
.memberCode(member.getMemberCode())
.memberName(member.getMemberName())
.phone(member.getPhone())
.changeNum(MagicNumberConstants.CHANGE_NUM)
.build();
return AjaxResult.success(domicileChangeVO);
}
@GetMapping("/application-info-detail")
public AjaxResult applicationInformationDetail() {
return AjaxResult.success(iCuSelfServiceLogService.selectDomicileChangeByPkMember(SecurityUtils.getUserId(), EApprovalBusiness.DOMICILE_CHANGE.getValue(), SecurityUtils.getPkCountry()));
}
/**
* 查询已申请信息
* 显示户籍变更信息
*
* @return AjaxResult
*/
@GetMapping("/applied-info-list")
public AjaxResult appliedInformation() {
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().pkMember(SecurityUtils.getUserId())
.pkCountry(SecurityUtils.getPkCountry()).editType(EApprovalBusiness.DOMICILE_CHANGE.getValue()).build();
List<DomicileChangeVO> domicileChangeVOList = (List<DomicileChangeVO>) iCuSelfServiceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1];
return AjaxResult.success(domicileChangeVOList);
@GetMapping("/show-change-domicile")
public AjaxResult showChangeDomicile() {
String idBack = null;
String idFront = null;
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
CuMemberExt member = iCuMemberService.getMemberById(pkMember);
//查询实名认证信息原证件图
CuMemberAuthenticationVO authenticationVO = CuMemberAuthenticationVO.builder().pkCountry(pkCountry).pkMember(pkMember).build();
CuMemberAuthenticationVO cuMemberAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(authenticationVO);
if (null != cuMemberAuthenticationVO) {
idBack = cuMemberAuthenticationVO.getIdBack();
idFront = cuMemberAuthenticationVO.getIdFront();
}
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder()
.memberCode(member.getMemberCode())
.memberName(member.getMemberName())
.phone(member.getPhone())
.idBack(idBack)
.idFront(idFront)
.build();
return AjaxResult.success(domicileChangeVO);
}
/**
* 自助服务是否显示户籍认证
*
* @return AjaxResult
*/
@GetMapping("/show-index-domicile")
public AjaxResult showIndexDomicile() {
return AjaxResult.success(iCuSelfServiceLogService.showIndexDomicile(SecurityUtils.getPkCountry(), SecurityUtils.getUserId()));
}
/**
* 申请户籍变更
*
@ -125,13 +116,8 @@ public class ApiDomicileChangeController extends BaseController {
}
domicileChangeVO.setPkCountry(pkCountry);
domicileChangeVO.setPkMember(pkMember);
//是否有正在审批业务
AjaxResult existApprovalData = isExistApprovalData(domicileChangeVO);
if (!existApprovalData.equals(AjaxResult.success())) {
return existApprovalData;
}
// 校验短信验证码
String message = iApiAliSmsService.checkCode(domicileChangeVO.getChangePhone(), domicileChangeVO.getVerificationCode(), null);
String message = iApiAliSmsService.checkCode(domicileChangeVO.getChangePhone(), domicileChangeVO.getVerificationCode(), null, pkMember);
if (null != message) {
return AjaxResult.error(message);
}
@ -139,63 +125,19 @@ public class ApiDomicileChangeController extends BaseController {
}
/**
* 显示户籍变更信息
* 查询已申请信息
*
* @return AjaxResult
*/
@GetMapping("/show-change-domicile")
public AjaxResult showChangeDomicile() {
String idBack = null;
String idFront = null;
Long pkMember = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
CuMemberExt member = iCuMemberService.getMemberById(pkMember);
//查询实名认证信息原证件图
CuMemberAuthenticationVO authenticationVO = CuMemberAuthenticationVO.builder().pkCountry(pkCountry).pkMember(pkMember).build();
CuMemberAuthenticationVO cuMemberAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(authenticationVO);
if (null != cuMemberAuthenticationVO) {
idBack = cuMemberAuthenticationVO.getIdBack();
idFront = cuMemberAuthenticationVO.getIdFront();
}
ServiceChargeDTO serviceChargeInfo = getServiceChargeInfo(pkCountry);
BigDecimal cost = null != serviceChargeInfo ? serviceChargeInfo.getCost() : BigDecimal.ZERO;
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().memberCode(member.getMemberCode())
.memberName(member.getMemberName()).phone(member.getPhone()).amount(cost).pkAccount(serviceChargeInfo.getPkAccount())
.idBack(idBack).idFront(idFront).build();
return AjaxResult.success(domicileChangeVO);
}
/**
* 是否存在审核的数据
*
* @param domicileChangeVO 户籍变更信息
* @return AjaxResult
*/
private AjaxResult isExistApprovalData(DomicileChangeVO domicileChangeVO) {
CuSelfServiceLog cuSelfServiceLog = new CuSelfServiceLog();
cuSelfServiceLog.setPkCountry(domicileChangeVO.getPkCountry());
cuSelfServiceLog.setEditType(EApprovalBusiness.DOMICILE_CHANGE.getValue());
cuSelfServiceLog.setPkMember(domicileChangeVO.getPkMember());
Integer check = iCuSelfServiceLogService.checkSelfService(cuSelfServiceLog);
if (check > 0) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_UPDATE_CODE_REPEAT));
}
return AjaxResult.success();
}
/**
* 查询手续费
*
* @param pkCountry 国家pID
* @return ServiceChargeDTO
*/
private ServiceChargeDTO getServiceChargeInfo(Integer pkCountry) {
//查询扣费金额账户信息
ServiceChargeDTO serviceChargeDTO = new ServiceChargeDTO();
serviceChargeDTO.setType(EApprovalBusiness.DOMICILE_CHANGE.getValue());
serviceChargeDTO.setPkCountry(pkCountry);
serviceChargeDTO.setQuantity(MagicNumberConstants.CHANGE_NUM);
return iServiceChargeServiceApi.getServiceChargeByType(serviceChargeDTO).getData();
@GetMapping("/applied-info-list")
public AjaxResult appliedInformation() {
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder()
.pkMember(SecurityUtils.getUserId())
.pkCountry(SecurityUtils.getPkCountry())
.editType(EApprovalBusiness.DOMICILE_CHANGE.getValue())
.build();
List<DomicileChangeVO> domicileChangeVOList = (List<DomicileChangeVO>) iCuSelfServiceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1];
return AjaxResult.success(domicileChangeVOList);
}
}

View File

@ -1,19 +1,12 @@
package com.hzs.member.self.controller.api;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.enums.EGrade;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.self.service.ICuSelfServiceLogService;
import com.hzs.member.self.vo.SelfVO;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.GradeDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -27,44 +20,23 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiSelfController extends BaseController {
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private ICuSelfServiceLogService iCuSelfServiceLogService;
@DubboReference
IGradeServiceApi iGradeServiceApi;
/**
* 自助权限查询
*/
@GetMapping("/authority")
public AjaxResult validateSelfAuthority() {
CuMemberExt cuMember = iCuMemberService.getMenuMember(SecurityUtils.getUserId());
// 获取等级
GradeDTO gradeDTO = iGradeServiceApi.getGrade(cuMember.getPkSettleGrade()).getData();
if (EGrade.START_UP.getValue() == gradeDTO.getGradeValue()) {
// 会员等级需要实名认证
return AjaxResult.success(SelfVO.builder()
.existRealName(EYesNo.YES.getIntValue())
.build());
}
Long userId = SecurityUtils.getUserId();
Integer pkCountry = SecurityUtils.getPkCountry();
Integer showAddress = iCuSelfServiceLogService.showHiddenAddress(cuMember.getPkId(), pkCountry);
Integer showAddress = iCuSelfServiceLogService.showHiddenAddress(userId, pkCountry);
SelfVO selfVO = SelfVO.builder()
.existAddress(showAddress)
.existOrderSelf(showAddress)
.selfRevokeOrder(showAddress)
.existDomicile(iCuSelfServiceLogService.showIndexDomicile(pkCountry, cuMember.getPkId()))
.existDomicile(iCuSelfServiceLogService.showIndexDomicile(pkCountry, userId))
.existRealName(EYesNo.YES.getIntValue())
.existMemberMonth(EYesNo.YES.getIntValue())
.build();
if (!pkCountry.equals(CountryConstants.CHINA_COUNTRY)) {
selfVO.setSelfRevokeOrder(EYesNo.NO.getIntValue());
}
return AjaxResult.success(selfVO);
}
}

View File

@ -1,24 +1,17 @@
package com.hzs.member.self.controller.manage;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
import com.hzs.common.core.enums.EApprovalBusiness;
import com.hzs.common.core.enums.EOperationBusiness;
import com.hzs.common.core.enums.EOperationMethod;
import com.hzs.common.core.enums.EOperationModule;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.self.CuSelfServiceLogExt;
import com.hzs.common.security.service.UserTokenService;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.self.service.ICuSelfServiceLogService;
import com.hzs.member.self.vo.DomicileChangeVO;
import com.hzs.system.sys.dto.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@ -28,12 +21,6 @@ import java.util.List;
/**
* 变理户籍
*
* @Description:
* @Author: ljc
* @Time: 2023/4/18 10:07
* @Classname: ApiDomicileChangeController
* @Package_name: com.hzs.member.self.controller.api
*/
@Slf4j
@RequestMapping("/manage/change-domicile")
@ -43,10 +30,6 @@ public class DomicileChangeController extends BaseController {
@Autowired
private ICuSelfServiceLogService serviceLogService;
@Autowired
private UserTokenService userTokenService;
/**
* 户籍变更列表
*
@ -64,7 +47,6 @@ public class DomicileChangeController extends BaseController {
return tableDataInfo;
}
/**
* 户籍变更列表
*
@ -77,35 +59,4 @@ public class DomicileChangeController extends BaseController {
}
/**
* 驳回
*
* @return AjaxResult
*/
@PostMapping("/domicile-change-reject")
@Log(module = EOperationModule.DOMICILE_CHANGE, business = EOperationBusiness.DOMICILE_CHANGE, method = EOperationMethod.REJECT)
public AjaxResult domicileChangeReject(@RequestBody DomicileChangeVO domicileChangeVO) {
if (StringUtils.isEmpty(domicileChangeVO.getRejectMsg())) {
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.REJECT_MSG_NOT_NULL));
}
return AjaxResult.success(serviceLogService.domicileChangeRejectById(domicileChangeVO, SecurityUtils.getUserId()));
}
/**
* 同意
*
* @return AjaxResult
*/
@PostMapping("/domicile-change-agree")
@Log(module = EOperationModule.DOMICILE_CHANGE, business = EOperationBusiness.DOMICILE_CHANGE, method = EOperationMethod.AGREE)
public AjaxResult domicileChangeAgree(@RequestBody DomicileChangeVO domicileChangeVO) {
LoginUser loginUser = userTokenService.getLoginUser();
domicileChangeVO.setLoginUser(loginUser);
domicileChangeVO.setPkModified(SecurityUtils.getUserId());
domicileChangeVO.setPkCountry(SecurityUtils.getPkCountry());
return AjaxResult.success(serviceLogService.domicileChangeAgree(domicileChangeVO));
}
}

View File

@ -1,10 +1,8 @@
package com.hzs.member.self.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.member.self.CuSelfServiceLog;
import com.hzs.common.domain.member.self.CuSelfServiceLogExt;
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
import com.hzs.member.self.vo.MyOrderItemsVO;
import com.hzs.member.self.vo.SelfModifyAddressVO;
import com.hzs.member.self.vo.DomicileChangeVO;
@ -13,48 +11,22 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 自助服务日志表 Mapper 接口
* </p>
*
* @author hzs
* @since 2023-04-17
*/
public interface CuSelfServiceLogMapper extends BaseMapper<CuSelfServiceLog> {
/**
* @description: 自助服务-查询已申请修改收货地址
* @author: zhang jing
* @date: 2023/4/17 14:36
* @param: [selfModifyAddressVO]
* @return: java.util.List<com.hzs.member.self.vo.SelfModifyAddressVO>
* 自助服务-查询已申请修改收货地址
**/
List<SelfModifyAddressVO> querySelfModifyAddressList(SelfModifyAddressVO selfModifyAddressVO);
/**
* @description: 自助服务-查询已申请修改收货地址管理端
* @author: zhang jing
* @date: 2023/7/24 11:43
* @param: [selfModifyAddressVO]
* @return: java.util.List<com.hzs.member.self.vo.SelfModifyAddressVO>
* 自助服务-查询已申请修改收货地址管理端
**/
List<SelfModifyAddressVO> querySelfModifyAddressManageList(SelfModifyAddressVO selfModifyAddressVO);
/**
* @description: 自助服务-校验是否存在重复审核
* @author: zhang jing
* @date: 2023/4/17 16:40
* @param: [selfModifyAddressVO]
* @return: java.lang.Integer
**/
Integer checkSelfService(CuSelfServiceLog cuSelfServiceLog);
/**
* @description: 自助服务-查询申请的最大次数
* @author: zhang jing
* @date: 2023/4/17 17:08
* @param: [selfModifyAddressVO]
* @return: java.lang.Integer
* 自助服务-查询申请的最大次数
**/
Integer selectByMaxApproveNumber(CuSelfServiceLog cuSelfServiceLog);
@ -74,16 +46,6 @@ public interface CuSelfServiceLogMapper extends BaseMapper<CuSelfServiceLog> {
*/
CuSelfServiceLogExt selectDomicileChangeDetail(@Param("pkId") Long pkId);
/**
* 根据用户ID和类型查询自动服务
*
* @param editType 服务类型
* @param pkMember 会员ID
* @param pkCountry 国家ID
* @return CuSelfServiceLogExt
*/
CuSelfServiceLogExt selectDomicileChangeByPkMember(@Param("editType") Integer editType, @Param("pkMember") Long pkMember, @Param("pkCountry") Integer pkCountry);
/**
* 根据业务类型业务编号查询自助信息
*
@ -93,12 +55,6 @@ public interface CuSelfServiceLogMapper extends BaseMapper<CuSelfServiceLog> {
*/
CuSelfServiceLog selectSelfServiceByBusinessNo(@Param("editType") Integer editType, @Param("businessNo") String businessNo);
/**
* 根据业务编号更新审批信息
*/
Integer updateSelfServiceByBusinessNo(DomicileChangeVO domicileChangeVO);
/**
* 根据订单ID查询订单明细列表前台使用尽量只查能用到的
*

View File

@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EApprovalBusiness;
import com.hzs.common.core.enums.EModifyRecordStatus;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.domain.member.base.CuMember;
@ -14,7 +13,6 @@ import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.self.ICuSelfServiceServiceApi;
import com.hzs.member.self.dto.SelfServiceDataDTO;
import com.hzs.member.self.service.ICuSelfServiceLogService;
import com.hzs.member.self.vo.DomicileChangeVO;
import com.hzs.member.self.vo.SelfModifyAddressVO;
import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
@ -23,17 +21,10 @@ import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.Map;
/**
* 自助服务Dubbo 服务
*
* @Description:
* @Author: ljc
* @Time: 2023/4/19 16:24
* @Classname: ICuSelfServiceServiceProvider
* @Package_name: com.hzs.member.self.provider
*/
@Slf4j
@DubboService
@ -53,9 +44,6 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi {
public R<?> analysisSelfServiceData(SelfServiceDataDTO selfServiceDataDTO) {
EApprovalBusiness eApprovalBusiness = EApprovalBusiness.getEnumByValue(selfServiceDataDTO.getEditType());
switch (eApprovalBusiness) {
case DOMICILE_CHANGE:
//户籍变更数据
return R.ok(getDomicileChangeData(selfServiceDataDTO));
case SELF_MODIFY_ADDRESS:
//修改地址
return R.ok(getSelfModifyAddress(selfServiceDataDTO));
@ -65,24 +53,7 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi {
}
/**
* 户籍变更数据
*
* @param selfServiceDataDTO 自助服务参数
* @return List<DomicileChangeVO>
*/
private List<DomicileChangeVO> getDomicileChangeData(SelfServiceDataDTO selfServiceDataDTO) {
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().editType(selfServiceDataDTO.getEditType())
.pkCountry(selfServiceDataDTO.getPkCountry())
.businessNo(selfServiceDataDTO.getBusinessNo()).build();
return (List<DomicileChangeVO>) cuSelfServiceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1];
}
/**
* @description: 自助服务-修改收货地址
* @author: zhang jing
* @date: 2023/4/20 16:18
* @param: [selfServiceDataDTO]
* @return: java.util.List<com.hzs.member.self.vo.SelfModifyAddressVO>
* 自助服务-修改收货地址
**/
private SelfModifyAddressVO getSelfModifyAddress(SelfServiceDataDTO selfServiceDataDTO) {
SelfModifyAddressVO selMad = SelfModifyAddressVO.builder()
@ -144,17 +115,6 @@ public class ICuSelfServiceServiceProvider implements ICuSelfServiceServiceApi {
}
try {
switch (eApprovalBusiness) {
//户籍变更数据
case DOMICILE_CHANGE:
//审批通过
if (approveOperation.equals(EModifyRecordStatus.APPROVE.getValue())) {
return R.ok(cuSelfServiceLogService.domicileChangeApproved(approvalBusinessResultDTO, selfServiceLog));
}
//审批驳回
if (approveOperation.equals(EModifyRecordStatus.REJECT.getValue())) {
//横冲手续费
return R.ok(cuSelfServiceLogService.domicileChangeReject(approvalBusinessResultDTO, selfServiceLog));
}
case SELF_MODIFY_ADDRESS:
//修改地址
return R.ok(cuSelfServiceLogService.selfExamine(approvalBusinessResultDTO));

View File

@ -24,11 +24,6 @@ public interface ICuSelfServiceLogService extends IService<CuSelfServiceLog> {
**/
List<SelfModifyAddressVO> querySelfModifyAddressManageList(SelfModifyAddressVO selfModifyAddressVO);
/**
* 自助服务-校验是否存在重复审核
**/
Integer checkSelfService(CuSelfServiceLog cuSelfServiceLog);
/**
*
**/
@ -52,7 +47,6 @@ public interface ICuSelfServiceLogService extends IService<CuSelfServiceLog> {
**/
boolean selfExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO);
/**
* 根据业务类型用户ID查询自助服务
*
@ -78,16 +72,6 @@ public interface ICuSelfServiceLogService extends IService<CuSelfServiceLog> {
*/
DomicileChangeVO selectDomicileChangeDetail(Long pkId);
/**
* 根据用户ID和类型查询自动服务
*
* @param editType 服务类型
* @param pkMember 会员ID
* @param pkCountry 国家ID
* @return CuSelfServiceLogExt
*/
DomicileChangeVO selectDomicileChangeByPkMember(Long pkMember, Integer editType, Integer pkCountry);
/**
* 根据业务类型业务编号查询自助信息
*
@ -97,41 +81,6 @@ public interface ICuSelfServiceLogService extends IService<CuSelfServiceLog> {
*/
CuSelfServiceLog selectSelfServiceByBusinessNo(Integer editType, String businessNo);
/**
* 户籍变更审批通过
*
* @param approvalBusinessResultDTO 审核参数
* @param selfServiceLog 自助信息
* @return Boolean
*/
Integer domicileChangeApproved(ApprovalBusinessResultDTO approvalBusinessResultDTO, CuSelfServiceLog selfServiceLog);
/**
* 户籍变更审批驳回
*
* @param approvalBusinessResultDTO 审核参数
* @param selfServiceLog 自助信息
* @return Integer
*/
Integer domicileChangeReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, CuSelfServiceLog selfServiceLog);
/**
* 户籍变更审批驳回
*
* @param domicileChangeVO ID
* @param pkMember 会员ID
* @return Integer
*/
Boolean domicileChangeRejectById(DomicileChangeVO domicileChangeVO, Long pkMember);
/**
* 户籍变更审批同意后台列表操作
*
* @param domicileChangeVO 户籍变更
* @return
*/
Integer domicileChangeAgree(DomicileChangeVO domicileChangeVO);
/**
*
**/

View File

@ -5,12 +5,11 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.CountryConstants;
import com.hzs.common.core.constant.MagicNumberConstants;
import com.hzs.common.core.constant.RabbitMqConstants;
import com.hzs.common.core.constant.SystemFieldConstants;
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
@ -18,14 +17,12 @@ import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.utils.CommonUtil;
import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.member.self.CuSelfServiceLog;
import com.hzs.common.domain.member.self.CuSelfServiceLogExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.account.dto.BusinessCommissionDTO;
import com.hzs.member.account.dto.MemberAmountDTO;
import com.hzs.member.account.service.*;
import com.hzs.member.base.service.ICuMemberBusinessService;
import com.hzs.member.base.service.ICuMemberService;
@ -39,9 +36,7 @@ import com.hzs.sale.order.ISaOrderServiceApi;
import com.hzs.system.sys.IApprovalServiceApi;
import com.hzs.system.sys.dto.ApprovalBusinessResultDTO;
import com.hzs.system.sys.dto.ApprovalSubmitDTO;
import com.hzs.system.sys.dto.BusinessLogDTO;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -67,17 +62,13 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
@Autowired
private ICuMemberAccountService iCuMemberAccountService;
@Autowired
private ICuMemberTradeService cuMemberTradeService;
private ICuMemberTradeService iCuMemberTradeService;
@Autowired
private ICuMemberAuthenticationService cuMemberAuthenticationService;
private ICuMemberAuthenticationService iCuMemberAuthenticationService;
@Autowired
private ICuMemberBusinessLicenseService cuMemberBusinessLicenseService;
private ICuMemberBusinessLicenseService iCuMemberBusinessLicenseService;
@Autowired
private ICuMemberService cuMemberService;
@Autowired
private ICuMemberBankService cuMemberBankService;
@Autowired
private RabbitTemplate rabbitTemplate;
private ICuMemberService iCuMemberService;
@Override
public List<SelfModifyAddressVO> querySelfModifyAddressList(SelfModifyAddressVO selfModifyAddressVO) {
@ -89,11 +80,6 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
return baseMapper.querySelfModifyAddressManageList(selfModifyAddressVO);
}
@Override
public Integer checkSelfService(CuSelfServiceLog cuSelfServiceLog) {
return baseMapper.checkSelfService(cuSelfServiceLog);
}
@Override
public Integer selectByMaxApproveNumber(CuSelfServiceLog cuSelfServiceLog) {
return baseMapper.selectByMaxApproveNumber(cuSelfServiceLog);
@ -166,114 +152,53 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
@Transactional(rollbackFor = Exception.class)
public Boolean saveChangeDomicile(DomicileChangeVO domicileChangeVO) {
Long pkMember = domicileChangeVO.getPkMember();
int editType = EApprovalBusiness.DOMICILE_CHANGE.getValue();
Integer pkCountry = domicileChangeVO.getPkCountry();
CuSelfServiceLogExt cuSelfServiceLogExt = baseMapper.selectDomicileChangeByPkMember(editType, pkMember, pkCountry);
//逻辑删除已有的信息
if (null != cuSelfServiceLogExt) {
UpdateWrapper<CuSelfServiceLog> updateWrapper = new UpdateWrapper<>();
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EDelFlag.DELETE.getValue());
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkMember);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date());
updateWrapper.eq("PK_ID", cuSelfServiceLogExt.getPkId());
update(updateWrapper);
}
//更新业务
iCuMemberService.updateMemberNameAndPhone(pkMember, domicileChangeVO.getChangeMemberName(), domicileChangeVO.getChangePhone(), pkMember);
// 注销实名认证营业执照
changeBusinessByChangeName(pkMember, pkMember);
//重置银行卡
BusinessMemberVO businessMemberVO = BusinessMemberVO.builder().pkMember(pkMember).build();
// iCuMemberBankService.batchUpdateBankBypkMembers(Collections.singletonList(businessMemberVO), pkModified);
//修改会员的变更次数
List<Long> pkMembers = Collections.singletonList(businessMemberVO.getPkMember());
iCuMemberService.updateMemberEditNumber(pkMembers, pkMember);
//变更前值
DomicileChangeVO oldValue = DomicileChangeVO.builder().memberName(domicileChangeVO.getMemberName())
.phone(domicileChangeVO.getPhone()).idFront(domicileChangeVO.getIdFront()).idBack(domicileChangeVO.getIdBack()).build();
DomicileChangeVO oldValue = DomicileChangeVO.builder()
.memberName(domicileChangeVO.getMemberName())
.phone(domicileChangeVO.getPhone())
.idFront(domicileChangeVO.getIdFront())
.idBack(domicileChangeVO.getIdBack())
.build();
//变更后的值
DomicileChangeVO newValue = DomicileChangeVO.builder().changeMemberName(domicileChangeVO.getChangeMemberName())
.changePhone(domicileChangeVO.getChangePhone()).changeIdFront(domicileChangeVO.getChangeIdFront()).changeIdBack(domicileChangeVO.getChangeIdBack()).build();
DomicileChangeVO newValue = DomicileChangeVO.builder()
.changeMemberName(domicileChangeVO.getChangeMemberName())
.changePhone(domicileChangeVO.getChangePhone())
.changeIdFront(domicileChangeVO.getChangeIdFront())
.changeIdBack(domicileChangeVO.getChangeIdBack())
.build();
String businessNo = CommonUtil.createSerialNumber(EOrderPrefix.SELF_SERVICE.getValue());
CuSelfServiceLog oldServiceLog = CuSelfServiceLog.builder().pkMember(pkMember)
.editType(editType).oldValue(JSONUtil.toJsonStr(oldValue)).selfRemark(domicileChangeVO.getRemark()).description(domicileChangeVO.getDescription())
.newValue(JSONUtil.toJsonStr(newValue)).businessNo(businessNo).approveStatus(EApproveRechargeStatus.SUBMIT.getValue()).pkAccount(domicileChangeVO.getPkAccount())
.approveNumber(MagicNumberConstants.CHANGE_NUM).singleAmount(domicileChangeVO.getAmount()).editTypePay(ETradeType.getValueByApprovalValue(editType)).build();
oldServiceLog.setPkCreator(pkMember);
oldServiceLog.setPkCountry(pkCountry);
//保存
this.save(oldServiceLog);
//扣费
return Charging(domicileChangeVO, businessNo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer domicileChangeAgree(DomicileChangeVO domicileChangeVO) {
String businessNo = domicileChangeVO.getBusinessNo();
Long pkMember = domicileChangeVO.getPkMember();
Long pkModified = domicileChangeVO.getPkModified();
//更新审核状态
DomicileChangeVO domicileChange = DomicileChangeVO.builder().businessNo(businessNo)
.approveStatus(EApproveRechargeStatus.WAIT.getValue()).approveTime(new Date())
.pkModified(pkModified).build();
Integer result = baseMapper.updateSelfServiceByBusinessNo(domicileChange);
//调用审批接口修改审批状态
ApprovalSubmitDTO approvalSubmitDTO = ApprovalSubmitDTO.builder().eApprovalBusiness(EApprovalBusiness.DOMICILE_CHANGE)
.businessCode(businessNo).signSource(ESignSource.MANAGE)
.signType(ESignType.GENERAL).userIdList(domicileChangeVO.getUserIdList())
.remark(domicileChangeVO.getRemark()).pkMemberList(Collections.singleton(pkMember))
.sendIdList(domicileChangeVO.getSendIdList()).fileList(domicileChangeVO.getFileList())
CuSelfServiceLog oldServiceLog = CuSelfServiceLog.builder()
.pkMember(pkMember)
.editType(EApprovalBusiness.DOMICILE_CHANGE.getValue())
.oldValue(JSONUtil.toJsonStr(oldValue))
.newValue(JSONUtil.toJsonStr(newValue))
.businessNo(businessNo)
.selfRemark(domicileChangeVO.getRemark())
.description(domicileChangeVO.getDescription())
.approveStatus(EApproveRechargeStatus.AGREE.getValue())
.pkAccount(domicileChangeVO.getPkAccount())
.approveNumber(MagicNumberConstants.CHANGE_NUM)
.singleAmount(domicileChangeVO.getAmount())
.editTypePay(ETradeType.getValueByApprovalValue(EApprovalBusiness.DOMICILE_CHANGE.getValue()))
.build();
R<String> submit = iApprovalServiceApi.submit(approvalSubmitDTO, domicileChangeVO.getLoginUser());
if (!submit.isSuccess()) {
throw new RuntimeException(submit.getMsg());
}
//MQ户籍变更操作日志
CuSelfServiceLog cuSelfServiceLog = baseMapper.selectSelfServiceByBusinessNo(EApprovalBusiness.DOMICILE_CHANGE.getValue(), businessNo);
packageDomicileOperationLog(cuSelfServiceLog, businessNo, "同意", pkModified, false);
return result;
oldServiceLog.setPkCreator(pkMember);
oldServiceLog.setPkCountry(CountryConstants.CHINA_COUNTRY);
return this.save(oldServiceLog);
}
/**
* 户籍变更操作日志
*
* @param cuSelfServiceLog 入参
* @param businessNo 业务编号
* @param operationType 操作类型
*/
private void packageDomicileOperationLog(CuSelfServiceLog cuSelfServiceLog, String businessNo, String operationType, Long pkMember, Boolean freeSignFlag) {
DomicileChangeVO oldValue = JSONUtil.toBean(cuSelfServiceLog.getOldValue(), DomicileChangeVO.class);
DomicileChangeVO newValue = JSONUtil.toBean(cuSelfServiceLog.getNewValue(), DomicileChangeVO.class);
CuMemberExt cumember = cuMemberService.getMemberById(cuSelfServiceLog.getPkMember());
String sb = "会员编号:" + cumember.getMemberCode() +
" 变更前的会员姓名:" + oldValue.getMemberName() +
" 变更后的会员姓名:" + newValue.getChangeMemberName() +
" 变更前的联系方式:" + oldValue.getPhone() +
" 变更后的联系方式:" + newValue.getChangePhone() +
" 操作类型:" + operationType;
BusinessLogDTO businessLog = BusinessLogDTO.builder()
.businessType(EApprovalBusiness.DOMICILE_CHANGE.getValue())
.businessCode(businessNo).pkMember(cuSelfServiceLog.getPkMember())
.content(sb).pkCreator(pkMember)
.pkCountry(cuSelfServiceLog.getPkCountry())
.freeSignFlag(freeSignFlag).build();
rabbitTemplate.convertAndSend(RabbitMqConstants.BUSINESS_LOG_EXCHANGE, RabbitMqConstants.BUSINESS_LOG_KEY, Collections.singleton(businessLog));
}
/**
* 扣费
*
* @param domicileChangeVO 户籍变更信息
* @param businessNo 业务编号
*/
public Boolean Charging(DomicileChangeVO domicileChangeVO, String businessNo) {
MemberAmountDTO memberAmountDTO = MemberAmountDTO.builder().pkMember(domicileChangeVO.getPkMember()).tradeAmount(domicileChangeVO.getAmount()).build();
List<MemberAmountDTO> memberAmountDTOList = new ArrayList<>();
memberAmountDTOList.add(memberAmountDTO);
BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder().pkAccount(domicileChangeVO.getPkAccount())
.tradeType(EApprovalBusiness.DOMICILE_CHANGE.getValue())
.tradeCode(businessNo)
.pkCountry(domicileChangeVO.getPkCountry())
.pkCreator(domicileChangeVO.getPkModified()).build();
businessCommissionDTO.setMemberAmountDTOList(memberAmountDTOList);
return cuMemberTradeService.businessCommissionSubmit(businessCommissionDTO);
}
@Override
public Object[] selectSelfServiceByPkMember(DomicileChangeVO domicileChangeVO) {
DomicileChangeVO domicileChange;
@ -290,11 +215,11 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
@Override
public Integer showIndexDomicile(Integer pkCountry, Long pkMember) {
QueryWrapper<CuSelfServiceLog> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("PK_MEMBER", pkMember);
queryWrapper.eq("PK_COUNTRY", pkCountry);
queryWrapper.eq("EDIT_TYPE", EApprovalBusiness.DOMICILE_CHANGE.getValue());
queryWrapper.eq("APPROVE_STATUS", EApproveRechargeStatus.AGREE.getValue());
LambdaQueryWrapper<CuSelfServiceLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuSelfServiceLog::getPkMember, pkMember);
queryWrapper.eq(CuSelfServiceLog::getPkCountry, pkCountry);
queryWrapper.eq(CuSelfServiceLog::getEditType, EApprovalBusiness.DOMICILE_CHANGE.getValue());
queryWrapper.eq(CuSelfServiceLog::getApproveStatus, EApproveRechargeStatus.AGREE.getValue());
Integer count = baseMapper.selectCount(queryWrapper);
return count > 0 ? EYesNo.NO.getIntValue() : EYesNo.YES.getIntValue();
}
@ -303,18 +228,8 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
public DomicileChangeVO selectDomicileChangeDetail(Long pkId) {
CuSelfServiceLogExt cuSelfServiceLogExt = baseMapper.selectDomicileChangeDetail(pkId);
return chargeDomicileChangeVO(cuSelfServiceLogExt);
}
@Override
public DomicileChangeVO selectDomicileChangeByPkMember(Long pkMember, Integer editType, Integer pkCountry) {
CuSelfServiceLogExt cuSelfServiceLogExt = baseMapper.selectDomicileChangeByPkMember(editType, pkMember, pkCountry);
return chargeDomicileChangeVO(cuSelfServiceLogExt);
}
/**
* 转化户籍VO
*
@ -334,7 +249,6 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
.rejectMsg(selfServiceLog.getRejectMsg())
.approveTime(selfServiceLog.getApproveTime())
.remark(selfServiceLog.getSelfRemark()).build();
}
@Override
@ -342,26 +256,6 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
return baseMapper.selectSelfServiceByBusinessNo(editType, businessNo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer domicileChangeApproved(ApprovalBusinessResultDTO approvalBusinessResultDTO, CuSelfServiceLog selfServiceLog) {
Long pkMember = selfServiceLog.getPkMember();
Long pkModified = approvalBusinessResultDTO.getLoginUser().getUserId();
DomicileChangeVO domicileChangeVO = JSONUtil.toBean(selfServiceLog.getNewValue(), DomicileChangeVO.class);
//更新业务
cuMemberService.updateMemberNameAndPhone(pkMember, domicileChangeVO.getChangeMemberName(), domicileChangeVO.getChangePhone(), pkModified);
//注销实名认证营业执照
changeBusinessByChangeName(pkMember, pkModified);
//重置银行卡
BusinessMemberVO businessMemberVO = BusinessMemberVO.builder().pkMember(pkMember).build();
cuMemberBankService.batchUpdateBankBypkMembers(Collections.singletonList(businessMemberVO), pkModified);
//修改会员的变更次数
List<Long> pkMembers = Collections.singletonList(businessMemberVO.getPkMember());
cuMemberService.updateMemberEditNumber(pkMembers, pkModified);
//更新状态
return updateApprovalStatus(approvalBusinessResultDTO, pkModified);
}
/**
* 更新姓名删除相关实名操作
*
@ -372,73 +266,19 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
private void changeBusinessByChangeName(Long pkMember, Long pkModified) {
List<Long> pkMembers = Collections.singletonList(pkMember);
//更新实名认证
Boolean auth = cuMemberAuthenticationService.deleteByPkMembers(pkMembers, pkModified);
Boolean auth = iCuMemberAuthenticationService.deleteByPkMembers(pkMembers, pkModified);
//更新会员是否实名
if (auth) {
cuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.REAL_NAME.getValue());
iCuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.REAL_NAME.getValue());
}
//更新营业执照
Boolean license = cuMemberBusinessLicenseService.updateMemberLicenseByPkMembers(pkMembers, pkModified);
Boolean license = iCuMemberBusinessLicenseService.updateMemberLicenseByPkMembers(pkMembers, pkModified);
//更新会员是否营业执照
if (license) {
cuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.BUS_LICENSE.getValue());
iCuMemberService.updateMemberStatusByPkIds(pkMembers, pkModified, EAuthType.BUS_LICENSE.getValue());
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public Integer domicileChangeReject(ApprovalBusinessResultDTO approvalBusinessResultDTO, CuSelfServiceLog selfServiceLog) {
Long userId = approvalBusinessResultDTO.getLoginUser().getUserId();
//扣费横冲
EApprovalBusiness eApprovalBusiness = approvalBusinessResultDTO.getEApprovalBusiness();
String businessCode = approvalBusinessResultDTO.getBusinessCode();
BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder().tradeType(eApprovalBusiness.getValue())
.tradeCode(businessCode).pkCountry(selfServiceLog.getPkCountry())
.pkCreator(userId).build();
cuMemberTradeService.businessCommissionReject(businessCommissionDTO);
//更新状态
return updateApprovalStatus(approvalBusinessResultDTO, userId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean domicileChangeRejectById(DomicileChangeVO domicileChangeVO, Long pkMember) {
UpdateWrapper<CuSelfServiceLog> updateWrapper = new UpdateWrapper<>();
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkMember);
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, new Date());
updateWrapper.set("approve_status", EApproveRechargeStatus.REJECT.getValue());
updateWrapper.set("approve_time", new Date());
updateWrapper.set("REJECT_MSG", domicileChangeVO.getRejectMsg());
updateWrapper.eq("PK_ID", domicileChangeVO.getPkId());
//更新状态
update(updateWrapper);
CuSelfServiceLog selfServiceLog = baseMapper.selectById(domicileChangeVO.getPkId());
//扣费横冲
BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder().tradeType(selfServiceLog.getEditType())
.tradeCode(selfServiceLog.getBusinessNo()).pkCountry(selfServiceLog.getPkCountry())
.pkCreator(pkMember).build();
Boolean result = cuMemberTradeService.businessCommissionReject(businessCommissionDTO);
// MQ户籍变更操作日志
packageDomicileOperationLog(selfServiceLog, selfServiceLog.getBusinessNo(), "驳回", pkMember, true);
return result;
}
/**
* 更新审核状态
*
* @param approvalBusinessResultDTO 审核参数
* @param pkModified 修改人ID
* @return Integer
*/
public Integer updateApprovalStatus(ApprovalBusinessResultDTO approvalBusinessResultDTO, Long pkModified) {
DomicileChangeVO domicileChange = DomicileChangeVO.builder().businessNo(approvalBusinessResultDTO.getBusinessCode())
.approveStatus(approvalBusinessResultDTO.getApproveOperation() + 1).approveTime(new Date())
.pkModified(pkModified).build();
return baseMapper.updateSelfServiceByBusinessNo(domicileChange);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean selfExamine(ApprovalBusinessResultDTO approvalBusinessResultDTO) {
@ -490,7 +330,7 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
businessCommissionDTO.setPkAccount(csso.getPkAccount());
businessCommissionDTO.setMemberAmountDTOList(csso.getMemberAmountDTOList());
businessCommissionDTO.setTradeType(EApprovalBusiness.SELF_MODIFY_ADDRESS.getValue());
Boolean b = cuMemberTradeService.businessCommissionReject(businessCommissionDTO);
Boolean b = iCuMemberTradeService.businessCommissionReject(businessCommissionDTO);
if (!b) {
throw new ServiceException(ConfigMsgConstants.MEMBER_UPDATE_CODE_MONEY);
}
@ -537,7 +377,7 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
businessCommissionDTO.setPkAccount(selVO.getPkAccount());
businessCommissionDTO.setMemberAmountDTOList(selVO.getMemberAmountDTOList());
businessCommissionDTO.setTradeType(EApprovalBusiness.SELF_MODIFY_ADDRESS.getValue());
Boolean b = cuMemberTradeService.businessCommissionSubmit(businessCommissionDTO);
Boolean b = iCuMemberTradeService.businessCommissionSubmit(businessCommissionDTO);
if (!b) {
throw new ServiceException(ConfigMsgConstants.SELF_MODIFY_ADDRESS);
}
@ -561,5 +401,4 @@ public class CuSelfServiceLogServiceImpl extends ServiceImpl<CuSelfServiceLogMap
}
}
}

View File

@ -21,20 +21,11 @@ public class SelfVO implements Serializable {
*/
private Integer existAddress;
/**
* 存在订单自提
*/
private Integer existOrderSelf;
/**
* 存在户籍变更
*/
private Integer existDomicile;
/**
* 存在月统计数据
*/
private Integer existMemberMonth;
/**
* 存在自助撤单 0 存在 1不存在
*/

View File

@ -15,7 +15,7 @@ import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.base.vo.MemberShare;
import com.hzs.member.sms.service.IApiCodeService;
import com.hzs.member.sms.service.IApiAliSmsService;
import com.hzs.member.share.param.ShareRegisterParam;
import com.hzs.third.share.IShareServiceApi;
import com.hzs.third.share.dto.ShareServiceDTO;
@ -30,11 +30,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* @Description: 会员分享相关控制器
* @Author: jiang chao
* @Time: 2023/3/15 10:03
* @Classname: ShareController
* @PackageName: com.hzs.member.share.controller
* 会员分享相关控制器
*/
@Slf4j
@RestController
@ -44,7 +40,7 @@ public class ApiShareController extends BaseController {
@Autowired
private ICuMemberService iCuMemberService;
@Autowired
private IApiCodeService iApiCodeService;
private IApiAliSmsService iApiAliSmsService;
@Autowired
private RedisService redisService;
@ -112,7 +108,7 @@ public class ApiShareController extends BaseController {
if (relationStr != null) {
return AjaxResult.error(relationStr);
}
return toAjax(iApiCodeService.sendRegisterCode(phone));
return toAjax(iApiAliSmsService.sendRegisterCode(phone));
}
/**
@ -139,7 +135,7 @@ public class ApiShareController extends BaseController {
registerParam.setParentMember(parentMember);
// 校验短信验证码是否有效
String checkSmsStr = iApiCodeService.checkRegisterCode(registerParam.getPhone(), registerParam.getSmsCode());
String checkSmsStr = iApiAliSmsService.checkRegisterCode(registerParam.getPhone(), registerParam.getSmsCode());
if (null != checkSmsStr) {
return AjaxResult.error(checkSmsStr);
}

View File

@ -1,21 +1,19 @@
package com.hzs.member.sms.controller.api;
import cn.hutool.core.collection.CollectionUtil;
import com.hzs.common.core.annotation.RepeatSubmitSimple;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.sms.service.IApiCodeService;
import com.hzs.member.sms.service.IApiAliSmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 短信处理控制器
*/
@ -24,7 +22,7 @@ import java.util.List;
public class ApiSmsController extends BaseController {
@Autowired
private IApiCodeService iApiCodeService;
private IApiAliSmsService iApiAliSmsService;
@Autowired
private ICuMemberService iCuMemberService;
@ -37,7 +35,7 @@ public class ApiSmsController extends BaseController {
@RepeatSubmitSimple
@GetMapping("/verification")
public AjaxResult verification(@RequestParam(required = false) String phone) {
return toAjax(iApiCodeService.sendCode(phone, null, null));
return toAjax(iApiAliSmsService.sendCode(phone, null, null, SecurityUtils.getUserId()));
}
/**
@ -50,11 +48,11 @@ public class ApiSmsController extends BaseController {
@RepeatSubmitSimple
@GetMapping("/forget-verification")
public AjaxResult forgetVerification(@RequestParam String memberCode, @RequestParam String phone) {
List<CuMemberExt> cuMemberList = iCuMemberService.listMemberByPhone(phone);
if (CollectionUtil.isEmpty(cuMemberList)) {
return AjaxResult.error("会员联系方式不存在");
CuMember cuMember = iCuMemberService.getMember(memberCode);
if (null == cuMember) {
return AjaxResult.error("会员联系方式不存在");
}
return toAjax(iApiCodeService.sendRecoverCode(phone));
return toAjax(iApiAliSmsService.sendRecoverCode(phone, cuMember.getPkId()));
}
/**
@ -72,7 +70,7 @@ public class ApiSmsController extends BaseController {
return AjaxResult.error("会员信息不存在");
}
return toAjax(iApiCodeService.resetPayPasswordCode(cuMemberExt.getPhone()));
return toAjax(iApiAliSmsService.resetPayPasswordCode(cuMemberExt.getPhone(), cuMemberExt.getPkId()));
}
}

View File

@ -11,9 +11,10 @@ public interface IApiAliSmsService {
* @param phone 手机号码
* @param checkKey 验证码KEY -- 为空使用默认
* @param sendTimKey 验证码重复发送间隔KEY -- 为空使用默认
* @param pkMember 会员ID -- 如果有值优先缓存使用
* @return
*/
String sendCode(String phone, String checkKey, String sendTimKey);
String sendCode(String phone, String checkKey, String sendTimKey, Long pkMember);
/**
* 校验短信验证码
@ -21,9 +22,10 @@ public interface IApiAliSmsService {
* @param phone 手机号码
* @param smsCode 短信验证码
* @param checkKey 验证码KEY -- 为空使用默认
* @param pkMember 会员ID -- 如果有值优先缓存使用
* @return
*/
String checkCode(String phone, String smsCode, String checkKey);
String checkCode(String phone, String smsCode, String checkKey, Long pkMember);
// /**
// * 登录发送验证码
@ -63,34 +65,38 @@ public interface IApiAliSmsService {
* 找回密码发送验证码
*
* @param phone 手机号码
* @param pkMember 会员ID
* @return
*/
String sendRecoverCode(String phone);
String sendRecoverCode(String phone, Long pkMember);
/**
* 校验找回密码验证码
*
* @param phone 手机号码
* @param smsCode 短信验证码
* @param pkMember 会员ID
* @return
*/
String checkRecoverCode(String phone, String smsCode);
String checkRecoverCode(String phone, String smsCode, Long pkMember);
/**
* 重置支付密码发送验证码
*
* @param phone 手机号码
* @param pkMember 会员ID
* @return
*/
String resetPayPasswordCode(String phone);
String resetPayPasswordCode(String phone, Long pkMember);
/**
* 校验重置支付密码验证码
*
* @param phone 手机号码
* @param smsCode 短信验证码
* @param pkMember 会员ID
* @return
*/
String checkPayPasswordCode(String phone, String smsCode);
String checkPayPasswordCode(String phone, String smsCode, Long pkMember);
}

View File

@ -1,79 +0,0 @@
package com.hzs.member.sms.service;
/**
* 验证码服务
*/
public interface IApiCodeService {
/**
* 短信验证码
*
* @param phone 联系方式
* @param checkKey 验证码KEY -- 为空使用默认
* @param sendTimKey 验证码重复发送间隔KEY -- 为空使用默认
* @return
*/
String sendCode(String phone, String checkKey, String sendTimKey);
/**
* 校验短信验证码
*
* @param phone 联系方式
* @param smsCode 短信验证码
* @param checkKey 验证码KEY -- 为空使用默认
* @return
*/
String checkCode(String phone, String smsCode, String checkKey);
/**
* 注册发送验证码
*
* @param phone 联系方式
* @return
*/
String sendRegisterCode(String phone);
/**
* 校验注册验证码
*
* @param phone 联系方式
* @param smsCode 短信验证码
* @return
*/
String checkRegisterCode(String phone, String smsCode);
/**
* 找回密码发送验证码
*
* @param phone 联系方式
* @return
*/
String sendRecoverCode(String phone);
/**
* 校验找回密码验证码
*
* @param phone 联系方式
* @param smsCode 短信验证码
* @return
*/
String checkRecoverCode(String phone, String smsCode);
/**
* 重置支付密码发送验证码
*
* @param phone 联系方式
* @return
*/
String resetPayPasswordCode(String phone);
/**
* 校验重置支付密码验证码
*
* @param phone 联系方式
* @param smsCode 短信验证码
* @return
*/
String checkPayPasswordCode(String phone, String smsCode);
}

View File

@ -33,12 +33,12 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
ISmsServiceApi iSmsServiceApi;
@Override
public String sendCode(String phone, String checkKey, String sendTimKey) {
// 每个手机号每天只能获取30次短信验证码
public String sendCode(String phone, String checkKey, String sendTimKey, Long pkMember) {
// 每个手机号每天只能获取20次短信验证码
String smsCountKey = String.format(CacheConstants.SMS_COUNT, DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN));
Object smsCountObj = redisService.getCacheMapValue(smsCountKey, phone);
if (smsCountObj != null) {
if (Integer.parseInt(smsCountObj.toString()) >= 30) {
if (Integer.parseInt(smsCountObj.toString()) > 20) {
return "当前手机号码获取短信已达当日上限";
}
}
@ -64,12 +64,11 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
if (sendResult.isSuccess()) {
// 返回成功验证码放入缓存
// 验证码缓存有效期5分钟
redisService.setCacheObject(checkKey + phone, code, 5L, TimeUnit.MINUTES);
redisService.setCacheObject(checkKey + (null != pkMember ? pkMember : phone), code, 5L, TimeUnit.MINUTES);
// 验证码发送间隔不能低于1分钟
redisService.setCacheObject(sendTimKey + phone, "", 1L, TimeUnit.MINUTES);
// 每天只能发送30次短信验证码
if (smsCountObj == null) {
redisService.setCacheMapValue(smsCountKey, phone, 1);
redisService.expire(smsCountKey, 1, TimeUnit.DAYS);
@ -84,7 +83,7 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
}
@Override
public String checkCode(String phone, String smsCode, String checkKey) {
public String checkCode(String phone, String smsCode, String checkKey, Long pkMember) {
if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && "ASDF".equals(smsCode)) {
// 测试环境暂时不发放短信
return null;
@ -95,16 +94,16 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
checkKey = CacheConstants.DEFAULT_CHECK;
}
String cacheSmsCode = redisService.getCacheObject(checkKey + phone);
String cacheSmsCode = redisService.getCacheObject(checkKey + (null != pkMember ? pkMember : phone));
if (null == cacheSmsCode) {
return "验证码已失效";
}
if (!cacheSmsCode.equals(smsCode)) {
// 验证码错误需不需要清除缓存验证码会不会存在暴力破解情况
// TODO 验证码错误需不需要清除缓存验证码会不会存在暴力破解情况
return "验证码错误";
}
// 校验通过删除验证码缓存
redisService.deleteObject(checkKey + phone);
redisService.deleteObject(checkKey + (null != pkMember ? pkMember : phone));
return null;
}
@ -125,12 +124,12 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
@Override
public String sendRegisterCode(String phone) {
return this.sendCode(phone, CacheConstants.REGISTER_CHECK, CacheConstants.REGISTER_SEND_TIME);
return this.sendCode(phone, CacheConstants.REGISTER_CHECK, CacheConstants.REGISTER_SEND_TIME, null);
}
@Override
public String checkRegisterCode(String phone, String smsCode) {
String str = this.checkCode(phone, smsCode, CacheConstants.REGISTER_CHECK);
String str = this.checkCode(phone, smsCode, CacheConstants.REGISTER_CHECK, null);
if (null == str) {
// 删除验证码间隔时间缓存
redisService.deleteObject(CacheConstants.REGISTER_SEND_TIME + phone);
@ -139,13 +138,13 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
}
@Override
public String sendRecoverCode(String phone) {
return this.sendCode(phone, CacheConstants.RECOVER_CHECK, CacheConstants.RECOVER_SEND_TIME);
public String sendRecoverCode(String phone, Long pkMember) {
return this.sendCode(phone, CacheConstants.RECOVER_CHECK, CacheConstants.RECOVER_SEND_TIME, pkMember);
}
@Override
public String checkRecoverCode(String phone, String smsCode) {
String str = this.checkCode(phone, smsCode, CacheConstants.RECOVER_CHECK);
public String checkRecoverCode(String phone, String smsCode, Long pkMember) {
String str = this.checkCode(phone, smsCode, CacheConstants.RECOVER_CHECK, pkMember);
if (null == str) {
// 删除验证码间隔时间缓存
redisService.deleteObject(CacheConstants.RECOVER_SEND_TIME + phone);
@ -154,13 +153,13 @@ public class ApiAliSmsServiceImpl implements IApiAliSmsService {
}
@Override
public String resetPayPasswordCode(String phone) {
return this.sendCode(phone, CacheConstants.RESET_CHECK, CacheConstants.RESET_SEND_TIME);
public String resetPayPasswordCode(String phone, Long pkMember) {
return this.sendCode(phone, CacheConstants.RESET_CHECK, CacheConstants.RESET_SEND_TIME, pkMember);
}
@Override
public String checkPayPasswordCode(String phone, String smsCode) {
String str = this.checkCode(phone, smsCode, CacheConstants.RESET_CHECK);
public String checkPayPasswordCode(String phone, String smsCode, Long pkMember) {
String str = this.checkCode(phone, smsCode, CacheConstants.RESET_CHECK, pkMember);
if (null == str) {
// 删除验证码间隔时间缓存
redisService.deleteObject(CacheConstants.RESET_SEND_TIME + phone);

View File

@ -1,59 +0,0 @@
package com.hzs.member.sms.service.impl;
import com.hzs.member.sms.service.IApiAliSmsService;
import com.hzs.member.sms.service.IApiCodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 验证码服务
*/
@Slf4j
@Service
public class ApiCodeServiceImpl implements IApiCodeService {
@Autowired
private IApiAliSmsService iApiAliSmsService;
@Override
public String sendCode(String phone, String checkKey, String sendTimKey) {
return iApiAliSmsService.sendCode(phone, checkKey, sendTimKey);
}
@Override
public String checkCode(String phone, String smsCode, String checkKey) {
return iApiAliSmsService.checkCode(phone, smsCode, checkKey);
}
@Override
public String sendRegisterCode(String phone) {
return iApiAliSmsService.sendRegisterCode(phone);
}
@Override
public String checkRegisterCode(String phone, String smsCode) {
return iApiAliSmsService.checkRegisterCode(phone, smsCode);
}
@Override
public String sendRecoverCode(String phone) {
return iApiAliSmsService.sendRecoverCode(phone);
}
@Override
public String checkRecoverCode(String phone, String smsCode) {
return iApiAliSmsService.checkRecoverCode(phone, smsCode);
}
@Override
public String resetPayPasswordCode(String phone) {
return iApiAliSmsService.resetPayPasswordCode(phone);
}
@Override
public String checkPayPasswordCode(String phone, String smsCode) {
return iApiAliSmsService.checkPayPasswordCode(phone, smsCode);
}
}

View File

@ -45,6 +45,8 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
@ -109,7 +111,7 @@ public class RetailMemberController extends BaseController {
LambdaQueryWrapper<CuMemberRetailRegion> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuMemberRetailRegion::getPkMember, userId);
int countNum = iCuMemberRetailRegionService.count(queryWrapper);
boolean isFirst = countNum > 0;
boolean notFirst = countNum > 0;
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
if (null != cuMemberRetailRegionExt) {
@ -155,9 +157,24 @@ public class RetailMemberController extends BaseController {
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
){
return AjaxResult.success(RetailMemberRegionVO.builder()
.regionStatus(EYesNo.YES.getIntValue())
.build());
if(notFirst){
LocalDate today = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
CurrentMonthVO currentMonthVO = retailAchieveService.getCurrentMonthPV(today.format(formatter), userId, pkCountry, systemType);
if(ObjectUtil.isNotEmpty(currentMonthVO)
&& currentMonthVO.getTotalCurrentMonthPV().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
&& currentMonthVO.getSmallCurrentMonthPV().compareTo(SysConstants.SMALL_AREA_PV) >=0
){
return AjaxResult.success(RetailMemberRegionVO.builder()
.regionStatus(EYesNo.YES.getIntValue())
.build());
}
}else{
return AjaxResult.success(RetailMemberRegionVO.builder()
.regionStatus(EYesNo.YES.getIntValue())
.build());
}
}
// if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv())
// && result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
@ -216,6 +233,7 @@ public class RetailMemberController extends BaseController {
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
if (null != cuMemberRetailRegionExt) {
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
canSet = true;
@ -234,12 +252,28 @@ public class RetailMemberController extends BaseController {
canSet = true;
}
}else{
LambdaQueryWrapper<CuMemberRetailRegion> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CuMemberRetailRegion::getPkMember, userId);
int countNum = iCuMemberRetailRegionService.count(queryWrapper);
boolean notFirst = countNum > 0;
GradeDTO grade = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData();
if(ObjectUtil.isNotEmpty(totalBoxNum)
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
){
canSet = true;
if(notFirst){
LocalDate today = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
CurrentMonthVO currentMonthVO = retailAchieveService.getCurrentMonthPV(today.format(formatter), userId, pkCountry, systemType);
if(ObjectUtil.isNotEmpty(currentMonthVO)
&& currentMonthVO.getTotalCurrentMonthPV().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
&& currentMonthVO.getSmallCurrentMonthPV().compareTo(SysConstants.SMALL_AREA_PV) >=0
){
canSet = true;
}
}else{
canSet = true;
}
}
// if(result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
// && result.getSmallRangeTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) >=0

View File

@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.utils.PageResult;
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
import com.hzs.retail.member.vo.*;
import java.util.List;
import java.util.Map;
@ -115,5 +112,8 @@ public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRa
*/
CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType);
CurrentMonthVO getCurrentMonthPV(String date, Long pkMember, Integer pkCountry, Integer systemType);
PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param);
}

View File

@ -20,10 +20,7 @@ import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
import com.hzs.retail.member.utils.DataStatisticsUtil;
import com.hzs.retail.member.utils.PageResult;
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
import com.hzs.retail.member.vo.*;
import com.hzs.system.config.IGradeServiceApi;
import com.hzs.system.config.dto.GradeDTO;
import lombok.extern.slf4j.Slf4j;
@ -360,6 +357,22 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
}
private String getTableNameSpecial4Date(String localDate) {
CuMemberSettlePeriod cuMemberSettlePeriod =iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
if(ObjectUtil.isEmpty(cuMemberSettlePeriod)){
return null;
}
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
}
private String getDayTableNameSpecial4Date(String localDate) {
CuMemberSettlePeriod cuMemberSettlePeriod =iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
if(ObjectUtil.isEmpty(cuMemberSettlePeriod)){
return null;
}
int period = cuMemberSettlePeriod.getPkId();
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
}
public static boolean isBeforeThreeAm() {
LocalDateTime now = LocalDateTime.now();
// 获取当天凌晨3点的时间日期与当前日期相同时间为03:00:00
@ -637,6 +650,50 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
return result;
}
@Override
public CurrentMonthVO getCurrentMonthPV(String date, Long pkMember, Integer pkCountry, Integer systemType) {
Long userId = SecurityUtils.getUserId();
LocalDate today = LocalDate.now();
String yesterdayDate;
String memberRetailTable = TableNameConstants.CU_MEMBER_RETAIL_S;
if (today.getDayOfMonth() != 1) {
LocalDate previousDay = today.minusDays(1);
yesterdayDate = previousDay.format(DateTimeFormatter.ISO_LOCAL_DATE);
memberRetailTable = getTableNameSpecial4Date(yesterdayDate);
}
String memberSecondTable = getDayTableNameSpecial();
//查询直推会员
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
pkMemberList.add(userId);
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder()
.memberRetailTable(memberRetailTable)
.memberRetailSTable(memberSecondTable)
.pkMemberList(pkMemberList).systemType(systemType).build();
List<CuMemberRetailDataStatisticsDetailVO> statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO);
CuMember cuMember = iCuMemberService.queryMember(userId);
BigAndSmallRangeVO bigAndSmallRangeVO = DataStatisticsUtil.getBigAndSmallRangeVO(statisticsDetailVOList, cuMember);
MarketDynamicsQueryDateParam param = new MarketDynamicsQueryDateParam();
DataStatisticsUtil.setQueryDateParam(param);
param.setCurrentDayTableName(memberSecondTable);
param.setCurrentMonthTableName(memberRetailTable);
param.setLastMonthTableName(getDayTableName(param.getLastMonthDate()));
List<MarketDynamicsDetailVO> detailVOList = baseMapper.getMarketDynamicsDetail(param);
BigDecimal totalMouthPV = detailVOList.stream()
.map(MarketDynamicsDetailVO::getCurrentMonthPv)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal bigMouthPV = BigDecimal.ZERO;
MarketDynamicsDetailVO bigRange = detailVOList.stream().filter(vo -> {
assert bigAndSmallRangeVO != null;
return vo.getPkId().equals(bigAndSmallRangeVO.getBigRangeId());
}).findFirst().orElse(null);
if(ObjectUtil.isNotEmpty(bigRange)){
bigMouthPV = bigRange.getCurrentMonthPv();
}
BigDecimal smallMountPV = totalMouthPV.subtract(bigMouthPV);
return CurrentMonthVO.builder().smallCurrentMonthPV(smallMountPV).totalCurrentMonthPV(totalMouthPV).build();
}
@Override
public PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param) {
Long pkMember = SecurityUtils.getUserId();

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.hzs.common.core.enums.EYesNo;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
import com.hzs.retail.member.vo.BigAndSmallRangeVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
@ -309,4 +310,55 @@ public class DataStatisticsUtil {
// .lastMonthDate(lastDayOfPreviousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
// .build();
}
public static CuMemberRetailDataStatisticsDetailVO getBigRangeWithPV(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, CuMember cuMember){
Long pkId = cuMember.getPkId();
// 非激活直接返0
// 激活判断上一天的ENABLE_STATUS 0为正常 1为当天激活 不计算日结数据
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
return CuMemberRetailDataStatisticsDetailVO.builder()
.build();
}
calcDetailVOTotalField(detailVOList, pkId);
addVirtualBranch(detailVOList, pkId);
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
// 昨日非激活 排除昨日日结表数据
excludeDailySettlementData(detailVOList);
}
else{
// 排除注水数据
excludeWaterInjectionData(detailVOList, pkId);
}
return getBigRangePVDetailVO(detailVOList, pkId);
}
public static BigAndSmallRangeVO getBigAndSmallRangeVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, CuMember cuMember){
Long pkId = cuMember.getPkId();
BigAndSmallRangeVO bigAndSmallRangeVO = new BigAndSmallRangeVO();
// 非激活直接返0
// 激活判断上一天的ENABLE_STATUS 0为正常 1为当天激活 不计算日结数据
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
return null;
}
calcDetailVOTotalField(detailVOList, pkId);
addVirtualBranch(detailVOList, pkId);
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
// 昨日非激活 排除昨日日结表数据
excludeDailySettlementData(detailVOList);
}
else{
// 排除注水数据
excludeWaterInjectionData(detailVOList, pkId);
}
CuMemberRetailDataStatisticsDetailVO big = getBigRangePVDetailVO(detailVOList, pkId);
bigAndSmallRangeVO.setBigRangeId(big.getPkId());
List<Long> smallIdList = detailVOList.stream()
.map(CuMemberRetailDataStatisticsDetailVO::getPkId).filter(id -> !id.equals(big.getPkId())).collect(Collectors.toList());
bigAndSmallRangeVO.setSmallRangeId(smallIdList);
return bigAndSmallRangeVO;
}
}

View File

@ -0,0 +1,18 @@
package com.hzs.retail.member.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BigAndSmallRangeVO implements Serializable {
private Long bigRangeId;
private List<Long> smallRangeId;
}

View File

@ -0,0 +1,19 @@
package com.hzs.retail.member.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CurrentMonthVO implements Serializable {
private BigDecimal totalCurrentMonthPV;
private BigDecimal smallCurrentMonthPV;
}

View File

@ -1264,40 +1264,29 @@
cm.MEMBER_CODE as memberCode,
cm.MEMBER_NAME memberName,
cm.PHONE phone,
bg.PK_TRANSACTION as pkRegisterGrade,
bgg.PK_TRANSACTION as pkSettleGrade,
ba.PK_TRANSACTION as pkAwards,
bamax.PK_TRANSACTION as pkMaxAwards,
cm.pk_register_grade as pkRegisterGrade,
cm.pk_settle_grade as pkSettleGrade,
cm.pk_awards as pkAwards,
cm.PK_MAX_AWARDS as pkMaxAwards,
ma.SEX as sex,
cm.birth_date birthDate,
ma.ID_TYPE idType,
ma.ID_CARD idCard,
ma.ID_FRONT idFront,
ma.ID_BACK idBack,
ma.PK_PROVINCE pkProvince,
ma.PK_CITY pkCity,
ma.PK_COUNTY pkCounty,
ma.ADDRESS address,
bb.BANK_NAME bankName,
ma.SUB_BANK_NAME subBankName,
ma.ACCOUNT_NAME accountName,
ma.PHONE reservedPhone,
ma.CARD_NUMBER cardNumber,
cm.EMAIL email,
ma.CREATION_TIME certificationTime,
cm.CREATION_TIME creationTime,
cm.PAY_TIME payTime,
cm.DIRECT_PUSH_NUMBER directPushNumber
from CU_MEMBER cm
left join CU_MEMBER_AUTHENTICATION ma on ma.PK_MEMBER = cm.PK_ID and ma.del_flag = 0
left join BD_BANK bb on bb.PK_ID = ma.pk_bank
left join BD_GRADE bg on bg.pk_id=cm.PK_REGISTER_GRADE
left join BD_GRADE bgg on bgg.pk_id=cm.PK_SETTLE_GRADE
left join BD_AWARDS ba on ba.pk_id=cm.PK_AWARDS
left join BD_AWARDS baMax on baMax.pk_id=cm.PK_MAX_AWARDS
from CU_MEMBER_AUTHENTICATION ma
left join CU_MEMBER cm on ma.PK_MEMBER = cm.PK_ID
left join bd_vertex ver on cm.pk_vertex = ver.pk_id
LEFT JOIN cu_member_team ct ON ct.pk_id = cm.pk_team_code
where cm.del_flag = 0
and ma.del_flag = 0
<if test="pkCountry != null">
and cm.PK_SETTLE_COUNTRY = #{pkCountry}
</if>
@ -1310,8 +1299,8 @@
<if test="memberName != null and memberName != ''">
and cm.MEMBER_NAME like #{memberName} ||'%'
</if>
<if test="birthDate != null and birthDate != ''">
and ma.ID_CARD like '%' || #{birthDate} ||'%'
<if test="birthDate != null">
and cm.birth_date = to_date(#{birthDate}, 'yyyy-mm-dd')
</if>
<if test="phone != null and phone != ''">
and cm.PHONE = #{phone}
@ -1331,33 +1320,9 @@
<if test="idCard != null and idCard != ''">
and ma.ID_CARD = #{idCard}
</if>
<if test="pkProvince != null">
and ma.PK_PROVINCE = #{pkProvince}
</if>
<if test="pkCity != null">
and ma.PK_CITY = #{pkCity}
</if>
<if test="pkCounty != null">
and ma.PK_COUNTY = #{pkCounty}
</if>
<if test="address != null and address != ''">
and ma.ADDRESS like #{address} ||'%'
</if>
<if test="sex != null">
and ma.SEX = #{sex}
</if>
<if test="bankName != null and bankName != ''">
and bb.BANK_NAME like #{bankName}||'%'
</if>
<if test="subBankName != null and subBankName != ''">
and ma.SUB_BANK_NAME like #{subBankName}||'%'
</if>
<if test="cardNumber != null and cardNumber != ''">
and ma.CARD_NUMBER like #{cardNumber}||'%'
</if>
<if test="email != null and email != ''">
and cm.EMAIL like #{email}||'%'
</if>
<if test="startCertificationTime != null">
and ma.CREATION_TIME &gt;= to_date(#{startCertificationTime}, 'yyyy-mm-dd')
</if>
@ -2448,7 +2413,6 @@
)
</select>
<select id="selectMemberByUnderBlood" resultType="com.hzs.common.domain.system.config.BdTradeWhiteConfig">
SELECT pk_id pkId,
withdrawal_state withdrawalState,

View File

@ -64,86 +64,6 @@
ORDER BY a.CREATION_TIME DESC
</select>
<select id="queryMemberTeamInfoList" resultType="com.hzs.member.base.vo.MemberTeamVo">
select
level,cm.MEMBER_NAME memberName,cm.MEMBER_CODE memberCode,m.A_NEW_PV afirstPv,m.B_NEW_PV bfirstPv,m.REP_A_SUM_PV repASumPv,m.REP_B_SUM_PV repBSumPv,
m.A_SUM_REAL_PV aSumRealPv, m.B_SUM_REAL_PV bSumRealPv,
cm.PK_AWARDS pkAwards,cm.PK_ID memberId,cm.PLACE_DEPT placeDept ,m.REPURCHASE_PV repurchasePv ,cm.PK_PLACE_PARENT pkPlaceParent,
mb.REAL_INCOME_TOTAL realIncomeTotal,m.REPURCHASE_AMOUNT repurchaseAmount,
a.loginNumber,
a.lastLoginTime,
cm.CREATION_TIME creationTime,cm.PAY_TIME payTime ,cm.DIRECT_PUSH_NUMBER directPushNumber
from cu_member cm
left join (
select count(ml.PK_ID) loginNumber,PK_MEMBER, max(ml.LOGIN_TIME) lastLoginTime
from CU_MEMBER_LOGIN ml
where ml.STATUS = 0
group by PK_MEMBER
) a on a.PK_MEMBER = cm.PK_ID
left join ${settleTableName} m on cm.PK_ID = m.PK_MEMBER
left join CU_MEMBER_BONUS mb on mb.PK_MEMBER = cm.PK_ID and mb.PERIOD = #{period}
where cm.del_flag = 0
<if test="pkAwards != null">
and cm.PK_AWARDS = #{pkAwards}
</if>
<if test="realIncomeTotal != null">
and mb.REAL_INCOME_TOTAL = #{realIncomeTotal}
</if>
<if test="consanguinityAlgebra != null">
and level = #{consanguinityAlgebra}
</if>
<if test="resettleLevel != null">
and level = #{resettleLevel}
</if>
<if test="placeDept != null">
and cm.PLACE_DEPT = #{placeDept}
</if>
start
with cm.MEMBER_CODE = #{memberCode}
connect by cm.pk_parent = prior cm.pk_id
order by level
</select>
<select id="queryMemberTeamInfoPlaceParentList" resultType="com.hzs.member.base.vo.MemberTeamVo">
select
level,cm.MEMBER_NAME memberName,cm.MEMBER_CODE memberCode,m.A_NEW_PV afirstPv,m.B_NEW_PV bfirstPv,m.REP_A_SUM_PV repASumPv,m.REP_B_SUM_PV repBSumPv,
m.A_SUM_REAL_PV aSumRealPv, m.B_SUM_REAL_PV bSumRealPv,
cm.PK_AWARDS pkAwards,cm.PK_ID memberId,cm.PLACE_DEPT placeDept ,m.REPURCHASE_PV repurchasePv ,cm.PK_PLACE_PARENT pkPlaceParent,
mb.REAL_INCOME_TOTAL realIncomeTotal,m.REPURCHASE_AMOUNT repurchaseAmount,
a.loginNumber,
a.lastLoginTime,
cm.CREATION_TIME creationTime,cm.PAY_TIME payTime ,cm.DIRECT_PUSH_NUMBER directPushNumber
from cu_member cm
left join (
select count(ml.PK_ID) loginNumber,PK_MEMBER, max(ml.LOGIN_TIME) lastLoginTime
from CU_MEMBER_LOGIN ml
where ml.STATUS = 0
group by PK_MEMBER
) a on a.PK_MEMBER = cm.PK_ID
left join ${settleTableName} m on cm.PK_ID = m.PK_MEMBER
left join CU_MEMBER_BONUS mb on mb.PK_MEMBER = cm.PK_ID and mb.PERIOD = #{period}
where cm.del_flag = 0
<if test="realIncomeTotal != null">
and mb.REAL_INCOME_TOTAL = #{realIncomeTotal}
</if>
<if test="pkAwards != null">
and cm.PK_AWARDS = #{pkAwards}
</if>
<if test="consanguinityAlgebra != null">
and level = #{consanguinityAlgebra}
</if>
<if test="resettleLevel != null">
and level = #{resettleLevel}
</if>
<if test="placeDept != null">
and cm.PLACE_DEPT = #{placeDept}
</if>
start
with cm.MEMBER_CODE = #{memberCode}
connect by cm.PK_PLACE_PARENT = prior cm.pk_id
order by level
</select>
<!-- 更新团队为空 -->
<update id="updateTeamNullById">
update cu_member

View File

@ -58,7 +58,6 @@
<result column="REC_CITY" property="recCity"/>
<result column="REC_COUNTY" property="recCounty"/>
<result column="REC_ADDRESS" property="recAddress"/>
<collection property="itemList" ofType="com.hzs.member.self.vo.MyOrderItemsVO">
<result column="pk_Order" property="pkOrder"/>
<result column="PRODUCT_NAME" property="productName"/>
@ -69,20 +68,8 @@
<result column="ASS_ACHIEVEMENT" property="assAchievement"/>
<result column="IS_GIFT" property="isGift"/>
</collection>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DEL_FLAG,
CREATION_TIME,
MODIFIED_TIME,
PK_COUNTRY,
PK_CREATOR,
PK_MODIFIED,
PK_ID, PK_MEMBER, EDIT_TYPE, OLD_VALUE, NEW_VALUE, BUSINESS_NO, APPROVE_STATUS, APPROVE_NUMBER, EDIT_TYPE_PAY, SINGLE_AMOUNT
</sql>
<!-- 自助服务-查询已申请修改收货地址-->
<select id="querySelfModifyAddressList" parameterType="com.hzs.member.self.vo.SelfModifyAddressVO"
@ -232,9 +219,9 @@
select count(0)
from sa_order so
where so.del_flag = 0
and order_status in (1)
and so.pk_creator = #{memberId}
AND TO_CHAR(so.PAY_TIME,'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD')
and order_status in (1)
and so.pk_creator = #{memberId}
AND TO_CHAR(so.PAY_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD')
</select>
<!-- 根据订单ID查询订单明细列表 -->
@ -250,7 +237,6 @@
</foreach>
</select>
<select id="selectSelfServiceByPkMember" resultType="com.hzs.common.domain.member.self.CuSelfServiceLogExt">
select l.*, m.member_code memberCode
from cu_self_service_log l
@ -267,14 +253,14 @@
and l.business_no = #{businessNo}
</if>
<if test="memberCode != null and memberCode != ''">
and m.member_code like '%'|| #{memberCode} || '%'
and m.member_code like '%'|| #{memberCode} || '%'
</if>
<if test="memberName != null and memberName != ''">
and l.OLD_VALUE like '%'|| #{memberName} || '%'
</if>
<if test="phone != null and phone != ''">
and l.OLD_VALUE like '%'|| #{phone} || '%'
and l.OLD_VALUE like '%'|| #{phone} || '%'
</if>
<if test="approveStatus != null">
and l.APPROVE_STATUS = #{approveStatus}
@ -291,67 +277,29 @@
<select id="selectDomicileChangeDetail" resultType="com.hzs.common.domain.member.self.CuSelfServiceLogExt">
select l.*, m.member_code memberCode
from cu_self_service_log l
left join cu_member m
on l.pk_member = m.pk_id
and m.del_flag = 0
where l.del_flag = 0
and l.pk_id = #{pkId}
from cu_self_service_log l
left join cu_member m
on l.pk_member = m.pk_id
and m.del_flag = 0
where l.del_flag = 0
and l.pk_id = #{pkId}
</select>
<select id="selectDomicileChangeByPkMember" resultType="com.hzs.common.domain.member.self.CuSelfServiceLogExt">
select l.*, m.member_code memberCode
from cu_self_service_log l
left join cu_member m
on l.pk_member = m.pk_id
and m.del_flag = 0
where l.del_flag = 0
and l.pk_member = #{pkMember}
and l.pk_country = #{pkCountry}
and l.edit_type = #{editType}
</select>
<select id="selectSelfServiceByBusinessNo" resultMap="BaseResultMap">
select l.*
from cu_self_service_log l
where l.del_flag = 0
from cu_self_service_log l
where l.del_flag = 0
and l.edit_type = #{editType}
and l.business_no = #{businessNo}
</select>
<!--查询自助服务申请的最大次数-->
<select id="checkSelfService" resultType="java.lang.Integer">
select count(1)
from CU_SELF_SERVICE_LOG a
WHERE a.PK_MEMBER=#{pkMember} and
a.DEL_FLAG = 0 AND (a.APPROVE_STATUS =0 or a.APPROVE_STATUS =1 )
<if test="editType != null">
AND a.EDIT_TYPE = #{editType}
</if>
<if test="pkCountry != null ">
AND a.PK_COUNTRY = #{pkCountry}
</if>
</select>
<select id="selectByMaxApproveNumber" parameterType="com.hzs.common.domain.member.self.CuSelfServiceLog"
resultType="integer">
select nvl(max(APPROVE_NUMBER),0) from CU_SELF_SERVICE_LOG
select nvl(max(APPROVE_NUMBER), 0)
from CU_SELF_SERVICE_LOG
where EDIT_TYPE = #{editType}
and PK_MEMBER = #{pkMember}
and APPROVE_STATUS=#{approveStatus}
and PK_MEMBER = #{pkMember}
and APPROVE_STATUS = #{approveStatus}
</select>
<update id="updateSelfServiceByBusinessNo">
update cu_self_service_log
<set>
<if test="approveStatus != null">approve_status = #{approveStatus},</if>
<if test="approveTime != null">approve_time = #{approveTime},</if>
<if test="pkModified != null">pk_modified = #{pkModified},</if>
modified_time = sysdate
</set>
where BUSINESS_NO = #{businessNo}
</update>
</mapper>

View File

@ -1,15 +1,20 @@
package com.hzs.retail.sale.controller.service.impl;
import cn.hutool.core.codec.Base64Encoder;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Validator;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hzs.common.core.config.BdConfig;
import com.hzs.common.core.constant.*;
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.*;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.member.account.CuMemberAccount;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.ext.CuMemberAccountExt;
@ -17,6 +22,7 @@ import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
import com.hzs.common.domain.sale.ext.SaOrderExt;
import com.hzs.common.domain.sale.ext.SaOrderWaresLimitExt;
import com.hzs.common.domain.sale.order.*;
import com.hzs.common.domain.sale.product.BdProduct;
import com.hzs.common.domain.sale.wares.BdWaresRange;
import com.hzs.common.domain.system.base.BdStorehouse;
import com.hzs.common.domain.system.config.BdAwards;
@ -34,6 +40,7 @@ import com.hzs.sale.order.param.OrderItemsParam;
import com.hzs.sale.order.param.WaresNumberParam;
import com.hzs.sale.order.service.*;
import com.hzs.sale.order.service.impl.SaOrderHandle;
import com.hzs.sale.product.service.IBdProductService;
import com.hzs.sale.wares.service.IBdWaresDetailService;
import com.hzs.sale.wares.service.IBdWaresExtendService;
import com.hzs.sale.wares.service.IBdWaresRangeService;
@ -84,6 +91,10 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
private ISaOrderTempService iSaOrderTempService;
@Autowired
private ISaOrderWaresLimitService iSaOrderWaresLimitService;
@Autowired
private IBdProductService iBdProductService;
@Autowired
private ISaOrderSyncService iSaOrderSyncService;
@Autowired
private RedisService redisService;
@ -704,6 +715,9 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
*/
private void pushOrderMq(SaOrderExt saOrderExt) {
try {
// 同步全网产品库存
this.allProductSync(saOrderExt);
if (EOrderType.RETAIL_REGISTER.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_UPGRADE.getValue() == saOrderExt.getOrderType()
|| EOrderType.RETAIL_REPURCHASE.getValue() == saOrderExt.getOrderType()
@ -723,8 +737,6 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
@Override
public String onlinePaymentCallBack(Long pkMember, String orderCode) {
String resultStr;
// 临时订单信息
SaOrderTemp saOrderTemp = null;
// 获取缓存订单
SaOrderExt saOrderExt = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_ORDER + pkMember + orderCode);
@ -1045,4 +1057,58 @@ public class RetailOrderServiceImpl implements IRetailOrderService {
}
}
/**
* 同步全网产品库存
*
* @param saOrderExt
*/
private void allProductSync(SaOrderExt saOrderExt) {
if (EYesNo.NO.getIntValue() == BdConfig.getProductSync()) {
return;
}
Map<Integer, BdProduct> productMap = iBdProductService.queryProductMap(saOrderExt.getOrderItemsList().stream().map(SaOrderItems::getPkProduct).collect(Collectors.toSet()), null);
// 开启线程调用全网产品库存
// 请求参数
Map<String, Object> bodyMap = new HashMap<>();
bodyMap.put("source", BdConfig.getSysName());
bodyMap.put("orderCode", saOrderExt.getOrderCode());
List<Map<String, Object>> bodyDetailList = new ArrayList<>();
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
Map<String, Object> detailMap = new HashMap<>();
detailMap.put("wmsCode", productMap.get(saOrderItems.getPkProduct()).getWmsCode());
detailMap.put("changeNum", saOrderItems.getQuantity());
bodyDetailList.add(detailMap);
}
bodyMap.put("detailList", bodyDetailList);
// 请求头
String header = Base64Encoder.encode(BdConfig.getSysName() + "!" + saOrderExt.getOrderCode());
ThreadUtils.threadPoolExecutor.submit(() -> {
log.info("同步产品,header: {}", header);
log.info("同步产品,bodyMap: {}", bodyMap);
HttpRequest httpRequest = HttpUtil.createPost(BdConfig.getProductSyncUrl());
httpRequest.header("authorization", header);
httpRequest.body(JSONUtil.toJsonStr(bodyMap));
httpRequest.setReadTimeout(5000);
try {
// 同步产品接口返回
String resultStr = httpRequest.execute().body();
AjaxResult ajaxResult = JSONUtil.toBean(resultStr, AjaxResult.class);
log.info("同步产品,resultStr: {}", resultStr);
if (!ajaxResult.isSuccess()) {
// 同步产品失败250毫秒后重试
Thread.sleep(250);
resultStr = httpRequest.execute().body();
log.info("同步产品失败重试,resultStr: {}", resultStr);
}
} catch (Exception e) {
log.error("同步产品库存异常", e);
// 保存订单产品同步记录
iSaOrderSyncService.save(SaOrderSync.builder()
.orderCode(saOrderExt.getOrderCode())
.bodyDetail(JSONUtil.toJsonStr(bodyDetailList))
.build());
}
});
}
}

View File

@ -203,7 +203,6 @@ public class SaDeliverHandledController extends BaseController {
.productName(deliverHandled.getProductName())
.specsName(deliverHandled.getSpecsName())
.quantity(deliverHandled.getQuantity())
.price(BigDecimal.ZERO)
.build();
if (!deliverCode.equals(deliverHandled.getDeliverCode())) {
deliverCode = deliverHandled.getDeliverCode();

View File

@ -50,11 +50,7 @@ import java.util.*;
import java.util.stream.Collectors;
/**
* @Description: 发货清单未合单控制器
* @Author: jiang chao
* @Time: 2022/10/28 11:24
* @Classname: SaDeliverOrderController
* @PackageName: com.hzs.sale.deliver.controller.manage
* 发货清单未合单控制器
*/
@RestController
@RequestMapping("/manage/deliver-unhandled")
@ -102,22 +98,10 @@ public class SaDeliverUnhandledController extends BaseController {
param.setSystemType(SecurityUtils.getSystemType());
// 未合单目前查询状态已付款
param.setOrderStatusList(Collections.singletonList(EOrderStatus.PAY.getValue()));
// 查询语句已经写死查询在售此处可以直接赋空
param.setPreSaleStatus(null);
Integer pkCountry = SecurityUtils.getPkCountry();
// 返回数据
List<DeliverUnhandledVO> resultList = new ArrayList<>();
if (StringUtils.isNotEmpty(param.getOriginalOrderCode())) {
// 原单号不为空则需要查询
LambdaQueryWrapper<SaOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SaOrder::getOrderCode, param.getOriginalOrderCode());
queryWrapper.eq(SaOrder::getPkCountry, pkCountry);
SaOrder querySaOrder = iSaOrderService.getOne(queryWrapper);
if (null == querySaOrder) {
return getDataTable(resultList);
}
param.setPkOriginalOrder(querySaOrder.getPkId());
}
// 获取管理员权限角色地区范围体系列表团队列表
UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData();
@ -126,7 +110,7 @@ public class SaDeliverUnhandledController extends BaseController {
param.setTeamList(userAuthorityDTO.getUserTeamList());
startPage();
resultList = iSaOrderItemsService.queryDeliverUnhandledList(param, pkCountry);
List<DeliverUnhandledVO> resultList = iSaOrderItemsService.queryDeliverUnhandledList(param, pkCountry);
// 当查询有数据才进行处理
if (resultList.size() > 0) {
@ -157,23 +141,10 @@ public class SaDeliverUnhandledController extends BaseController {
param.setSystemType(SecurityUtils.getSystemType());
// 未合单目前查询状态已付款
param.setOrderStatusList(Collections.singletonList(EOrderStatus.PAY.getValue()));
// 查询语句已经写死查询在售此处可以直接赋空
param.setPreSaleStatus(null);
Integer pkCountry = SecurityUtils.getPkCountry();
// 返回数据
List<DeliverUnhandledVO> resultList = new ArrayList<>();
if (StringUtils.isNotEmpty(param.getOriginalOrderCode())) {
// 原单号不为空则需要查询
LambdaQueryWrapper<SaOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SaOrder::getOrderCode, param.getOriginalOrderCode());
queryWrapper.eq(SaOrder::getPkCountry, pkCountry);
SaOrder querySaOrder = iSaOrderService.getOne(queryWrapper);
if (null == querySaOrder) {
ExcelUtil<DeliverUnhandledVO> util = new ExcelUtil<>(DeliverUnhandledVO.class);
util.exportExcel(response, resultList, "发货清单未合单导出");
return;
}
param.setPkOriginalOrder(querySaOrder.getPkId());
}
// 获取管理员权限角色地区范围体系列表团队列表
UserAuthorityDTO userAuthorityDTO = iUserServiceApi.getUserAuthority(SecurityUtils.getUserId()).getData();
@ -181,7 +152,7 @@ public class SaDeliverUnhandledController extends BaseController {
param.setVertexIdList(userAuthorityDTO.getVertexIdList());
param.setTeamList(userAuthorityDTO.getUserTeamList());
resultList = iSaOrderItemsService.queryDeliverUnhandledList(param, pkCountry);
List<DeliverUnhandledVO> resultList = iSaOrderItemsService.queryDeliverUnhandledList(param, pkCountry);
// 当查询有数据才进行处理
if (resultList.size() > 0) {

View File

@ -149,15 +149,6 @@ public class DeliverUnhandledParam extends BaseAuthorityEntity {
*/
private String specsName;
/**
* 原单号
*/
private String originalOrderCode;
/**
* 原单号ID
*/
private Long pkOriginalOrder;
/**
* 发货仓库
*/
@ -187,4 +178,9 @@ public class DeliverUnhandledParam extends BaseAuthorityEntity {
*/
private Long pkVertex;
/**
* 非售商品列表
*/
private List<Integer> pkWaresList;
}

View File

@ -236,12 +236,6 @@ public class DeliverUnhandledVO {
@Excel(name = "预售状态")
private String preSaleStatusVal;
/**
* 原单号
*/
@Excel(name = "原单号")
private String originalOrderCode;
/**
* 备注
*/

View File

@ -18,89 +18,53 @@ import java.math.BigDecimal;
@Data
public class DeliverWmsVO implements Serializable {
@Excel(name = "<必填>订单号")
@Excel(name = "平台订单号")
private String deliverCode;
@Excel(name = "下单时间")
private String createTime;
@Excel(name = "付款时间")
private String payTime;
@Excel(name = "交易类型")
private String payType;
@Excel(name = "业务员")
private String peopleName;
@Excel(name = "备注")
private String orderRemark;
@Excel(name = "买家留言")
private String buyRemark;
@Excel(name = "系统备注")
private String sysRemark;
@Excel(name = "仓库")
private String storeName;
@Excel(name = "总金额")
private BigDecimal totalAmount;
@Excel(name = "运费")
private String postAmount;
@Excel(name = "实付总额")
private String realTotalAmount;
@Excel(name = "本次收款")
private String receiveAmount;
@Excel(name = "结算账户")
private String settleAccount;
@Excel(name = "<必填>收货人姓名")
@Excel(name = "收件人姓名")
private String recName;
@Excel(name = "手机")
@Excel(name = "收件人手机号/电话")
private String recPhone;
@Excel(name = "固话")
private String fixedPhone;
@Excel(name = "<必填>地址")
@Excel(name = "收件人地址")
private String recAddress;
@Excel(name = "邮编")
private String postal;
@Excel(name = "电子邮箱")
private String email;
@Excel(name = "<必填>商品编码")
@Excel(name = "商家编码")
private String wmsCode;
@Excel(name = "产品名称")
@Excel(name = "货品信息")
private String productName;
@Excel(name = "规格名称")
@Excel(name = "规格信息")
private String specsName;
@Excel(name = "<必填>数量")
@Excel(name = "货品数量")
private Integer quantity;
@Excel(name = "单价")
private BigDecimal price;
@Excel(name = "实付")
private BigDecimal realPay;
@Excel(name = "配送方式")
private String delivery;
@Excel(name = "明细备注")
private String remark;
@Excel(name = "批次号")
private String batchNo;
@Excel(name = "生产日期")
private String produceDate;
@Excel(name = "过期日期")
private String expireDate;
@Excel(name = "货品单价")
private String str1;
@Excel(name = "金额小计")
private String str2;
@Excel(name = "邮费收入")
private String str3;
@Excel(name = "店铺")
private String str4;
@Excel(name = "买家留言")
private String str5;
@Excel(name = "客服备注")
private String str6;
@Excel(name = "买家昵称")
private String str7;
@Excel(name = "主播ID")
private String str8;
@Excel(name = "主播名称")
private String str9;
@Excel(name = "业务员")
private String str10;
@Excel(name = "付款类型")
private String str11;
@Excel(name = "下单时间")
private String str12;
@Excel(name = "付款时间")
private String str13;
@Excel(name = "仓库")
private String str14;
@Excel(name = "快递公司")
private String str15;
}

View File

@ -31,7 +31,6 @@ import com.hzs.sale.shopping.vo.ProductGroup;
import com.hzs.sale.shopping.vo.ShoppingCartRedis;
import com.hzs.sale.shopping.vo.ShoppingCartVO;
import com.hzs.system.base.IAreaServiceApi;
import com.hzs.system.base.ICurrencyServiceApi;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.beans.factory.annotation.Autowired;
@ -45,8 +44,6 @@ public abstract class ParentOrderController extends BaseController {
@DubboReference
IAreaServiceApi iAreaServiceApi;
@DubboReference
ICurrencyServiceApi currencyServiceApi;
private ISaOrderService orderService;
@ -405,8 +402,7 @@ public abstract class ParentOrderController extends BaseController {
* @return boolean
*/
protected Boolean checkRecMsgBoolean(OrderParam orderParam) {
if (orderParam.getDeliveryWay() != null && (EDelivery.COMPANY_PICKED_UP.getValue() == orderParam.getDeliveryWay() ||
EDelivery.SHOP_PICKED_UP.getValue() == orderParam.getDeliveryWay())) {
if (orderParam.getDeliveryWay() != null && (EDelivery.COMPANY_PICKED_UP.getValue() == orderParam.getDeliveryWay())) {
orderParam.setTransType(null);
return orderParam.getSpecialArea() != null
&& orderParam.getOrderItemsParams() != null

View File

@ -49,10 +49,6 @@ public class ApiOthSaOrderController extends ParentOrderController {
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.REQUIRED_NOT_EMPTY));
}
if (!orderService.checkPreSalesQuantity(orderParam)) {
// 商品预售数量不足
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.WARES_PRE_SALE_QUANTITY_LACK));
}
if (orderParam.getSpecialArea() != EOrderType.REGISTER_ORDER.getValue()) {
convertShoppingCarToSku(orderParam);
if (EOrderType.UPGRADE_ORDER.getValue() == orderParam.getSpecialArea()

View File

@ -68,11 +68,6 @@ public class ApiRegSaOrderController extends ParentOrderController {
}
orderParam.setSource(source);
if (!orderService.checkPreSalesQuantity(orderParam)) {
// 商品预售数量不足
return AjaxResult.error(TransactionUtils.getContent(SaOrderMsgConstants.WARES_PRE_SALE_QUANTITY_LACK));
}
AjaxResult result = validateSaveMember(orderParam);
if ((Integer) result.get(AjaxResult.CODE_TAG) == HttpStatus.ERROR) {
return result;

View File

@ -34,27 +34,19 @@ import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @BelongsProject: hzs_cloud
* @BelongsPackage: com.hzs.sale.order.controller.manage
* @Author: yh
* @CreateTime: 2023-04-11 10:22
* @Description:
* @Version: 1.0
*/
@RestController
@RequestMapping("/manage/order-charge-log")
public class SaOrderChargeLogController extends BaseController {
@Autowired
private ITransactionCommonService transactionCommonService;
private ITransactionCommonService iTransactionCommonService;
@Autowired
private ISaOrderChargeLogService orderChargeLogService;
private ISaOrderChargeLogService iSaOrderChargeLogService;
@DubboReference
IVertexServiceApi vertexServiceApi;
IVertexServiceApi iVertexServiceApi;
@DubboReference
IAreaServiceApi areaServiceApi;
IAreaServiceApi iAreaServiceApi;
/**
* 撤单信息列表
@ -96,18 +88,18 @@ public class SaOrderChargeLogController extends BaseController {
}
startPage();
List<SaOrderChargeLogExt> list = orderChargeLogService.cancellationList(orderChargeLogParam);
List<SaOrderChargeLogExt> list = iSaOrderChargeLogService.cancellationList(orderChargeLogParam);
List<OrderChargeLogVo> resultList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(list)) {
// 地区
R<Map<Integer, String>> areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry());
R<Map<Integer, String>> areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry());
// 体系
R<List<VertexDTO>> vertexAll = vertexServiceApi.findAll();
R<List<VertexDTO>> vertexAll = iVertexServiceApi.findAll();
Map<Long, VertexDTO> vertexMap = vertexAll.getData().stream().collect(Collectors.toMap(VertexDTO::getPkId, Function.identity()));
Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(), EPresaleStatus.values(),
ESupplyWay.values(), EDelivery.values(), EOrderStatus.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(),
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(),
EOrderStatus.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(),
EOrderType.values(), ETransportType.values(), EYesNo.values(), EShippingChannel.values(), EUnit.values(), ESignSource.values(), EOrderSource.values());
for (SaOrderChargeLogExt orderChargeLogExt : list) {
@ -195,13 +187,9 @@ public class SaOrderChargeLogController extends BaseController {
// 发货时间
orderChargeLogVo.setDeliveryTime(orderChargeLogExt.getDeliveryTime());
// 发货方式
if (orderChargeLogExt.getDeliveryWay() != null) {
orderChargeLogVo.setDeliveryWayStr(transactionMap.get(EDelivery.getDelivery(orderChargeLogExt.getDeliveryWay()).getKey()));
}
orderChargeLogVo.setDeliveryWayStr(EDelivery.getLabelByValue(orderChargeLogExt.getDeliveryWay()));
//销售方式
if (orderChargeLogExt.getOperateScope() != null && ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()) != null) {
orderChargeLogVo.setOperateScopeStr(transactionMap.get(ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()).getKey()));
}
orderChargeLogVo.setOperateScopeStr(ESupplyWay.getLabelByVal(orderChargeLogExt.getOperateScope()));
// 运输方式
List<String> tranList = new ArrayList<>();
if (orderChargeLogExt.getIsLandTrans() != null && orderChargeLogExt.getIsLandTrans().equals(0)) {
@ -213,13 +201,9 @@ public class SaOrderChargeLogController extends BaseController {
}
orderChargeLogVo.setTranTypeStr(StringUtils.join(tranList, ","));
// 预售状态
if (orderChargeLogExt.getPreSaleStatus() != null) {
orderChargeLogVo.setPreSaleStatusStr(transactionMap.get(EPresaleStatus.getEPresaleStatus(orderChargeLogExt.getPreSaleStatus()).getKey()));
}
orderChargeLogVo.setPreSaleStatusStr(EPresaleStatus.getLabelByValue(orderChargeLogExt.getPreSaleStatus()));
// 支付方式
if (orderChargeLogExt.getPayType() != null && EOrderPayType.getEnumByValue(orderChargeLogExt.getPayType()) != null) {
orderChargeLogVo.setPayTypeStr(EOrderPayType.getEnumByValue(orderChargeLogExt.getPayType()).getLabel());
}
orderChargeLogVo.setPayTypeStr(EOrderPayType.getLabelByValue(orderChargeLogExt.getPayType()));
// 撤单人
orderChargeLogVo.setCreatorName(orderChargeLogExt.getCancelTheOrderName());
// 终审
@ -278,18 +262,18 @@ public class SaOrderChargeLogController extends BaseController {
orderChargeLogParam.setEndCancelOrderTime(DateUtils.getEndTime(orderChargeLogParam.getEndCancelOrderTime()));
}
List<SaOrderChargeLogExt> list = orderChargeLogService.cancellationList(orderChargeLogParam);
List<SaOrderChargeLogExt> list = iSaOrderChargeLogService.cancellationList(orderChargeLogParam);
List<OrderChargeLogVo> resultList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(list)) {
// 地区
R<Map<Integer, String>> areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry());
R<Map<Integer, String>> areaMap = iAreaServiceApi.getAreaMap(SecurityUtils.getPkCountry());
// 体系
R<List<VertexDTO>> vertexAll = vertexServiceApi.findAll();
R<List<VertexDTO>> vertexAll = iVertexServiceApi.findAll();
Map<Long, VertexDTO> vertexMap = vertexAll.getData().stream().collect(Collectors.toMap(VertexDTO::getPkId, Function.identity()));
Map<String, String> transactionMap = transactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(), EPresaleStatus.values(),
ESupplyWay.values(), EDelivery.values(), EOrderStatus.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(),
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveRechargeStatus.values(),
EOrderStatus.values(), EPlaceDept.values(), ECustomerType.values(), EApprovalBusiness.values(),
EOrderType.values(), ETransportType.values(), EYesNo.values(), EShippingChannel.values(), EUnit.values(), ESignSource.values(), EOrderSource.values());
for (SaOrderChargeLogExt orderChargeLogExt : list) {
@ -377,13 +361,9 @@ public class SaOrderChargeLogController extends BaseController {
// 发货时间
orderChargeLogVo.setDeliveryTime(orderChargeLogExt.getDeliveryTime());
// 发货方式
if (orderChargeLogExt.getDeliveryWay() != null) {
orderChargeLogVo.setDeliveryWayStr(transactionMap.get(EDelivery.getDelivery(orderChargeLogExt.getDeliveryWay()).getKey()));
}
orderChargeLogVo.setDeliveryWayStr(EDelivery.getLabelByValue(orderChargeLogExt.getDeliveryWay()));
//销售方式
if (orderChargeLogExt.getOperateScope() != null && ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()) != null) {
orderChargeLogVo.setOperateScopeStr(transactionMap.get(ESupplyWay.getESupplyWay(orderChargeLogExt.getOperateScope()).getKey()));
}
orderChargeLogVo.setOperateScopeStr(ESupplyWay.getLabelByVal(orderChargeLogExt.getOperateScope()));
// 运输方式
List<String> tranList = new ArrayList<>();
if (orderChargeLogExt.getIsLandTrans() != null && orderChargeLogExt.getIsLandTrans().equals(0)) {
@ -395,13 +375,9 @@ public class SaOrderChargeLogController extends BaseController {
}
orderChargeLogVo.setTranTypeStr(StringUtils.join(tranList, ","));
// 预售状态
if (orderChargeLogExt.getPreSaleStatus() != null) {
orderChargeLogVo.setPreSaleStatusStr(transactionMap.get(EPresaleStatus.getEPresaleStatus(orderChargeLogExt.getPreSaleStatus()).getKey()));
}
orderChargeLogVo.setPreSaleStatusStr(EPresaleStatus.getLabelByValue(orderChargeLogExt.getPreSaleStatus()));
// 支付方式
if (orderChargeLogExt.getPayType() != null && EOrderPayType.getEnumByValue(orderChargeLogExt.getPayType()) != null) {
orderChargeLogVo.setPayTypeStr(EOrderPayType.getEnumByValue(orderChargeLogExt.getPayType()).getLabel());
}
orderChargeLogVo.setPayTypeStr(EOrderPayType.getLabelByValue(orderChargeLogExt.getPayType()));
// 撤单人
orderChargeLogVo.setCreatorName(orderChargeLogExt.getCancelTheOrderName());
// 终审

View File

@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hzs.common.core.annotation.AccessPermissions;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.utils.StringUtils;
@ -15,7 +14,6 @@ import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
import com.hzs.common.domain.sale.order.SaOrderRemarks;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.sale.order.controller.ParentOrderController;
import com.hzs.sale.order.dto.OrderBusinessTemplate;
import com.hzs.sale.order.param.*;
@ -41,20 +39,12 @@ import java.util.stream.Collectors;
/**
* 订单控制类
*
* @author: sui q
* @time: 2022/8/27 16:20
* @description:
* @classname: OrderController
* @package_name: com.hzs.sale.order.controller
*/
@RestController
@RequestMapping("/manage/order")
@Slf4j
public class SaOrderController extends ParentOrderController {
@Autowired
private ITransactionCommonService iTransactionCommonService;
@Autowired
private ISaOrderService orderService;
@Autowired
@ -116,49 +106,18 @@ public class SaOrderController extends ParentOrderController {
if (waresOrderVo.getRecCountry() != null) {
waresOrderVo.setRecCountryName(areaMap.get(waresOrderVo.getRecCountry()));
}
// 发货方式
if (null != waresOrderVo.getDeliveryWay()) {
EDelivery eDelivery = EDelivery.getDelivery(waresOrderVo.getDeliveryWay());
if (null != eDelivery) {
waresOrderVo.setDeliveryWayStr(eDelivery.getLabel());
}
}
// 运输方式
if (waresOrderVo.getTranType() != null) {
waresOrderVo.setTranTypeStr(ETransportType.getETransportType(waresOrderVo.getTranType()).getLabel());
}
// 预售状态
if (waresOrderVo.getPreSaleStatus() != null) {
waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus()).getLabel());
}
// 订单状态
if (waresOrderVo.getOrderStatus() != null) {
EOrderStatus orderStatusEnum = EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus());
if (orderStatusEnum != null) {
waresOrderVo.setOrderStatusStr(orderStatusEnum.getLabel());
}
}
// 支付方式
if (waresOrderVo.getPayType() != null) {
EOrderPayType eOrderPayType = EOrderPayType.getEnumByValue(waresOrderVo.getPayType());
if (null != eOrderPayType) {
waresOrderVo.setPayTypeStr(eOrderPayType.getLabel());
}
}
// 订单类型
if (waresOrderVo.getOrderType() != null) {
EOrderType eOrderType = EOrderType.getEnumByValue(waresOrderVo.getOrderType());
if (null != eOrderType) {
waresOrderVo.setOrderTypeStr(eOrderType.getLabel());
}
}
// 供应方式
if (StringUtils.isNotBlank(waresOrderVo.getOperateScope())) {
ESupplyWay eSupplyWay = ESupplyWay.getESupplyWay(Integer.parseInt(waresOrderVo.getOperateScope()));
if (null != eSupplyWay) {
waresOrderVo.setOperateScope(eSupplyWay.getLabel());
}
}
waresOrderVo.setOrderTypeStr(EOrderType.getLabelByValue(waresOrderVo.getOrderType()));
// 发货方式
waresOrderVo.setDeliveryWayStr(EDelivery.getLabelByValue(waresOrderVo.getDeliveryWay()));
// 运输方式
waresOrderVo.setTranTypeStr(ETransportType.getLabelByValue(waresOrderVo.getTranType()));
// 预售状态
waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getLabelByValue(waresOrderVo.getPreSaleStatus()));
// 订单状态
waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus()));
// 支付方式
waresOrderVo.setPayTypeStr(EOrderPayType.getLabelByValue(waresOrderVo.getPayType()));
}
return getDataTable(resultList);
}
@ -192,10 +151,7 @@ public class SaOrderController extends ParentOrderController {
waresOrderParam.setAreaScopeList(userAuthorityDTO.getRoleAreaScopeList());
waresOrderParam.setVertexIdList(userAuthorityDTO.getVertexIdList());
waresOrderParam.setTeamList(userAuthorityDTO.getUserTeamList());
// startPage();
List<WaresOrderVo> resultList = orderService.selectByOrderInfoList(waresOrderParam);
// 获取需要翻译的枚举翻译
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), ESupplyWay.values(), ETransportType.values(), EPresaleStatus.values(), EOrderType.values(), EOrderStatus.values(), EOrderPayType.values(), ESaleType.values(), EShippingChannel.values());
for (WaresOrderVo waresOrderVo : resultList) {
//
if (waresOrderVo.getRecProvince() != null) {
@ -209,39 +165,18 @@ public class SaOrderController extends ParentOrderController {
if (waresOrderVo.getRecCountry() != null) {
waresOrderVo.setRecCountryName(areaMap.get(waresOrderVo.getRecCountry()));
}
// 发货方式
waresOrderVo.setDeliveryWayStr(EDelivery.getDelivery(waresOrderVo.getDeliveryWay()).getLabel());
// 运输方式
if (waresOrderVo.getTranType() != null && ETransportType.getETransportType(waresOrderVo.getTranType()) != null) {
waresOrderVo.setTranTypeStr(ETransportType.getETransportType(waresOrderVo.getTranType()).getLabel());
}
// 预售状态
if (waresOrderVo.getPreSaleStatus() != null && EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus()) != null) {
waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus()).getLabel());
}
// 订单状态
if (waresOrderVo.getOrderStatus() != null) {
EOrderStatus orderStatusEnum = EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus());
if (orderStatusEnum != null) {
waresOrderVo.setOrderStatusStr(orderStatusEnum.getLabel());
}
}
// 支付方式
if (waresOrderVo.getPayType() != null) {
waresOrderVo.setPayTypeStr(EOrderPayType.getEnumByValue(waresOrderVo.getPayType()).getLabel());
}
// 订单类型
if (waresOrderVo.getOrderType() != null) {
waresOrderVo.setOrderTypeVal(transactionMap.get(EnumsPrefixConstants.ORDER_TYPE + waresOrderVo.getOrderType()));
}
// 供应方式
if (StringUtils.isNotBlank(waresOrderVo.getOperateScope()) && ESupplyWay.getESupplyWay(Integer.parseInt(waresOrderVo.getOperateScope())) != null) {
waresOrderVo.setOperateScope(ESupplyWay.getESupplyWay(Integer.parseInt(waresOrderVo.getOperateScope())).getLabel());
}
// 发货类型
waresOrderVo.setShippingChannelVal(transactionMap.get(EnumsPrefixConstants.E_SHIPPING_CHANNEL + waresOrderVo.getShippingChannel()));
waresOrderVo.setLogisticsCode(waresOrderVo.getLogisticsCode());
waresOrderVo.setLogisticsCompany(waresOrderVo.getLogisticsCompany());
waresOrderVo.setOrderTypeVal(EOrderType.getLabelByValue(waresOrderVo.getOrderType()));
// 发货方式
waresOrderVo.setDeliveryWayStr(EDelivery.getLabelByValue(waresOrderVo.getDeliveryWay()));
// 运输方式
waresOrderVo.setTranTypeStr(ETransportType.getLabelByValue(waresOrderVo.getTranType()));
// 预售状态
waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getLabelByValue(waresOrderVo.getPreSaleStatus()));
// 订单状态
waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus()));
// 支付方式
waresOrderVo.setPayTypeStr(EOrderPayType.getLabelByValue(waresOrderVo.getPayType()));
}
ExcelUtil<WaresOrderVo> util = new ExcelUtil<WaresOrderVo>(WaresOrderVo.class, iMenuColumnServiceApi.queryMenuColumn("Commodity", SecurityUtils.getUserId()).getData());
util.exportExcel(response, resultList, "商品订单导出");
@ -273,8 +208,6 @@ public class SaOrderController extends ParentOrderController {
startPage();
List<WaresOrderVo> resultList = orderItemsService.selectByInvestmentList(waresOrderParam);
// 获取需要翻译的枚举翻译
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), ESupplyWay.values());
Map<Integer, String> areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData();
for (WaresOrderVo waresOrderVo : resultList) {
//
@ -290,41 +223,23 @@ public class SaOrderController extends ParentOrderController {
waresOrderVo.setRecCountryName(areaMap.get(waresOrderVo.getRecCountry()));
}
// 发货方式
if (null != waresOrderVo.getDeliveryWay()) {
waresOrderVo.setDeliveryWayStr(transactionMap.get(EnumsPrefixConstants.DELIVERY + waresOrderVo.getDeliveryWay()));
}
waresOrderVo.setDeliveryWayStr(EDelivery.getLabelByValue(waresOrderVo.getDeliveryWay()));
// 运输方式
if (waresOrderVo.getTranType() != null) {
waresOrderVo.setTranTypeStr(ETransportType.getETransportType(waresOrderVo.getTranType()).getLabel());
}
waresOrderVo.setTranTypeStr(ETransportType.getLabelByValue(waresOrderVo.getTranType()));
// 预售状态
if (waresOrderVo.getPreSaleStatus() != null) {
waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus()).getLabel());
}
waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getLabelByValue(waresOrderVo.getPreSaleStatus()));
// 订单状态
if (waresOrderVo.getOrderStatus() != null) {
waresOrderVo.setOrderStatusStr(EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus()).getLabel());
}
waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus()));
// 支付方式
if (waresOrderVo.getPayType() != null) {
waresOrderVo.setPayTypeStr(EOrderPayType.getEnumByValue(waresOrderVo.getPayType()).getLabel());
}
waresOrderVo.setPayTypeStr(EOrderPayType.getLabelByValue(waresOrderVo.getPayType()));
// 订单类型
if (waresOrderVo.getOrderType() != null) {
waresOrderVo.setOrderTypeStr(EOrderType.getEnumByValue(waresOrderVo.getOrderType()).getLabel());
}
waresOrderVo.setOrderTypeStr(EOrderType.getLabelByValue(waresOrderVo.getOrderType()));
// 供应方式
if (StringUtils.isNotBlank(waresOrderVo.getOperateScope())) {
waresOrderVo.setOperateScope(ESupplyWay.getESupplyWay(Integer.parseInt(waresOrderVo.getOperateScope())).getLabel());
}
// 计算汇率
if (null != waresOrderVo.getInExchangeRate()) {
waresOrderVo.setOrderAchieve(waresOrderVo.getInExchangeRate().multiply(waresOrderVo.getOrderAchieve()));
waresOrderVo.setOperateScope(ESupplyWay.getLabelByVal(Integer.parseInt(waresOrderVo.getOperateScope())));
}
// 发货类型
if (waresOrderVo.getShippingChannel() != null) {
waresOrderVo.setShippingChannelStr(EShippingChannel.getEnumByValue(waresOrderVo.getShippingChannel()).getLabel());
}
waresOrderVo.setShippingChannelStr(EShippingChannel.getLabelByValue(waresOrderVo.getShippingChannel()));
// 计算产品总计
waresOrderVo.setProductPriceTotal(waresOrderVo.getProductPrice().multiply(BigDecimal.valueOf(waresOrderVo.getQuantity())));
}
@ -360,8 +275,6 @@ public class SaOrderController extends ParentOrderController {
List<WaresOrderVo> resultList = orderItemsService.selectByInvestmentList(waresOrderParam);
Map<Integer, String> areaMap = areaServiceApi.getAreaMap(SecurityUtils.getPkCountry()).getData();
// 获取需要翻译的枚举翻译
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EDelivery.values(), ESupplyWay.values());
for (WaresOrderVo waresOrderVo : resultList) {
//
@ -377,56 +290,23 @@ public class SaOrderController extends ParentOrderController {
waresOrderVo.setRecCountryName(areaMap.get(waresOrderVo.getRecCountry()));
}
// 发货方式
if (waresOrderVo.getDeliveryWay() != null) {
waresOrderVo.setDeliveryWayStr(transactionMap.get(EnumsPrefixConstants.DELIVERY + waresOrderVo.getDeliveryWay()));
}
waresOrderVo.setDeliveryWayStr(EDelivery.getLabelByValue(waresOrderVo.getDeliveryWay()));
// 运输方式
if (waresOrderVo.getTranType() != null) {
ETransportType transportType = ETransportType.getETransportType(waresOrderVo.getTranType());
if (transportType != null) {
waresOrderVo.setTranTypeStr(transportType.getLabel());
}
}
waresOrderVo.setTranTypeStr(ETransportType.getLabelByValue(waresOrderVo.getTranType()));
// 预售状态
if (waresOrderVo.getPreSaleStatus() != null) {
EPresaleStatus presaleStatus = EPresaleStatus.getEPresaleStatus(waresOrderVo.getPreSaleStatus());
if (presaleStatus != null) {
waresOrderVo.setPreSaleStatusStr(presaleStatus.getLabel());
}
}
waresOrderVo.setPreSaleStatusStr(EPresaleStatus.getLabelByValue(waresOrderVo.getPreSaleStatus()));
// 订单状态
if (waresOrderVo.getOrderStatus() != null) {
EOrderStatus orderStatus = EOrderStatus.getEOrderStatus(waresOrderVo.getOrderStatus());
if (orderStatus != null) {
waresOrderVo.setOrderStatusStr(orderStatus.getLabel());
}
}
waresOrderVo.setOrderStatusStr(EOrderStatus.getLabelByValue(waresOrderVo.getOrderStatus()));
// 支付方式
if (waresOrderVo.getPayType() != null) {
EOrderPayType orderPayType = EOrderPayType.getEnumByValue(waresOrderVo.getPayType());
if (orderPayType != null) {
waresOrderVo.setPayTypeStr(orderPayType.getLabel());
}
}
waresOrderVo.setPayTypeStr(EOrderPayType.getLabelByValue(waresOrderVo.getPayType()));
// 订单类型
if (waresOrderVo.getOrderType() != null) {
EOrderType orderType = EOrderType.getEnumByValue(waresOrderVo.getOrderType());
if (orderType != null) {
waresOrderVo.setOrderTypeStr(orderType.getLabel());
}
}
waresOrderVo.setOrderTypeStr(EOrderType.getLabelByValue(waresOrderVo.getOrderType()));
// 供应方式
if (StringUtils.isNotBlank(waresOrderVo.getOperateScope()) && ESupplyWay.getESupplyWay(Integer.parseInt(waresOrderVo.getOperateScope())) != null) {
waresOrderVo.setOperateScope(ESupplyWay.getESupplyWay(Integer.parseInt(waresOrderVo.getOperateScope())).getLabel());
if (StringUtils.isNotBlank(waresOrderVo.getOperateScope())) {
waresOrderVo.setOperateScope(ESupplyWay.getLabelByVal(Integer.parseInt(waresOrderVo.getOperateScope())));
}
// 计算汇率
waresOrderVo.setOrderAchieve(waresOrderVo.getInExchangeRate().multiply(waresOrderVo.getOrderAchieve()));
// 发货类型
if (waresOrderVo.getShippingChannel() != null) {
waresOrderVo.setShippingChannelStr(EShippingChannel.getEnumByValue(waresOrderVo.getShippingChannel()).getLabel());
}
waresOrderVo.setShippingChannelStr(EShippingChannel.getLabelByValue(waresOrderVo.getShippingChannel()));
}
List<WaresOrderInfoVo> waresOrderInfoList = resultList.stream().map(a -> {
WaresOrderInfoVo waresOrderInfoVo = BeanUtil.copyProperties(a, WaresOrderInfoVo.class);

View File

@ -0,0 +1,67 @@
package com.hzs.sale.order.controller.manager;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON;
import com.hzs.common.core.annotation.AccessPermissions;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.enums.EOperationMethod;
import com.hzs.common.core.enums.EOperationModule;
import com.hzs.common.core.enums.ESaOrderSyncStatus;
import com.hzs.common.core.utils.poi.ExcelUtil;
import com.hzs.common.core.web.controller.BaseController;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.sale.order.dto.SaOrderSyncBodyDetailDTO;
import com.hzs.sale.order.param.SaOrderSyncParam;
import com.hzs.sale.order.service.ISaOrderSyncService;
import com.hzs.sale.order.vo.SaOrderSyncVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 订单同步记录控制器
*/
@RestController
@RequestMapping("/manage/order-sync")
public class SaOrderSyncController extends BaseController {
@Autowired
private ISaOrderSyncService orderSyncService;
/**
* 同步订单列表
*/
@Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.SELECT)
@GetMapping("list")
public TableDataInfo list(SaOrderSyncParam param) {
startPage();
List<SaOrderSyncVO> list = orderSyncService.queryList(param, SecurityUtils.getPkCountry());
for (SaOrderSyncVO saOrderSyncVO : list) {
saOrderSyncVO.setStatusVal(ESaOrderSyncStatus.getLabelByValue(saOrderSyncVO.getStatus()));
saOrderSyncVO.setOrderProductDetail(JSONUtil.toList(saOrderSyncVO.getBodyDetail(), SaOrderSyncBodyDetailDTO.class));
}
return getDataTable(list);
}
/**
* 更新同步状态
*/
@Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.UPDATE)
@PostMapping("updateStatus")
public AjaxResult updateStatus(@RequestBody SaOrderSyncParam param) {
if (param.getPkId() == null) {
return AjaxResult.error("主键ID不能为空");
}
if (param.getStatus() == null) {
return AjaxResult.error("状态不能为空");
}
return toAjax(orderSyncService.updateStatus(param.getPkId(), param.getStatus(),
SecurityUtils.getUserId(), SecurityUtils.getPkCountry()));
}
}

View File

@ -0,0 +1,22 @@
package com.hzs.sale.order.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SaOrderSyncBodyDetailDTO {
/**
* 仓储编号
*/
private String wmsCode;
/**
* 变动数量
*/
private Integer changeNum;
}

View File

@ -0,0 +1,24 @@
package com.hzs.sale.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.sale.order.SaOrderSync;
import com.hzs.sale.order.param.SaOrderSyncParam;
import com.hzs.sale.order.vo.SaOrderSyncVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 订单同步记录Mapper接口
*/
public interface SaOrderSyncMapper extends BaseMapper<SaOrderSync> {
/**
* 查询订单同步记录列表
*
* @param param 查询参数
* @param pkCountry 国家主键
* @return 同步记录列表
*/
List<SaOrderSyncVO> queryList(@Param("param") SaOrderSyncParam param, @Param("pkCountry") Integer pkCountry);
}

View File

@ -0,0 +1,41 @@
package com.hzs.sale.order.param;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 同步失败订单列表
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SaOrderSyncParam {
/**
* 同步失败主键
*/
private Long pkId;
/**
* 订单号
*/
private String orderCode;
/**
* 开始日期yyyy-MM-dd
*/
private String startDate;
/**
* 结束日期yyyy-MM-dd
*/
private String endDate;
/**
* 同步状态 1=失败
*/
private Integer status;
private String statusVal;
}

View File

@ -119,17 +119,6 @@ public class SaOrderServiceProvider implements ISaOrderServiceApi {
return R.fail();
}
@Override
public R<?> saveOrder(SaOrderExt saOrderExt) {
try {
iSaOrderService.saveSaOrderByOrderExt(saOrderExt);
} catch (Exception e) {
e.printStackTrace();
return R.fail(e.getMessage());
}
return R.ok();
}
@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,17 +73,11 @@ 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);
@ -96,9 +87,6 @@ public interface ISaOrderItemsService extends IService<SaOrderItems> {
* @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);
@ -111,11 +99,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 +141,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);

View File

@ -571,28 +571,6 @@ public interface ISaOrderService extends IService<SaOrder> {
*/
int insertBach(List<SaOrder> orderList, List<SaOrderItems> orderItemsList);
/**
* 生成三方销售订单
*/
void saveSaOrderByOrderExt(SaOrderExt saOrderExt);
/**
* 校验预售库存数量是否充足
*
* @param orderParam
* @return
*/
Boolean checkPreSalesQuantity(OrderParam orderParam);
/**
* 扣减预售状态下预售库存使用量
*
* @param orderCode
* @param specialArea
* @return
*/
Boolean reducePreSalesQuantity(String orderCode, Integer specialArea);
/**
* 根据编号查询会员首单
*

View File

@ -0,0 +1,34 @@
package com.hzs.sale.order.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.sale.order.SaOrderSync;
import com.hzs.sale.order.param.SaOrderSyncParam;
import com.hzs.sale.order.vo.SaOrderSyncVO;
import java.util.List;
/**
* 订单同步记录服务接口
*/
public interface ISaOrderSyncService extends IService<SaOrderSync> {
/**
* 查询订单同步记录列表
*
* @param param 查询参数
* @param pkCountry 国家主键
* @return 同步记录列表
*/
List<SaOrderSyncVO> queryList(SaOrderSyncParam param, Integer pkCountry);
/**
* 更新同步状态
*
* @param pkId 主键ID
* @param status 状态
* @param userId 用户ID
* @param pkCountry 国家主键
* @return 是否成功
*/
Boolean updateStatus(Long pkId, Integer status, Long userId, Integer pkCountry);
}

View File

@ -25,9 +25,6 @@ import java.util.*;
/**
* 销售订单-明细表 服务实现类
*
* @author hzs
* @since 2022-08-31
*/
@Service
public class SaOrderItemsServiceImpl extends ServiceImpl<SaOrderItemsMapper, SaOrderItems> implements ISaOrderItemsService {

View File

@ -768,9 +768,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 休止期普通会员6个月奖衔会员12个月先按6个月来后续MQ会统一处理同姓名同手机号会员
newCuMember.setStopDate(DateUtils.addMonths(newCuMember.getExpireDate(), 6));
String orderCode = saOrderExt.getOrderCode();
Integer specialArea = saOrderExt.getSpecialArea();
this.reducePreSalesQuantity(orderCode, specialArea);
// 调用其他服务保存会员信息会员注册信息
R<Boolean> saveResult = memberServiceApi.saveMember(newCuMember, saOrderExt, isToBePay, cuMemberAccountExt);
if (saveResult.isSuccess()) {
@ -870,10 +867,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
// 更新订单信息
updateSaOrder(saOrderExt);
// 扣减预售状态下预售库存使用量
String orderCode = saOrderExt.getOrderCode();
Integer specialArea = saOrderExt.getSpecialArea();
reducePreSalesQuantity(orderCode, specialArea);
// 处理会员信息更新会员等级,扣款
R<Boolean> saveResult = memberServiceApi.saveMember(cuMember, saOrderExt, cuMemberAccountExt);
if (saveResult.isSuccess()) {
@ -987,11 +980,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
CuMember member = getCuMemberByKey(saOrderExt.getPkMember());
CuMember cuMember = calculateHaFunMemberGrade(saOrderExt, member);
// 扣减预售状态下预售库存使用量
String orderCode = saOrderExt.getOrderCode();
Integer specialArea = saOrderExt.getSpecialArea();
reducePreSalesQuantity(orderCode, specialArea);
R<Boolean> saveResult = memberServiceApi.saveMember(cuMember, saOrderExt, cuMemberAccountExt);
if (saveResult.isSuccess()) {
if (!saveResult.getData()) {
@ -1961,104 +1949,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return i;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveSaOrderByOrderExt(SaOrderExt saOrderExt) {
save(saOrderExt);
for (SaOrderItems saOrderItems : saOrderExt.getOrderItemsList()) {
saOrderItems.setPkOrder(saOrderExt.getPkId());
}
saOrderItemsService.saveBatch(saOrderExt.getOrderItemsList());
}
/**
* 校验预售库存数量是否充足
*
* @param orderParam
* @return
*/
@Override
public Boolean checkPreSalesQuantity(OrderParam orderParam) {
// 开关控制是否处理
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
return true;
}
Set<String> waresCodeList = new HashSet<>();
for (OrderItemsParam orderItemsParam : orderParam.getOrderItemsParams()) {
if (StringUtils.isNotBlank(orderItemsParam.getWaresCode())) {
waresCodeList.add(orderItemsParam.getWaresCode());
}
}
if (waresCodeList.size() > 0) {
List<WaresPreSaleVo> waresPreSaleVoList = iBdWaresExtendService.selectByWaresCodeList(waresCodeList, orderParam.getSpecialArea());
if (CollectionUtil.isNotEmpty(waresPreSaleVoList)) {
Map<String, WaresPreSaleVo> waresPreSaleMap = waresPreSaleVoList.stream().collect(Collectors.toMap(WaresPreSaleVo::getWaresCode, Function.identity()));
for (OrderItemsParam orderItemsParam : orderParam.getOrderItemsParams()) {
String waresCode = orderItemsParam.getWaresCode();
if (StringUtils.isNotEmpty(waresCode)) {
WaresPreSaleVo waresPreSaleVo = waresPreSaleMap.get(waresCode);
if (null != waresPreSaleVo && waresPreSaleVo.getPreSaleStatus() != null && waresPreSaleVo.getPreSaleStatus().equals(EPresaleStatus.PRESALE.getValue())) {
// 如果是预售状态 校验预售数量是否足够
if (waresPreSaleVo.getPreSaleQuantity() != null) {
// 预售数量不足
return waresPreSaleVo.getPreSaleQuantity() >= orderItemsParam.getQuantity();
}
}
}
}
}
}
return true;
}
/**
* 扣减预售状态下预售库存使用量
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean reducePreSalesQuantity(String orderCode, Integer specialArea) {
// 开关控制是否处理
if (EYesNo.NO.getIntValue() == BdConfig.getEnable()) {
return true;
}
List<OrderItemsParam> orderItemsList = saOrderItemsService.selectByWaresCodeList(orderCode);
if (orderItemsList.size() > 0) {
Set<String> waresCodeList = new HashSet<>();
for (OrderItemsParam orderItemsParam : orderItemsList) {
if (StringUtils.isNotBlank(orderItemsParam.getWaresCode())) {
waresCodeList.add(orderItemsParam.getWaresCode());
}
}
if (waresCodeList.size() > 0) {
List<WaresPreSaleVo> waresPreSaleVoList = iBdWaresExtendService.selectByWaresCodeList(waresCodeList, specialArea);
if (CollectionUtil.isNotEmpty(waresPreSaleVoList)) {
Map<String, WaresPreSaleVo> waresPreSaleMap = waresPreSaleVoList.stream().collect(Collectors.toMap(WaresPreSaleVo::getWaresCode, Function.identity()));
for (OrderItemsParam orderItemsParam : orderItemsList) {
String waresCode = orderItemsParam.getWaresCode();
if (StringUtils.isNotEmpty(waresCode)) {
WaresPreSaleVo waresPreSaleVo = waresPreSaleMap.get(waresCode);
if (null != waresPreSaleVo && waresPreSaleVo.getPreSaleStatus() != null && waresPreSaleVo.getPreSaleStatus().equals(EPresaleStatus.PRESALE.getValue())) {
// 如果是预售状态 校验预售数量是否足够
if (waresPreSaleVo.getPreSaleQuantity() != null) {
if (waresPreSaleVo.getPreSaleQuantity() < orderItemsParam.getQuantity()) {
// 预售数量不足
return false;
} else {
iBdWaresService.updatePreSaleQuantityByWaresCode(waresCode, orderItemsParam.getQuantity());
return true;
}
}
}
}
}
}
}
}
return true;
}
/**
* 根据编号查询会员首单
*
@ -2070,13 +1960,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
return baseMapper.checkMemberIsFirstOrder(memberCodeList);
}
/**
* @description: 自助撤单
* @author: zhang jing
* @date: 2023/11/21 15:27
* @param: [pkApprove, orderCancelParam, validateCancelOrderVO]
* @return: void
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void selfRevokeOrder(Long pkApprove, MyOrderVO myOrderVO) {

View File

@ -0,0 +1,36 @@
package com.hzs.sale.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.domain.sale.order.SaOrderSync;
import com.hzs.sale.order.mapper.SaOrderSyncMapper;
import com.hzs.sale.order.param.SaOrderSyncParam;
import com.hzs.sale.order.service.ISaOrderSyncService;
import com.hzs.sale.order.vo.SaOrderSyncVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 订单同步记录服务实现
*/
@Service
public class SaOrderSyncServiceImpl extends ServiceImpl<SaOrderSyncMapper, SaOrderSync> implements ISaOrderSyncService {
@Override
public List<SaOrderSyncVO> queryList(SaOrderSyncParam param, Integer pkCountry) {
return baseMapper.queryList(param, pkCountry);
}
@Override
public Boolean updateStatus(
Long pkId, Integer status, Long userId, Integer pkCountry
) {
LambdaUpdateWrapper<SaOrderSync> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(SaOrderSync::getPkId, pkId);
updateWrapper.set(SaOrderSync::getStatus, status);
return this.update(updateWrapper);
}
}

View File

@ -0,0 +1,62 @@
package com.hzs.sale.order.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Excel;
import com.hzs.sale.order.dto.SaOrderSyncBodyDetailDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 订单同步记录VO
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SaOrderSyncVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private Long pkId;
/**
* 订单编号
*/
@Excel(name = "订单编号")
private String orderCode;
/**
* 产品明细列表
*/
private String bodyDetail;
private List<SaOrderSyncBodyDetailDTO> orderProductDetail;
/**
* 创建时间
*/
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date creationTime;
/**
* 同步状态1=失败
*/
@Excel(name = "同步状态", readConverterExp = "1=失败,0=成功")
private Integer status;
/**
* 同步状态描述
*/
private String statusVal;
}

View File

@ -1,6 +1,7 @@
package com.hzs.sale.order.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
import com.hzs.common.core.annotation.Excel;
import lombok.Data;
@ -8,14 +9,6 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @BelongsProject: hzs_cloud
* @BelongsPackage: com.hzs.sale.order.vo
* @Author: yh
* @CreateTime: 2023-08-02 16:32
* @Description: TODO
* @Version: 1.0
*/
@Data
public class WaresOrderInfoVo implements Serializable {
@ -45,6 +38,7 @@ public class WaresOrderInfoVo implements Serializable {
/**
* 重量
*/
@BigDecimalFormat
@Excel(name = "重量(KG)")
private BigDecimal weight;
/**

View File

@ -10,13 +10,6 @@ import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @Description:
* @Author: yuhui
* @Time: 2023/1/31 14:09
* @Classname: WaresOrderVo
* @PackageName: com.hzs.sale.order.vo
*/
@Data
public class WaresOrderVo implements Serializable {
@ -312,10 +305,6 @@ public class WaresOrderVo implements Serializable {
* 重量
*/
private BigDecimal weight;
/**
* 展示汇率
*/
private BigDecimal inExchangeRate;
/**
* 产品订单明细列表
*/

View File

@ -1,21 +1,7 @@
package com.hzs.sale.order.vo;/**
* @Description:
* @Author: yuhui
* @Time: 2024/4/25 14:06
* @Classname: WaresPreSaleVo
* @PackageName: com.hzs.sale.order.vo
*/
package com.hzs.sale.order.vo;
import lombok.Data;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.sale.order.vo
*@Author: yh
*@CreateTime: 2024-04-25 14:06
*@Description: TODO
*@Version: 1.0
*/
@Data
public class WaresPreSaleVo {
@ -31,7 +17,7 @@ public class WaresPreSaleVo {
/**
* 商品名称
*/
private String waresName ;
private String waresName;
/**
* 预售状态

View File

@ -554,7 +554,7 @@ public class BdProductController extends BaseController {
}
// 发货类型翻译
productVo.setShippingChannelVal(transactionMap.get(EShippingChannel.getEnumByValue(productVo.getShippingChannel()).getKey()));
productVo.setShippingChannelVal(EShippingChannel.getLabelByValue(productVo.getShippingChannel()));
// 产品属性翻译
if (productVo.getProductAttr() != null) {
productVo.setProductAttrVal(EProductAttrType.getEnumByValue(productVo.getProductAttr()).getLabel());

View File

@ -16,6 +16,7 @@ import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.sale.classify.BdSpecs;
import com.hzs.common.domain.sale.ext.BdWaresDetailExt;
import com.hzs.common.domain.sale.ext.BdWaresExt;
import com.hzs.common.domain.sale.ext.BdWaresSpecsRelationExt;
import com.hzs.common.domain.sale.ext.BdWaresSpecsSkuExt;
import com.hzs.common.domain.sale.product.BdAreaClassify;
@ -55,6 +56,8 @@ public class BdWaresController extends BaseController {
@DubboReference
IRangeServiceApi iRangeServiceApi;
@Autowired
private IBdWaresService iBdWaresService;
@Autowired
private IBdWaresAuthorizeService iBdWaresAuthorizeService;
@Autowired
@ -72,8 +75,6 @@ public class BdWaresController extends BaseController {
@Autowired
private IBdWaresSpecsPackService iBdWaresSpecsPackService;
@Autowired
private IBdWaresService iBdWaresService;
@Autowired
private IBdWaresLabelService iBdWaresLabelService;
@Autowired
private IBdWaresExtendService iBdWaresExtendService;
@ -140,9 +141,9 @@ public class BdWaresController extends BaseController {
// 所属专区
waresVo.setSpecialAreaVal(ESpecialArea.getESpecialArea(waresVo.getSpecialArea()));
// 供应方式
waresVo.setOperateScopeVal(ESupplyWay.getEnumLabelByValue(waresVo.getOperateScope()));
waresVo.setOperateScopeVal(ESupplyWay.getLabelByVal(waresVo.getOperateScope()));
// 预售状态
waresVo.setPreSaleStatusVal(EPresaleStatus.getEnumLabelByValue(waresVo.getPreSaleStatus()));
waresVo.setPreSaleStatusVal(EPresaleStatus.getLabelByValue(waresVo.getPreSaleStatus()));
WaresAuthorityVo waresAuthorityVo = iBdWaresService.getWaresAuthorityFirst(waresVo.getPkWares());
if (waresAuthorityVo != null) {
@ -959,4 +960,29 @@ public class BdWaresController extends BaseController {
return AjaxResult.success();
}
/**
* 非在售商品列表
*
* @param param
* @return
*/
@GetMapping("/list-no-sale")
public TableDataInfo listNoSale(WaresNoSaleParam param) {
List<WaresNoSaleVO> resultList = new ArrayList<>();
List<BdWaresExt> list = iBdWaresService.listWaresNoSale(param);
if (CollectionUtil.isNotEmpty(list)) {
for (BdWaresExt bdWaresExt : list) {
WaresNoSaleVO vo = BeanUtil.copyProperties(bdWaresExt, WaresNoSaleVO.class);
vo.setSpecialAreaVal(ESpecialArea.getLabelByValue(vo.getSpecialArea()));
vo.setPreSaleStatusVal(EPresaleStatus.getLabelByValue(vo.getPreSaleStatus()));
resultList.add(vo);
}
}
TableDataInfo tableDataInfo = getDataTable(list);
tableDataInfo.setRows(resultList);
return tableDataInfo;
}
}

View File

@ -3,18 +3,13 @@ package com.hzs.sale.wares.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hzs.common.domain.sale.wares.BdWaresExtend;
import com.hzs.sale.order.param.WaresNumberParam;
import com.hzs.sale.order.vo.WaresPreSaleVo;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.Date;
import java.util.List;
/**
* 商品发布扩展表 Mapper 接口
*
* @author hzs
* @since 2022-09-09
*/
public interface BdWaresExtendMapper extends BaseMapper<BdWaresExtend> {
@ -34,13 +29,4 @@ public interface BdWaresExtendMapper extends BaseMapper<BdWaresExtend> {
*/
void updatePutOnTimeAndPutOffTimeByWaresId(@Param("waresId") Integer waresId, @Param("putOnTime") Date putOnTime, @Param("putOffTime") Date putOffTime);
/**
* 根据商品编号查询 每个商品所剩余的预售数量
*
* @param waresCodeList
* @param specialArea 专区
* @return
*/
List<WaresPreSaleVo> selectByWaresCodeList(@Param("waresCodeList") Collection<String> waresCodeList, @Param("specialArea") Integer specialArea);
}

View File

@ -6,6 +6,7 @@ import com.hzs.common.domain.sale.wares.BdWares;
import com.hzs.common.domain.sale.wares.BdWaresDetail;
import com.hzs.common.domain.system.config.BdAgreement;
import com.hzs.retail.wares.param.RetailWaresParam;
import com.hzs.sale.wares.param.WaresNoSaleParam;
import com.hzs.sale.wares.param.WaresParams;
import com.hzs.sale.wares.vo.WaresAuthorityVo;
import com.hzs.sale.wares.vo.WaresVo;
@ -113,14 +114,6 @@ public interface BdWaresMapper extends BaseMapper<BdWares> {
List<BdWaresExt> queryRecommendWaresByCondition(@Param("specialArea") Integer specialArea, @Param("pkAreaClassify") Integer pkAreaClassify,
@Param("waresCode") String waresCode, @Param("waresName") String waresName, @Param("pkCountry") Integer pkCountry);
/**
* 扣减预售数量库存
*
* @param waresCode
* @param quantity
*/
void updatePreSaleQuantityByWaresCode(@Param("waresCode") String waresCode, @Param("quantity") Integer quantity);
/**
* 查询商品可见类型
*
@ -157,4 +150,12 @@ public interface BdWaresMapper extends BaseMapper<BdWares> {
*/
List<String> listWaresCodeByVertex(@Param("pkVertex") Long pkVertex);
/**
* 查询非在售商品
*
* @param param
* @return
*/
List<BdWaresExt> listWaresNoSale(@Param("param") WaresNoSaleParam param);
}

View File

@ -1,40 +0,0 @@
package com.hzs.sale.wares.param;/**
* @Description:
* @Author: yuhui
* @Time: 2023/5/22 14:22
* @Classname: ConfirmOrderWaresInfoParams
* @PackageName: com.hzs.sale.wares.param
*/
import lombok.Data;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.sale.wares.param
*@Author: yh
*@CreateTime: 2023-05-22 14:22
*@Description: TODO
*@Version: 1.0
*/
@Data
public class ConfirmOrderWaresInfoList {
/**
* 商品外键
*/
private Long pkTWares;
/**
* 商品sku外键
*/
private Long pkTWaresSku;
/**
* 商品数量
*/
private Integer quantity;
/**
* 渠道
*/
private Integer source;
}

View File

@ -1,26 +0,0 @@
package com.hzs.sale.wares.param;/**
* @Description:
* @Author: yuhui
* @Time: 2023/5/23 15:21
* @Classname: ConfirmOrderWaresInfoParams
* @PackageName: com.hzs.sale.wares.param
*/
import lombok.Data;
import java.util.List;
/**
*@BelongsProject: hzs_cloud
*@BelongsPackage: com.hzs.sale.wares.param
*@Author: yh
*@CreateTime: 2023-05-23 15:21
*@Description: TODO
*@Version: 1.0
*/
@Data
public class ConfirmOrderWaresInfoParams {
private List<ConfirmOrderWaresInfoList> confirmOrderWaresInfoParamsList;
}

View File

@ -0,0 +1,24 @@
package com.hzs.sale.wares.param;
import lombok.Data;
/**
* 非在售商品查询
*/
@Data
public class WaresNoSaleParam {
/**
* 商品编号
*/
private String waresCode;
/**
* 商品名称
*/
private String waresName;
/**
* 商品状态
*/
private Integer preSaleStatus;
}

View File

@ -3,17 +3,12 @@ package com.hzs.sale.wares.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.sale.wares.BdWaresExtend;
import com.hzs.sale.order.param.WaresNumberParam;
import com.hzs.sale.order.vo.WaresPreSaleVo;
import java.util.Collection;
import java.util.Date;
import java.util.List;
/**
* 商品发布扩展表 服务类
*
* @author hzs
* @since 2022-09-09
*/
public interface IBdWaresExtendService extends IService<BdWaresExtend> {
@ -33,13 +28,4 @@ public interface IBdWaresExtendService extends IService<BdWaresExtend> {
*/
void updatePutOnTimeAndPutOffTimeByWaresId(Integer waresId, Date putOnTime, Date putOffTime);
/**
* 根据商品编号查询 每个商品所剩余的预售数量
*
* @param waresCodeList
* @param specialArea 专区
* @return
*/
List<WaresPreSaleVo> selectByWaresCodeList(Collection<String> waresCodeList, Integer specialArea);
}

View File

@ -9,6 +9,7 @@ import com.hzs.common.domain.system.config.BdAgreement;
import com.hzs.common.domain.system.config.ext.BdRangeExt;
import com.hzs.retail.wares.param.RetailWaresParam;
import com.hzs.sale.wares.param.ComputeWaresPrice;
import com.hzs.sale.wares.param.WaresNoSaleParam;
import com.hzs.sale.wares.param.WaresParams;
import com.hzs.sale.wares.vo.WaresAuthorityVo;
import com.hzs.sale.wares.vo.WaresVo;
@ -171,14 +172,6 @@ public interface IBdWaresService extends IService<BdWares> {
*/
Map<Integer, List<BdWaresAuthority>> getWaresAuthority(List<Integer> pkWaresList);
/**
* 扣减预售数量库存
*
* @param waresCode
* @param quantity
*/
void updatePreSaleQuantityByWaresCode(String waresCode, Integer quantity);
/**
* 查询商品可见类型
*
@ -229,4 +222,12 @@ public interface IBdWaresService extends IService<BdWares> {
*/
List<String> listWaresCodeByVertex(Long pkVertex);
/**
* 查询非在售商品
*
* @param param
* @return
*/
List<BdWaresExt> listWaresNoSale(WaresNoSaleParam param);
}

View File

@ -4,29 +4,19 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.domain.sale.wares.BdWaresExtend;
import com.hzs.sale.order.param.WaresNumberParam;
import com.hzs.sale.order.vo.WaresPreSaleVo;
import com.hzs.sale.wares.mapper.BdWaresExtendMapper;
import com.hzs.sale.wares.service.IBdWaresExtendService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Date;
import java.util.List;
/**
* 商品发布扩展表 服务实现类
*
* @author hzs
* @since 2022-09-09
*/
@Service
public class BdWaresExtendServiceImpl extends ServiceImpl<BdWaresExtendMapper, BdWaresExtend> implements IBdWaresExtendService {
/**
* 修改销量
*
* @param waresNumberParamList
*/
@Override
public void updateWaresSalesAccrual(List<WaresNumberParam> waresNumberParamList) {
if (CollectionUtil.isNotEmpty(waresNumberParamList)) {
@ -34,27 +24,9 @@ public class BdWaresExtendServiceImpl extends ServiceImpl<BdWaresExtendMapper, B
}
}
/**
* 设置上下架时间
*
* @param waresId
* @param putOnTime
* @param putOffTime
*/
@Override
public void updatePutOnTimeAndPutOffTimeByWaresId(Integer waresId, Date putOnTime, Date putOffTime) {
baseMapper.updatePutOnTimeAndPutOffTimeByWaresId(waresId, putOnTime, putOffTime);
}
/**
* 根据商品编号查询 每个商品所剩余的预售数量
*
* @param waresCodeList
* @param specialArea
* @return
*/
@Override
public List<WaresPreSaleVo> selectByWaresCodeList(Collection<String> waresCodeList, Integer specialArea) {
return baseMapper.selectByWaresCodeList(waresCodeList, specialArea);
}
}

View File

@ -1138,11 +1138,6 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
return map;
}
@Override
public void updatePreSaleQuantityByWaresCode(String waresCode, Integer quantity) {
baseMapper.updatePreSaleQuantityByWaresCode(waresCode, quantity);
}
@Override
public WaresAuthorityVo getWaresAuthorityFirst(Integer pkWares) {
return baseMapper.getWaresAuthorityFirst(pkWares);
@ -1175,4 +1170,10 @@ public class BdWaresServiceImpl extends ServiceImpl<BdWaresMapper, BdWares> impl
public List<String> listWaresCodeByVertex(Long pkVertex) {
return baseMapper.listWaresCodeByVertex(pkVertex);
}
@Override
public List<BdWaresExt> listWaresNoSale(WaresNoSaleParam param) {
return baseMapper.listWaresNoSale(param);
}
}

View File

@ -0,0 +1,49 @@
package com.hzs.sale.wares.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 非在售商品查询返回
*/
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class WaresNoSaleVO implements Serializable {
/**
* 商品ID
*/
private Integer pkId;
/**
* 商品图
*/
private String cover1;
/**
* 商品编号
*/
private String waresCode;
/**
* 商品名称
*/
private String waresName;
/**
* 商品专区
*/
private Integer specialArea;
private String specialAreaVal;
/**
* 商品状态
*/
private Integer preSaleStatus;
private String preSaleStatusVal;
}

Some files were not shown because too many files have changed in this diff Show More