diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 7bbf13496..23cd9a2b0 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -122,6 +122,9 @@ public class OrderService { @Resource private IPileMerchantInfoService pileMerchantInfoService; + @Resource + private IMemberWalletLogService memberWalletLogService; + @Resource private RedisCache redisCache; @@ -293,69 +296,6 @@ public class OrderService { log.info("订单号:{}发送停机指令成功", dto.getOrderCode()); } - /** - * 微信支付回调 - * - * @param request - * @param body - * @throws Exception - */ - // public void wechatPayCallback(HttpServletRequest request, WechatPayNotifyParameter body) throws Exception { - // // 获取微信支付成功返回的信息 - // Map map = wechatPayService.wechatPayCallbackInfo(request, body); - // String type = (String) map.get("type"); - // BigDecimal amount = (BigDecimal) map.get("amount"); // 微信给的amount单位是分 - // amount = amount.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); // 转换为元 - // - // String orderCode = (String) map.get("orderCode"); - // String memberId = (String) map.get("memberId"); - // if (StringUtils.equals(type, ScenarioEnum.ORDER.getValue())) { // 1-订单支付 - // // 支付订单成功 - // // orderCode = (String) map.get("orderCode"); - // PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder() - // .orderCode(orderCode) - // .payAmount(amount) - // .payMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()) - // .acquirer(AcquirerEnum.WECHAT_PAY.getValue()) - // .build(); - // // 订单支付成功 支付回调 - // orderBasicInfoService.payOrderSuccessCallback(callbackDTO); - // - // // 记录订单支付流水 - // // OrderPayRecord orderPayRecord = OrderPayRecord.builder() - // // .orderCode(orderCode) - // // .payMode(OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue()) - // // .payAmount(amount) - // // .acquirer(AcquirerEnum.WECHAT_PAY.getValue()) - // // .createBy(null) - // // .build(); - // // orderPayRecordService.batchInsert(Lists.newArrayList(orderPayRecord)); - // } else if (StringUtils.equals(type, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额 - // // 充值余额成功 - // // memberId = (String) map.get("memberId"); - // UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO(); - // dto.setMemberId(memberId); - // dto.setType(MemberWalletEnum.TYPE_IN.getValue()); - // dto.setSubType(MemberWalletEnum.SUBTYPE_TOP_UP.getValue()); - // dto.setUpdatePrincipalBalance(amount); - // memberBasicInfoService.updateMemberBalance(dto); - // } - // - // // 微信支付订单 记录会员交易流水 - // MemberTransactionRecord record = MemberTransactionRecord.builder() - // .orderCode(orderCode) - // .scenarioType(type) - // .memberId(memberId) - // .actionType(ActionTypeEnum.FORWARD.getValue()) - // .payMode(PayModeEnum.PAYMENT_OF_WECHATPAY.getValue()) - // .paymentInstitutions(PaymentInstitutionsEnum.WECHAT_PAY.getValue()) - // .amount(amount) // 单位元 - // .outTradeNo(String.valueOf(map.get("out_trade_no"))) - // .transactionId(String.valueOf(map.get("transaction_id"))) - // .build(); - // memberTransactionRecordService.insertSelective(record); - // } - /** * 微信退款 * @@ -458,86 +398,9 @@ public class OrderService { // 支付流水 List payRecords = orderPayRecordService.selectOrderPayInfoList(orderCode); vo.setPayRecordList(payRecords); - /*List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); - if (CollectionUtils.isNotEmpty(orderPayRecordList)) { - List payRecordList = Lists.newArrayList(); - for (OrderPayRecord orderPayRecord : orderPayRecordList) { - OrderDetailInfoVO.PayRecord payInfo = new OrderDetailInfoVO.PayRecord(); - // 余额支付如果是由本金和赠送一起支付的,合并为一个 - BigDecimal bigDecimal = orderPayRecordList.stream() - .map(OrderPayRecord::getPayAmount) - .reduce(BigDecimal.ZERO, BigDecimal::add); - payInfo.setPayAmount(bigDecimal.toString()); - payInfo.setPayStatus(orderBasicInfo.getPayStatus()); - payInfo.setPayTime(DateUtils.formatDateTime(orderBasicInfo.getPayTime())); - if (orderPayRecord.getRefundAmount() != null) { - payInfo.setRefundAmount(orderPayRecord.getRefundAmount().toString()); - } - String payMode = orderPayRecord.getPayMode(); - if (StringUtils.equals(payMode, OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue()) - || StringUtils.equals(payMode, OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) { - // 使用余额支付 - payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue()); - payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_BALANCE.getLabel()); - } else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())){ - // 使用微信支付 - payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()); - payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel()); - - // 判断是微信支付还是汇付支付 - MemberTransactionRecord record = memberTransactionRecordService.selectByOrderCode(orderCode, ActionTypeEnum.FORWARD.getValue()); - if (record != null) { - String paymentInstitutions = record.getPaymentInstitutions(); - if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { - // 查微信支付回调记录 - WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); - if (wxpayCallbackRecord != null) { - payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); - payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); - } - } else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) { - // 查询汇付支付回调 - AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode); - if (adapayCallbackRecord != null) { - payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId()); - payInfo.setTransactionId(adapayCallbackRecord.getOutTransId()); - } - } - } - - // 查微信支付回调记录 - WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); - if (wxpayCallbackRecord != null) { - payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); - payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); - } - } else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())){ - // 使用白名单支付 - payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue()); - payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel()); - } - payRecordList.add(payInfo); - } - vo.setPayRecordList(payRecordList); - }*/ // 查询退款明细 - List orderRefundInfoList = Lists.newArrayList(); - List paymentReverseResponses = orderBasicInfoService.queryOrderAdapayRefund(orderBasicInfo); - if (CollectionUtils.isNotEmpty(paymentReverseResponses)) { - OrderDetailInfoVO.OrderRefundInfo refundInfo; - for (PaymentReverseResponse reverseResponse : paymentReverseResponses) { - refundInfo = new OrderDetailInfoVO.OrderRefundInfo(); - refundInfo.setReverseId(reverseResponse.getId()); - refundInfo.setPaymentId(reverseResponse.getPayment_id()); - refundInfo.setReverseAmt(reverseResponse.getReverse_amt()); - LocalDateTime createdTime = DateUtils.timestampToDatetime(Long.parseLong(reverseResponse.getCreated_time())); - refundInfo.setCreatedTime(DateUtils.formatDateTime(createdTime)); - LocalDateTime succeedTime = DateUtils.timestampToDatetime(Long.parseLong(reverseResponse.getSucceed_time())); - refundInfo.setSucceedTime(DateUtils.formatDateTime(succeedTime)); - orderRefundInfoList.add(refundInfo); - } - } + List orderRefundInfoList = getOrderRefundInfoList(orderBasicInfo); vo.setOrderRefundInfoList(orderRefundInfoList); // 查订单明细 @@ -567,6 +430,36 @@ public class OrderService { return vo; } + /** + * 获取退款明细列表 + * @param orderBasicInfo + * @return + */ + private List getOrderRefundInfoList(OrderBasicInfo orderBasicInfo) { + List orderRefundInfoList = Lists.newArrayList(); + if (OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue().equals(orderBasicInfo.getPayMode())) { + // 查新member_wallet_log订单退款记录 + // memberWalletLogService. + } else if (OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue().equals(orderBasicInfo.getPayMode())) { + List paymentReverseResponses = orderBasicInfoService.queryOrderAdapayRefund(orderBasicInfo); + if (CollectionUtils.isNotEmpty(paymentReverseResponses)) { + OrderDetailInfoVO.OrderRefundInfo refundInfo; + for (PaymentReverseResponse reverseResponse : paymentReverseResponses) { + refundInfo = new OrderDetailInfoVO.OrderRefundInfo(); + refundInfo.setReverseId(reverseResponse.getId()); + refundInfo.setPaymentId(reverseResponse.getPayment_id()); + refundInfo.setReverseAmt(reverseResponse.getReverse_amt()); + LocalDateTime createdTime = DateUtils.timestampToDatetime(Long.parseLong(reverseResponse.getCreated_time())); + refundInfo.setCreatedTime(DateUtils.formatDateTime(createdTime)); + LocalDateTime succeedTime = DateUtils.timestampToDatetime(Long.parseLong(reverseResponse.getSucceed_time())); + refundInfo.setSucceedTime(DateUtils.formatDateTime(succeedTime)); + orderRefundInfoList.add(refundInfo); + } + } + } + return orderRefundInfoList; + } + /** * 微信支付退款回调 * diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberWalletLog.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberWalletLog.java index a0487e88e..71daef1fc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberWalletLog.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberWalletLog.java @@ -1,63 +1,64 @@ package com.jsowell.pile.domain; +import java.math.BigDecimal; +import java.util.Date; import lombok.AllArgsConstructor; import lombok.Builder; -import lombok.Data; +import lombok.Getter; import lombok.NoArgsConstructor; - -import java.math.BigDecimal; -import java.time.LocalDateTime; +import lombok.Setter; /** * 会员钱包流水表 */ -@Data +@Getter +@Setter @Builder @AllArgsConstructor @NoArgsConstructor public class MemberWalletLog { - /** - * 主键 - */ - private Integer id; + /** + * 主键 + */ + private Integer id; - /** - * 会员id - */ - private String memberId; + /** + * 会员id + */ + private String memberId; - /** - * 类型(1-进账;2-出账) - */ - private String type; + /** + * 类型(1-进账;2-出账) + */ + private String type; - /** - * 子类型(10-充值, 11-赠送, 12-订单结算退款,20-后管扣款, 21-订单付款, 22-用户退款) - */ - private String subType; + /** + * 子类型(10-充值, 11-赠送, 12-订单结算退款,20-后管扣款, 21-订单付款, 22-用户退款) + */ + private String subType; - /** - * 金额 - */ - private BigDecimal amount; + /** + * 金额 + */ + private BigDecimal amount; - /** - * 余额类型(1-本金,2-赠送) - */ - private String category; + /** + * 余额类型(1-本金,2-赠送) + */ + private String category; - /** - * 关联订单编号 - */ - private String relatedOrderCode; + /** + * 关联订单 + */ + private String relatedOrderCode; - /** - * 创建人 - */ - private String createBy; + /** + * 创建人 + */ + private String createBy; - /** - * 创建时间 - */ - private LocalDateTime createTime; + /** + * 创建时间 + */ + private Date createTime; } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java index 9d548cf1a..394f5755a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberWalletLogMapper.java @@ -1,40 +1,75 @@ package com.jsowell.pile.mapper; - import com.jsowell.pile.domain.MemberWalletLog; import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO; import com.jsowell.pile.vo.uniapp.MemberBalanceVO; import com.jsowell.pile.vo.uniapp.MemberWalletLogVO; import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; import java.util.List; -@Repository public interface MemberWalletLogMapper { - // int deleteByPrimaryKey(Integer id); + /** + * delete by primary key + * + * @param id primaryKey + * @return deleteCount + */ + int deleteByPrimaryKey(Integer id); - // int insert(MemberWalletLog record); + /** + * insert record to table + * + * @param record the record + * @return insert count + */ + int insert(MemberWalletLog record); - // int insertSelective(MemberWalletLog record); + /** + * insert record to table selective + * + * @param record the record + * @return insert count + */ + int insertSelective(MemberWalletLog record); - // MemberWalletLog selectByPrimaryKey(Integer id); + /** + * select by primary key + * + * @param id primary key + * @return object by primary key + */ + MemberWalletLog selectByPrimaryKey(Integer id); - // int updateByPrimaryKeySelective(MemberWalletLog record); + /** + * update record selective + * + * @param record the updated record + * @return update count + */ + int updateByPrimaryKeySelective(MemberWalletLog record); - // int updateByPrimaryKey(MemberWalletLog record); + /** + * update record + * + * @param record the updated record + * @return update count + */ + int updateByPrimaryKey(MemberWalletLog record); void batchInsert(@Param("list") List logList); /** * 查询用户账户余额变动信息 + * * @param memberId 会员id - * @param type 1-进账;2-出账 不传查全部 + * @param type 1-进账;2-出账 不传查全部 */ List getMemberBalanceChanges(@Param("memberId") String memberId, @Param("type") String type); /** * 小程序查询会员余额明细 + * * @param dto * @return */ @@ -42,6 +77,7 @@ public interface MemberWalletLogMapper { /** * 批量查询用户可退款金额 + * * @param memberIds * @return */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberWalletLogService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberWalletLogService.java index bfb159cf2..0ecd8bf3c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberWalletLogService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberWalletLogService.java @@ -1,16 +1,18 @@ package com.jsowell.pile.service; +import com.jsowell.pile.domain.MemberWalletLog; + public interface IMemberWalletLogService { - // int deleteByPrimaryKey(Integer id); - // - // int insert(MemberWalletLog record); - // - // int insertSelective(MemberWalletLog record); - // - // MemberWalletLog selectByPrimaryKey(Integer id); - // - // int updateByPrimaryKeySelective(MemberWalletLog record); - // - // int updateByPrimaryKey(MemberWalletLog record); + int deleteByPrimaryKey(Integer id); + + int insert(MemberWalletLog record); + + int insertSelective(MemberWalletLog record); + + MemberWalletLog selectByPrimaryKey(Integer id); + + int updateByPrimaryKeySelective(MemberWalletLog record); + + int updateByPrimaryKey(MemberWalletLog record); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java index c66e39eac..4aa058e09 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberWalletLogServiceImpl.java @@ -13,34 +13,34 @@ public class MemberWalletLogServiceImpl implements IMemberWalletLogService { @Resource private MemberWalletLogMapper memberWalletLogMapper; - // @Override - // public int deleteByPrimaryKey(Integer id) { - // return memberWalletLogMapper.deleteByPrimaryKey(id); - // } - // - // @Override - // public int insert(MemberWalletLog record) { - // return memberWalletLogMapper.insert(record); - // } - // - // @Override - // public int insertSelective(MemberWalletLog record) { - // return memberWalletLogMapper.insertSelective(record); - // } - // - // @Override - // public MemberWalletLog selectByPrimaryKey(Integer id) { - // return memberWalletLogMapper.selectByPrimaryKey(id); - // } - // - // @Override - // public int updateByPrimaryKeySelective(MemberWalletLog record) { - // return memberWalletLogMapper.updateByPrimaryKeySelective(record); - // } - // - // @Override - // public int updateByPrimaryKey(MemberWalletLog record) { - // return memberWalletLogMapper.updateByPrimaryKey(record); - // } + @Override + public int deleteByPrimaryKey(Integer id) { + return memberWalletLogMapper.deleteByPrimaryKey(id); + } + + @Override + public int insert(MemberWalletLog record) { + return memberWalletLogMapper.insert(record); + } + + @Override + public int insertSelective(MemberWalletLog record) { + return memberWalletLogMapper.insertSelective(record); + } + + @Override + public MemberWalletLog selectByPrimaryKey(Integer id) { + return memberWalletLogMapper.selectByPrimaryKey(id); + } + + @Override + public int updateByPrimaryKeySelective(MemberWalletLog record) { + return memberWalletLogMapper.updateByPrimaryKeySelective(record); + } + + @Override + public int updateByPrimaryKey(MemberWalletLog record) { + return memberWalletLogMapper.updateByPrimaryKey(record); + } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml index 810579a2a..b9239da73 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberWalletLogMapper.xml @@ -1,29 +1,145 @@ - - - - - - - - - - - - - - - id, + + + + + + + + + + + + + + + + id, member_id, `type`, sub_type, amount, category, related_order_code, create_by, + create_time + + + + + delete from member_wallet_log + where id = #{id,jdbcType=INTEGER} + + + + insert into member_wallet_log (member_id, `type`, sub_type, + amount, category, related_order_code, + create_by, create_time) + values (#{memberId,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{subType,jdbcType=VARCHAR}, + #{amount,jdbcType=DECIMAL}, #{category,jdbcType=CHAR}, #{relatedOrderCode,jdbcType=VARCHAR}, + #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}) + + + + insert into member_wallet_log + + member_id, + + `type`, + + sub_type, + + amount, + + category, + + + related_order_code, + + create_by, - create_time - + + + create_time, + + + + + #{memberId,jdbcType=VARCHAR}, + + + #{type,jdbcType=VARCHAR}, + + + #{subType,jdbcType=VARCHAR}, + + + #{amount,jdbcType=DECIMAL}, + + + #{category,jdbcType=CHAR}, + + + #{relatedOrderCode,jdbcType=VARCHAR}, + + + #{createBy,jdbcType=VARCHAR}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + + + + update member_wallet_log + + + member_id = #{memberId,jdbcType=VARCHAR}, + + + `type` = #{type,jdbcType=VARCHAR}, + + + sub_type = #{subType,jdbcType=VARCHAR}, + + + amount = #{amount,jdbcType=DECIMAL}, + + + category = #{category,jdbcType=CHAR}, + + + related_order_code = #{relatedOrderCode,jdbcType=VARCHAR}, + + + create_by = #{createBy,jdbcType=VARCHAR}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + where id = #{id,jdbcType=INTEGER} + + + + update member_wallet_log + set member_id = #{memberId,jdbcType=VARCHAR}, + `type` = #{type,jdbcType=VARCHAR}, + sub_type = #{subType,jdbcType=VARCHAR}, + amount = #{amount,jdbcType=DECIMAL}, + category = #{category,jdbcType=CHAR}, + related_order_code = #{relatedOrderCode,jdbcType=VARCHAR}, + create_by = #{createBy,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=INTEGER} + insert into member_wallet_log (member_id, `type`, @@ -81,7 +197,7 @@ where member_id in - + #{memberId,jdbcType=VARCHAR}