## 会员端发送短信恢复;
This commit is contained in:
parent
198e9333fa
commit
46919717af
|
@ -6,18 +6,9 @@ import com.hzs.third.sms.dto.SmsServiceDTO;
|
|||
|
||||
/**
|
||||
* 短信服务接口
|
||||
* @author hzs
|
||||
*/
|
||||
public interface ISmsServiceApi {
|
||||
|
||||
/**
|
||||
* 发送
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
R<String> send(SmsServiceDTO param);
|
||||
|
||||
/**
|
||||
* 阿里发送
|
||||
*
|
||||
|
|
|
@ -19,7 +19,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.impl.ApiSmsServiceImpl;
|
||||
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;
|
||||
|
@ -32,18 +32,15 @@ import java.time.format.DateTimeFormatter;
|
|||
|
||||
/**
|
||||
* 实名认证 前端控制器
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-04-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/authentication")
|
||||
public class ApiCuMemberAuthenticationController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ApiSmsServiceImpl apiSmsService;
|
||||
private IApiAliSmsService iApiAliSmsService;
|
||||
@Autowired
|
||||
private ICuMemberAuthenticationService authenticationService;
|
||||
private ICuMemberAuthenticationService iCuMemberAuthenticationService;
|
||||
@Autowired
|
||||
private ICuMemberBaseService iCuMemberBaseService;
|
||||
@Autowired
|
||||
|
@ -52,7 +49,6 @@ public class ApiCuMemberAuthenticationController extends BaseController {
|
|||
@DubboReference
|
||||
IdCardServiceApi idCardServiceApi;
|
||||
|
||||
|
||||
/**
|
||||
* 调用身份证OCR接口
|
||||
*
|
||||
|
@ -119,16 +115,15 @@ public class ApiCuMemberAuthenticationController extends BaseController {
|
|||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
|
||||
//查询是否已实名
|
||||
CuMemberAuthenticationVO queryAuthenticationVO = authenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
|
||||
CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
|
||||
if (null != queryAuthenticationVO) {
|
||||
return AjaxResult.error(FinanceMsgConstants.MEMBER_REAL_NAME);
|
||||
}
|
||||
|
||||
// TODO new 先不需要短信校验
|
||||
// String verificationCode = authenticationVO.getVerificationCode();
|
||||
// if (StringUtils.isEmpty(verificationCode)) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY));
|
||||
// }
|
||||
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)) {
|
||||
|
@ -161,16 +156,14 @@ public class ApiCuMemberAuthenticationController extends BaseController {
|
|||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.ID_BACK_CANNOT_EMPTY));
|
||||
}
|
||||
|
||||
// TODO new 先不需要短信校验
|
||||
// String key = ESmsTemplate.VERIFICATION.getCache() + pkMember;
|
||||
// String message = apiSmsService.checkSms(key, verificationCode);
|
||||
// if (null != message) {
|
||||
// return AjaxResult.error(message);
|
||||
// }
|
||||
String message = iApiAliSmsService.checkCode(null, verificationCode, null, pkMember);
|
||||
if (null != message) {
|
||||
return AjaxResult.error(message);
|
||||
}
|
||||
authenticationVO.setPkCountry(pkCountry);
|
||||
authenticationVO.setPkMember(pkMember);
|
||||
|
||||
return toAjax(authenticationService.saveAuthentication(authenticationVO));
|
||||
return toAjax(iCuMemberAuthenticationService.saveAuthentication(authenticationVO));
|
||||
}
|
||||
|
||||
|
||||
|
@ -193,7 +186,7 @@ public class ApiCuMemberAuthenticationController extends BaseController {
|
|||
//配置后才进行验证
|
||||
if (null != bdTradeConfig) {
|
||||
//查询是否已实名认证
|
||||
CuMemberAuthenticationVO authenticationVO = authenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
|
||||
CuMemberAuthenticationVO authenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
|
||||
flag = null == authenticationVO ? EYesNo.NO.getValue() : EYesNo.YES.getValue();
|
||||
}
|
||||
}
|
||||
|
@ -210,7 +203,7 @@ public class ApiCuMemberAuthenticationController extends BaseController {
|
|||
public AjaxResult showDetail() {
|
||||
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());
|
||||
return AjaxResult.success(authenticationVO);
|
||||
}
|
||||
|
||||
|
@ -263,11 +256,11 @@ public class ApiCuMemberAuthenticationController extends BaseController {
|
|||
Long pkMember = SecurityUtils.getUserId();
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
//查询是否已实名
|
||||
CuMemberAuthenticationVO queryAuthenticationVO = authenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
|
||||
CuMemberAuthenticationVO queryAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(CuMemberAuthenticationVO.builder().pkMember(pkMember).pkCountry(pkCountry).build());
|
||||
if (null == queryAuthenticationVO) {
|
||||
return AjaxResult.error(FinanceMsgConstants.MEMBER_NOT_REAL_NAME);
|
||||
}
|
||||
return toAjax(authenticationService.memberRenewalContract(pkMember));
|
||||
return toAjax(iCuMemberAuthenticationService.memberRenewalContract(pkMember));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ import com.hzs.common.core.constant.CountryConstants;
|
|||
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.ESmsTemplate;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.core.web.controller.BaseController;
|
||||
|
@ -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.impl.ApiSmsServiceImpl;
|
||||
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;
|
||||
|
@ -38,16 +37,16 @@ import java.util.List;
|
|||
public class ApiCuMemberBankController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberBankService cuMemberBankService;
|
||||
private ICuMemberBankService iCuMemberBankService;
|
||||
@Autowired
|
||||
private ApiSmsServiceImpl apiSmsService;
|
||||
private IApiAliSmsService iApiAliSmsService;
|
||||
@Autowired
|
||||
private ICuMemberBaseService iCuMemberBaseService;
|
||||
@Autowired
|
||||
private ICuMemberWithdrawService cuMemberWithdrawService;
|
||||
private ICuMemberWithdrawService iCuMemberWithdrawService;
|
||||
|
||||
@DubboReference
|
||||
IBankCardServiceApi bankCardServiceApi;
|
||||
IBankCardServiceApi iBankCardServiceApi;
|
||||
|
||||
/**
|
||||
* 是否绑定银行卡
|
||||
|
@ -58,7 +57,7 @@ public class ApiCuMemberBankController extends BaseController {
|
|||
public AjaxResult isBindBank() {
|
||||
Long pkMember = SecurityUtils.getUserId();
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
CuMemberBankVO cuMemberBank = cuMemberBankService.isBindBank(pkMember, pkCountry);
|
||||
CuMemberBankVO cuMemberBank = iCuMemberBankService.isBindBank(pkMember, pkCountry);
|
||||
String flag = null == cuMemberBank.getDefaultCard() ? EYesNo.NO.getValue() : EYesNo.YES.getValue();
|
||||
return AjaxResult.success().put("flag", flag);
|
||||
}
|
||||
|
@ -74,15 +73,15 @@ public class ApiCuMemberBankController extends BaseController {
|
|||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
Long pkMember = SecurityUtils.getUserId();
|
||||
//查询默认银行卡
|
||||
CuMemberBankVO cuMemberBankVO = cuMemberBankService.selectCuMemberBankById(pkId);
|
||||
CuMemberBankVO cuMemberBankVO = iCuMemberBankService.selectCuMemberBankById(pkId);
|
||||
//解绑默认银行卡需校验是否有进行的提现
|
||||
if (null != cuMemberBankVO) {
|
||||
List<Long> pkIds = cuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
|
||||
List<Long> pkIds = iCuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
|
||||
if (CollUtil.isNotEmpty(pkIds)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_APPROVAL));
|
||||
}
|
||||
}
|
||||
return AjaxResult.success(cuMemberBankService.unbindBank(pkId, pkMember));
|
||||
return AjaxResult.success(iCuMemberBankService.unbindBank(pkId, pkMember));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -110,7 +109,7 @@ public class ApiCuMemberBankController extends BaseController {
|
|||
BankCardParam bankCard = BankCardParam.builder().name(memberBankParam.getAccountName())
|
||||
.idCard(memberBankParam.getIdCard()).mobile(memberBankParam.getPhone())
|
||||
.bankCard(StringUtils.deleteWhitespace(memberBankParam.getCardNumber())).build();
|
||||
R<?> result = bankCardServiceApi.verifyBankCard(bankCard);
|
||||
R<?> result = iBankCardServiceApi.verifyBankCard(bankCard);
|
||||
return result.isSuccess() ? AjaxResult.success() : AjaxResult.error(result.getMsg());
|
||||
}
|
||||
|
||||
|
@ -127,45 +126,44 @@ public class ApiCuMemberBankController extends BaseController {
|
|||
Long pkMember = SecurityUtils.getUserId();
|
||||
//是否配置提现白名单
|
||||
String configWhite = getConfigWhite(pkCountry, pkMember);
|
||||
//海外不校验验证码、四要素 国内配置了提现白名单不校验
|
||||
// 海外不校验验证码、四要素 国内配置了提现白名单不校验
|
||||
if (pkCountry.equals(CountryConstants.CHINA_COUNTRY) && configWhite.equals(EYesNo.NO.getValue())) {
|
||||
// TODO new 先不需要校验短信
|
||||
// String verificationCode = cuMemberBankParam.getVerificationCode();
|
||||
// if (StringUtils.isEmpty(verificationCode)) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY));
|
||||
// }
|
||||
String verificationCode = cuMemberBankParam.getVerificationCode();
|
||||
if (StringUtils.isEmpty(verificationCode)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY));
|
||||
}
|
||||
//支行名称
|
||||
String subBankName = cuMemberBankParam.getSubBankName();
|
||||
if (StringUtils.isEmpty(subBankName)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.OPENING_BRANCH_CANNOT_EMPTY));
|
||||
}
|
||||
// TODO new 先不需要校验短信
|
||||
// String Key = ESmsTemplate.VERIFICATION.getCache() + pkMember;
|
||||
// String message = apiSmsService.checkSms(Key, verificationCode);
|
||||
// if (null != message) {
|
||||
// return AjaxResult.error(message);
|
||||
// }
|
||||
|
||||
// 校验短信验证码
|
||||
String message = iApiAliSmsService.checkCode(null, verificationCode, null, pkMember);
|
||||
if (null != message) {
|
||||
return AjaxResult.error(message);
|
||||
}
|
||||
//银行卡号去空格
|
||||
String cardNumber = cuMemberBankParam.getCardNumber();
|
||||
cuMemberBankParam.setCardNumber(StringUtils.deleteWhitespace(cardNumber));
|
||||
}
|
||||
cuMemberBankParam.setPkCountry(pkCountry);
|
||||
cuMemberBankParam.setPkMember(pkMember);
|
||||
return toAjax(cuMemberBankService.saveMemberBank(cuMemberBankParam));
|
||||
return toAjax(iCuMemberBankService.saveMemberBank(cuMemberBankParam));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
public AjaxResult getBankCardList() {
|
||||
Long pkMember = SecurityUtils.getUserId();
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
return AjaxResult.success(cuMemberBankService.selectBankCardByPkMember(pkMember, pkCountry));
|
||||
return AjaxResult.success(iCuMemberBankService.selectBankCardByPkMember(pkMember, pkCountry));
|
||||
}
|
||||
|
||||
@GetMapping("/default-bank")
|
||||
public AjaxResult getDefaultBankCard() {
|
||||
Long pkMember = SecurityUtils.getUserId();
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
return AjaxResult.success(cuMemberBankService.isBindBank(pkMember, pkCountry));
|
||||
return AjaxResult.success(iCuMemberBankService.isBindBank(pkMember, pkCountry));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -179,15 +177,15 @@ public class ApiCuMemberBankController extends BaseController {
|
|||
Long pkMember = SecurityUtils.getUserId();
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
//查询银行卡
|
||||
CuMemberBank cuMemberBank = cuMemberBankService.getById(pkId);
|
||||
CuMemberBank cuMemberBank = iCuMemberBankService.getById(pkId);
|
||||
//解绑默认银行卡需校验是否有进行的提现
|
||||
if (null != cuMemberBank) {
|
||||
List<Long> pkIds = cuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
|
||||
List<Long> pkIds = iCuMemberWithdrawService.selectWithdrawMember(pkCountry, pkMember);
|
||||
if (CollUtil.isNotEmpty(pkIds)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_APPROVAL));
|
||||
}
|
||||
}
|
||||
return toAjax(cuMemberBankService.updateDefault(pkId, pkMember, pkCountry));
|
||||
return toAjax(iCuMemberBankService.updateDefault(pkId, pkMember, pkCountry));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -13,12 +13,7 @@ import org.apache.ibatis.annotations.Param;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 会员交易明细 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2022-09-06
|
||||
*/
|
||||
public interface ICuMemberTradeService extends IService<CuMemberTrade> {
|
||||
|
||||
|
@ -99,7 +94,8 @@ public interface ICuMemberTradeService extends IService<CuMemberTrade> {
|
|||
* @param: [mbbList]
|
||||
* @return: java.util.List<com.hzs.member.account.dto.MemberBalanceDTO>
|
||||
**/
|
||||
List<MemberBusinessBalanceDTO> selectBusinessBalanceNotEnoughMember(List<MemberBusinessBalanceDTO> mbbList,Integer pkCountry);
|
||||
List<MemberBusinessBalanceDTO> selectBusinessBalanceNotEnoughMember(List<MemberBusinessBalanceDTO> mbbList, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* @description: 特殊业务业务办理专用查询会员余额
|
||||
* @author: zhang jing
|
||||
|
@ -107,9 +103,7 @@ public interface ICuMemberTradeService extends IService<CuMemberTrade> {
|
|||
* @param: [mbbList, pkCountry]
|
||||
* @return: java.util.List<com.hzs.member.account.dto.MemberBusinessBalanceDTO>
|
||||
**/
|
||||
List<MemberBusinessBalanceDTO> selectSpecialBusinessBalanceNotEnoughMember(List<MemberBusinessBalanceDTO> mbbList,Integer pkCountry);
|
||||
|
||||
|
||||
List<MemberBusinessBalanceDTO> selectSpecialBusinessBalanceNotEnoughMember(List<MemberBusinessBalanceDTO> mbbList, Integer pkCountry);
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,14 +3,11 @@ package com.hzs.member.base.controller.api;
|
|||
import cn.hutool.core.codec.Base64Decoder;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.hzs.common.core.annotation.RepeatSubmit;
|
||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
import com.hzs.common.core.config.BdConfig;
|
||||
import com.hzs.common.core.constant.CountryConstants;
|
||||
import com.hzs.common.core.constant.EnumsPrefixConstants;
|
||||
import com.hzs.common.core.constant.SysConstants;
|
||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
||||
import com.hzs.common.core.constant.msg.FinanceMsgConstants;
|
||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||
import com.hzs.common.core.domain.FileResult;
|
||||
import com.hzs.common.core.domain.R;
|
||||
|
@ -37,10 +34,9 @@ import com.hzs.common.core.utils.UploadFileUtil;
|
|||
import com.hzs.member.base.vo.*;
|
||||
import com.hzs.member.detail.service.ICuMemberChangeLogService;
|
||||
import com.hzs.member.param.MemberParam;
|
||||
import com.hzs.member.sms.service.IApiSmsService;
|
||||
import com.hzs.member.sms.service.IApiAliSmsService;
|
||||
import com.hzs.system.base.ICountryServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.ISystemConfigServiceApi;
|
||||
import com.hzs.system.base.dto.CountryDTO;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.system.config.IAgreementRenewalWhiteServiceApi;
|
||||
|
@ -57,11 +53,7 @@ import java.math.BigDecimal;
|
|||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description: 会员控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/1/10 15:18
|
||||
* @Classname: ApiMemberController
|
||||
* @PackageName: com.hzs.member.base.controller.api
|
||||
* 会员控制器
|
||||
*/
|
||||
@Slf4j
|
||||
@RequestMapping("/api/member")
|
||||
|
@ -75,9 +67,9 @@ public class ApiMemberController extends BaseController {
|
|||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private ICuMemberChangeLogService memberChangeLogService;
|
||||
private ICuMemberChangeLogService iCuMemberChangeLogService;
|
||||
@Autowired
|
||||
private IApiSmsService iApiSmsService;
|
||||
private IApiAliSmsService iApiAliSmsService;
|
||||
|
||||
@DubboReference
|
||||
IGradeServiceApi iGradeServiceApi;
|
||||
|
@ -88,8 +80,6 @@ public class ApiMemberController extends BaseController {
|
|||
@DubboReference
|
||||
ICurrencyServiceApi iCurrencyServiceApi;
|
||||
@DubboReference
|
||||
ISystemConfigServiceApi iSystemConfigServiceApi;
|
||||
@DubboReference
|
||||
IAgreementRenewalWhiteServiceApi iAgreementRenewalWhiteServiceApi;
|
||||
|
||||
/**
|
||||
|
@ -269,52 +259,52 @@ public class ApiMemberController extends BaseController {
|
|||
return AjaxResult.error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新邮箱
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@PutMapping("/update-email")
|
||||
public AjaxResult updateEmail(@RequestBody MemberDataParam param) {
|
||||
if (StringUtils.isEmpty(param.getEmail())) {
|
||||
// 缺少参数
|
||||
return AjaxResult.error("缺少参数");
|
||||
}
|
||||
if (StringUtils.isEmpty(param.getCode())) {
|
||||
// 验证码不能为空
|
||||
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY));
|
||||
}
|
||||
|
||||
Long memberId = SecurityUtils.getUserId();
|
||||
CuMember member = iCuMemberService.getMemberById(memberId);
|
||||
if (null == member) {
|
||||
// 会员不存在
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_NOT_EXITS));
|
||||
}
|
||||
|
||||
// 短信校验码校验
|
||||
String checkStr = iApiSmsService.checkSms(ESmsTemplate.VERIFICATION.getCache() + memberId, param.getCode());
|
||||
if (null != checkStr) {
|
||||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
|
||||
// 会员修改信息
|
||||
CuMember cuMember = new CuMember();
|
||||
cuMember.setPkId(memberId);
|
||||
cuMember.setEmail(param.getEmail());
|
||||
cuMember.setPkModified(memberId);
|
||||
cuMember.setModifiedTime(new Date());
|
||||
// 会员修改记录信息
|
||||
CuMemberChangeLog cuMemberChangeLog = CuMemberChangeLog.builder()
|
||||
.pkMember(memberId)
|
||||
.changeType(EMemberChangeType.EMAIL.getValue())
|
||||
.changeFront(member.getEmail())
|
||||
.changeAfter(param.getEmail())
|
||||
.build();
|
||||
iMemberInfoService.updateMemberInfo(cuMember, Collections.singletonList(cuMemberChangeLog));
|
||||
return AjaxResult.success();
|
||||
}
|
||||
// /**
|
||||
// * 更新邮箱
|
||||
// *
|
||||
// * @param param
|
||||
// * @return
|
||||
// */
|
||||
// @PutMapping("/update-email")
|
||||
// public AjaxResult updateEmail(@RequestBody MemberDataParam param) {
|
||||
// if (StringUtils.isEmpty(param.getEmail())) {
|
||||
// // 缺少参数
|
||||
// return AjaxResult.error("缺少参数");
|
||||
// }
|
||||
// if (StringUtils.isEmpty(param.getCode())) {
|
||||
// // 验证码不能为空
|
||||
// return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.VERIFICATION_CODE_CANNOT_EMPTY));
|
||||
// }
|
||||
//
|
||||
// Long memberId = SecurityUtils.getUserId();
|
||||
// CuMember member = iCuMemberService.getMemberById(memberId);
|
||||
// if (null == member) {
|
||||
// // 会员不存在
|
||||
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_NOT_EXITS));
|
||||
// }
|
||||
//
|
||||
// // 短信校验码校验
|
||||
// String checkStr = iApiSmsService.checkSms(ESmsTemplate.VERIFICATION.getCache() + memberId, param.getCode());
|
||||
// if (null != checkStr) {
|
||||
// return AjaxResult.error(checkStr);
|
||||
// }
|
||||
//
|
||||
// // 会员修改信息
|
||||
// CuMember cuMember = new CuMember();
|
||||
// cuMember.setPkId(memberId);
|
||||
// cuMember.setEmail(param.getEmail());
|
||||
// cuMember.setPkModified(memberId);
|
||||
// cuMember.setModifiedTime(new Date());
|
||||
// // 会员修改记录信息
|
||||
// CuMemberChangeLog cuMemberChangeLog = CuMemberChangeLog.builder()
|
||||
// .pkMember(memberId)
|
||||
// .changeType(EMemberChangeType.EMAIL.getValue())
|
||||
// .changeFront(member.getEmail())
|
||||
// .changeAfter(param.getEmail())
|
||||
// .build();
|
||||
// iMemberInfoService.updateMemberInfo(cuMember, Collections.singletonList(cuMemberChangeLog));
|
||||
// return AjaxResult.success();
|
||||
// }
|
||||
|
||||
/**
|
||||
* 忘记密码更新
|
||||
|
@ -336,7 +326,7 @@ public class ApiMemberController extends BaseController {
|
|||
Long memberId = cuMemberExt.getPkId();
|
||||
|
||||
// 短信校验码校验
|
||||
String checkStr = iApiSmsService.checkSms(ESmsTemplate.FORGET_PASSWORD.getCache() + memberId, param.getCode());
|
||||
String checkStr = iApiAliSmsService.checkRecoverCode(cuMemberExt.getPhone(), param.getCode(), cuMemberExt.getPkId());
|
||||
if (null != checkStr) {
|
||||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
|
@ -380,7 +370,7 @@ public class ApiMemberController extends BaseController {
|
|||
Long memberId = cuMemberExt.getPkId();
|
||||
|
||||
// 短信校验码校验
|
||||
String checkStr = iApiSmsService.checkSms(ESmsTemplate.VERIFICATION.getCache() + memberId, param.getCode());
|
||||
String checkStr = iApiAliSmsService.checkPayPasswordCode(cuMemberExt.getPhone(), param.getCode(), memberId);
|
||||
if (null != checkStr) {
|
||||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
|
@ -401,92 +391,91 @@ public class ApiMemberController extends BaseController {
|
|||
.build();
|
||||
iMemberInfoService.updateMemberInfo(cuMember, Collections.singletonList(cuMemberChangeLog));
|
||||
|
||||
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param memberParam 订单参数
|
||||
* @Description: 确认注册订单,生成待支付订单,只有注册订单有待支付订单
|
||||
* @return: AjaxResult
|
||||
* @Author: sui q
|
||||
* @Date: 2022/8/27 16:47
|
||||
*/
|
||||
@RepeatSubmit
|
||||
@PostMapping("/reg-share-member")
|
||||
public AjaxResult confirmRegisterOrder(@RequestBody MemberParam memberParam) {
|
||||
if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
|
||||
if (new Date().getTime() >= SysConstants.CLOSE_ZERO_DATE_TEST) {
|
||||
return AjaxResult.error("二维码已停用,请联系相应亲友协助办理注册");
|
||||
}
|
||||
} else {
|
||||
if (new Date().getTime() >= SysConstants.CLOSE_ZERO_DATE_ONLINE) {
|
||||
return AjaxResult.error("二维码已停用,请联系相应亲友协助办理注册");
|
||||
}
|
||||
}
|
||||
|
||||
// 验证必输项
|
||||
if (validateFieldNotNull(memberParam, memberParam.getValidConfirmField())) {
|
||||
return AjaxResult.error(MemberMsgConstants.REQUIRED_NOT_EMPTY);
|
||||
}
|
||||
// 验证CN后是否全部数字
|
||||
String memberCode = memberParam.getMemberCode();
|
||||
AjaxResult memberCodeResult = validateMemberCode(memberCode);
|
||||
if (memberCodeResult != null) {
|
||||
return memberCodeResult;
|
||||
}
|
||||
// 上级编码(推荐人)
|
||||
Long pkParent = Long.parseLong(new String(Base64Decoder.decode(memberParam.getParent())));
|
||||
memberParam.setPkParent(pkParent);
|
||||
// 验证推荐人
|
||||
CuMember cuMember = iCuMemberService.getMember(memberParam.getPkParent());
|
||||
if (cuMember == null) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.PARENT_NOT_EXISTS));
|
||||
}
|
||||
|
||||
// 验证一个手机号可以注册多少次
|
||||
// 验证手机号注册次数
|
||||
List<CuMemberExt> cuMemberExtList = iCuMemberService.getMemberInfoByCondition(CuMember.builder().phone(memberParam.getPhone()).pkSettleGrade(EGrade.START_UP.getValue()).pkSettleCountry(cuMember.getPkSettleCountry()).build());
|
||||
// 系统中存在该手机号走的验证
|
||||
if (cuMemberExtList.size() > 0) {
|
||||
// 手机号注册次数
|
||||
String value = iSystemConfigServiceApi.getBonusSystemConfig(cuMember.getPkSettleCountry(), ESystemConfig.HA_FUN_REGISTER_NUMBER.getKey()).getData();
|
||||
if (cuMemberExtList.size() >= Integer.parseInt(value)) {
|
||||
// 手机注册次数已达系统上限
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.SYSTEM_REGISTER_COUNT));
|
||||
}
|
||||
}
|
||||
memberParam.setMemberCode(SysConstants.HAI_FUN_PREFIX + memberParam.getMemberCode());
|
||||
if (StringUtils.isNotEmpty(memberParam.getMemberCode())) {
|
||||
CuMember existCuMember = iCuMemberService.getMemberByCode(memberParam.getMemberCode());
|
||||
// 验证该编号是否存在会员系统中
|
||||
if (existCuMember != null) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.EMPTY_MEMBER_REPEAT_1));
|
||||
}
|
||||
}
|
||||
|
||||
// 短信校验码校验
|
||||
String checkStr = iApiSmsService.checkSms(ESmsTemplate.VERIFICATION.getCache() + memberParam.getPhone(), memberParam.getCode());
|
||||
if (null != checkStr) {
|
||||
return AjaxResult.error(checkStr);
|
||||
}
|
||||
CuMember newCuMember = iCuMemberService.confirmShareMemberByMemberParam(memberParam);
|
||||
if (newCuMember != null) {
|
||||
MemberShare memberShare = MemberShare.builder().memberCode(newCuMember.getMemberCode())
|
||||
.memberName(newCuMember.getMemberName())
|
||||
.phone(newCuMember.getPhone())
|
||||
.loginPassword(newCuMember.getLoginPassword())
|
||||
.payPassword(newCuMember.getPayPassword())
|
||||
.urlAddress(BdConfig.getPc())
|
||||
.gzh(BdConfig.getGzh())
|
||||
.ios(BdConfig.getIos())
|
||||
.android(BdConfig.getAndroid())
|
||||
.build();
|
||||
return AjaxResult.success(memberShare);
|
||||
} else {
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.TOKEN_REPEAT_SUBMIT));
|
||||
}
|
||||
}
|
||||
// /**
|
||||
// * @param memberParam 订单参数
|
||||
// * @Description: 确认注册订单,生成待支付订单,只有注册订单有待支付订单
|
||||
// * @return: AjaxResult
|
||||
// * @Author: sui q
|
||||
// * @Date: 2022/8/27 16:47
|
||||
// */
|
||||
// @RepeatSubmit
|
||||
// @PostMapping("/reg-share-member")
|
||||
// public AjaxResult confirmRegisterOrder(@RequestBody MemberParam memberParam) {
|
||||
// if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
|
||||
// if (new Date().getTime() >= SysConstants.CLOSE_ZERO_DATE_TEST) {
|
||||
// return AjaxResult.error("二维码已停用,请联系相应亲友协助办理注册");
|
||||
// }
|
||||
// } else {
|
||||
// if (new Date().getTime() >= SysConstants.CLOSE_ZERO_DATE_ONLINE) {
|
||||
// return AjaxResult.error("二维码已停用,请联系相应亲友协助办理注册");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 验证必输项
|
||||
// if (validateFieldNotNull(memberParam, memberParam.getValidConfirmField())) {
|
||||
// return AjaxResult.error(MemberMsgConstants.REQUIRED_NOT_EMPTY);
|
||||
// }
|
||||
// // 验证CN后是否全部数字
|
||||
// String memberCode = memberParam.getMemberCode();
|
||||
// AjaxResult memberCodeResult = validateMemberCode(memberCode);
|
||||
// if (memberCodeResult != null) {
|
||||
// return memberCodeResult;
|
||||
// }
|
||||
// // 上级编码(推荐人)
|
||||
// Long pkParent = Long.parseLong(new String(Base64Decoder.decode(memberParam.getParent())));
|
||||
// memberParam.setPkParent(pkParent);
|
||||
// // 验证推荐人
|
||||
// CuMember cuMember = iCuMemberService.getMember(memberParam.getPkParent());
|
||||
// if (cuMember == null) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.PARENT_NOT_EXISTS));
|
||||
// }
|
||||
//
|
||||
// // 验证一个手机号可以注册多少次
|
||||
// // 验证手机号注册次数
|
||||
// List<CuMemberExt> cuMemberExtList = iCuMemberService.getMemberInfoByCondition(CuMember.builder().phone(memberParam.getPhone()).pkSettleGrade(EGrade.START_UP.getValue()).pkSettleCountry(cuMember.getPkSettleCountry()).build());
|
||||
// // 系统中存在该手机号走的验证
|
||||
// if (cuMemberExtList.size() > 0) {
|
||||
// // 手机号注册次数
|
||||
// String value = iSystemConfigServiceApi.getBonusSystemConfig(cuMember.getPkSettleCountry(), ESystemConfig.HA_FUN_REGISTER_NUMBER.getKey()).getData();
|
||||
// if (cuMemberExtList.size() >= Integer.parseInt(value)) {
|
||||
// // 手机注册次数已达系统上限
|
||||
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.SYSTEM_REGISTER_COUNT));
|
||||
// }
|
||||
// }
|
||||
// memberParam.setMemberCode(SysConstants.HAI_FUN_PREFIX + memberParam.getMemberCode());
|
||||
// if (StringUtils.isNotEmpty(memberParam.getMemberCode())) {
|
||||
// CuMember existCuMember = iCuMemberService.getMemberByCode(memberParam.getMemberCode());
|
||||
// // 验证该编号是否存在会员系统中
|
||||
// if (existCuMember != null) {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.EMPTY_MEMBER_REPEAT_1));
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 短信校验码校验
|
||||
// String checkStr = iApiSmsService.checkSms(ESmsTemplate.VERIFICATION.getCache() + memberParam.getPhone(), memberParam.getCode());
|
||||
// if (null != checkStr) {
|
||||
// return AjaxResult.error(checkStr);
|
||||
// }
|
||||
// CuMember newCuMember = iCuMemberService.confirmShareMemberByMemberParam(memberParam);
|
||||
// if (newCuMember != null) {
|
||||
// MemberShare memberShare = MemberShare.builder().memberCode(newCuMember.getMemberCode())
|
||||
// .memberName(newCuMember.getMemberName())
|
||||
// .phone(newCuMember.getPhone())
|
||||
// .loginPassword(newCuMember.getLoginPassword())
|
||||
// .payPassword(newCuMember.getPayPassword())
|
||||
// .urlAddress(BdConfig.getPc())
|
||||
// .gzh(BdConfig.getGzh())
|
||||
// .ios(BdConfig.getIos())
|
||||
// .android(BdConfig.getAndroid())
|
||||
// .build();
|
||||
// return AjaxResult.success(memberShare);
|
||||
// } else {
|
||||
// return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.TOKEN_REPEAT_SUBMIT));
|
||||
// }
|
||||
// }
|
||||
|
||||
private AjaxResult validateMemberCode(String memberCode) {
|
||||
boolean result = memberCode.matches("[0-9]+");
|
||||
|
@ -616,10 +605,7 @@ public class ApiMemberController extends BaseController {
|
|||
}
|
||||
|
||||
/*
|
||||
* @description: 验证是否连续数字
|
||||
* @author: sui q
|
||||
* @date: 2023/7/4 16:48
|
||||
* @param: null null
|
||||
* 验证是否连续数字
|
||||
**/
|
||||
private Boolean compareConDigits(String memberCode) {
|
||||
String[] codeList = memberCode.split("");
|
||||
|
@ -762,7 +748,7 @@ public class ApiMemberController extends BaseController {
|
|||
LambdaUpdateWrapper<CuMemberChangeLog> qw = new LambdaUpdateWrapper<>();
|
||||
qw.eq(CuMemberChangeLog::getPkMember, memberId);
|
||||
qw.eq(CuMemberChangeLog::getChangeType, EMemberChangeType.LOGIN_PWD.getValue());
|
||||
int count = memberChangeLogService.count(qw);
|
||||
int count = iCuMemberChangeLogService.count(qw);
|
||||
return AjaxResult.success(count);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
package com.hzs.member.self.controller.api;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.hzs.common.core.annotation.RepeatSubmit;
|
||||
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.enums.ESmsTemplate;
|
||||
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.service.MemberTokenService;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.member.account.dto.BusinessCommissionDTO;
|
||||
|
@ -25,12 +22,9 @@ import com.hzs.member.account.vo.CuMemberAuthenticationVO;
|
|||
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.impl.ApiSmsServiceImpl;
|
||||
import com.hzs.member.sms.service.IApiAliSmsService;
|
||||
import com.hzs.system.config.IServiceChargeServiceApi;
|
||||
import com.hzs.system.config.dto.ServiceChargeDTO;
|
||||
import com.hzs.system.sys.IApprovalServiceApi;
|
||||
import com.hzs.system.sys.dto.ApprovalInfoDTO;
|
||||
import com.hzs.system.sys.dto.ApprovalItemInfoDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -38,48 +32,29 @@ import org.springframework.web.bind.annotation.*;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* 变理户籍
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/4/18 10:07
|
||||
* @Classname: ApiDomicileChangeController
|
||||
* @Package_name: com.hzs.member.self.controller.api
|
||||
*/
|
||||
@Slf4j
|
||||
@RequestMapping("/api/change-domicile")
|
||||
@RestController
|
||||
public class ApiDomicileChangeController extends BaseController {
|
||||
@Autowired
|
||||
private ICuMemberAuthenticationService cuMemberAuthenticationService;
|
||||
|
||||
@Autowired
|
||||
private ICuMemberService cuMemberService;
|
||||
|
||||
private ICuMemberAuthenticationService iCuMemberAuthenticationService;
|
||||
@Autowired
|
||||
ApiSmsServiceImpl apiSmsService;
|
||||
|
||||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private ICuMemberTradeService cuMemberTradeService;
|
||||
|
||||
private ICuMemberTradeService iCuMemberTradeService;
|
||||
@Autowired
|
||||
private ICuSelfServiceLogService serviceLogService;
|
||||
|
||||
private ICuSelfServiceLogService iCuSelfServiceLogService;
|
||||
@Autowired
|
||||
private MemberTokenService memberTokenService;
|
||||
private IApiAliSmsService iApiAliSmsService;
|
||||
|
||||
@DubboReference
|
||||
private IServiceChargeServiceApi serviceChargeServiceApi;
|
||||
|
||||
@DubboReference
|
||||
private IApprovalServiceApi iApprovalServiceApi;
|
||||
IServiceChargeServiceApi iServiceChargeServiceApi;
|
||||
|
||||
/**
|
||||
* 查询可申请信息
|
||||
|
@ -89,7 +64,7 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
@GetMapping("/application-info-list")
|
||||
public AjaxResult applicationInformation() {
|
||||
Long pkMember = SecurityUtils.getUserId();
|
||||
CuMemberExt member = cuMemberService.getMemberById(pkMember);
|
||||
CuMemberExt member = iCuMemberService.getMemberById(pkMember);
|
||||
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().memberCode(member.getMemberCode())
|
||||
.memberName(member.getMemberName()).phone(member.getPhone())
|
||||
.changeNum(MagicNumberConstants.CHANGE_NUM).build();
|
||||
|
@ -99,7 +74,7 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
|
||||
@GetMapping("/application-info-detail")
|
||||
public AjaxResult applicationInformationDetail() {
|
||||
return AjaxResult.success(serviceLogService.selectDomicileChangeByPkMember(SecurityUtils.getUserId(), EApprovalBusiness.DOMICILE_CHANGE.getValue(), SecurityUtils.getPkCountry()));
|
||||
return AjaxResult.success(iCuSelfServiceLogService.selectDomicileChangeByPkMember(SecurityUtils.getUserId(), EApprovalBusiness.DOMICILE_CHANGE.getValue(), SecurityUtils.getPkCountry()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -111,11 +86,10 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
public AjaxResult appliedInformation() {
|
||||
DomicileChangeVO domicileChangeVO = DomicileChangeVO.builder().pkMember(SecurityUtils.getUserId())
|
||||
.pkCountry(SecurityUtils.getPkCountry()).editType(EApprovalBusiness.DOMICILE_CHANGE.getValue()).build();
|
||||
List<DomicileChangeVO> domicileChangeVOList = (List<DomicileChangeVO>) serviceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1];
|
||||
List<DomicileChangeVO> domicileChangeVOList = (List<DomicileChangeVO>) iCuSelfServiceLogService.selectSelfServiceByPkMember(domicileChangeVO)[1];
|
||||
return AjaxResult.success(domicileChangeVOList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 自助服务是否显示户籍认证
|
||||
*
|
||||
|
@ -123,11 +97,9 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
*/
|
||||
@GetMapping("/show-index-domicile")
|
||||
public AjaxResult showIndexDomicile() {
|
||||
return AjaxResult.success(serviceLogService.showIndexDomicile(SecurityUtils.getPkCountry(),SecurityUtils.getUserId()));
|
||||
return AjaxResult.success(iCuSelfServiceLogService.showIndexDomicile(SecurityUtils.getPkCountry(), SecurityUtils.getUserId()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 申请户籍变更
|
||||
*
|
||||
|
@ -170,12 +142,11 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
return accountBalance;
|
||||
}
|
||||
//验证码校验
|
||||
String Key = ESmsTemplate.VERIFICATION.getCache() + pkMember;
|
||||
String message = apiSmsService.checkSms(Key, domicileChangeVO.getVerificationCode());
|
||||
String message = iApiAliSmsService.checkCode(null, domicileChangeVO.getVerificationCode(), null, pkMember);
|
||||
if (null != message) {
|
||||
return AjaxResult.error(message);
|
||||
}
|
||||
return toAjax(serviceLogService.saveChangeDomicile(domicileChangeVO));
|
||||
return toAjax(iCuSelfServiceLogService.saveChangeDomicile(domicileChangeVO));
|
||||
}
|
||||
|
||||
|
||||
|
@ -190,10 +161,10 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
String idFront = null;
|
||||
Long pkMember = SecurityUtils.getUserId();
|
||||
Integer pkCountry = SecurityUtils.getPkCountry();
|
||||
CuMemberExt member = cuMemberService.getMemberById(pkMember);
|
||||
CuMemberExt member = iCuMemberService.getMemberById(pkMember);
|
||||
//查询实名认证信息原证件图
|
||||
CuMemberAuthenticationVO authenticationVO = CuMemberAuthenticationVO.builder().pkCountry(pkCountry).pkMember(pkMember).build();
|
||||
CuMemberAuthenticationVO cuMemberAuthenticationVO = cuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(authenticationVO);
|
||||
CuMemberAuthenticationVO cuMemberAuthenticationVO = iCuMemberAuthenticationService.selectCuMemberAuthenticationByPkMember(authenticationVO);
|
||||
if (null != cuMemberAuthenticationVO) {
|
||||
idBack = cuMemberAuthenticationVO.getIdBack();
|
||||
idFront = cuMemberAuthenticationVO.getIdFront();
|
||||
|
@ -217,7 +188,7 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
cuSelfServiceLog.setPkCountry(domicileChangeVO.getPkCountry());
|
||||
cuSelfServiceLog.setEditType(EApprovalBusiness.DOMICILE_CHANGE.getValue());
|
||||
cuSelfServiceLog.setPkMember(domicileChangeVO.getPkMember());
|
||||
Integer check = serviceLogService.checkSelfService(cuSelfServiceLog);
|
||||
Integer check = iCuSelfServiceLogService.checkSelfService(cuSelfServiceLog);
|
||||
if (check > 0) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_UPDATE_CODE_REPEAT));
|
||||
}
|
||||
|
@ -236,7 +207,7 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
serviceChargeDTO.setType(EApprovalBusiness.DOMICILE_CHANGE.getValue());
|
||||
serviceChargeDTO.setPkCountry(pkCountry);
|
||||
serviceChargeDTO.setQuantity(MagicNumberConstants.CHANGE_NUM);
|
||||
return serviceChargeServiceApi.getServiceChargeByType(serviceChargeDTO).getData();
|
||||
return iServiceChargeServiceApi.getServiceChargeByType(serviceChargeDTO).getData();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -249,30 +220,11 @@ public class ApiDomicileChangeController extends BaseController {
|
|||
List<MemberAmountDTO> memberAmountDTOList = new ArrayList<>();
|
||||
memberAmountDTOList.add(MemberAmountDTO.builder().pkMember(domicileChangeVO.getPkMember()).tradeAmount(domicileChangeVO.getAmount()).build());
|
||||
BusinessCommissionDTO businessCommissionDTO = BusinessCommissionDTO.builder().pkAccount(domicileChangeVO.getPkAccount()).memberAmountDTOList(memberAmountDTOList).build();
|
||||
List<MemberBalanceDTO> memberBalanceList = cuMemberTradeService.selectBalanceNotEnoughMember(businessCommissionDTO);
|
||||
List<MemberBalanceDTO> memberBalanceList = iCuMemberTradeService.selectBalanceNotEnoughMember(businessCommissionDTO);
|
||||
if (CollectionUtil.isNotEmpty(memberBalanceList)) {
|
||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_BALANCE_INSUFFICIENT));
|
||||
}
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否配置审批人信息
|
||||
*
|
||||
* @param pkCountry 国家ID
|
||||
* @return AjaxResult
|
||||
*/
|
||||
private AjaxResult isConfigApprovalInfo(Integer pkCountry, DomicileChangeVO domicileChangeVO) {
|
||||
Map<Integer, ApprovalInfoDTO> approvalInfoMap = iApprovalServiceApi.queryApprovalInfo(Collections.singletonList(EApprovalBusiness.DOMICILE_CHANGE.getValue()), pkCountry).getData();
|
||||
// 根据审批业务类型判断是否配置审批流程
|
||||
ApprovalInfoDTO approvalInfo = approvalInfoMap.get(EApprovalBusiness.DOMICILE_CHANGE.getValue());
|
||||
if (null == approvalInfo || CollectionUtil.isEmpty(approvalInfo.getItemList())) {
|
||||
log.error("{} 提交认证失败,未配置审批流程", EApprovalBusiness.DOMICILE_CHANGE.getLabel());
|
||||
return AjaxResult.error("提交认证失败,请联系客服");
|
||||
}
|
||||
List<Long> userList = approvalInfo.getItemList().stream().map(ApprovalItemInfoDTO::getPkUser).collect(Collectors.toList());
|
||||
domicileChangeVO.setUserIdList(userList);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
package com.hzs.member.sms.controller.api;
|
||||
|
||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
import com.hzs.common.core.constant.CountryConstants;
|
||||
import com.hzs.common.core.constant.msg.ConfigMsgConstants;
|
||||
import com.hzs.common.core.constant.msg.MemberMsgConstants;
|
||||
import com.hzs.common.core.enums.ESmsTemplate;
|
||||
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.common.util.TransactionUtils;
|
||||
import com.hzs.member.base.service.ICuMemberService;
|
||||
import com.hzs.member.sms.service.IApiSmsService;
|
||||
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;
|
||||
|
@ -19,31 +17,47 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @Description: 短信处理控制器
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/8 15:54
|
||||
* @Classname: SmsController
|
||||
* @PackageName: com.hzs.member.sms.controller
|
||||
* 短信处理控制器
|
||||
*/
|
||||
@RequestMapping("/api/sms")
|
||||
@RestController
|
||||
public class ApiSmsController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private IApiSmsService iApiSmsService;
|
||||
private IApiAliSmsService iApiAliSmsService;
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
|
||||
/**
|
||||
* 验证码
|
||||
* 登录用户发送短信
|
||||
*
|
||||
* @param phone 手机号码
|
||||
* @return
|
||||
*/
|
||||
@RepeatSubmitSimple
|
||||
@GetMapping("/verification")
|
||||
public AjaxResult verification(@RequestParam(required = false) String phone) {
|
||||
return toAjax(iApiSmsService.verificationSms(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), phone));
|
||||
@GetMapping("/self-verification")
|
||||
public AjaxResult selfVerification() {
|
||||
CuMemberExt cuMemberExt = iCuMemberService.getMemberById(SecurityUtils.getUserId());
|
||||
if (null == cuMemberExt) {
|
||||
// 会员不存在
|
||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_NOT_EXIST));
|
||||
}
|
||||
return toAjax(iApiAliSmsService.sendCode(cuMemberExt.getPhone(), null, null, SecurityUtils.getUserId()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置支付密码
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@RepeatSubmitSimple
|
||||
@GetMapping("/reset-verification")
|
||||
public AjaxResult resetVerification() {
|
||||
CuMemberExt cuMemberExt = iCuMemberService.getMemberById(SecurityUtils.getUserId());
|
||||
if (null == cuMemberExt) {
|
||||
// 会员不存在
|
||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_NOT_EXIST));
|
||||
}
|
||||
return toAjax(iApiAliSmsService.resetPayPasswordCode(cuMemberExt.getPhone(), SecurityUtils.getUserId()));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -66,35 +80,8 @@ public class ApiSmsController extends BaseController {
|
|||
// 会员不存在,或者手机号不相同
|
||||
return AjaxResult.error(TransactionUtils.getContent(MemberMsgConstants.MEMBER_INFO_ERROR));
|
||||
}
|
||||
return toAjax(iApiSmsService.verificationSms(cuMember.getPkId(), cuMember.getPkSettleCountry(), phone, ESmsTemplate.FORGET_PASSWORD));
|
||||
return toAjax(iApiAliSmsService.sendRecoverCode(phone, cuMember.getPkId()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册验证码 -- 不登录
|
||||
*
|
||||
* @param phone 手机号码
|
||||
* @return
|
||||
*/
|
||||
@RepeatSubmitSimple
|
||||
@GetMapping("/fans-verification")
|
||||
public AjaxResult fansVerification(@RequestParam String phone) {
|
||||
// 前端取不到结算国,此处写死为中国
|
||||
return toAjax(iApiSmsService.verificationSmsByPhone(CountryConstants.CHINA_COUNTRY, phone));
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录用户发送短信
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/self-verification")
|
||||
public AjaxResult selfVerification() {
|
||||
CuMemberExt cuMemberExt = iCuMemberService.getMemberById(SecurityUtils.getUserId());
|
||||
if (null == cuMemberExt) {
|
||||
// 会员不存在
|
||||
return AjaxResult.error(TransactionUtils.getContent(ConfigMsgConstants.MEMBER_NOT_EXIST));
|
||||
}
|
||||
return toAjax(iApiSmsService.verificationSms(SecurityUtils.getUserId(), SecurityUtils.getPkCountry(), cuMemberExt.getPhone()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
package com.hzs.member.sms.service;
|
||||
|
||||
/**
|
||||
* 阿里短信发送服务
|
||||
*/
|
||||
public interface IApiAliSmsService {
|
||||
|
||||
/**
|
||||
* 短信验证码
|
||||
*
|
||||
* @param phone 手机号码
|
||||
* @param checkKey 验证码KEY -- 为空使用默认
|
||||
* @param sendTimKey 验证码重复发送间隔KEY -- 为空使用默认
|
||||
* @param pkMember 会员ID -- 如果有值,优先缓存使用
|
||||
* @return
|
||||
*/
|
||||
String sendCode(String phone, String checkKey, String sendTimKey, Long pkMember);
|
||||
|
||||
/**
|
||||
* 校验短信验证码
|
||||
*
|
||||
* @param phone 手机号码 -- 会员ID有值,手机号码可以为空
|
||||
* @param smsCode 短信验证码
|
||||
* @param checkKey 验证码KEY -- 为空使用默认
|
||||
* @param pkMember 会员ID -- 如果有值,优先缓存使用
|
||||
* @return
|
||||
*/
|
||||
String checkCode(String phone, String smsCode, String checkKey, Long pkMember);
|
||||
|
||||
// /**
|
||||
// * 登录发送验证码
|
||||
// *
|
||||
// * @param phone 手机号码
|
||||
// * @return
|
||||
// */
|
||||
// String sendLoginCode(String phone);
|
||||
//
|
||||
// /**
|
||||
// * 校验登录验证码
|
||||
// *
|
||||
// * @param phone 手机号码
|
||||
// * @param smsCode 短信验证码
|
||||
// * @return
|
||||
// */
|
||||
// String checkLoginCode(String phone, String smsCode);
|
||||
|
||||
// /**
|
||||
// * 注册发送验证码
|
||||
// *
|
||||
// * @param phone 手机号码
|
||||
// * @return
|
||||
// */
|
||||
// String sendRegisterCode(String phone);
|
||||
//
|
||||
// /**
|
||||
// * 校验注册验证码
|
||||
// *
|
||||
// * @param phone 手机号码
|
||||
// * @param smsCode 短信验证码
|
||||
// * @return
|
||||
// */
|
||||
// String checkRegisterCode(String phone, String smsCode);
|
||||
|
||||
/**
|
||||
* 找回密码发送验证码
|
||||
*
|
||||
* @param phone 手机号码
|
||||
* @param pkMember 会员ID
|
||||
* @return
|
||||
*/
|
||||
String sendRecoverCode(String phone, Long pkMember);
|
||||
|
||||
/**
|
||||
* 校验找回密码验证码
|
||||
*
|
||||
* @param phone 手机号码
|
||||
* @param smsCode 短信验证码
|
||||
* @param pkMember 会员ID
|
||||
* @return
|
||||
*/
|
||||
String checkRecoverCode(String phone, String smsCode, Long pkMember);
|
||||
|
||||
/**
|
||||
* 重置支付密码发送验证码
|
||||
*
|
||||
* @param phone 手机号码
|
||||
* @return
|
||||
*/
|
||||
String resetPayPasswordCode(String phone, Long pkMember);
|
||||
|
||||
/**
|
||||
* 校验重置支付密码验证码
|
||||
*
|
||||
* @param phone 手机号码
|
||||
* @param smsCode 短信验证码
|
||||
* @return
|
||||
*/
|
||||
String checkPayPasswordCode(String phone, String smsCode, Long pkMember);
|
||||
|
||||
}
|
|
@ -1,63 +0,0 @@
|
|||
package com.hzs.member.sms.service;
|
||||
|
||||
import com.hzs.common.core.enums.ESmsTemplate;
|
||||
|
||||
/**
|
||||
* @Description: 短信处理服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/8 15:55
|
||||
* @Classname: ISmsService
|
||||
* @PackageName: com.hzs.member.sms.service
|
||||
*/
|
||||
public interface IApiSmsService {
|
||||
|
||||
/**
|
||||
* 校验验证码
|
||||
*
|
||||
* @param cacheKey 验证码缓存key
|
||||
* @param code 验证码
|
||||
* @return 如果返回null为正确,其它为错误内容
|
||||
*/
|
||||
String checkSms(String cacheKey, String code);
|
||||
|
||||
/**
|
||||
* 根据会员发送验证码
|
||||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param pkCountry 国家ID
|
||||
* @param phone 手机号
|
||||
* @return boolean
|
||||
*/
|
||||
boolean verificationSms(Long pkMember, Integer pkCountry, String phone);
|
||||
|
||||
/**
|
||||
* 根据会员发送指定模板
|
||||
*
|
||||
* @param pkMember 会员ID
|
||||
* @param pkCountry 国家ID
|
||||
* @param phone 手机号
|
||||
* @param eSmsTemplate 短信模板
|
||||
* @return
|
||||
*/
|
||||
boolean verificationSms(Long pkMember, Integer pkCountry, String phone, ESmsTemplate eSmsTemplate);
|
||||
|
||||
/**
|
||||
* 根据手机号发送验证码
|
||||
*
|
||||
* @param pkCountry 国家ID
|
||||
* @param phone 手机号
|
||||
* @return
|
||||
*/
|
||||
boolean verificationSmsByPhone(Integer pkCountry, String phone);
|
||||
|
||||
/**
|
||||
* 根据手机号发送指定模板
|
||||
*
|
||||
* @param pkCountry 国家ID
|
||||
* @param phone 手机号
|
||||
* @param eSmsTemplate 短信模板
|
||||
* @return
|
||||
*/
|
||||
boolean verificationSmsByPhone(Integer pkCountry, String phone, ESmsTemplate eSmsTemplate);
|
||||
|
||||
}
|
|
@ -0,0 +1,170 @@
|
|||
package com.hzs.member.sms.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.hzs.common.core.config.BdConfig;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EAliSmsTemplate;
|
||||
import com.hzs.common.core.enums.EEnv;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.utils.VerificationCodeUtil;
|
||||
import com.hzs.member.sms.service.IApiAliSmsService;
|
||||
import com.hzs.third.sms.ISmsServiceApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 阿里短信发送服务
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ApiAliSmsServiceImpl implements IApiAliSmsService {
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@DubboReference
|
||||
ISmsServiceApi iSmsServiceApi;
|
||||
|
||||
@Override
|
||||
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()) > 20) {
|
||||
return "当前手机号码获取短信已达当日上限";
|
||||
}
|
||||
}
|
||||
|
||||
if (null == checkKey) {
|
||||
// 如果为空,使用默认发送短信key
|
||||
checkKey = CacheConstants.DEFAULT_CHECK;
|
||||
}
|
||||
if (null == sendTimKey) {
|
||||
// 如果为空,使用默认发送短信key间隔时间
|
||||
sendTimKey = CacheConstants.DEFAULT_SEND_TIME;
|
||||
}
|
||||
|
||||
if (redisService.hasKey(sendTimKey + phone)) {
|
||||
return "获取验证码过于频繁,请稍后再试";
|
||||
}
|
||||
|
||||
// 生成4位验证码
|
||||
String code = VerificationCodeUtil.createCode();
|
||||
log.info("发送短信验证码,phone: {}, code: {}", phone, code);
|
||||
|
||||
R<String> sendResult = iSmsServiceApi.sendAliSms(phone, code, EAliSmsTemplate.MEMBER_SMS);
|
||||
if (sendResult.isSuccess()) {
|
||||
// 返回成功,验证码放入缓存
|
||||
// 验证码缓存有效期10分钟
|
||||
redisService.setCacheObject(checkKey + (null != pkMember ? pkMember : phone), code, 10L, TimeUnit.MINUTES);
|
||||
|
||||
// 验证码发送间隔不能低于1分钟
|
||||
redisService.setCacheObject(sendTimKey + phone, "", 1L, TimeUnit.MINUTES);
|
||||
|
||||
if (smsCountObj == null) {
|
||||
redisService.setCacheMapValue(smsCountKey, phone, 1);
|
||||
redisService.expire(smsCountKey, 1, TimeUnit.DAYS);
|
||||
} else {
|
||||
redisService.setCacheMapValue(smsCountKey, phone, Integer.parseInt(smsCountObj.toString()) + 1);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
log.error("发送短信失败:{}", sendResult.getMsg());
|
||||
return "获取验证码失败,请稍候重试";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String checkCode(String phone, String smsCode, String checkKey, Long pkMember) {
|
||||
if (EEnv.TEST.getValue().equals(BdConfig.getEnv()) && "ASDF".equals(smsCode)) {
|
||||
// 测试环境暂时不发放短信
|
||||
return null;
|
||||
}
|
||||
|
||||
if (null == checkKey) {
|
||||
// 如果为空,使用默认发送短信key
|
||||
checkKey = CacheConstants.DEFAULT_CHECK;
|
||||
}
|
||||
|
||||
String cacheSmsCode = redisService.getCacheObject(checkKey + (null != pkMember ? pkMember : phone));
|
||||
if (null == cacheSmsCode) {
|
||||
return "验证码已失效";
|
||||
}
|
||||
if (!cacheSmsCode.equals(smsCode)) {
|
||||
// TODO 验证码错误,需不需要清除缓存验证码??会不会存在暴力破解情况??
|
||||
return "验证码错误";
|
||||
}
|
||||
// 校验通过,删除验证码缓存
|
||||
redisService.deleteObject(checkKey + (null != pkMember ? pkMember : phone));
|
||||
return null;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public String sendLoginCode(String phone) {
|
||||
// return this.sendCode(phone, CacheConstants.LOGIN_CHECK, CacheConstants.LOGIN_SEND_TIME);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String checkLoginCode(String phone, String smsCode) {
|
||||
// String str = this.checkCode(phone, smsCode, CacheConstants.LOGIN_CHECK);
|
||||
// if (null == str) {
|
||||
// // 删除验证码间隔时间缓存
|
||||
// redisService.deleteObject(CacheConstants.LOGIN_SEND_TIME + phone);
|
||||
// }
|
||||
// return str;
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public String sendRegisterCode(String phone) {
|
||||
// return this.sendCode(phone, CacheConstants.REGISTER_CHECK, CacheConstants.REGISTER_SEND_TIME);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public String checkRegisterCode(String phone, String smsCode) {
|
||||
// String str = this.checkCode(phone, smsCode, CacheConstants.REGISTER_CHECK);
|
||||
// if (null == str) {
|
||||
// // 删除验证码间隔时间缓存
|
||||
// redisService.deleteObject(CacheConstants.REGISTER_SEND_TIME + phone);
|
||||
// }
|
||||
// return str;
|
||||
// }
|
||||
|
||||
@Override
|
||||
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, Long pkMember) {
|
||||
String str = this.checkCode(phone, smsCode, CacheConstants.RECOVER_CHECK, pkMember);
|
||||
if (null == str) {
|
||||
// 删除验证码间隔时间缓存
|
||||
redisService.deleteObject(CacheConstants.RECOVER_SEND_TIME + phone);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
@Override
|
||||
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, Long pkMember) {
|
||||
String str = this.checkCode(phone, smsCode, CacheConstants.RESET_CHECK, pkMember);
|
||||
if (null == str) {
|
||||
// 删除验证码间隔时间缓存
|
||||
redisService.deleteObject(CacheConstants.RESET_SEND_TIME + phone);
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
package com.hzs.member.sms.service.impl;
|
||||
|
||||
import com.hzs.common.core.constant.SmsConstants;
|
||||
import com.hzs.common.core.constant.msg.SystemMsgConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.ESmsTemplate;
|
||||
import com.hzs.common.core.exception.ServiceException;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.core.utils.VerificationCodeUtil;
|
||||
import com.hzs.common.domain.member.base.CuMember;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.member.base.service.ICuMemberService;
|
||||
import com.hzs.member.sms.service.IApiSmsService;
|
||||
import com.hzs.third.sms.ISmsServiceApi;
|
||||
import com.hzs.third.sms.dto.SmsServiceDTO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @Description: 短信处理服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/8 15:56
|
||||
* @Classname: ApiSmsServiceImpjl
|
||||
* @PackageName: com.hzs.member.sms.service.impl
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ApiSmsServiceImpl implements IApiSmsService {
|
||||
|
||||
@Autowired
|
||||
private ICuMemberService iCuMemberService;
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@DubboReference
|
||||
ISmsServiceApi iSmsServiceApi;
|
||||
|
||||
@Override
|
||||
public String checkSms(String cacheKey, String code) {
|
||||
Object codeObj = redisService.getCacheObject(cacheKey);
|
||||
if (null != codeObj) {
|
||||
if (codeObj.toString().equals(code)) {
|
||||
// 校验正确之后,删除缓存
|
||||
redisService.deleteObject(cacheKey);
|
||||
return null;
|
||||
} else {
|
||||
// 验证码错误
|
||||
return TransactionUtils.getContent(SystemMsgConstants.CODE_ERROR);
|
||||
}
|
||||
}
|
||||
// 验证码已失效
|
||||
return TransactionUtils.getContent(SystemMsgConstants.CODE_EXPIRE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean verificationSms(Long pkMember, Integer pkCountry, String phone) {
|
||||
return this.verificationSms(pkMember, pkCountry, phone, ESmsTemplate.VERIFICATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean verificationSms(Long pkMember, Integer pkCountry, String phone, ESmsTemplate eSmsTemplate) {
|
||||
if (StringUtils.isEmpty(phone)) {
|
||||
// 查询用户,获取手机号
|
||||
CuMember cuMember = iCuMemberService.getMember(pkMember);
|
||||
phone = cuMember.getPhone();
|
||||
}
|
||||
|
||||
// 生成4位验证码
|
||||
String code = VerificationCodeUtil.createCode();
|
||||
// 发送短信
|
||||
R<String> sendR = iSmsServiceApi.send(SmsServiceDTO.builder()
|
||||
.templateCode(eSmsTemplate.getCode())
|
||||
.pkMember(pkMember)
|
||||
.phone(phone)
|
||||
.paramList(Collections.singletonList(code))
|
||||
.userId(pkMember)
|
||||
.pkCountry(pkCountry)
|
||||
.saveFlag(false)
|
||||
.build());
|
||||
|
||||
if (sendR.isSuccess()) {
|
||||
// 返回成功,验证码放入缓存
|
||||
redisService.setCacheObject(eSmsTemplate.getCache() + pkMember, code, SmsConstants.FAILURE_TIME, TimeUnit.MINUTES);
|
||||
return true;
|
||||
} else {
|
||||
log.error("发送短信失败:{}", sendR.getMsg());
|
||||
throw new ServiceException(sendR.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean verificationSmsByPhone(Integer pkCountry, String phone) {
|
||||
return this.verificationSmsByPhone(pkCountry, phone, ESmsTemplate.VERIFICATION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean verificationSmsByPhone(Integer pkCountry, String phone, ESmsTemplate eSmsTemplate) {
|
||||
// 生成4位验证码
|
||||
String code = VerificationCodeUtil.createCode();
|
||||
// 发送短信
|
||||
R<String> sendR = iSmsServiceApi.send(SmsServiceDTO.builder()
|
||||
.templateCode(eSmsTemplate.getCode())
|
||||
.phone(phone)
|
||||
.paramList(Collections.singletonList(code))
|
||||
.pkCountry(pkCountry)
|
||||
.saveFlag(false)
|
||||
.build());
|
||||
|
||||
if (sendR.isSuccess()) {
|
||||
// 返回成功,验证码放入缓存
|
||||
redisService.setCacheObject(eSmsTemplate.getCache() + phone, code, SmsConstants.FAILURE_TIME, TimeUnit.MINUTES);
|
||||
return true;
|
||||
}
|
||||
log.error("发送短信失败:{}", sendR.getMsg());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -69,8 +69,8 @@ public class CuBonusStatisController extends BaseController {
|
|||
cuBonusStatisVO.setPkCountry(pkCountry);
|
||||
// 默认查询当前日期的前一天
|
||||
Date date = DateUtils.currentDate();
|
||||
if (StringUtils.isEmpty(cuBonusStatisVO.getStartDate()) ||
|
||||
StringUtils.isEmpty(cuBonusStatisVO.getEndDate())) {
|
||||
if (StringUtils.isEmpty(cuBonusStatisVO.getStartDate())
|
||||
|| StringUtils.isEmpty(cuBonusStatisVO.getEndDate())) {
|
||||
cuBonusStatisVO.setStartDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date));
|
||||
cuBonusStatisVO.setEndDate(DateUtils.beforeDateStr(1, ChronoUnit.DAYS, DateUtils.YYYY_MM_DD, date));
|
||||
}
|
||||
|
@ -145,8 +145,8 @@ public class CuBonusStatisController extends BaseController {
|
|||
itm.setMainBonusPvRate(itm.getMainBonusPvRate().divide(itm.getFirstPurchaseAll(), 4, RoundingMode.HALF_UP));
|
||||
}
|
||||
// 重新算总拨比
|
||||
if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0 ||
|
||||
itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) {
|
||||
if (itm.getFirstPurchaseAll().compareTo(BigDecimal.ZERO) > 0
|
||||
|| itm.getRepurchaseAllAmount().compareTo(BigDecimal.ZERO) > 0) {
|
||||
BigDecimal totalBonusRate = cent.multiply((itm.getTotalBonus()).multiply(currency.getData().getInExchangeRate()));
|
||||
totalBonusRate = totalBonusRate.divide(itm.getFirstPurchaseAll().add(itm.getRepurchaseAllAmount()), 4, RoundingMode.HALF_UP);
|
||||
itm.setTotalBonusRate(totalBonusRate);
|
||||
|
|
|
@ -719,8 +719,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
* @param saOrderExt 订单
|
||||
* @param newCuMember 新会员信息
|
||||
* @param cuMemberAccountExt 支付账户信息
|
||||
* @Author: sui q
|
||||
* @Date: 2022/9/13 13:37
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
|
@ -797,7 +795,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
}
|
||||
|
||||
try {
|
||||
sendMessage(newCuMember);
|
||||
log.info("生产活动消息,activity.exchange:{}", JSONUtil.toJsonStr(saOrderExt));
|
||||
rabbitTemplate.convertAndSend(RabbitMqConstants.ACTIVITY_EXCHANGE, RabbitMqConstants.ACTIVITY_KEY, saOrderExt);
|
||||
// //计算奖金,通过mq分发消息,异步处理
|
||||
|
@ -818,28 +815,6 @@ public class SaOrderServiceImpl extends ServiceImpl<SaOrderMapper, SaOrder> impl
|
|||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param newCuMember 会员编号
|
||||
* @Description: 发送短信
|
||||
* @return: void
|
||||
* @Author: sui q
|
||||
* @Date: 2023/3/9 14:28
|
||||
*/
|
||||
private void sendMessage(CuMember newCuMember) {
|
||||
List<String> paramList = new ArrayList<>();
|
||||
paramList.add(newCuMember.getMemberName());
|
||||
paramList.add(newCuMember.getMemberCode());
|
||||
SmsServiceDTO smsServiceDTO = SmsServiceDTO.builder().templateCode(ESmsTemplate.REGISTER_SUCCESS.getCode())
|
||||
.pkCountry(newCuMember.getPkSettleCountry())
|
||||
.phone(newCuMember.getPhone())
|
||||
.pkMember(newCuMember.getPkId())
|
||||
.userId(newCuMember.getPkId())
|
||||
.paramList(paramList)
|
||||
// .saveFlag(Boolean.FALSE)
|
||||
.build();
|
||||
iSmsServiceApi.send(smsServiceDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param newCuMember 修改的会员
|
||||
* @Description: 尝试重新换位置
|
||||
|
|
|
@ -4,82 +4,46 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
import com.hzs.common.domain.system.base.BdCubasdoc;
|
||||
import com.hzs.common.domain.system.base.ext.BdCubasdocExt;
|
||||
import com.hzs.system.base.param.BdCubasdocParam;
|
||||
import com.hzs.system.base.vo.BdCubasdocVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 供应商设置 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-11-20
|
||||
*/
|
||||
public interface IBdCubasdocService extends IService<BdCubasdoc> {
|
||||
|
||||
/*
|
||||
* @description: 根据条件查询供应商
|
||||
* @author: sui q
|
||||
* @date: 2023/11/20 16:47
|
||||
* @param: null null
|
||||
**/
|
||||
List<BdCubasdocExt> querySupplierByCondition(BdCubasdocParam cubasdocParam);
|
||||
|
||||
/*
|
||||
* @description: 根据条件查询供应商(业务领用专用)
|
||||
* @author: zhang jing
|
||||
* @date: 2024/5/7 14:15
|
||||
* @param: [cubasdocParam]
|
||||
* @return: java.util.List<com.hzs.common.domain.system.base.ext.BdCubasdocExt>
|
||||
**/
|
||||
List<BdCubasdocExt> querySupplierByProduct(BdCubasdocParam cubasdocParam);
|
||||
|
||||
/*
|
||||
* @description: 根据条件查询客户
|
||||
* @author: sui q
|
||||
* @date: 2023/11/29 13:42
|
||||
* @param: null null
|
||||
**/
|
||||
List<BdCubasdocExt> queryCustomerByCondition(BdCubasdocParam cubasdocParam);
|
||||
|
||||
/*
|
||||
* @description: 根据条件查询客商
|
||||
* @author: sui q
|
||||
* @date: 2023/11/20 10:57
|
||||
* @param: null null
|
||||
**/
|
||||
List<BdCubasdocExt> queryCubasdocByCondition(BdCubasdocParam cubasdocParam);
|
||||
|
||||
/*
|
||||
* @description: 保存供应商
|
||||
* @author: sui q
|
||||
* @date: 2023/11/20 10:58
|
||||
* @param: null null
|
||||
**/
|
||||
void saveCubasdoc(BdCubasdocParam cubasdocParam, Long pkMember);
|
||||
|
||||
/*
|
||||
* @description: 删除客商
|
||||
* @author: sui q
|
||||
* @date: 2023/11/20 13:43
|
||||
* @param: null null
|
||||
**/
|
||||
void deleteCuBasdoc(Integer pkId, Long pkMember);
|
||||
|
||||
/*
|
||||
* @description: 获得供应商
|
||||
* @author: sui q
|
||||
* @date: 2023/11/20 16:38
|
||||
* @param: null null
|
||||
**/
|
||||
BdCubasdoc getBdCubasdocById(Integer pkId);
|
||||
|
||||
/**
|
||||
* @description: 查询登录管理员是否为供应商
|
||||
* @author: zhang jing
|
||||
* @date: 2024/5/6 11:12
|
||||
* @param: [userId]
|
||||
* @return: java.lang.Integer
|
||||
**/
|
||||
Integer queryThSupplierApplyUserList(Long userId);
|
||||
}
|
||||
|
|
|
@ -1,43 +1,28 @@
|
|||
package com.hzs.system.base.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.enums.ECustomerType;
|
||||
import com.hzs.common.core.enums.ESupplierType;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.utils.DateUtils;
|
||||
import com.hzs.common.domain.system.base.BdCubasdoc;
|
||||
import com.hzs.common.domain.system.base.ext.BdCubasdocExt;
|
||||
import com.hzs.system.base.mapper.BdCubasdocMapper;
|
||||
import com.hzs.system.base.param.BdCubasdocParam;
|
||||
import com.hzs.system.base.service.IBdCubasdocService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 供应商设置 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-11-20
|
||||
*/
|
||||
@Service
|
||||
public class BdCubasdocServiceImpl extends ServiceImpl<BdCubasdocMapper, BdCubasdoc> implements IBdCubasdocService {
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@Override
|
||||
public List<BdCubasdocExt> querySupplierByCondition(BdCubasdocParam cubasdocParam) {
|
||||
List<Integer> custTypeList = new ArrayList<>();
|
||||
|
@ -47,13 +32,6 @@ public class BdCubasdocServiceImpl extends ServiceImpl<BdCubasdocMapper, BdCubas
|
|||
return queryCubasdocByCondition(cubasdocParam);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 根据条件查询供应商(业务领用专用)
|
||||
* @author: zhang jing
|
||||
* @date: 2024/5/7 14:15
|
||||
* @param: [cubasdocParam]
|
||||
* @return: java.util.List<com.hzs.common.domain.system.base.ext.BdCubasdocExt>
|
||||
**/
|
||||
@Override
|
||||
public List<BdCubasdocExt> querySupplierByProduct(BdCubasdocParam cubasdocParam) {
|
||||
List<Integer> custTypeList = new ArrayList<>();
|
||||
|
@ -63,7 +41,6 @@ public class BdCubasdocServiceImpl extends ServiceImpl<BdCubasdocMapper, BdCubas
|
|||
return baseMapper.querySupplierByProduct(cubasdocParam);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<BdCubasdocExt> queryCustomerByCondition(BdCubasdocParam cubasdocParam) {
|
||||
List<Integer> custTypeList = new ArrayList<>();
|
||||
|
@ -88,13 +65,13 @@ public class BdCubasdocServiceImpl extends ServiceImpl<BdCubasdocMapper, BdCubas
|
|||
|
||||
@Override
|
||||
public void saveCubasdoc(BdCubasdocParam cubasdocParam, Long pkMember) {
|
||||
if(cubasdocParam.getPkId() == null){
|
||||
if (cubasdocParam.getPkId() == null) {
|
||||
BdCubasdoc bdCubasdoc = BeanUtil.copyProperties(cubasdocParam, BdCubasdoc.class);
|
||||
// 供应商编号自动生成
|
||||
if(cubasdocParam.getCustCode() == null){
|
||||
if(cubasdocParam.getCustType() == 1 || cubasdocParam.getCustType() == 2) {
|
||||
if (cubasdocParam.getCustCode() == null) {
|
||||
if (cubasdocParam.getCustType() == 1 || cubasdocParam.getCustType() == 2) {
|
||||
bdCubasdoc.setCustCode(createCuBasDocCode("SU"));
|
||||
}else{
|
||||
} else {
|
||||
bdCubasdoc.setCustCode(createCuBasDocCode("CU"));
|
||||
}
|
||||
}
|
||||
|
@ -102,7 +79,7 @@ public class BdCubasdocServiceImpl extends ServiceImpl<BdCubasdocMapper, BdCubas
|
|||
bdCubasdoc.setPkCreator(pkMember);
|
||||
bdCubasdoc.setPkUser(pkMember);
|
||||
baseMapper.insert(bdCubasdoc);
|
||||
}else {
|
||||
} else {
|
||||
BdCubasdoc bdCubasdoc = baseMapper.selectById(cubasdocParam.getPkId());
|
||||
bdCubasdoc.setCustName(cubasdocParam.getCustName());
|
||||
bdCubasdoc.setCustType(cubasdocParam.getCustType());
|
||||
|
@ -119,80 +96,43 @@ public class BdCubasdocServiceImpl extends ServiceImpl<BdCubasdocMapper, BdCubas
|
|||
bdCubasdoc.setModifiedTime(DateUtils.currentDateTime());
|
||||
bdCubasdoc.setPkSupplier(cubasdocParam.getPkId());
|
||||
baseMapper.updateById(bdCubasdoc);
|
||||
flushCubasdoc(cubasdocParam.getPkId());
|
||||
}
|
||||
}
|
||||
|
||||
private String createCuBasDocCode(String prefix) {
|
||||
// 生成loginName
|
||||
long next = (long) (Math.random() * (9999999L - 1000000L + 1)+1000000L);
|
||||
long next = (long) (Math.random() * (9999999L - 1000000L + 1) + 1000000L);
|
||||
String basDocCode = prefix + next;
|
||||
// 2023.10.19 需求加校验,会员编号不能出现 4 和 0
|
||||
if (basDocCode.contains("4") || basDocCode.contains("0")) {
|
||||
return createCuBasDocCode(prefix);
|
||||
}
|
||||
BdCubasdoc bdCubasdoc = queryBdCuBasdoc(basDocCode);
|
||||
if(bdCubasdoc != null){
|
||||
return createCuBasDocCode(prefix);
|
||||
if (bdCubasdoc != null) {
|
||||
return createCuBasDocCode(prefix);
|
||||
}
|
||||
return basDocCode;
|
||||
}
|
||||
|
||||
private BdCubasdoc queryBdCuBasdoc(String custCode){
|
||||
QueryWrapper<BdCubasdoc> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("CUST_CODE", custCode);
|
||||
private BdCubasdoc queryBdCuBasdoc(String custCode) {
|
||||
LambdaQueryWrapper<BdCubasdoc> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(BdCubasdoc::getCustCode, custCode);
|
||||
return baseMapper.selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCuBasdoc(Integer pkId, Long pkMember) {
|
||||
UpdateWrapper<BdCubasdoc> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set(SystemFieldConstants.DEL_FLAG, EYesNo.NO.getIntValue());
|
||||
updateWrapper.set(SystemFieldConstants.PK_MODIFIED, pkMember);
|
||||
updateWrapper.set(SystemFieldConstants.MODIFIED_TIME, DateUtils.currentDateTime());
|
||||
updateWrapper.eq(SystemFieldConstants.PK_ID, pkId);
|
||||
LambdaUpdateWrapper<BdCubasdoc> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(BdCubasdoc::getDelFlag, EYesNo.NO.getIntValue());
|
||||
updateWrapper.set(BdCubasdoc::getPkModified, pkMember);
|
||||
updateWrapper.set(BdCubasdoc::getModifiedTime, DateUtils.currentDateTime());
|
||||
updateWrapper.eq(BdCubasdoc::getPkId, pkId);
|
||||
baseMapper.delete(updateWrapper);
|
||||
flushCubasdoc(pkId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BdCubasdoc getBdCubasdocById(Integer pkId) {
|
||||
if (pkId == null) {
|
||||
return null;
|
||||
}
|
||||
BdCubasdoc cubasdoc = redisService.getCacheObject(CacheConstants.CUSTOMER_ID + pkId);
|
||||
if (null == cubasdoc) {
|
||||
// 如果缓存中不存在,则查询并放入缓存
|
||||
cubasdoc = baseMapper.selectById(pkId);
|
||||
if(cubasdoc != null){
|
||||
redisService.setCacheObject(CacheConstants.CUSTOMER_ID + pkId, cubasdoc);
|
||||
}
|
||||
}
|
||||
return cubasdoc;
|
||||
}
|
||||
|
||||
/*
|
||||
* @description: 刷新缓存
|
||||
* @author: sui q
|
||||
* @date: 2023/11/20 16:44
|
||||
* @param: null null
|
||||
**/
|
||||
private void flushCubasdoc(Integer pkId){
|
||||
BdCubasdoc cubasdoc = redisService.getCacheObject(CacheConstants.CUSTOMER_ID + pkId);
|
||||
if (cubasdoc != null) {
|
||||
redisService.deleteObjectByKey(CacheConstants.CUSTOMER_ID + cubasdoc);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 查询登录管理员是否为供应商
|
||||
* @author: zhang jing
|
||||
* @date: 2024/5/6 11:11
|
||||
* @param: [userId]
|
||||
* @return: java.lang.Integer
|
||||
**/
|
||||
@Override
|
||||
public Integer queryThSupplierApplyUserList(Long userId) {
|
||||
return baseMapper.queryThSupplierApplyUserList(userId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,11 +8,6 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* @description: 供应商vo
|
||||
* @author: sui q
|
||||
* @time: 2023/11/20 10:53
|
||||
* @classname: BdCubasdocVO
|
||||
* @package_name: com.hzs.system.base.vo
|
||||
* version 1.0.0
|
||||
*/
|
||||
@Data
|
||||
public class BdCubasdocVO implements Serializable {
|
||||
|
@ -35,7 +30,7 @@ public class BdCubasdocVO implements Serializable {
|
|||
/**
|
||||
* ECustType 1=内部供应商 2=外部供应商 3=内部客户 4=外部客户
|
||||
*/
|
||||
@Transaction(transactionKey= EnumsPrefixConstants.SUPPLIER_TYPE)
|
||||
@Transaction(transactionKey = EnumsPrefixConstants.SUPPLIER_TYPE)
|
||||
private Integer custType;
|
||||
|
||||
private String custTypeVal;
|
||||
|
|
|
@ -2,16 +2,11 @@ package com.hzs.system.login.controller;
|
|||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.hzs.common.core.annotation.RepeatSubmitSimple;
|
||||
import com.hzs.common.core.enums.EAliSmsTemplate;
|
||||
import com.hzs.common.core.enums.EDataSource;
|
||||
import com.hzs.common.core.enums.ELoginType;
|
||||
import com.hzs.common.core.web.domain.AjaxResult;
|
||||
import com.hzs.common.domain.system.sys.SysUser;
|
||||
import com.hzs.system.login.service.IUserLoginService;
|
||||
import com.hzs.system.sms.service.ISmsService;
|
||||
import com.hzs.system.sys.dto.LoginUser;
|
||||
import com.hzs.system.sys.service.ISysUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.hzs.common.auth.LoginBody;
|
||||
|
@ -23,8 +18,6 @@ import com.hzs.common.security.utils.SecurityUtils;
|
|||
|
||||
/**
|
||||
* 管理端 token 控制
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@RequestMapping("/auth/manage")
|
||||
@RestController
|
||||
|
@ -34,10 +27,6 @@ public class UserTokenController {
|
|||
private UserTokenService userTokenService;
|
||||
@Autowired
|
||||
private IUserLoginService iUserLoginService;
|
||||
@Autowired
|
||||
private ISysUserService iSysUserService;
|
||||
@Autowired
|
||||
private ISmsService iSmsService;
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
|
@ -100,23 +89,23 @@ public class UserTokenController {
|
|||
// return AjaxResult.error("登录用户不存在");
|
||||
// }
|
||||
|
||||
/**
|
||||
* 管理员登录发送验证码
|
||||
*
|
||||
* @param userName 管理员编号
|
||||
* @return
|
||||
*/
|
||||
@RepeatSubmitSimple
|
||||
@GetMapping("/user-sms-send")
|
||||
public AjaxResult userSmsSend(@RequestParam String userName) {
|
||||
SysUser sysUser = iSysUserService.selectUserByUserName(userName);
|
||||
if (null != sysUser) {
|
||||
if (iSmsService.sendLoginSms(sysUser.getPhonenumber(), EAliSmsTemplate.MANAGE_LOGIN)) {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
return AjaxResult.error("短信发送失败");
|
||||
}
|
||||
return AjaxResult.error("登录用户不存在");
|
||||
}
|
||||
// /**
|
||||
// * 管理员登录发送验证码
|
||||
// *
|
||||
// * @param userName 管理员编号
|
||||
// * @return
|
||||
// */
|
||||
// @RepeatSubmitSimple
|
||||
// @GetMapping("/user-sms-send")
|
||||
// public AjaxResult userSmsSend(@RequestParam String userName) {
|
||||
// SysUser sysUser = iSysUserService.selectUserByUserName(userName);
|
||||
// if (null != sysUser) {
|
||||
// if (iSmsService.sendLoginSms(sysUser.getPhonenumber(), EAliSmsTemplate.MANAGE_LOGIN)) {
|
||||
// return AjaxResult.success();
|
||||
// }
|
||||
// return AjaxResult.error("短信发送失败");
|
||||
// }
|
||||
// return AjaxResult.error("登录用户不存在");
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
@ -4,13 +4,11 @@ import com.hzs.common.core.constant.CacheConstants;
|
|||
import com.hzs.common.core.constant.msg.SystemMsgConstants;
|
||||
import com.hzs.common.core.enums.EDelFlag;
|
||||
import com.hzs.common.core.enums.EStatus;
|
||||
import com.hzs.common.core.enums.EYesNo;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.domain.system.sys.SysLogininfor;
|
||||
import com.hzs.common.domain.system.sys.SysUser;
|
||||
import com.hzs.common.util.TransactionUtils;
|
||||
import com.hzs.system.login.service.IUserLoginService;
|
||||
import com.hzs.system.sms.service.ISmsService;
|
||||
import com.hzs.system.sys.ILogServiceApi;
|
||||
import com.hzs.system.sys.IUserServiceApi;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
|
@ -28,14 +26,10 @@ import com.hzs.system.sys.dto.LoginUser;
|
|||
|
||||
/**
|
||||
* 登录校验方法
|
||||
*
|
||||
* @author hzs
|
||||
*/
|
||||
@Component
|
||||
public class UserLoginServiceImpl implements IUserLoginService {
|
||||
|
||||
@Autowired
|
||||
private ISmsService iSmsService;
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
|
@ -69,16 +63,16 @@ public class UserLoginServiceImpl implements IUserLoginService {
|
|||
LoginUser loginUser = userResult.getData();
|
||||
SysUser user = userResult.getData().getLoginSysUser();
|
||||
|
||||
if (EYesNo.YES.getIntValue() == user.getSms()) {
|
||||
// 启用短信登录,需要校验短信验证码
|
||||
if (StringUtils.isEmpty(smsCode)) {
|
||||
throw new ServiceException("短信验证码不能为空");
|
||||
}
|
||||
String str = iSmsService.checkLoginSms(user.getPhonenumber(), smsCode);
|
||||
if (null != str) {
|
||||
throw new ServiceException(str);
|
||||
}
|
||||
}
|
||||
// if (EYesNo.YES.getIntValue() == user.getSms()) {
|
||||
// // 启用短信登录,需要校验短信验证码
|
||||
// if (StringUtils.isEmpty(smsCode)) {
|
||||
// throw new ServiceException("短信验证码不能为空");
|
||||
// }
|
||||
// String str = iSmsService.checkLoginSms(user.getPhonenumber(), smsCode);
|
||||
// if (null != str) {
|
||||
// throw new ServiceException(str);
|
||||
// }
|
||||
// }
|
||||
|
||||
if (EDelFlag.UN_DELETE.getValue() != user.getDelFlag()) {
|
||||
recordLogininfor(userName, Constants.LOGIN_FAIL, "您的账号已被删除");
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
package com.hzs.system.sms.service;
|
||||
|
||||
import com.hzs.common.core.enums.EAliSmsTemplate;
|
||||
|
||||
/**
|
||||
* @Description: 短信服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/8/5 14:34
|
||||
* @Classname: ISmsService
|
||||
* @PackageName: com.hzs.system.sms.service
|
||||
*/
|
||||
public interface ISmsService {
|
||||
|
||||
/**
|
||||
* 根据会员发送验证码
|
||||
*
|
||||
* @param phoneNumber 手机号码
|
||||
* @param aliSmsTemplate 阿里短信模板
|
||||
* @return boolean
|
||||
*/
|
||||
boolean sendLoginSms(String phoneNumber, EAliSmsTemplate aliSmsTemplate);
|
||||
|
||||
/**
|
||||
* 校验验证码
|
||||
*
|
||||
* @param phoneNumber 手机号码
|
||||
* @param code 验证码
|
||||
* @return 如果返回null为正确,其它为错误内容
|
||||
*/
|
||||
String checkLoginSms(String phoneNumber, String code);
|
||||
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
package com.hzs.system.sms.service.impl;
|
||||
|
||||
import com.hzs.common.core.constant.SmsConstants;
|
||||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EAliSmsTemplate;
|
||||
import com.hzs.common.core.enums.ESmsTemplate;
|
||||
import com.hzs.common.core.service.RedisService;
|
||||
import com.hzs.common.core.utils.VerificationCodeUtil;
|
||||
import com.hzs.system.sms.service.ISmsService;
|
||||
import com.hzs.third.sms.ISmsServiceApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @Description: 短信服务
|
||||
* @author: jiang chao
|
||||
* @Time: 2024/8/5 14:34
|
||||
* @Classname: SmsServiceImpl
|
||||
* @PackageName: com.hzs.system.sms.service.impl
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SmsServiceImpl implements ISmsService {
|
||||
|
||||
@Autowired
|
||||
private RedisService redisService;
|
||||
|
||||
@DubboReference
|
||||
ISmsServiceApi iSmsServiceApi;
|
||||
|
||||
@Override
|
||||
public boolean sendLoginSms(String phoneNumber, EAliSmsTemplate aliSmsTemplate) {
|
||||
// 生成4位验证码
|
||||
String code = VerificationCodeUtil.createCode();
|
||||
|
||||
R<String> sendR = iSmsServiceApi.sendAliSms(phoneNumber, code, aliSmsTemplate);
|
||||
|
||||
if (sendR.isSuccess()) {
|
||||
// 返回成功,验证码放入缓存
|
||||
redisService.setCacheObject(ESmsTemplate.VERIFICATION_MANAGE.getCache() + phoneNumber, code, SmsConstants.FAILURE_TIME, TimeUnit.MINUTES);
|
||||
return true;
|
||||
}
|
||||
log.error("发送短信失败:{}", sendR.getMsg());
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String checkLoginSms(String phoneNumber, String code) {
|
||||
// 短信发送枚举
|
||||
ESmsTemplate eSmsTemplate = ESmsTemplate.VERIFICATION_MANAGE;
|
||||
// 短信缓存
|
||||
String cacheKey = eSmsTemplate.getCache() + phoneNumber;
|
||||
|
||||
Object codeObj = redisService.getCacheObject(cacheKey);
|
||||
if (null != codeObj) {
|
||||
if (codeObj.toString().equals(code)) {
|
||||
// 校验正确之后,删除缓存
|
||||
redisService.deleteObject(cacheKey);
|
||||
return null;
|
||||
} else {
|
||||
// 验证码错误
|
||||
return "短信验证码错误";
|
||||
}
|
||||
}
|
||||
// 验证码已失效
|
||||
return "短信验证码已失效";
|
||||
}
|
||||
|
||||
}
|
|
@ -8,13 +8,6 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: sui q
|
||||
* @Time: 2022/8/29 9:35
|
||||
* @Classname: ApiIdempotentController
|
||||
* @PackageName: com.hzs.system.tools.controller.api
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/idempotent")
|
||||
@Slf4j
|
||||
|
@ -27,16 +20,9 @@ public class ApiIdempotentController {
|
|||
this.idempotentService = idempotentService;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param
|
||||
* @throws
|
||||
* @Description: 生成用于保证幂等的token
|
||||
* @return: AjaxResult
|
||||
* @Author: sui q
|
||||
* @Date: 2022/8/29 9:36
|
||||
*/
|
||||
@GetMapping("/generate")
|
||||
public AjaxResult generateIdempotentToken() {
|
||||
return AjaxResult.success(idempotentService.generateToken());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,13 +12,8 @@ public class CacheConstants {
|
|||
|
||||
public final static String UPD_MEMBER = CACHE_PREFIX + "upd:member_name:";
|
||||
|
||||
/**
|
||||
* 会员账户
|
||||
*/
|
||||
public final static String MEMBER_ACCOUNT = CACHE_PREFIX + "account:";
|
||||
|
||||
public final static String CUSTOMER_ID = CACHE_PREFIX + "customer:";
|
||||
|
||||
/**
|
||||
* 会员缓存刷新时间,默认30天
|
||||
*/
|
||||
|
@ -279,11 +274,6 @@ public class CacheConstants {
|
|||
*/
|
||||
public static final String SHOPPIN_GCART = CACHE_PREFIX + "shopping:cart:";
|
||||
|
||||
/**
|
||||
* 短信缓存key前缀
|
||||
*/
|
||||
public final static String CACHE_SMS_PREFIX = CACHE_PREFIX + "sms:";
|
||||
|
||||
/**
|
||||
* 抽奖奖品
|
||||
*/
|
||||
|
@ -390,6 +380,53 @@ public class CacheConstants {
|
|||
/**
|
||||
* 在线支付回调上锁
|
||||
*/
|
||||
public final static String ONLINE_PAYE_KEY = CACHE_PREFIX + "online:payment:";
|
||||
public final static String ONLINE_PAY_KEY = CACHE_PREFIX + "online:payment:";
|
||||
|
||||
|
||||
/**
|
||||
* 手机每天获取短信缓存 -- Hash(sms:count: 年月日, 登录名)
|
||||
*/
|
||||
public final static String SMS_COUNT = CACHE_PREFIX + "sms:count:%s:";
|
||||
// /**
|
||||
// * 登录短信重复发送间隔KEY(1分钟)
|
||||
// */
|
||||
// public final static String LOGIN_SEND_TIME = CACHE_PREFIX + "login:send:time:";
|
||||
// /**
|
||||
// * 登录短信验证码有效期KEY(5分钟)
|
||||
// */
|
||||
// public final static String LOGIN_CHECK = CACHE_PREFIX + "login:valid:";
|
||||
/**
|
||||
* 注册短信重复发送间隔KEY(1分钟)
|
||||
*/
|
||||
public final static String REGISTER_SEND_TIME = CACHE_PREFIX + "register:send:time:";
|
||||
/**
|
||||
* 注册短信验证码有效期KEY(5分钟)
|
||||
*/
|
||||
public final static String REGISTER_CHECK = CACHE_PREFIX + "register:valid:";
|
||||
/**
|
||||
* 找回密码短信重复发送间隔KEY(1分钟)
|
||||
*/
|
||||
public final static String RECOVER_SEND_TIME = CACHE_PREFIX + "recover:send:time:";
|
||||
/**
|
||||
* 找回密码短信验证码有效期KEY(5分钟)
|
||||
*/
|
||||
public final static String RECOVER_CHECK = CACHE_PREFIX + "recover:check:";
|
||||
/**
|
||||
* 重置支付密码短信重复发送间隔KEY(1分钟)
|
||||
*/
|
||||
public final static String RESET_SEND_TIME = CACHE_PREFIX + "reset:send:time:";
|
||||
/**
|
||||
* 重置支付密码短信验证码有效期KEY(5分钟)
|
||||
*/
|
||||
public final static String RESET_CHECK = CACHE_PREFIX + "reset:check:";
|
||||
/**
|
||||
* 默认发送短信验证码有效期期KEY(5分钟)
|
||||
*/
|
||||
public final static String DEFAULT_CHECK = CACHE_PREFIX + "default:check:";
|
||||
/**
|
||||
* 默认发送短信重复发送间隔KEY(1分钟)
|
||||
*/
|
||||
public final static String DEFAULT_SEND_TIME = CACHE_PREFIX + "default:send:time:";
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -4,25 +4,21 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @Description: 阿里短信模板枚举
|
||||
* @Author: jiang chao
|
||||
* @Time: 2024/10/15 17:32
|
||||
* @Classname: EAliSmsTemplate
|
||||
* @PackageName: com.hzs.common.core.enums
|
||||
* 阿里短信模板枚举
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum EAliSmsTemplate {
|
||||
|
||||
/**
|
||||
* 后台管理登录
|
||||
*/
|
||||
MANAGE_LOGIN("SMS_471485440"),
|
||||
// /**
|
||||
// * 后台管理登录
|
||||
// */
|
||||
// MANAGE_LOGIN("SMS_471485440"),
|
||||
|
||||
/**
|
||||
* 会员验证码(尊敬的会员,您的验证码为 ${code} ,该验证码5分钟内有效。)
|
||||
* 会员验证码(尊敬的会员您好,您的验证码为 ${code} ,该验证码10分钟内有效,请勿泄露于他人。)
|
||||
*/
|
||||
MEMBER_SMS("SMS_474440238"),
|
||||
MEMBER_SMS("SMS_485350565"),
|
||||
|
||||
;
|
||||
|
||||
|
|
|
@ -1,147 +0,0 @@
|
|||
package com.hzs.common.core.enums;
|
||||
|
||||
import com.hzs.common.core.constant.CacheConstants;
|
||||
import com.hzs.common.core.constant.SmsConstants;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @Description: 短信模板类型
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/9 14:10
|
||||
* @Classname: ESmsTemplate
|
||||
* @PackageName: com.hzs.common.core.enums
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum ESmsTemplate {
|
||||
|
||||
/**
|
||||
* 每日业绩
|
||||
*/
|
||||
ACHIEVEMENT(SmsConstants.SMS_CODE_PREFIX + "1", "", false),
|
||||
|
||||
/**
|
||||
* 结算安置问题
|
||||
*/
|
||||
SETTLE_ACHIEVE(SmsConstants.SMS_CODE_PREFIX + "2", "", false),
|
||||
|
||||
/**
|
||||
* 特殊用户
|
||||
*/
|
||||
SPECIAL_MEMBER(SmsConstants.SMS_CODE_PREFIX + "5", "", false),
|
||||
|
||||
/**
|
||||
* 验证码
|
||||
*/
|
||||
VERIFICATION(SmsConstants.SMS_CODE_PREFIX + "10", CacheConstants.CACHE_SMS_PREFIX + "verification:", false),
|
||||
/**
|
||||
* 后台验证码
|
||||
*/
|
||||
VERIFICATION_MANAGE(SmsConstants.SMS_CODE_PREFIX + "10", CacheConstants.CACHE_SMS_PREFIX + "verificationManage:", false),
|
||||
|
||||
/**
|
||||
* 会员注册成功
|
||||
*/
|
||||
REGISTER_SUCCESS(SmsConstants.SMS_CODE_PREFIX + "11", "", false),
|
||||
|
||||
/**
|
||||
* 忘记密码
|
||||
*/
|
||||
FORGET_PASSWORD(SmsConstants.SMS_CODE_PREFIX + "12", CacheConstants.CACHE_SMS_PREFIX + "forget:", false),
|
||||
|
||||
/**
|
||||
* 订单发货
|
||||
*/
|
||||
ORDER_SHIPPING(SmsConstants.SMS_CODE_PREFIX + "13", "", false),
|
||||
|
||||
/**
|
||||
* 库存预警
|
||||
*/
|
||||
STOCK_WARNING(SmsConstants.SMS_CODE_PREFIX + "15", "", false),
|
||||
|
||||
/**
|
||||
* 余额核对
|
||||
*/
|
||||
BALANCE_CHECK(SmsConstants.SMS_CODE_PREFIX + "17", "", false),
|
||||
|
||||
/**
|
||||
* 沙棘提货提醒
|
||||
*/
|
||||
PICK_REMIND(SmsConstants.SMS_CODE_PREFIX + "18", "", false),
|
||||
|
||||
|
||||
//////////////////// 上面的短信不能进行手动发送 ////////////////////
|
||||
|
||||
/**
|
||||
* 售后收货
|
||||
*/
|
||||
SMS21(SmsConstants.SMS_CODE_PREFIX + "21", "", true),
|
||||
/**
|
||||
* 售后换新
|
||||
*/
|
||||
SMS22(SmsConstants.SMS_CODE_PREFIX + "22", "", true),
|
||||
/**
|
||||
* 售后原件
|
||||
*/
|
||||
SMS23(SmsConstants.SMS_CODE_PREFIX + "23", "", true),
|
||||
/**
|
||||
* 售后换件
|
||||
*/
|
||||
SMS24(SmsConstants.SMS_CODE_PREFIX + "24", "", true),
|
||||
/**
|
||||
* 产品补发
|
||||
*/
|
||||
SMS25(SmsConstants.SMS_CODE_PREFIX + "25", "", true),
|
||||
/**
|
||||
* 售后受理
|
||||
*/
|
||||
SMS26(SmsConstants.SMS_CODE_PREFIX + "26", "", true),
|
||||
/**
|
||||
* 疫情延迟补发
|
||||
*/
|
||||
SMS27(SmsConstants.SMS_CODE_PREFIX + "27", "", true),
|
||||
/**
|
||||
* 疫情延迟发货
|
||||
*/
|
||||
SMS28(SmsConstants.SMS_CODE_PREFIX + "28", "", true),
|
||||
/**
|
||||
* 售后快速处理
|
||||
*/
|
||||
SMS29(SmsConstants.SMS_CODE_PREFIX + "29", "", true),
|
||||
/**
|
||||
* 支付订单退款
|
||||
*/
|
||||
SMS30(SmsConstants.SMS_CODE_PREFIX + "30", "", true),
|
||||
|
||||
;
|
||||
|
||||
/**
|
||||
* 短信模板编号
|
||||
*/
|
||||
private final String code;
|
||||
/**
|
||||
* 短信模板缓存KEY
|
||||
*/
|
||||
private final String cache;
|
||||
/**
|
||||
* 是否可以手动创建(true则可以通过短信发送功能进行发送)
|
||||
*/
|
||||
private final boolean create;
|
||||
|
||||
/**
|
||||
* 根据编号获取枚举
|
||||
*
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
public static ESmsTemplate getEnumsByCode(String code) {
|
||||
for (ESmsTemplate value : ESmsTemplate.values()) {
|
||||
if (value.getCode().equals(code)) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -90,6 +90,16 @@ public class BaseController {
|
|||
return result ? success() : error();
|
||||
}
|
||||
|
||||
/**
|
||||
* 响应返回结果
|
||||
*
|
||||
* @param result 结果
|
||||
* @return 操作结果
|
||||
*/
|
||||
protected AjaxResult toAjax(String result) {
|
||||
return null != result ? error(result) : success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回成功
|
||||
*/
|
||||
|
|
|
@ -15,9 +15,6 @@ import java.util.Date;
|
|||
|
||||
/**
|
||||
* 短信发送记录
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-03-08
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
|
|
|
@ -189,7 +189,6 @@ security:
|
|||
# 登录退出相关
|
||||
- /system/auth/**
|
||||
- /system/manage/third/**
|
||||
- /member/manager/member/third-member
|
||||
- /member/auth/**
|
||||
- /system/api/area/provinceList
|
||||
- /system/api/country/list
|
||||
|
@ -207,19 +206,17 @@ security:
|
|||
# 找回密码相关
|
||||
- /member/api/sms/forget-verification
|
||||
- /member/api/member/forget-password
|
||||
# 嗨粉短信验证码
|
||||
- /member/api/sms/fans-verification
|
||||
# 分享注册
|
||||
- /member/api/member/reg-share-member
|
||||
- /member/api/member/validate-share-member/*
|
||||
- /member/api/member/query-country-prefix/*
|
||||
# 分享注册校验
|
||||
- /member/api/share/check-share-code
|
||||
# 嗨粉注册
|
||||
- /member/api/fans/register
|
||||
# # 分享注册
|
||||
# - /member/api/member/reg-share-member
|
||||
# - /member/api/member/validate-share-member/*
|
||||
# - /member/api/member/query-country-prefix/*
|
||||
# # 分享注册校验
|
||||
# - /member/api/share/check-share-code
|
||||
# # 嗨粉注册
|
||||
# - /member/api/fans/register
|
||||
- /system/api/idempotent/generate
|
||||
# 获取点亮区域
|
||||
- /system/manage/area/get-light-area
|
||||
# # 获取点亮区域
|
||||
# - /system/manage/area/get-light-area
|
||||
|
||||
|
||||
# 日志配置
|
||||
|
|
|
@ -5,26 +5,16 @@ import com.hzs.common.core.domain.R;
|
|||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.member.account.IMemberJobServiceApi;
|
||||
import com.hzs.member.base.IMemberServiceApi;
|
||||
import com.hzs.third.sms.util.SmsUtil;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 会员模块定时任务
|
||||
*
|
||||
* @Description:
|
||||
* @Author: ljc
|
||||
* @Time: 2023/4/11 19:11
|
||||
* @Classname: CuMemberJob
|
||||
* @Package_name: com.hzs.member.job
|
||||
*/
|
||||
@ConditionalOnProperty(name = "xxl-job.start", havingValue = "true")
|
||||
@Component
|
||||
|
@ -83,7 +73,6 @@ public class CuMemberJob {
|
|||
memberJobServiceApi.saveGoalsMonthRecord();
|
||||
}
|
||||
|
||||
// @Scheduled(cron = "00 21 11 * * ?")
|
||||
@XxlJob("sendPlaceErrorMsg")
|
||||
public void sendPlaceErrorMsg() {
|
||||
List<CuMemberExt> cuMemberList = memberServiceApi.queryPlaceErrorCode().getData();
|
||||
|
@ -96,15 +85,7 @@ public class CuMemberJob {
|
|||
|
||||
}
|
||||
sb.append("结算错误,安置有问题");
|
||||
List<String> phoneList = new ArrayList<>();
|
||||
phoneList.add("15910608312");
|
||||
phoneList.add("18665770108");
|
||||
phoneList.forEach(phone -> {
|
||||
String smsStr = SmsUtil.sendSms(phone, sb.toString());
|
||||
log.info("发送短信{}", smsStr);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ import com.hzs.member.account.IMemberJobServiceApi;
|
|||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.system.base.ICurrencyServiceApi;
|
||||
import com.hzs.system.base.dto.CurrencyDTO;
|
||||
import com.hzs.third.sms.util.SmsUtil;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
|
@ -24,14 +23,6 @@ import java.math.RoundingMode;
|
|||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @BelongsProject: hzs_cloud
|
||||
* @BelongsPackage: com.hzs.third.job
|
||||
* @Author: sui qing
|
||||
* @CreateTime: 2023-03-29 18:39
|
||||
* @Description: 定时发送业绩短信
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@ConditionalOnProperty(name = "xxl-job.start", havingValue = "true")
|
||||
@Component
|
||||
|
@ -47,7 +38,6 @@ public class OrderJob {
|
|||
/**
|
||||
* 定时关单 订单三十分钟未支付自动关闭
|
||||
*/
|
||||
// TODO 设置定时任务 启动频率
|
||||
@XxlJob("autoCloseOrder")
|
||||
public void timingCloseOrder() {
|
||||
orderServiceApi.closeOrder();
|
||||
|
@ -55,12 +45,8 @@ public class OrderJob {
|
|||
|
||||
/*
|
||||
* @description: 定时发送业绩短信
|
||||
* @author: sui q
|
||||
* @date: 2023/9/6 13:54
|
||||
* @param: null null
|
||||
**/
|
||||
@XxlJob("sendOrderAchieve")
|
||||
// @Scheduled(cron = "00 49 15 * * ?")
|
||||
public void sendOrderAchieveMsg() {
|
||||
Date startDate = DateUtils.currentDate();
|
||||
Date endDate = DateUtils.afterDate(1, ChronoUnit.DAYS);
|
||||
|
@ -110,14 +96,6 @@ public class OrderJob {
|
|||
.append(",D=").append(calculateAchieve(haiFunAchieve))
|
||||
.append(",合计=").append(calculateAchieve(registerAchieve.add(updateAchieve)
|
||||
.add(repurchaseAchieve).add(haiFunAchieve).add(directSupplyAchieve))).append(",Q=").append(calculateAchieve(rechargeTotalAmount)).append("。");
|
||||
List<String> phoneList = new ArrayList<>();
|
||||
phoneList.add("18454272386");
|
||||
phoneList.add("18389196333");
|
||||
phoneList.add("18561823095");
|
||||
phoneList.forEach(phone -> {
|
||||
String smsStr = SmsUtil.sendSms(phone, stringBuilder.toString());
|
||||
log.info("发送短信{}", smsStr);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
package com.hzs.third.job;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.constant.SystemFieldConstants;
|
||||
import com.hzs.common.core.enums.ESmsSendResult;
|
||||
import com.hzs.common.core.enums.ESmsSendStatus;
|
||||
import com.hzs.common.core.enums.ESmsSendType;
|
||||
import com.hzs.common.domain.third.sms.TSmsRecord;
|
||||
import com.hzs.third.sms.service.ITSmsRecordService;
|
||||
import com.hzs.third.sms.util.SmsUtil;
|
||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 短信定时任务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/11 16:22
|
||||
* @Classname: SmsJob
|
||||
* @PackageName: com.hzs.third.job
|
||||
*/
|
||||
@Slf4j
|
||||
@ConditionalOnProperty(name = "xxl-job.start", havingValue = "true")
|
||||
@Component
|
||||
public class SmsJob {
|
||||
|
||||
@Autowired
|
||||
private ITSmsRecordService itSmsRecordService;
|
||||
|
||||
/**
|
||||
* 定时发送短信
|
||||
*/
|
||||
// @Scheduled(cron = "0 * * * * ?")
|
||||
@XxlJob("sendSms")
|
||||
public void sendSms() {
|
||||
log.info("定时发送短信任务开始!");
|
||||
|
||||
Date date = new Date();
|
||||
|
||||
QueryWrapper<TSmsRecord> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("SEND_TYPE", ESmsSendType.SCHEDULED.getValue());
|
||||
queryWrapper.eq("SEND_STATUS", ESmsSendStatus.NOT_SEND.getValue());
|
||||
queryWrapper.le("SEND_TIME", date);
|
||||
queryWrapper.orderByAsc(SystemFieldConstants.CREATION_TIME);
|
||||
List<TSmsRecord> list = itSmsRecordService.list(queryWrapper);
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
log.info("本次共需要发送短信{}条", list.size());
|
||||
|
||||
for (TSmsRecord tSmsRecord : list) {
|
||||
String str = SmsUtil.sendSms(tSmsRecord.getPhone(), tSmsRecord.getContent());
|
||||
if (null == str) {
|
||||
// 发送成功
|
||||
tSmsRecord.setSendResult(ESmsSendResult.SUCCESS.getValue());
|
||||
} else {
|
||||
tSmsRecord.setSendResult(ESmsSendResult.FAIL.getValue());
|
||||
}
|
||||
tSmsRecord.setSendStatus(ESmsSendStatus.SEND.getValue());
|
||||
tSmsRecord.setPkModified(MagicNumberConstants.PK_ADMIN);
|
||||
tSmsRecord.setModifiedTime(date);
|
||||
itSmsRecordService.updateById(tSmsRecord);
|
||||
}
|
||||
} else {
|
||||
log.info("本次没有需要发送的短信");
|
||||
}
|
||||
|
||||
log.info("定时发送短信任务结束!");
|
||||
}
|
||||
|
||||
}
|
|
@ -62,7 +62,7 @@ public class PayServiceImpl implements IPayService {
|
|||
String payNumber, Date payTime, BigDecimal payMoney,
|
||||
EPayChannel ePayChannel, String channelNumber) {
|
||||
Long pkId = null;
|
||||
String redisKey = CacheConstants.ONLINE_PAYE_KEY + businessCode;
|
||||
String redisKey = CacheConstants.ONLINE_PAY_KEY + businessCode;
|
||||
|
||||
try {
|
||||
// 校验支付信息状态、业务与支付金额是否一致等
|
||||
|
|
|
@ -6,44 +6,17 @@ import org.springframework.stereotype.Component;
|
|||
|
||||
/**
|
||||
* 短信配置
|
||||
* @author hzs
|
||||
*/
|
||||
@Data
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "sms")
|
||||
public class SmsConfig {
|
||||
|
||||
/**
|
||||
* 企业ID
|
||||
*/
|
||||
private String corpId;
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String pwd;
|
||||
/**
|
||||
* 短信请求URL
|
||||
*/
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 是否发送短信(true发送,false不发送)
|
||||
*/
|
||||
private boolean enable;
|
||||
|
||||
/**
|
||||
* 企业ID(国际)
|
||||
*/
|
||||
private String corpIdInter;
|
||||
/**
|
||||
* 密码(国际)
|
||||
*/
|
||||
private String pwdInter;
|
||||
/**
|
||||
* 短信请求URL(国际)
|
||||
*/
|
||||
private String urlInter;
|
||||
|
||||
/**
|
||||
* 阿里短信accessKeyId
|
||||
*/
|
||||
|
|
|
@ -4,11 +4,9 @@ import com.hzs.common.core.annotation.Log;
|
|||
import com.hzs.common.core.enums.*;
|
||||
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.third.sms.ext.TSmsRecordExt;
|
||||
import com.hzs.common.security.utils.SecurityUtils;
|
||||
import com.hzs.third.sms.param.SmsCreateParam;
|
||||
import com.hzs.third.sms.param.SmsRecordQueryParam;
|
||||
import com.hzs.third.sms.service.ITSmsRecordService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -18,11 +16,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 短信发送记录
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/9 16:10
|
||||
* @Classname: SmsRecordController
|
||||
* @PackageName: com.hzs.third.sms.controller
|
||||
* 短信发送记录
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/manage/sms-record/")
|
||||
|
@ -37,7 +31,7 @@ public class SmsRecordController extends BaseController {
|
|||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.SMS_CONFIG, business = EOperationBusiness.SMS_RECORD ,method = EOperationMethod.SELECT)
|
||||
@Log(module = EOperationModule.SMS_CONFIG, business = EOperationBusiness.SMS_RECORD, method = EOperationMethod.SELECT)
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SmsRecordQueryParam param) {
|
||||
startPage();
|
||||
|
@ -56,7 +50,7 @@ public class SmsRecordController extends BaseController {
|
|||
* @param response
|
||||
* @param param
|
||||
*/
|
||||
@Log(module = EOperationModule.SMS_CONFIG, business = EOperationBusiness.SMS_RECORD ,method = EOperationMethod.EXPORT)
|
||||
@Log(module = EOperationModule.SMS_CONFIG, business = EOperationBusiness.SMS_RECORD, method = EOperationMethod.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, SmsRecordQueryParam param) {
|
||||
List<TSmsRecordExt> list = itSmsRecordService.queryList(param, SecurityUtils.getPkCountry());
|
||||
|
@ -70,28 +64,4 @@ public class SmsRecordController extends BaseController {
|
|||
util.exportExcel(response, list, "短信记录导出");
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建短信
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@Log(module = EOperationModule.SMS_CONFIG, business = EOperationBusiness.SMS_CREATE ,method = EOperationMethod.INSERT)
|
||||
@PostMapping("/create")
|
||||
public AjaxResult create(@RequestBody SmsCreateParam param) {
|
||||
if (null == param.getTemplateId() || null == param.getSendScope() || null == param.getSendType()) {
|
||||
return AjaxResult.error("缺少参数");
|
||||
}
|
||||
if (ESmsSendType.SCHEDULED.getValue() == param.getSendType() && null == param.getSendTime()) {
|
||||
// 定时发送,需要有发送时间
|
||||
return AjaxResult.error("缺少参数");
|
||||
}
|
||||
|
||||
String str = itSmsRecordService.pageSms(param, SecurityUtils.getUserId(), SecurityUtils.getPkCountry());
|
||||
if (null == str) {
|
||||
return AjaxResult.success();
|
||||
}
|
||||
return AjaxResult.error(str);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,9 +10,6 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* 短信发送记录 Mapper 接口
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-03-08
|
||||
*/
|
||||
public interface TSmsRecordMapper extends BaseMapper<TSmsRecord> {
|
||||
|
||||
|
@ -25,12 +22,4 @@ public interface TSmsRecordMapper extends BaseMapper<TSmsRecord> {
|
|||
*/
|
||||
List<TSmsRecordExt> queryList(@Param("param") SmsRecordQueryParam param, @Param("pkCountry") Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
*
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
int insertBatch(@Param("list") List<TSmsRecord> list);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
package com.hzs.third.sms.param;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 创建短信入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/9 18:12
|
||||
* @Classname: SmsCreateParam
|
||||
* @PackageName: com.hzs.third.sms.param
|
||||
*/
|
||||
@Data
|
||||
public class SmsCreateParam {
|
||||
|
||||
/**
|
||||
* 短信模板ID
|
||||
*/
|
||||
private Integer templateId;
|
||||
|
||||
/**
|
||||
* 发送范围 -- ESmsSendScope
|
||||
*/
|
||||
private Integer sendScope;
|
||||
|
||||
/**
|
||||
* 会员ID列表
|
||||
*/
|
||||
private List<Long> memberList;
|
||||
|
||||
/**
|
||||
* 订单ID列表
|
||||
*/
|
||||
private List<Long> orderList;
|
||||
|
||||
/**
|
||||
* 指定手机号串
|
||||
*/
|
||||
private String phones;
|
||||
|
||||
/**v
|
||||
* 参数列表
|
||||
*/
|
||||
private List<String> paramList;
|
||||
|
||||
/**
|
||||
* 发送方式 -- ESmsSendType
|
||||
*/
|
||||
private Integer sendType;
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date sendTime;
|
||||
|
||||
}
|
|
@ -5,11 +5,7 @@ import lombok.Data;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 短信发送记录查询入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/8 10:45
|
||||
* @Classname: SmsTemplateParam
|
||||
* @PackageName: com.hzs.third.sms.param
|
||||
* 短信发送记录查询入参
|
||||
*/
|
||||
@Data
|
||||
public class SmsRecordQueryParam {
|
||||
|
|
|
@ -5,11 +5,7 @@ import lombok.Data;
|
|||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description: 短信模板查询入参
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/8 10:45
|
||||
* @Classname: SmsTemplateParam
|
||||
* @PackageName: com.hzs.third.sms.param
|
||||
* 短信模板查询入参
|
||||
*/
|
||||
@Data
|
||||
public class SmsTemplateQueryParam {
|
||||
|
|
|
@ -3,50 +3,26 @@ package com.hzs.third.sms.provider;
|
|||
import com.hzs.common.core.domain.R;
|
||||
import com.hzs.common.core.enums.EAliSmsTemplate;
|
||||
import com.hzs.third.sms.ISmsServiceApi;
|
||||
import com.hzs.third.sms.dto.SmsServiceDTO;
|
||||
import com.hzs.third.sms.service.ISmsService;
|
||||
import com.hzs.third.sms.util.SmsUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
/**
|
||||
* 短信服务提供类
|
||||
* @author hzs
|
||||
*/
|
||||
@Slf4j
|
||||
@DubboService
|
||||
public class SmsServiceProvider implements ISmsServiceApi {
|
||||
|
||||
@Autowired
|
||||
private ISmsService iSmsService;
|
||||
|
||||
@Override
|
||||
public R<String> send(SmsServiceDTO param) {
|
||||
try {
|
||||
// String str = iSmsService.sendSms(param);
|
||||
// if (null == str) {
|
||||
// return R.ok();
|
||||
// }
|
||||
// log.error("发送短信失败: {}", str);
|
||||
// return R.fail(str);
|
||||
return R.fail("功能正在完善中...");
|
||||
} catch (Exception e) {
|
||||
log.error("发送短信异常 param: {}", param, e);
|
||||
return R.fail(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<String> sendAliSms(String phone, String code, EAliSmsTemplate aliSmsTemplate) {
|
||||
try {
|
||||
// String str = SmsUtil.sendAliSms(phone, code, aliSmsTemplate);
|
||||
// if (null == str) {
|
||||
// return R.ok();
|
||||
// }
|
||||
// log.error("发送阿里短信失败: {}", str);
|
||||
// return R.fail(str);
|
||||
return R.fail("功能正在完善中...");
|
||||
String str = SmsUtil.sendAliSms(phone, code, aliSmsTemplate);
|
||||
if (null == str) {
|
||||
return R.ok();
|
||||
}
|
||||
log.error("发送阿里短信失败: {}", str);
|
||||
return R.fail(str);
|
||||
} catch (Exception e) {
|
||||
log.error("发送阿里短信异常 phone: {}, code: {}", phone, code, e);
|
||||
return R.fail(e.getMessage());
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
package com.hzs.third.sms.service;
|
||||
|
||||
import com.hzs.third.sms.dto.SmsServiceDTO;
|
||||
|
||||
/**
|
||||
* @Description: 短信服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/8 14:18
|
||||
* @Classname: ISmsService
|
||||
* @PackageName: com.hzs.third.sms.service
|
||||
*/
|
||||
public interface ISmsService {
|
||||
|
||||
/**
|
||||
* 实时发送短信
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
String sendSms(SmsServiceDTO param);
|
||||
|
||||
}
|
|
@ -3,16 +3,12 @@ package com.hzs.third.sms.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.hzs.common.domain.third.sms.TSmsRecord;
|
||||
import com.hzs.common.domain.third.sms.ext.TSmsRecordExt;
|
||||
import com.hzs.third.sms.param.SmsCreateParam;
|
||||
import com.hzs.third.sms.param.SmsRecordQueryParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 短信发送记录 服务类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-03-08
|
||||
*/
|
||||
public interface ITSmsRecordService extends IService<TSmsRecord> {
|
||||
|
||||
|
@ -25,14 +21,4 @@ public interface ITSmsRecordService extends IService<TSmsRecord> {
|
|||
*/
|
||||
List<TSmsRecordExt> queryList(SmsRecordQueryParam param, Integer pkCountry);
|
||||
|
||||
/**
|
||||
* 页面添加短信
|
||||
*
|
||||
* @param param
|
||||
* @param userId
|
||||
* @param pkCountry
|
||||
* @return
|
||||
*/
|
||||
String pageSms(SmsCreateParam param, Long userId, Integer pkCountry);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,99 +0,0 @@
|
|||
package com.hzs.third.sms.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.hzs.common.core.constant.MagicNumberConstants;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.domain.third.sms.TSmsRecord;
|
||||
import com.hzs.common.domain.third.sms.TSmsTemplate;
|
||||
import com.hzs.third.sms.dto.SmsServiceDTO;
|
||||
import com.hzs.third.sms.service.ISmsService;
|
||||
import com.hzs.third.sms.service.ITSmsRecordService;
|
||||
import com.hzs.third.sms.service.ITSmsTemplateService;
|
||||
import com.hzs.third.sms.util.SmsUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description: 短信服务
|
||||
* @Author: jiang chao
|
||||
* @Time: 2023/3/8 14:18
|
||||
* @Classname: SmsServiceImpl
|
||||
* @PackageName: com.hzs.third.sms.service.impl
|
||||
*/
|
||||
@Service
|
||||
public class SmsServiceImpl implements ISmsService {
|
||||
|
||||
@Autowired
|
||||
private ITSmsTemplateService itSmsTemplateService;
|
||||
@Autowired
|
||||
private ITSmsRecordService itSmsRecordService;
|
||||
|
||||
@Override
|
||||
public String sendSms(SmsServiceDTO param) {
|
||||
QueryWrapper<TSmsTemplate> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("TEMPLATE_CODE", param.getTemplateCode());
|
||||
queryWrapper.eq("PK_COUNTRY", param.getPkCountry());
|
||||
TSmsTemplate smsTemplate = itSmsTemplateService.getOne(queryWrapper);
|
||||
if (null == smsTemplate) {
|
||||
return "短信模板不存在";
|
||||
}
|
||||
if (EYesNo.NO.getIntValue() == smsTemplate.getEnable()) {
|
||||
return "短信模板禁止使用";
|
||||
}
|
||||
|
||||
// 手机号
|
||||
String phone = param.getPhone();
|
||||
// 发送内容
|
||||
String content = smsTemplate.getTemplateContent();
|
||||
// 参数列表
|
||||
List<String> paramList = param.getParamList();
|
||||
|
||||
if (smsTemplate.getParamNum() != 0) {
|
||||
if (smsTemplate.getParamNum() != paramList.size()) {
|
||||
return "缺少短信参数";
|
||||
}
|
||||
content = String.format(content, paramList.toArray());
|
||||
}
|
||||
|
||||
Date nowDate = new Date();
|
||||
|
||||
// 短信发送记录
|
||||
TSmsRecord smsRecord = new TSmsRecord();
|
||||
|
||||
// 发送短信
|
||||
String smsStr = SmsUtil.sendSms(phone, content);
|
||||
if (null == smsStr) {
|
||||
// 发送成功
|
||||
smsRecord.setSendResult(ESmsSendResult.SUCCESS.getValue());
|
||||
} else {
|
||||
// 发送失败
|
||||
smsRecord.setSendResult(ESmsSendResult.FAIL.getValue());
|
||||
}
|
||||
|
||||
if (null == param.getSaveFlag() || param.getSaveFlag()) {
|
||||
// 保存短信发送记录
|
||||
smsRecord.setPkSmsTemplate(smsTemplate.getPkId());
|
||||
smsRecord.setPkMember(param.getPkMember());
|
||||
smsRecord.setPhone(phone);
|
||||
smsRecord.setContent(content);
|
||||
smsRecord.setSendScope(ESmsSendScope.MEMBER.getValue());
|
||||
smsRecord.setSendType(ESmsSendType.IMMEDIATELY.getValue());
|
||||
smsRecord.setSendStatus(ESmsSendStatus.SEND.getValue());
|
||||
smsRecord.setSendTime(nowDate);
|
||||
if (null != param.getUserId()) {
|
||||
smsRecord.setPkCreator(param.getUserId());
|
||||
} else {
|
||||
smsRecord.setPkCreator(MagicNumberConstants.PK_ADMIN);
|
||||
}
|
||||
smsRecord.setCreationTime(nowDate);
|
||||
smsRecord.setModifiedTime(nowDate);
|
||||
smsRecord.setPkCountry(param.getPkCountry());
|
||||
itSmsRecordService.save(smsRecord);
|
||||
}
|
||||
return smsStr;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,248 +1,24 @@
|
|||
package com.hzs.third.sms.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.hzs.common.core.enums.*;
|
||||
import com.hzs.common.core.utils.StringUtils;
|
||||
import com.hzs.common.domain.member.ext.CuMemberExt;
|
||||
import com.hzs.common.domain.sale.ext.SaOrderItemsExt;
|
||||
import com.hzs.common.domain.third.sms.TSmsRecord;
|
||||
import com.hzs.common.domain.third.sms.TSmsTemplate;
|
||||
import com.hzs.common.domain.third.sms.ext.TSmsRecordExt;
|
||||
import com.hzs.member.base.IMemberServiceApi;
|
||||
import com.hzs.sale.order.ISaOrderServiceApi;
|
||||
import com.hzs.third.sms.mapper.TSmsRecordMapper;
|
||||
import com.hzs.third.sms.param.SmsCreateParam;
|
||||
import com.hzs.third.sms.param.SmsRecordQueryParam;
|
||||
import com.hzs.third.sms.service.ITSmsRecordService;
|
||||
import com.hzs.third.sms.service.ITSmsTemplateService;
|
||||
import com.hzs.third.sms.util.SmsUtil;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 短信发送记录 服务实现类
|
||||
*
|
||||
* @author hzs
|
||||
* @since 2023-03-08
|
||||
*/
|
||||
@Service
|
||||
public class TSmsRecordServiceImpl extends ServiceImpl<TSmsRecordMapper, TSmsRecord> implements ITSmsRecordService {
|
||||
|
||||
@Autowired
|
||||
private ITSmsTemplateService itSmsTemplateService;
|
||||
|
||||
@DubboReference
|
||||
private IMemberServiceApi iMemberServiceApi;
|
||||
@DubboReference
|
||||
private ISaOrderServiceApi iSaOrderServiceApi;
|
||||
|
||||
@Override
|
||||
public List<TSmsRecordExt> queryList(SmsRecordQueryParam param, Integer pkCountry) {
|
||||
return baseMapper.queryList(param, pkCountry);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public String pageSms(SmsCreateParam param, Long userId, Integer pkCountry) {
|
||||
TSmsTemplate smsTemplate = itSmsTemplateService.getById(param.getTemplateId());
|
||||
if (null == smsTemplate) {
|
||||
return "短信模板不存在";
|
||||
}
|
||||
if (EYesNo.NO.getIntValue() == smsTemplate.getEnable()) {
|
||||
return "短信模板禁止使用";
|
||||
}
|
||||
// 模板编号
|
||||
String templateCode = smsTemplate.getTemplateCode();
|
||||
// 发送内容
|
||||
String templateContent = smsTemplate.getTemplateContent();
|
||||
|
||||
ESmsTemplate eSmsTemplate = ESmsTemplate.getEnumsByCode(templateCode);
|
||||
if (null != eSmsTemplate) {
|
||||
// 短信枚举存在
|
||||
if (!eSmsTemplate.isCreate()) {
|
||||
return "该短信模板不能手动发送";
|
||||
}
|
||||
}
|
||||
|
||||
// 需要入库的短信记录列表
|
||||
List<TSmsRecord> smsRecordList = new ArrayList<>();
|
||||
|
||||
// 发送范围
|
||||
Integer sendScope = param.getSendScope();
|
||||
// 发送方式
|
||||
Integer sendType = param.getSendType();
|
||||
// 发送时间
|
||||
Date sendTime = param.getSendTime();
|
||||
// 参数列表
|
||||
List<String> paramList = param.getParamList();
|
||||
|
||||
// 短信枚举存在,则需要判断使用哪种方式
|
||||
if (ESmsSendScope.MEMBER.getValue() == sendScope) {
|
||||
// 指定会员
|
||||
List<Long> pkMemberList = param.getMemberList();
|
||||
if (CollectionUtil.isNotEmpty(pkMemberList)) {
|
||||
// 根据传入的会员ID查询会员信息
|
||||
List<CuMemberExt> cuMemberList = iMemberServiceApi.findMemberByMemberId(pkMemberList, pkCountry).getData();
|
||||
|
||||
// 预置会员短信模板,参数使用固定值进行填
|
||||
if (SmsUtil.getMemberTemplateList().contains(smsTemplate.getTemplateCode())) {
|
||||
// 预置模板,可以进行处理
|
||||
} else {
|
||||
// 非预置模板
|
||||
for (CuMemberExt cuMember : cuMemberList) {
|
||||
// 发送内容
|
||||
String content;
|
||||
if (CollectionUtil.isNotEmpty(paramList)) {
|
||||
// 传入参数列表
|
||||
content = String.format(templateContent, paramList.toArray());
|
||||
} else {
|
||||
// 非传入参数列表,默认使用会员编号做为填充参数
|
||||
content = String.format(templateContent, cuMember.getMemberCode());
|
||||
}
|
||||
|
||||
smsRecordList.add(this.createRecord(
|
||||
smsTemplate.getPkId(), cuMember.getPkId(), cuMember.getPhone(),
|
||||
content, sendScope, sendType, sendTime, userId, pkCountry
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (ESmsSendScope.ORDER.getValue() == sendScope) {
|
||||
// 指定订单
|
||||
List<Long> orderIdList = param.getOrderList();
|
||||
if (CollectionUtil.isNotEmpty(orderIdList)) {
|
||||
// 根据传入的订单ID查询订单信息
|
||||
List<SaOrderItemsExt> saOrderList = iSaOrderServiceApi.queryOrderItemsListByOrderId(orderIdList, pkCountry).getData();
|
||||
|
||||
// 预置订单短信模板,参数使用固定值进行填
|
||||
if (SmsUtil.getOrderTemplateList().contains(smsTemplate.getTemplateCode())) {
|
||||
// 预置模板,可以进行处理
|
||||
for (SaOrderItemsExt saOrder : saOrderList) {
|
||||
// 发送内容
|
||||
String content = templateContent;
|
||||
if (CollectionUtil.isNotEmpty(paramList)) {
|
||||
// 传入参数列表
|
||||
content = String.format(templateContent, paramList.toArray());
|
||||
} else {
|
||||
// 非传入参数列表,默认使用快递单号做为填充参数
|
||||
if (smsTemplate.getParamNum() == 1) {
|
||||
content = String.format(templateContent, saOrder.getLogisticsCode());
|
||||
}
|
||||
}
|
||||
|
||||
smsRecordList.add(this.createRecord(
|
||||
smsTemplate.getPkId(), saOrder.getPkMember(), saOrder.getRecPhone(),
|
||||
content, sendScope, sendType, sendTime, userId, pkCountry
|
||||
));
|
||||
}
|
||||
} else {
|
||||
// 非预置模板
|
||||
for (SaOrderItemsExt saOrder : saOrderList) {
|
||||
// 发送内容
|
||||
String content = templateContent;
|
||||
if (CollectionUtil.isNotEmpty(paramList)) {
|
||||
// 传入参数列表
|
||||
content = String.format(templateContent, paramList.toArray());
|
||||
} else {
|
||||
// 非传入参数列表,默认使用快递单号做为填充参数
|
||||
if (smsTemplate.getParamNum() == 1) {
|
||||
content = String.format(templateContent, saOrder.getLogisticsCode());
|
||||
} else if (smsTemplate.getParamNum() == 2) {
|
||||
content = String.format(templateContent, saOrder.getOrderCode(), saOrder.getLogisticsCode());
|
||||
}
|
||||
}
|
||||
|
||||
smsRecordList.add(this.createRecord(
|
||||
smsTemplate.getPkId(), saOrder.getPkMember(), saOrder.getRecPhone(),
|
||||
content, sendScope, sendType, sendTime, userId, pkCountry
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 自定义手机号
|
||||
String phones = param.getPhones();
|
||||
if (StringUtils.isNotEmpty(phones)) {
|
||||
// 处理传入手机号
|
||||
String[] phoneArr = phones.replaceAll(";", ";").split(";");
|
||||
|
||||
// 自定义手机号,不区分短信模板
|
||||
for (String phone : phoneArr) {
|
||||
// 发送内容
|
||||
String content = templateContent;
|
||||
if (CollectionUtil.isNotEmpty(paramList)) {
|
||||
// 传入参数列表
|
||||
content = String.format(templateContent, paramList.toArray());
|
||||
}
|
||||
|
||||
smsRecordList.add(this.createRecord(
|
||||
smsTemplate.getPkId(), null, phone,
|
||||
content, sendScope, sendType, sendTime, userId, pkCountry
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (StringUtils.isNotEmpty(smsRecordList)) {
|
||||
// 有发送数据,则进行处理
|
||||
if (ESmsSendType.IMMEDIATELY.getValue() == sendType) {
|
||||
// 立即发送
|
||||
Date nowDate = new Date();
|
||||
|
||||
// 目前单现程推送,后续如果发送慢可以考虑多线程处理
|
||||
smsRecordList.forEach((tSmsRecord -> {
|
||||
// 已发送
|
||||
tSmsRecord.setSendStatus(ESmsSendStatus.SEND.getValue());
|
||||
tSmsRecord.setSendTime(nowDate);
|
||||
if (null == SmsUtil.sendSms(tSmsRecord.getPhone(), tSmsRecord.getContent())) {
|
||||
// 发送成功
|
||||
tSmsRecord.setSendResult(ESmsSendResult.SUCCESS.getValue());
|
||||
} else {
|
||||
// 发送失败
|
||||
tSmsRecord.setSendResult(ESmsSendResult.FAIL.getValue());
|
||||
}
|
||||
}));
|
||||
}
|
||||
baseMapper.insertBatch(smsRecordList);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建短信记录
|
||||
*
|
||||
* @param templateId 模板ID
|
||||
* @param pkMember 接收用户ID
|
||||
* @param phone 发送手机号
|
||||
* @param content 发送内容
|
||||
* @param sendScope 发送范围 -- ESmsSendScope
|
||||
* @param sendType 发送类型 -- ESmsSendType
|
||||
* @param sendTime 发送时间
|
||||
* @param userId 操作用户ID
|
||||
* @param pkCountry 所属国家
|
||||
* @return
|
||||
*/
|
||||
private TSmsRecord createRecord(Integer templateId, Long pkMember, String phone,
|
||||
String content, Integer sendScope, Integer sendType,
|
||||
Date sendTime, Long userId, Integer pkCountry) {
|
||||
TSmsRecord tSmsRecord = new TSmsRecord();
|
||||
tSmsRecord.setPkSmsTemplate(templateId);
|
||||
tSmsRecord.setPkMember(pkMember);
|
||||
tSmsRecord.setPhone(phone);
|
||||
tSmsRecord.setContent(content);
|
||||
tSmsRecord.setSendScope(sendScope);
|
||||
tSmsRecord.setSendType(sendType);
|
||||
tSmsRecord.setSendStatus(ESmsSendStatus.NOT_SEND.getValue());
|
||||
tSmsRecord.setSendResult(ESmsSendResult.NOT_SEND.getValue());
|
||||
tSmsRecord.setSendTime(sendTime);
|
||||
tSmsRecord.setPkCreator(userId);
|
||||
tSmsRecord.setPkCountry(pkCountry);
|
||||
return tSmsRecord;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,8 +4,6 @@ import cn.hutool.json.JSONUtil;
|
|||
import com.aliyun.dysmsapi20170525.Client;
|
||||
import com.hzs.common.core.constant.Constants;
|
||||
import com.hzs.common.core.enums.EAliSmsTemplate;
|
||||
import com.hzs.common.core.enums.ESmsTemplate;
|
||||
import com.hzs.common.core.utils.HttpClientUtil;
|
||||
import com.hzs.common.core.utils.SpringUtils;
|
||||
import com.hzs.third.sms.config.SmsConfig;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -16,18 +14,11 @@ import org.springframework.stereotype.Component;
|
|||
import com.aliyun.dysmsapi20170525.models.*;
|
||||
import com.aliyun.teaopenapi.models.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Description: 发送短信工具类
|
||||
*
|
||||
* @author: jiang chao
|
||||
* Time: 2022/9/24 9:58
|
||||
* Classname: SmsUtil
|
||||
* PackageName: com.hzs.common.utils
|
||||
* 发送短信工具类
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
|
@ -35,64 +26,6 @@ public class SmsUtil implements InitializingBean {
|
|||
|
||||
private static SmsConfig smsConfig;
|
||||
|
||||
// 会员预置短信模板
|
||||
private static List<String> memberTemplateList;
|
||||
|
||||
// 订单预置短信模板
|
||||
private static List<String> orderTemplateList;
|
||||
|
||||
/**
|
||||
* 发送短信
|
||||
*
|
||||
* @param phone 手机号
|
||||
* @param content 发送内容
|
||||
* @return
|
||||
*/
|
||||
public static String sendSms(String phone, String content) {
|
||||
if (StringUtils.isAnyEmpty(phone, content)) {
|
||||
return "手机号或内容为空";
|
||||
}
|
||||
|
||||
if (smsConfig.isEnable()) {
|
||||
// 只有当开启发送短信才进行发送
|
||||
|
||||
String corpid = smsConfig.getCorpId();
|
||||
String pwd = smsConfig.getPwd();
|
||||
String url = smsConfig.getUrl();
|
||||
|
||||
if (phone.length() == 10 && phone.startsWith("09")) {
|
||||
// 台湾手机号码处理(10位长度,以09开头)
|
||||
corpid = smsConfig.getCorpIdInter();
|
||||
pwd = smsConfig.getPwdInter();
|
||||
url = smsConfig.getUrl();
|
||||
}
|
||||
|
||||
Map<String, String> paramMap = new HashMap<>();
|
||||
paramMap.put("corpid", corpid);
|
||||
paramMap.put("pwd", pwd);
|
||||
paramMap.put("mobile", phone);
|
||||
paramMap.put("content", content);
|
||||
|
||||
log.info("短信发送参数: {}", paramMap);
|
||||
|
||||
String result = HttpClientUtil.get(url, paramMap);
|
||||
|
||||
log.info("短信发送结果: {}", result);
|
||||
|
||||
if (StringUtils.isNotEmpty(result)) {
|
||||
if (Integer.parseInt(result) > 0) {
|
||||
return null;
|
||||
} else {
|
||||
log.error("短信发送失败, status: {}", result);
|
||||
}
|
||||
}
|
||||
return "发送失败";
|
||||
} else {
|
||||
log.info("短信发送手机:{}, 内容: {}", phone, content);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送阿里短信
|
||||
*
|
||||
|
@ -104,7 +37,7 @@ public class SmsUtil implements InitializingBean {
|
|||
if (StringUtils.isAnyEmpty(phone, code)) {
|
||||
return "手机号或验证码为空";
|
||||
}
|
||||
System.out.println("短信验证码:" + code);
|
||||
log.info("短信验证码,发送手机号:{}, code:{}", phone, code);
|
||||
if (smsConfig.isEnable()) {
|
||||
// 只有当开启发送短信才进行发送
|
||||
try {
|
||||
|
@ -125,11 +58,11 @@ public class SmsUtil implements InitializingBean {
|
|||
.setTemplateCode(aliSmsTemplate.getCode())
|
||||
.setTemplateParam(JSONUtil.toJsonStr(templateParam));
|
||||
|
||||
log.info("阿里云短信发送参数: {}", sendSmsRequest);
|
||||
// log.info("阿里云短信发送参数: {}", sendSmsRequest);
|
||||
|
||||
SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
|
||||
|
||||
log.info("阿里云短信发送结果: {}", sendSmsResponse.getBody());
|
||||
// log.info("阿里云短信发送结果: {}", sendSmsResponse.getBody());
|
||||
|
||||
if (Constants.SUCCESS.equals(sendSmsResponse.getStatusCode())) {
|
||||
if ("OK".equals(sendSmsResponse.getBody().getCode())) {
|
||||
|
@ -144,32 +77,9 @@ public class SmsUtil implements InitializingBean {
|
|||
return null;
|
||||
}
|
||||
|
||||
public static List<String> getMemberTemplateList() {
|
||||
return memberTemplateList;
|
||||
}
|
||||
|
||||
public static List<String> getOrderTemplateList() {
|
||||
return orderTemplateList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
smsConfig = SpringUtils.getBean(SmsConfig.class);
|
||||
|
||||
// 会员预置短信模板初始化
|
||||
memberTemplateList = new ArrayList<>();
|
||||
|
||||
// 订单预置短信模板初始化
|
||||
orderTemplateList = new ArrayList<>();
|
||||
orderTemplateList.add(ESmsTemplate.SMS21.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS22.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS23.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS24.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS25.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS26.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS27.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS28.getCode());
|
||||
orderTemplateList.add(ESmsTemplate.SMS29.getCode());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -215,9 +215,9 @@ baofu:
|
|||
fastCallbackUrl: http://p1.hzs413.com/inter-api/pay/baofu/fast-notify
|
||||
## 宝付退款回调地址
|
||||
refundCallbackUrl: http://p1.hzs413.com/inter-api/pay/baofu-refund/notify
|
||||
## 宝付支付小程序appId(海之圣BPay)
|
||||
## 宝付支付小程序appId
|
||||
appletPayAppId: wx93cdfabba48ff37d
|
||||
## 宝付支付小程序appSecret(海之圣BPay)
|
||||
## 宝付支付小程序appSecret
|
||||
appletPaySecret: 68984ec2a14e11a7ead9bf4847b6e6e1
|
||||
|
||||
|
||||
|
@ -267,21 +267,13 @@ huifu:
|
|||
|
||||
## 短信配置
|
||||
sms:
|
||||
## 凌凯国内短信配置
|
||||
corpId: CQJT001019
|
||||
pwd: 3FDA8B
|
||||
url: https://sdk3.028lk.com:9988/BatchSend2.aspx
|
||||
## 是否发送短信(true发送,false不发送)
|
||||
enable: false
|
||||
## 凌凯国际短信配置
|
||||
corpIdInter: CQJT000992
|
||||
pwdInter: 1263BA
|
||||
urlInter: https://sdk3.028lk.com:9988/IntlSend.aspx
|
||||
enable: true
|
||||
## 阿里短信
|
||||
aliAccessKeyId: LTAI5tSjEQgSVXVrVvDEkcNh
|
||||
aliAccessKeySecret: do1zRINS8MZ78UG6Vsa3SglZ3jPcOS
|
||||
aliAccessKeyId: LTAI5tECf4VYcpQNvaZ2bFg6
|
||||
aliAccessKeySecret: 68vOfID5RWE8KhlMjV9qpMpoX5ZX9D
|
||||
aliEndpoint: dysmsapi.aliyuncs.com
|
||||
aliSign: 青岛海之圣电子商务
|
||||
aliSign: 北方大陆
|
||||
|
||||
## 快递100配置
|
||||
express:
|
||||
|
|
|
@ -2,26 +2,6 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hzs.third.sms.mapper.TSmsRecordMapper">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.hzs.common.domain.third.sms.TSmsRecord">
|
||||
<id column="PK_ID" property="pkId"/>
|
||||
<result column="DEL_FLAG" property="delFlag"/>
|
||||
<result column="CREATION_TIME" property="creationTime"/>
|
||||
<result column="MODIFIED_TIME" property="modifiedTime"/>
|
||||
<result column="PK_COUNTRY" property="pkCountry"/>
|
||||
<result column="PK_CREATOR" property="pkCreator"/>
|
||||
<result column="PK_MODIFIED" property="pkModified"/>
|
||||
<result column="PK_SMS_TEMPLATE" property="pkSmsTemplate"/>
|
||||
<result column="PK_MEMBER" property="pkMember"/>
|
||||
<result column="PHONE" property="phone"/>
|
||||
<result column="CONTENT" property="content"/>
|
||||
<result column="SEND_SCOPE" property="sendScope"/>
|
||||
<result column="SEND_TYPE" property="sendType"/>
|
||||
<result column="SEND_STATUS" property="sendStatus"/>
|
||||
<result column="SEND_RESULT" property="sendResult"/>
|
||||
<result column="SEND_TIME" property="sendTime"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 查询列表 -->
|
||||
<select id="queryList" resultType="com.hzs.common.domain.third.sms.ext.TSmsRecordExt">
|
||||
select tsr.*, tst.template_code, tst.template_name
|
||||
|
@ -50,22 +30,4 @@
|
|||
order by tsr.CREATION_TIME desc
|
||||
</select>
|
||||
|
||||
<!-- 批量插入 -->
|
||||
<insert id="insertBatch">
|
||||
INSERT ALL
|
||||
<foreach collection="list" item="item" separator=" ">
|
||||
into T_SMS_RECORD (
|
||||
PK_SMS_TEMPLATE, PK_MEMBER, PHONE, CONTENT,
|
||||
SEND_SCOPE, SEND_TYPE, SEND_STATUS, SEND_RESULT,
|
||||
SEND_TIME, PK_COUNTRY, PK_CREATOR
|
||||
)
|
||||
values (
|
||||
#{item.pkSmsTemplate}, #{item.pkMember, jdbcType=NUMERIC}, #{item.phone}, #{item.content},
|
||||
#{item.sendScope}, #{item.sendType}, #{item.sendStatus}, #{item.sendResult},
|
||||
#{item.sendTime}, #{item.pkCountry}, #{item.pkCreator}
|
||||
)
|
||||
</foreach>
|
||||
SELECT 1 FROM dual
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
https://cloud.jdl.com/#/open-business-document/api-doc/267/841
|
||||
|
||||
客户编码:010K2141860
|
||||
账号:海之圣2023
|
||||
密码:haizhisheng2023
|
Loading…
Reference in New Issue