Merge branch 'bd_dev' of 47.94.45.65:angelo/java-base-app into bd_dev

This commit is contained in:
woody 2025-08-25 16:17:44 +08:00
commit a5ed4e4a40
25 changed files with 454 additions and 173 deletions

View File

@ -35,30 +35,23 @@ import java.util.*;
/**
* 会员提现表 前端控制器
*
* @author hzs
* @since 2022-09-06
*/
@RestController
@RequestMapping("/manager/withdraw")
public class CuMemberWithdrawController extends BaseController {
@Autowired
private UserTokenService userTokenService;
@Autowired
private ICuMemberBaseService iCuMemberBaseService;
@Autowired
private ICuMemberWithdrawService iCuMemberWithdrawService;
@Autowired
private ICuMemberBaseService baseService;
@Autowired
ICuMemberWithdrawService cuMemberWithdrawService;
@Autowired
ITransactionCommonService iTransactionCommonService;
private ITransactionCommonService iTransactionCommonService;
@DubboReference
IMenuColumnServiceApi menuColumnServiceApi;
IMenuColumnServiceApi iMenuColumnServiceApi;
/**
* 发起签呈显示
@ -72,11 +65,11 @@ public class CuMemberWithdrawController extends BaseController {
if (CollUtil.isEmpty(pkIds)) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.SELECT_INITIATING_SIGNATURE_RECORD));
}
List<CuMemberWithdrawVO> cuMemberWithdrawList = cuMemberWithdrawService.checkWithdrawPetitionByState(pkIds, EApproveStatus.WAIT_SUBMIT.getValue());
List<CuMemberWithdrawVO> cuMemberWithdrawList = iCuMemberWithdrawService.checkWithdrawPetitionByState(pkIds, EApproveStatus.WAIT_SUBMIT.getValue());
if (CollUtil.isNotEmpty(cuMemberWithdrawList)) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.SELECTED_RECORD_DUPLICATE_SIGNATURE_RECORD));
}
return AjaxResult.success(cuMemberWithdrawService.showMemberWithdrawPetition(pkIds, null));
return AjaxResult.success(iCuMemberWithdrawService.showMemberWithdrawPetition(pkIds, null));
}
/**
@ -91,10 +84,9 @@ public class CuMemberWithdrawController extends BaseController {
LoginUser loginUser = userTokenService.getLoginUser();
cuMemberPetitionVO.setLoginUser(loginUser);
cuMemberPetitionVO.setPkCreat(SecurityUtils.getUserId());
return AjaxResult.success(cuMemberWithdrawService.confirmWithdrawPetition(cuMemberPetitionVO));
return AjaxResult.success(iCuMemberWithdrawService.confirmWithdrawPetition(cuMemberPetitionVO));
}
/**
* 查询列表
*
@ -116,14 +108,13 @@ public class CuMemberWithdrawController extends BaseController {
}
}
startPage();
Object[] objects = cuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO);
Object[] objects = iCuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO);
//处理分页
TableDataInfo tableDataInfo = getDataTable((List<CuMemberWithdrawExt>) objects[0]);
tableDataInfo.setRows((List<CuMemberWithdrawVO>) objects[1]);
return tableDataInfo;
}
/**
* 充值明细列表导出
*
@ -135,18 +126,18 @@ public class CuMemberWithdrawController extends BaseController {
public void export(HttpServletResponse response, CuMemberWithdrawVO cuMemberWithdrawVO) {
Integer pkCountry = SecurityUtils.getPkCountry();
cuMemberWithdrawVO.setPkCountry(pkCountry);
List<CuMemberWithdrawVO> cuMemberWithdrawList = (List<CuMemberWithdrawVO>) cuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO)[1];
List<CuMemberWithdrawVO> cuMemberWithdrawList = (List<CuMemberWithdrawVO>) iCuMemberWithdrawService.selectMemberWithdrawList(cuMemberWithdrawVO)[1];
//枚举翻译
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveStatus.values(), EWithdrawStatus.values());
Map<String, String> transactionMap = iTransactionCommonService.exportEnumTransaction(EApproveStatus.values());
if (CollUtil.isNotEmpty(cuMemberWithdrawList)) {
for (CuMemberWithdrawVO memberWithdraw : cuMemberWithdrawList) {
Integer pkAccount = memberWithdraw.getPkAccount();
memberWithdraw.setPkAccountVal(baseService.getAccountTranslateFromDataBase(pkAccount));
memberWithdraw.setPkAccountVal(iCuMemberBaseService.getAccountTranslateFromDataBase(pkAccount));
memberWithdraw.setApproveStateVal(transactionMap.get(EnumsPrefixConstants.APPROVE_STATUS + memberWithdraw.getApproveState()));
memberWithdraw.setStatusVal(transactionMap.get(EnumsPrefixConstants.ENU_WITHDRAW_STATUS + memberWithdraw.getStatus()));
memberWithdraw.setStatusVal(EWithdrawStatus.getLabelByValue(memberWithdraw.getStatus()));
}
}
ExcelUtil<CuMemberWithdrawVO> util = new ExcelUtil<>(CuMemberWithdrawVO.class, menuColumnServiceApi.queryMenuColumn("CashDetails", SecurityUtils.getUserId()).getData());
ExcelUtil<CuMemberWithdrawVO> util = new ExcelUtil<>(CuMemberWithdrawVO.class, iMenuColumnServiceApi.queryMenuColumn("CashDetails", SecurityUtils.getUserId()).getData());
util.exportExcel(response, cuMemberWithdrawList, TransactionUtils.getContent(FinanceMsgConstants.WITHDRAWAL_DETAILS_EXPORT));
}
@ -160,11 +151,10 @@ public class CuMemberWithdrawController extends BaseController {
@GetMapping("/details")
public AjaxResult findWithdrawDetails(Long pkId) {
Assert.notNull(pkId, TransactionUtils.getContent(FinanceMsgConstants.SELECT_WITHDRAWAL_RECORD));
CuMemberWithdrawVO cuMemberRechargeDetailVO = cuMemberWithdrawService.queryCuMemberWithdrawDetail(pkId);
CuMemberWithdrawVO cuMemberRechargeDetailVO = iCuMemberWithdrawService.queryCuMemberWithdrawDetail(pkId);
return AjaxResult.success(cuMemberRechargeDetailVO);
}
/**
* 打款
*
@ -176,7 +166,7 @@ public class CuMemberWithdrawController extends BaseController {
public AjaxResult withdrawPayment(@RequestBody CuMemberWithdrawVO memberWithdrawVO) {
List<Long> pkIds = memberWithdrawVO.getPkIds();
Assert.notNull(pkIds, TransactionUtils.getContent(FinanceMsgConstants.SELECT_PAID_RECORD));
List<CuMemberWithdraw> withdrawApproveStateByIds = cuMemberWithdrawService.getWithdrawApproveStateByIds(pkIds, EApproveStatus.FINISH.getValue());
List<CuMemberWithdraw> withdrawApproveStateByIds = iCuMemberWithdrawService.getWithdrawApproveStateByIds(pkIds, EApproveStatus.FINISH.getValue());
if (CollUtil.isNotEmpty(withdrawApproveStateByIds)) {
return AjaxResult.error(TransactionUtils.getContent(FinanceMsgConstants.DATA_UNAPPROVED_DATA));
}
@ -186,10 +176,9 @@ public class CuMemberWithdrawController extends BaseController {
memberWithdrawVO.setPayer(pkMember);
memberWithdrawVO.setPaymentTime(new Date());
memberWithdrawVO.setPkModified(pkMember);
return toAjax(cuMemberWithdrawService.withdrawPaymentByPkId(memberWithdrawVO));
return toAjax(iCuMemberWithdrawService.withdrawPaymentByPkId(memberWithdrawVO));
}
/**
* 打款充正
*
@ -205,13 +194,13 @@ public class CuMemberWithdrawController extends BaseController {
memberWithdrawVO.setPayer(SecurityUtils.getUserId());
memberWithdrawVO.setPayerRemarks(memberWithdrawVO.getPayerRemarks());
memberWithdrawVO.setPaymentTime(new Date());
return toAjax(cuMemberWithdrawService.withdrawPaymentPositiveByPkId(memberWithdrawVO));
return toAjax(iCuMemberWithdrawService.withdrawPaymentPositiveByPkId(memberWithdrawVO));
}
@Log(module = EOperationModule.WITHDRAWAL_DETAIL, business = EOperationBusiness.WITHDRAWAL_DETAIL, method = EOperationMethod.REJECT)
@PostMapping("/reject")
public AjaxResult reject(@RequestBody CuMemberWithdrawRejectParam param) {
cuMemberWithdrawService.withdrawReject(param);
iCuMemberWithdrawService.withdrawReject(param);
return AjaxResult.success();
}

View File

@ -23,8 +23,6 @@ public interface CuMemberWithdrawMapper extends BaseMapper<CuMemberWithdraw> {
List<CuMemberWithdraw> getWithdrawTimes(@Param("pkMember") Long pkMember);
List<CuMemberWithdrawExt> getWithdrawTimesByPkCountry(@Param("pkCountry") Integer pkCountry);
/**
* 按周期查询个税
*

View File

@ -63,8 +63,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
private ICuMemberAccountService iCuMemberAccountService;
@Autowired
private ICuMemberBaseService iCuMemberBaseService;
@Autowired
private ICuMemberTradeService cuMemberTradeService;
@DubboReference
IWithdrawalTaxServiceApi iWithdrawalTaxServiceApi;
@ -200,6 +198,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
cuMemberWithdrawVO = new CuMemberWithdrawVO();
BeanUtils.copyProperties(cuMemberWithdrawExt, cuMemberWithdrawVO);
this.setPublicParam(cuMemberWithdrawVO, cuMemberWithdrawExt);
cuMemberWithdrawVO.setStatusVal(EWithdrawStatus.getLabelByValue(cuMemberWithdrawVO.getStatus()));
cuMemberWithdrawVoS.add(cuMemberWithdrawVO);
}
//总计
@ -209,6 +208,15 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
return new Object[]{cuMemberWithdrawExts, cuMemberWithdrawVoS};
}
@Override
public CuMemberWithdrawVO queryCuMemberWithdrawDetail(Long pkId) {
CuMemberWithdrawVO memberRechargeDetailVo = new CuMemberWithdrawVO();
CuMemberWithdrawExt memberWithdrawExt = baseMapper.queryCuMemberWithdrawDetail(pkId);
BeanUtils.copyProperties(memberWithdrawExt, memberRechargeDetailVo);
setPublicParam(memberRechargeDetailVo, memberWithdrawExt);
return memberRechargeDetailVo;
}
/**
* 页面显示公用参数
*
@ -266,15 +274,6 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
cuMemberWithdrawVO.setPkAccount(iCuMemberBaseService.translateAccountValue(pkAccount));
}
@Override
public CuMemberWithdrawVO queryCuMemberWithdrawDetail(Long pkId) {
CuMemberWithdrawVO memberRechargeDetailVo = new CuMemberWithdrawVO();
CuMemberWithdrawExt memberWithdrawExt = baseMapper.queryCuMemberWithdrawDetail(pkId);
BeanUtils.copyProperties(memberWithdrawExt, memberRechargeDetailVo);
setPublicParam(memberRechargeDetailVo, memberWithdrawExt);
return memberRechargeDetailVo;
}
@Override
public Integer withdrawPaymentByPkId(CuMemberWithdrawVO memberWithdrawVO) {
CuMemberWithdrawExt cuMemberWithdraw = new CuMemberWithdrawExt();
@ -657,7 +656,7 @@ public class CuMemberWithdrawServiceImpl extends ServiceImpl<CuMemberWithdrawMap
.tradeCode(cuMemberWithdraw.getWithdrawCode()).pkCountry(pkCountry)
.tradeType(EApprovalBusiness.WITHDRAWAL.getValue())
.pkCreator(SecurityUtils.getUserId()).build();
cuMemberTradeService.businessCommissionReject(businessCommissionDTO);
iCuMemberTradeService.businessCommissionReject(businessCommissionDTO);
}
}
}

View File

@ -13,15 +13,8 @@ import java.util.Date;
import java.util.List;
/**
* <p>
* 会员提现表
* </p>
*
* @author hzs
* @since 2022-09-06
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@ -203,7 +196,6 @@ public class CuMemberWithdrawVO extends CuMemberBaseVO {
/**
* 状态0=未打款1=已打款2=已充正3=撤消
*/
@Transaction(transactionKey = EnumsPrefixConstants.ENU_WITHDRAW_STATUS)
private Integer status;
@Excel(name = "打款状态")

View File

@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hzs.common.core.constant.*;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.exception.ServiceException;
import com.hzs.common.core.utils.*;
import com.hzs.common.domain.member.achieve.CuMemberAchieve;
import com.hzs.common.domain.member.achieve.CuMemberSettlePeriod;
@ -389,6 +390,9 @@ public class CuMemberAchieveServiceImpl extends ServiceImpl<CuMemberAchieveMappe
// 当前会员
List<CuMemberExt> cuMemberExtList = iCuMemberService.queryMemberByCondition(CuMember.builder().pkId(pkMember).build());
if (CollectionUtil.isEmpty(cuMemberExtList)) {
throw new ServiceException("查询会员信息失败,请重新登录");
}
CuMemberExt cuMemberExt = cuMemberExtList.get(0);
//根据国家获取奖衔配置信息
List<BdAwards> awardsList = iAwardsServiceApi.queryAwards(pkCountry).getData();

View File

@ -2,13 +2,11 @@ package com.hzs.member.base.controller.api;
import cn.hutool.core.codec.Base64Decoder;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.MemberMsgConstants;
import com.hzs.common.core.domain.FileResult;
@ -25,17 +23,13 @@ import com.hzs.common.core.web.page.TableDataInfo;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.member.detail.CuMemberChangeLog;
import com.hzs.common.domain.member.ext.CuMemberExt;
import com.hzs.common.domain.member.ext.CuMemberRegionExt;
import com.hzs.common.domain.system.base.BdArea;
import com.hzs.common.domain.system.config.BdAgreementRenewalWhite;
import com.hzs.common.domain.system.config.BdAwards;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.common.service.ITransactionCommonService;
import com.hzs.common.util.TransactionUtils;
import com.hzs.member.achieve.service.ICuMemberAchieveService;
import com.hzs.member.base.param.MemberDataParam;
import com.hzs.member.base.param.MemberRegionParam;
import com.hzs.member.base.service.ICuMemberRegionService;
import com.hzs.member.base.service.ICuMemberService;
import com.hzs.member.base.service.IMemberInfoService;
import com.hzs.member.base.vo.*;
@ -81,10 +75,6 @@ public class ApiMemberController extends BaseController {
private ICuMemberChangeLogService iCuMemberChangeLogService;
@Autowired
private IApiAliSmsService iApiAliSmsService;
@Autowired
private ICuMemberRegionService iCuMemberRegionService;
@Autowired
private ICuMemberAchieveService iCuMemberRetailAchieveService;
@DubboReference
IGradeServiceApi iGradeServiceApi;
@ -717,10 +707,9 @@ public class ApiMemberController extends BaseController {
*/
@GetMapping("/agreement_expire")
public AjaxResult agreementExpire() {
if (CountryConstants.CHINA_COUNTRY.equals(SecurityUtils.getPkCountry())) {
// 中国会员才进行校验
CuMember cuMember = iCuMemberService.getMemberById(SecurityUtils.getUserId());
if (null != cuMember) {
// 校验会员是否添加到白名单
BdAgreementRenewalWhite agreementRenewalWhite = null;
R<BdAgreementRenewalWhite> whiteR = iAgreementRenewalWhiteServiceApi.getInfo(SecurityUtils.getUserId(), EAgreementWhiteType.RENEW_NOT_REAL.getValue());

View File

@ -34,19 +34,6 @@
<result column="BATCH" property="batch"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
DEL_FLAG
,
PK_COUNTRY,
PK_CREATOR,
CREATION_TIME,
PK_MODIFIED,
MODIFIED_TIME,
PK_ID, PK_MEMBER, WITHDRAW_CODE, PK_ACCOUNT, PK_BANK, PK_RATE, CASH_AMOUNT, SERVICE_CHARGE, INCOME_TAX,
ISSUED_AMOUNT,APPROVE_STATE, PAYMENT_TIME, PAYER, REMARKS, APPROVER, APPROVE_TIME, PK_ROLE, ROLE_NAME,STATUS,PAYER_REMARKS,APPROVE_REMARKS
</sql>
<sql id="select_base">
SELECT r.*,
m.member_code memberCode,
@ -55,7 +42,7 @@
b.sub_bank_name subBankName,
b.card_number cardNumber,
b.account_name accountName,
b.id_card idCard,
nvl(m.id_card, b.id_card) idCard,
b.phone,
b.pk_id pkBdBank,
u.user_name paymentName,
@ -146,7 +133,6 @@
<if test="withdrawCode != null and withdrawCode != ''">
and r.WITHDRAW_CODE = #{withdrawCode}
</if>
<if test="status != null">
and r.status = #{status}
</if>
@ -197,17 +183,6 @@
AND STATUS = 0
</select>
<select id="getWithdrawTimesByPkCountry" resultType="com.hzs.common.domain.member.account.CuMemberWithdrawExt">
select w.pk_member, count(1) times
from cu_member_withdraw w
where w.del_flag = 0
and w.pk_country = #{pkCountry}
AND (APPROVE_STATE = 1 OR APPROVE_STATE = 2 OR APPROVE_STATE = 3)
and w.status != 3
group by w.pk_member
</select>
<update id="updateWithdrawByCode" parameterType="com.hzs.common.domain.member.account.CuMemberWithdraw">
update cu_member_withdraw
<set>

View File

@ -222,7 +222,8 @@ public class SaOrderHandle {
resultPostage = resultPostage.add(saOrderItems.getPrice().multiply(new BigDecimal(saOrderItems.getQuantity())));
// 免邮的话不需要计算邮费
if (EYesNo.YES.getIntValue() == waresDetailExt.getIsFreeMail()) {
if (null == waresDetailExt.getIsFreeMail()
|| EYesNo.YES.getIntValue() == waresDetailExt.getIsFreeMail()) {
continue;
}
if (EDelivery.FAST_MAIL.getValue() == orderParam.getDeliveryWay()) {

View File

@ -486,28 +486,29 @@ public class ApiBdWaresController extends BaseController {
*/
@GetMapping("/get-app-index")
public AjaxResult getAppIndex() {
Integer pkCountry = SecurityUtils.getPkCountry();
Long userId = SecurityUtils.getUserId();
String memberCode = SecurityUtils.getMemberCode();
// 校验产品团队信息查询所有推荐商品
List<BdWaresExt> bdWaresList = iBdWaresService.queryByRecommendList(null, EYesNo.YES.getIntValue(), pkCountry, new HashMap<>());
Map<Integer, Boolean> waresShowMap = new HashMap<>();
if (bdWaresList.size() > 0) {
// 检验商品团队信息
List<Integer> waresIdList = bdWaresList.stream().map(BdWares::getPkId).collect(Collectors.toList());
Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList);
List<ShowWaresDTO> showWaresList = bdWaresList.stream().map(we -> getShowWares(we.getPkId(), userId, memberCode, waresAuthorityMap)).collect(Collectors.toList());
R<Map<Integer, Boolean>> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList);
waresShowMap = waresShowMapDto.getData();
}
// Integer pkCountry = SecurityUtils.getPkCountry();
// Long userId = SecurityUtils.getUserId();
// String memberCode = SecurityUtils.getMemberCode();
// // 校验产品团队信息查询所有推荐商品
// List<BdWaresExt> bdWaresList = iBdWaresService.queryByRecommendList(null, EYesNo.YES.getIntValue(), pkCountry, new HashMap<>());
// Map<Integer, Boolean> waresShowMap = new HashMap<>();
// if (bdWaresList.size() > 0) {
// // 检验商品团队信息
// List<Integer> waresIdList = bdWaresList.stream().map(BdWares::getPkId).collect(Collectors.toList());
// Map<Integer, List<BdWaresAuthority>> waresAuthorityMap = iBdWaresService.getWaresAuthority(waresIdList);
// List<ShowWaresDTO> showWaresList = bdWaresList.stream().map(we -> getShowWares(we.getPkId(), userId, memberCode, waresAuthorityMap)).collect(Collectors.toList());
// R<Map<Integer, Boolean>> waresShowMapDto = iMemberServiceApi.checkIsShowWares(showWaresList);
// waresShowMap = waresShowMapDto.getData();
// }
// // 查询app端首页商品展示信息
// RecommendWaresInfoVo recommendWaresInfoVo = iBdWaresService.queryRecommendInfo(pkCountry, memberCode, userId, waresShowMap);
// if (recommendWaresInfoVo.getWaresVoList() != null) {
// List<WaresVo> waresList = new ArrayList<>(recommendWaresInfoVo.getWaresVoList());
// recommendWaresInfoVo.setWaresVoList(waresList);
// }
RecommendWaresInfoVo recommendWaresInfoVo = new RecommendWaresInfoVo();
// 查询全部的banner (登录后banner)
R<List<AdvertBannerDTO>> advertBannerList = advertBannerServiceApi.findAll(SecurityUtils.getUserId());
// 查询app端首页商品展示信息
RecommendWaresInfoVo recommendWaresInfoVo = iBdWaresService.queryRecommendInfo(pkCountry, memberCode, userId, waresShowMap);
if (recommendWaresInfoVo.getWaresVoList() != null) {
List<WaresVo> waresList = new ArrayList<>(recommendWaresInfoVo.getWaresVoList());
recommendWaresInfoVo.setWaresVoList(waresList);
}
recommendWaresInfoVo.setAdvertBannerList(advertBannerList.getData());
return AjaxResult.success(recommendWaresInfoVo);
}

View File

@ -226,7 +226,8 @@
</if>
</if>
</foreach>
order by sdi.creation_time desc, deliver_code desc, order_code desc
order by sdi.creation_time desc, deliver_code desc, order_code desc,
bp.wms_code, sdi.specs_name
</if>
<if test="param.pkDeliverList == null or param.pkDeliverList.size == 0">
@ -409,7 +410,8 @@
#{item}
</foreach>
</if>
order by sdi.creation_time desc, sd.deliver_code desc, so.order_code desc
order by sdi.creation_time desc, sd.deliver_code desc, so.order_code desc,
bp.wms_code, sdi.specs_name
</if>
</select>

View File

@ -771,11 +771,11 @@
left join sa_order so on oi.PK_ORDER = so.PK_ID
left join cu_member m on m.PK_ID = so.PK_CREATOR
left join cu_member cm on cm.PK_ID = so.PK_MEMBER
left join bd_vertex ver on ver.PK_ID = cm.PK_VERTEX
left join bd_vertex ver on ver.PK_ID = cm.PK_VERTEX and ver.del_flag = 0
left join bd_wares_extend we on we.PK_WARES = oi.PK_WARES
left join bd_wares bw on bw.PK_ID = we.PK_WARES
left join bd_product bp on bp.PK_ID = oi.PK_PRODUCT
where oi.del_flag = 0 and so.del_flag = 0 and ver.del_flag = 0
where oi.del_flag = 0 and so.del_flag = 0
<if test="addPurchaseFlag != null and addPurchaseFlag == 0">
and oi.pk_order in (
select distinct soi.pk_order

View File

@ -658,9 +658,8 @@
from sa_order so
left join CU_MEMBER cm on cm.PK_ID = so.PK_MEMBER
left join CU_MEMBER m on m.PK_ID = so.PK_CREATOR
left join BD_VERTEX ver on ver.PK_ID = cm.PK_VERTEX
left join BD_VERTEX ver on ver.PK_ID = cm.PK_VERTEX and ver.DEL_FLAG = 0
where so.DEL_FLAG = 0
and ver.DEL_FLAG = 0
<if test="addPurchaseFlag != null and addPurchaseFlag == 0">
and so.PK_ID in (
select distinct soi.pk_order

View File

@ -9,15 +9,12 @@ import com.hzs.common.core.utils.StringUtils;
import com.hzs.common.domain.member.base.CuMember;
import com.hzs.common.domain.system.config.BdAdvertBanner;
import com.hzs.common.domain.system.config.ext.BdAdvertBannerExt;
import com.hzs.common.security.utils.SecurityUtils;
import com.hzs.member.base.IMemberServiceApi;
import com.hzs.system.config.mapper.BdAdvertBannerMapper;
import com.hzs.system.config.service.IBdAdvertBannerService;
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.Date;
import java.util.List;
@ -46,7 +43,9 @@ public class BdAdvertBannerServiceImpl extends ServiceImpl<BdAdvertBannerMapper,
if(ObjectUtil.isEmpty(cuMember)){
queryWrapper.isNull(BdAdvertBanner::getPkVertex);
}else{
queryWrapper.and(qw -> qw.isNull(BdAdvertBanner::getPkVertex).or().eq(BdAdvertBanner::getPkVertex, cuMember.getPkVertex()));
queryWrapper.and(qw -> qw.isNull(BdAdvertBanner::getPkVertex)
.or()
.eq(ObjectUtil.isNotEmpty(cuMember.getPkVertex()), BdAdvertBanner::getPkVertex, cuMember.getPkVertex()));
}
queryWrapper.eq(BdAdvertBanner::getPkCountry, CountryConstants.CHINA_COUNTRY);
queryWrapper.lt(BdAdvertBanner::getEffectiveDate, new Date());

View File

@ -2361,7 +2361,7 @@ public class EnumsController extends BaseController {
public AjaxResult getPaymentStatus() {
List<EnumEntity> enumEntityList = new ArrayList<>();
for (EWithdrawStatus value : EWithdrawStatus.values()) {
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel(), EnumsPrefixConstants.ENU_WITHDRAW_STATUS));
enumEntityList.add(new EnumEntity(value.getValue(), value.getLabel()));
}
return AjaxResult.success(enumEntityList);
}

View File

@ -514,10 +514,6 @@ public class EnumsInitController {
initList.add(this.createData(value.getKey(), value.getLabel()));
}
for (EWithdrawStatus value : EWithdrawStatus.values()) {
initList.add(this.createData(value.getKey(), value.getLabel()));
}
/**
* 站内信类型
*/

View File

@ -595,11 +595,6 @@ public class EnumsPrefixConstants {
*/
public static final String CYCLE = "ENU_CYCLE_";
/**
* 提现状态
*/
public static final String ENU_WITHDRAW_STATUS = "ENU_WITHDRAW_S_";
/**
* 服务类型枚举
*/

View File

@ -1,13 +1,10 @@
package com.hzs.common.core.enums;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 提现状态枚举
*
* @author: hzs
*/
@AllArgsConstructor
@Getter
@ -16,20 +13,20 @@ public enum EWithdrawStatus {
/**
* 正常
*/
NORMAL(0, "未打款", 0, EnumsPrefixConstants.ENU_WITHDRAW_STATUS + "0"),
NORMAL(0, "未打款", 0),
/**
* 打款
*/
PAYMENT(1, "已打款", 0, EnumsPrefixConstants.ENU_WITHDRAW_STATUS + "1"),
PAYMENT(1, "已打款", 0),
/**
* 充正
*/
CHARGING(2, "已充正", 0, EnumsPrefixConstants.ENU_WITHDRAW_STATUS + "2"),
CHARGING(2, "已充正", 0),
/**
* 取消
*/
CANCEL(3, "取消", 0, EnumsPrefixConstants.ENU_WITHDRAW_STATUS + "3"),
CANCEL(3, "取消", 0),
;
/**
@ -44,9 +41,18 @@ public enum EWithdrawStatus {
* 是否启用0=,1= -- 来源EYesNo
*/
private final int enable;
/**
* 国际化翻译key值
*/
private final String key;
public static String getLabelByValue(Integer value) {
if (null == value) {
return "";
}
for (EWithdrawStatus enums : EWithdrawStatus.values()) {
if (enums.getValue() == value) {
return enums.getLabel();
}
}
return "";
}
}

View File

@ -2,6 +2,7 @@ package com.hzs.third.pay.controller.manage;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hzs.common.core.annotation.AccessPermissions;
import com.hzs.common.core.annotation.Log;
import com.hzs.common.core.constant.EnumsPrefixConstants;
@ -20,6 +21,7 @@ import com.hzs.common.service.ITransactionCommonService;
import com.hzs.common.util.TransactionUtils;
import com.hzs.third.pay.param.OnlinePaymentParam;
import com.hzs.third.pay.param.OnlinePaymentRetryParam;
import com.hzs.third.pay.service.IJdPayService;
import com.hzs.third.pay.service.IPayService;
import com.hzs.third.pay.service.ITOnlinePaymentService;
import com.hzs.third.pay.vo.OnlinePaymentVO;
@ -43,6 +45,8 @@ public class OnlinePaymentController extends BaseController {
private ITOnlinePaymentService itOnlinePaymentService;
@Autowired
private IPayService iPayService;
@Autowired
private IJdPayService iJdPayService;
@Autowired
private ITransactionCommonService iTransactionCommonService;
@ -139,4 +143,16 @@ public class OnlinePaymentController extends BaseController {
return toAjax(iPayService.retryHandle(tOnlinePayment, false));
}
/**
* 补偿支付回调
*
* @param param 业务重试入参
* @return
*/
@Log(module = EOperationModule.ONLINE_PAY_DETAIL, business = EOperationBusiness.ONLINE_PAY_DETAIL, method = EOperationMethod.SUBMIT)
@GetMapping("/compensationCallBack")
public AjaxResult compensationCallBack(@RequestParam("businessCode") String businessCode) {
return iJdPayService.compensationCallBack(businessCode);
}
}

View File

@ -0,0 +1,27 @@
package com.hzs.third.pay.jdpay.dto;
import java.io.Serializable;
public class JdPayQueryOrderRequest implements Serializable {
/**
* 商户订单号
*/
private String outTradeNo;
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
@Override
public String toString() {
return "{ \"outTradeNo\":\"" + outTradeNo + "\""
+ "}"
;
}
}

View File

@ -0,0 +1,197 @@
package com.hzs.third.pay.jdpay.dto;
import java.io.Serializable;
public class JdPayQueryOrderResponse implements Serializable {
/**
* 京东交易订单号
*/
private String tradeNo;
/**
* 商户订单号
*/
private String outTradeNo;
/**
* 订单总金额
*/
private String tradeAmount;
/**
* 支付完成时间
*/
private String finishDate;
/**
* 交易类型
*/
private String tradeType;
/**
* 交易状态
*/
private String tradeStatus;
/**
* 回传字段
*/
private String returnParams;
/**
* 商户用户标识
*/
private String userId;
/**
* 优惠金额
*/
private String discountAmount;
/**
* 支付工具
*/
private String payTool;
/**
* ]
* 掩码卡号
*/
private String maskCardNo;
/**
* 卡类型
*/
private String cardType;
/**
* 银行编码
*/
private String bankCode;
/**
* 白条分期数
*/
private String installmentNum;
public String getTradeNo() {
return tradeNo;
}
public void setTradeNo(String tradeNo) {
this.tradeNo = tradeNo;
}
public String getOutTradeNo() {
return outTradeNo;
}
public void setOutTradeNo(String outTradeNo) {
this.outTradeNo = outTradeNo;
}
public String getTradeAmount() {
return tradeAmount;
}
public void setTradeAmount(String tradeAmount) {
this.tradeAmount = tradeAmount;
}
public String getFinishDate() {
return finishDate;
}
public void setFinishDate(String finishDate) {
this.finishDate = finishDate;
}
public String getTradeType() {
return tradeType;
}
public void setTradeType(String tradeType) {
this.tradeType = tradeType;
}
public String getTradeStatus() {
return tradeStatus;
}
public void setTradeStatus(String tradeStatus) {
this.tradeStatus = tradeStatus;
}
public String getReturnParams() {
return returnParams;
}
public void setReturnParams(String returnParams) {
this.returnParams = returnParams;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getDiscountAmount() {
return discountAmount;
}
public void setDiscountAmount(String discountAmount) {
this.discountAmount = discountAmount;
}
public String getPayTool() {
return payTool;
}
public void setPayTool(String payTool) {
this.payTool = payTool;
}
public String getMaskCardNo() {
return maskCardNo;
}
public void setMaskCardNo(String maskCardNo) {
this.maskCardNo = maskCardNo;
}
public String getCardType() {
return cardType;
}
public void setCardType(String cardType) {
this.cardType = cardType;
}
public String getBankCode() {
return bankCode;
}
public void setBankCode(String bankCode) {
this.bankCode = bankCode;
}
public String getInstallmentNum() {
return installmentNum;
}
public void setInstallmentNum(String installmentNum) {
this.installmentNum = installmentNum;
}
@Override
public String toString() {
return "{\"tradeNo\":\"" + tradeNo + "\""
+ ", \"outTradeNo\":\"" + outTradeNo + "\""
+ ", \"tradeAmount\":\"" + tradeAmount + "\""
+ ", \"finishDate\":\"" + finishDate + "\""
+ ", \"tradeType\":\"" + tradeType + "\""
+ ", \"tradeStatus\":\"" + tradeStatus + "\""
+ ", \"returnParams\":\"" + returnParams + "\""
+ ", \"userId\":\"" + userId + "\""
+ ", \"discountAmount\":\"" + discountAmount + "\""
+ ", \"payTool\":\"" + payTool + "\""
+ ", \"maskCardNo\":\"" + maskCardNo + "\""
+ ", \"cardType\":\"" + cardType + "\""
+ ", \"bankCode\":\"" + bankCode + "\""
+ ", \"installmentNum\":\"" + installmentNum + "\""
+ "}"
;
}
}

View File

@ -56,9 +56,9 @@ public class JdPay {
// * @return JdPayQueryOrderResponse 返回数据
// * @throws Exception
// */
// public JdPayQueryOrderResponse queryOrder(JdPayQueryOrderRequest request) throws Exception {
// return this.baseExecute(JdPayConstant.TRADE_QUERY_URL, request, JdPayQueryOrderResponse.class);
// }
public JdPayQueryOrderResponse queryOrder(JdPayQueryOrderRequest request) throws Exception {
return this.baseExecute(JdPayConstant.TRADE_QUERY_URL, request, JdPayQueryOrderResponse.class);
}
//
// /**
// * 作用代扣

View File

@ -2,6 +2,7 @@ package com.hzs.third.pay.service;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EDataSource;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.third.pay.TOnlinePayment;
/**
@ -34,5 +35,12 @@ public interface IJdPayService {
* @return
*/
R<String> cashRegister(TOnlinePayment onlinePayment, EDataSource dataSource);
/**
* 收银台支付
*
* @param onlinePayment
* @param dataSource
* @return
*/
AjaxResult compensationCallBack(String businessCode);
}

View File

@ -2,12 +2,12 @@ package com.hzs.third.pay.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hzs.common.core.config.BdConfig;
import com.hzs.common.core.domain.R;
import com.hzs.common.core.enums.EBindStatus;
import com.hzs.common.core.enums.EDataSource;
import com.hzs.common.core.enums.EEnv;
import com.hzs.common.core.enums.*;
import com.hzs.common.core.utils.DateUtils;
import com.hzs.common.core.web.domain.AjaxResult;
import com.hzs.common.domain.third.pay.TOnlineCard;
import com.hzs.common.domain.third.pay.TOnlinePayment;
import com.hzs.common.domain.third.pay.TOnlinePaymentSepAcc;
@ -25,16 +25,10 @@ import com.hzs.third.pay.dto.jd.JdScanDTO;
import com.hzs.third.pay.dto.jd.JdScanResult;
import com.hzs.third.pay.enums.EJdAppType;
import com.hzs.third.pay.enums.EJdTerminalType;
import com.hzs.third.pay.jdpay.dto.JdPayAggregateCreateOrderRequest;
import com.hzs.third.pay.jdpay.dto.JdPayAggregateCreateOrderResponse;
import com.hzs.third.pay.jdpay.dto.JdPayDivisionAccount;
import com.hzs.third.pay.jdpay.dto.JdPayDivisionAccountTradeInfo;
import com.hzs.third.pay.jdpay.dto.*;
import com.hzs.third.pay.jdpay.sdk.JdPay;
import com.hzs.third.pay.jdpay.util.GsonUtil;
import com.hzs.third.pay.service.IJdPayService;
import com.hzs.third.pay.service.ITOnlineCardService;
import com.hzs.third.pay.service.ITOnlinePaymentSepAccService;
import com.hzs.third.pay.service.ITOnlinePaymentService;
import com.hzs.third.pay.service.*;
import com.hzs.third.pay.util.JdPayUtil;
import com.hzs.third.pay.util.PayUtil;
import lombok.extern.slf4j.Slf4j;
@ -48,6 +42,7 @@ import java.math.BigDecimal;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -73,6 +68,8 @@ public class JdPayServiceImpl implements IJdPayService {
@Autowired
private ITOnlinePaymentService itOnlinePaymentService;
@Autowired
private IPayService iPayService;
@Resource
private JdPayWechatAlipayProperties jdPayWechatAlipayProperties;
@ -336,5 +333,94 @@ public class JdPayServiceImpl implements IJdPayService {
}
}
@Override
public AjaxResult compensationCallBack(String businessCode) {
LambdaQueryWrapper<TOnlinePayment> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TOnlinePayment::getBusinessCode, businessCode);
queryWrapper.eq(TOnlinePayment::getDelFlag, EDelFlag.UN_DELETE.getValue());
TOnlinePayment tOnlinePayment = itOnlinePaymentService.getOne(queryWrapper, false);
if(ObjectUtil.isEmpty(tOnlinePayment)){
return AjaxResult.error("订单不存在");
}
JdPayQueryOrderRequest request = new JdPayQueryOrderRequest();
request.setOutTradeNo(tOnlinePayment.getBusinessCode());
JdPayQueryOrderResponse response = null;
try {
response = jdPay.queryOrder(request);
if (ObjectUtil.isEmpty(response.getTradeNo()) || EPayStatus.PAID.getValue() == tOnlinePayment.getPayStatus()) {
log.error("支付信息不存在或已支付");
return AjaxResult.success("已支付订单 无需补偿回调!");
}
log.info("queryOrder : {}", JSONUtil.toJsonStr(response));
{
// 支付成功处理
// 商户订单号
String payNumber = response.getTradeNo();
// 渠道流水号
String channelNumber = "";
// 支付完成时间
Date payTime = DateUtils.parseDateOne(response.getFinishDate(), DateUtils.YAMMERERS);
// 回调订单编号
String thirdOrderCode = response.getOutTradeNo();
// 订单编号
String acqOrderId = "compensationCallBack";
// 订单金额
int tradeAmount = Integer.parseInt(response.getTradeAmount());
BigDecimal payMoney = new BigDecimal(tradeAmount).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
Integer payType = convertPayType(response.getPayTool());
// 支付后续业务处理
if (iPayService.notifyHandle(tOnlinePayment.getBusinessType().toString() , thirdOrderCode, thirdOrderCode, payNumber, payTime, payMoney, EPayChannel.JD, channelNumber, payType, acqOrderId)) {
return AjaxResult.success();
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return AjaxResult.success();
}
/**
* 京东收银台处理成功返回
*/
private static final String SUCCESS = "SUCCESS";
/**
* 京东收银台处理失败返回
*/
private static final String ERROR = "ERROR";
private Integer convertPayType(String payName){
Integer result = EPayType.WECHAT.getValue();
switch (payName){
case "XJK":
result = EPayType.MINI_TREASURY.getValue();
break;
case "JIOU":
result = EPayType.CREDIT_LINE.getValue();
break;
case "SJIOU":
result = EPayType.SUPER_CREDIT_LINE.getValue();
break;
case "ACCT":
result = EPayType.WALLET_BALANCE.getValue();
break;
case "EXPR":
result = EPayType.BANK_CARD.getValue();
break;
case "WX":
result = EPayType.WECHAT.getValue();
break;
case "ALIPAY":
result = EPayType.ALIPAY.getValue();
break;
case "YSF":
result = EPayType.CLOUD_PAY.getValue();
break;
}
return result;
}
}

View File

@ -124,8 +124,10 @@ public class PayServiceImpl implements IPayService {
Integer payType, String acqOrderId) {
Long pkId = null;
String redisKey = CacheConstants.ONLINE_PAY_KEY + businessCode;
try {
if(!redisService.lockKeyOnce(redisKey, 10)){
return false;
}
// 校验支付信息状态业务与支付金额是否一致等
TOnlinePayment onlinePayment = itOnlinePaymentService.queryByBusiness(
ObjectUtil.isNotEmpty(businessType) ? Integer.valueOf(businessType) : null

View File

@ -91,7 +91,7 @@ public class OnlinePaymentVO {
/**
* 支付状态0=未支付,1=已支付
*/
@JsonIgnore
// @JsonIgnore
@Transaction(transactionKey = EnumsPrefixConstants.PAY_STATUS)
private Integer payStatus;
/**