diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java index 0b647f4..462dc5e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbUserInfoMapper.java @@ -20,4 +20,5 @@ public interface TbUserInfoMapper { int updateByPrimaryKey(TbUserInfo record); TbUserInfo selectByCardNo(String cardNo); + TbUserInfo selectByPhone(String phone); } \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbGroupOrderCoupon.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbGroupOrderCoupon.java index 26793e8..2dc998f 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbGroupOrderCoupon.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbGroupOrderCoupon.java @@ -24,6 +24,10 @@ public class TbGroupOrderCoupon implements Serializable { * 团购卷码 */ private String couponNo; + /** + * 退款订单号 + */ + private String mchRefundNo; /** * 是否已退款 * 0:否 diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 6033bfb..19eabe2 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -21,6 +21,7 @@ import com.chaozhanggui.system.cashierservice.util.SnowFlakeUtil; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; @@ -41,6 +42,9 @@ public class MemberService { @Autowired TbShopUserMapper tbShopUserMapper; + @Autowired + TbUserInfoMapper tbUserInfoMapper; + @Autowired TbMemberInMapper tbMemberInMapper; @@ -122,8 +126,11 @@ public class MemberService { tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser); return Result.success(CodeEnum.SUCCESS); } - TbShopUser tbShopUser = new TbShopUser(); + TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(phone); + if(tbUserInfo!=null){ + tbShopUser.setUserId(tbUserInfo.getId().toString()); + } tbShopUser.setAmount(BigDecimal.ZERO); tbShopUser.setCreditAmount(BigDecimal.ZERO); tbShopUser.setConsumeAmount(BigDecimal.ZERO); @@ -537,6 +544,12 @@ public class MemberService { shopUser.setAmount(shopUser.getAmount().add(amount)); shopUser.setUpdatedAt(System.currentTimeMillis()); + if (StringUtils.isBlank(shopUser.getUserId())) { + TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(shopUser.getTelephone()); + if (tbUserInfo != null) { + shopUser.setUserId(tbUserInfo.getId().toString()); + } + } tbShopUserMapper.updateByPrimaryKeySelective(shopUser); TbShopUserFlow flow = new TbShopUserFlow(); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 067e631..c47104e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -556,12 +556,12 @@ public class PayService { return Result.fail(CodeEnum.MEMBERNOEXIST); } - if (N.gt(orderInfo.getPayAmount(), user.getAmount())) { + if (N.gt(orderInfo.getOrderAmount(), user.getAmount())) { return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS); } user.setAmount(user.getAmount().subtract(orderInfo.getOrderAmount())); - user.setConsumeAmount(user.getConsumeAmount().add(orderInfo.getPayAmount())); + user.setConsumeAmount(user.getConsumeAmount().add(orderInfo.getOrderAmount())); user.setConsumeNumber(user.getConsumeNumber() + 1); user.setUpdatedAt(System.currentTimeMillis()); tbShopUserMapper.updateByPrimaryKeySelective(user); @@ -1093,6 +1093,53 @@ public class PayService { if (param.getNum() > tbGroupOrderCoupons.size()) { return Result.fail("可退数量不足"); } + if(groupOrderInfo.getPayType().equals("deposit")){ + TbShopUser user= tbShopUserMapper.selectByUserIdAndShopId(groupOrderInfo.getUserId().toString(),groupOrderInfo.getShopId().toString()); + if(ObjectUtil.isNull(user)||ObjectUtil.isEmpty(user)){ + return Result.fail(ACCOUNTEIXST); + } + user.setAmount(user.getAmount().add(param.getRefundAmount().setScale(2, RoundingMode.DOWN))); + user.setConsumeAmount(user.getConsumeAmount().subtract(param.getRefundAmount().setScale(2, RoundingMode.DOWN))); + user.setUpdatedAt(System.currentTimeMillis()); + tbShopUserMapper.updateByPrimaryKeySelective(user); + + TbShopUserFlow flow = new TbShopUserFlow(); + flow.setShopUserId(user.getId()); + flow.setBizCode("returnGroupOrder"); + flow.setBizName("会员储值卡退款"); + flow.setAmount(param.getRefundAmount()); + flow.setBalance(user.getAmount()); + flow.setCreateTime(new Date()); + tbShopUserFlowMapper.insert(flow); + }else { + TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(groupOrderInfo.getMerchantId()); + MsgException.checkNull(thirdApply, "支付参数配置错误"); + +// TbOrderPayment payment= tbOrderPaymentMapper.selectByOrderId(groupOrderInfo.getOrderNo()); + PublicResp publicResp = thirdPayService.returnOrder( + url, + thirdApply.getAppId(), +// groupOrderInfo.getOrderNo(), + "GPR"+DateUtils.getSsdfTimes(), + groupOrderInfo.getPayOrderNo(), + null, + "团购卷订单退款", + param.getRefundAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), + null, + null, + thirdApply.getAppToken()); + if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { + GroupOrderReturnResp returnInfo = com.chaozhanggui.system.cashierservice.util.JSONUtil.parseJSONStr2T(publicResp.getBizData(), GroupOrderReturnResp.class); + if ("000000".equals(publicResp.getCode())) { + //TRADE_REFUND + if (!"SUCCESS".equals(returnInfo.getState()) && !"TRADE_SUCCESS".equals(returnInfo.getState()) && !returnInfo.getState().equals("ING")) { + return Result.fail("退款渠道调用失败,"+returnInfo.getNote()); + } + } else { + return Result.fail("退款渠道调用失败,"+publicResp.getMsg()); + } + } + } for (int i = 0; i < param.getNum(); i++) { TbGroupOrderCoupon coupon = tbGroupOrderCoupons.get(i); coupon.setIsRefund(1); @@ -1101,32 +1148,6 @@ public class PayService { coupon.setRefundReason(param.getRefundReason()); couponMapper.update(coupon); } - TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(groupOrderInfo.getMerchantId()); - MsgException.checkNull(thirdApply, "支付参数配置错误"); - - TbOrderPayment payment= tbOrderPaymentMapper.selectByOrderId(param.getOrderId()+""); - PublicResp publicResp = thirdPayService.returnOrder( - url, - thirdApply.getAppId(), - groupOrderInfo.getOrderNo(), - payment.getTradeNumber(), - null, - "团购卷订单退款", - param.getRefundAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), - null, - null, - thirdApply.getAppToken()); - if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { - GroupOrderReturnResp returnInfo = com.chaozhanggui.system.cashierservice.util.JSONUtil.parseJSONStr2T(publicResp.getBizData(), GroupOrderReturnResp.class); - if ("000000".equals(publicResp.getCode())) { - //TRADE_REFUND - if (!"SUCCESS".equals(returnInfo.getState()) && !"TRADE_SUCCESS".equals(returnInfo.getState()) && !returnInfo.getState().equals("ING")) { - return Result.fail("退款渠道调用失败,"+returnInfo.getNote()); - } - } else { - return Result.fail("退款渠道调用失败:" + publicResp.getMsg()); - } - } groupOrderInfo.setRefundNumber(groupOrderInfo.getRefundNumber() + param.getNum()); if (groupOrderInfo.getRefundAmount() == null) { groupOrderInfo.setRefundAmount(param.getRefundAmount()); diff --git a/src/main/resources/mapper/TbGroupOrderCouponMapper.xml b/src/main/resources/mapper/TbGroupOrderCouponMapper.xml index 012d653..932ff01 100644 --- a/src/main/resources/mapper/TbGroupOrderCouponMapper.xml +++ b/src/main/resources/mapper/TbGroupOrderCouponMapper.xml @@ -6,6 +6,7 @@ + @@ -14,7 +15,7 @@ id - , order_id, coupon_no, is_refund, refund_amount, refund_reason, refund_desc + , order_id, coupon_no,mch_refund_no, is_refund, refund_amount, refund_reason, refund_desc + select * from tb_user_info where telephone=#{phone,jdbcType=VARCHAR} + +