| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsRequest; |
| | | import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult; |
| | | import com.github.binarywang.wxpay.bean.ecommerce.RefundNotifyResult; |
| | | import com.github.binarywang.wxpay.bean.ecommerce.TransactionsResult; |
| | | import com.github.binarywang.wxpay.bean.ecommerce.enums.TradeTypeEnum; |
| | | import com.github.binarywang.wxpay.bean.profitsharingV3.ProfitSharingNotifyResult; |
| | | import com.github.binarywang.wxpay.config.WxPayConfig; |
| | | import com.github.binarywang.wxpay.exception.WxPayException; |
| | | import com.github.binarywang.wxpay.service.WxPayService; |
| | | import com.google.common.base.Joiner; |
| | | import com.google.gson.Gson; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.redisson.api.RLock; |
| | | import org.redisson.api.RedissonClient; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | @Resource |
| | | private PayRecordService payRecordService; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private RedissonClient redissonClient; |
| | | |
| | | /*@Autowired |
| | | private WxPayService wxService;*/ |
| | | @Resource |
| | | private WxPayService wxService; |
| | | |
| | | @Resource |
| | | private PaymentMessageService paymentMessageService; |
| | |
| | | appPlaceOrderVo.setOrderNo(orderNo); |
| | | |
| | | String goodsName = ""; |
| | | if (null != goods) { |
| | | goodsName = goods.getGoodsName(); |
| | | if (null != goodsNameList) { |
| | | goodsName = String.join(",", goodsNameList); |
| | | } |
| | | |
| | | // 小程序微信下单支付 |
| | |
| | | * @param payerClientIp |
| | | * @param goodsNameList |
| | | */ |
| | | /*private void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId, |
| | | public void createWxPayInfo(AppPlaceOrderVo appPlaceOrderVo, Long userId, Long shopId, |
| | | String goodsName, String orderNo, |
| | | String orderId, BigDecimal payMoney, |
| | | String openid, String payerClientIp, List<String> goodsNameList){ |
| | | try { |
| | | // 创建支付订单 |
| | | R<String> resultMch = remoteShopService.getShopSubMchId(shopId); |
| | | String subMchId = resultMch.getData(); |
| | | //R<String> resultMch = remoteShopService.getShopSubMchId(shopId); |
| | | String subMchId = "1650744551"; |
| | | if (StringUtils.isEmpty(subMchId)) { |
| | | throw new ServiceException("获取微信商户号失败"); |
| | | } |
| | |
| | | } catch (WxPayException e) { |
| | | throw new ServiceException(e.getMessage()); |
| | | } |
| | | }*/ |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | if (member.getBindingFlag() != 1) { |
| | | AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); |
| | | appMemberBindingDto.setBindingFlag(1); |
| | | appMemberBindingDto.setBindingType(4); |
| | | appMemberBindingDto.setShopId(shop.getShopId()); |
| | | appMemberBindingDto.setShopName(shop.getShopName()); |
| | | appMemberBindingDto.setUserId(memberCoupon.getUserId()); |
| | |
| | | if (member.getBindingFlag() != 1) { |
| | | AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto(); |
| | | appMemberBindingDto.setBindingFlag(1); |
| | | appMemberBindingDto.setBindingType(5); |
| | | appMemberBindingDto.setShopId(shop.getShopId()); |
| | | appMemberBindingDto.setShopName(shop.getShopName()); |
| | | appMemberBindingDto.setUserId(memberGiftRecord.getUserId()); |
| | |
| | | sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); |
| | | String password = "hongruitang"; |
| | | sysUser.setPassword(SecurityUtils.encryptPassword(password)); |
| | | log.debug("sysUser" + sysUser.toString()); |
| | | sysUser = remoteUserService.registerUser(sysUser).getData(); |
| | | member = new Member(); |
| | | member.setMemberId(memberId); |
| | |
| | | member.setRealName(name); |
| | | member.setNickName(name); |
| | | member.setBindingFlag(1); |
| | | member.setBindingType(3); |
| | | member.setRelationShopId(shopId); |
| | | member.setRelationShopName(shop.getShopName()); |
| | | remoteMemberService.createNewMember(member); |
| | |
| | | appMemberBindingDto.setShopName(shop.getShopName()); |
| | | appMemberBindingDto.setUserId(userId); |
| | | appMemberBindingDto.setBindingFlag(1); |
| | | appMemberBindingDto.setBindingType(3); |
| | | remoteMemberService.updateMemberBinding(appMemberBindingDto); |
| | | } |
| | | //更新商户统计 |
| | |
| | | @Override |
| | | public List<MerOrderPageVo> pageMerOrder(Page page, MerOrderPageDto merOrderPageDto) { |
| | | if (StringUtils.isNotBlank(merOrderPageDto.getKeyword())) { |
| | | // 获取关键字对应的用户ID |
| | | MgtUserIdByKeywordDto userIdByKeywordDto = new MgtUserIdByKeywordDto(); |
| | | userIdByKeywordDto.setKeyword(merOrderPageDto.getKeyword()); |
| | | MgtUserIdByKeywordVo userIdByKeywordVo = remoteMemberService.getUserIdByKeyword(userIdByKeywordDto).getData(); |
| | | if (StringUtils.isNotBlank(userIdByKeywordVo.getUserIds())) { |
| | | // 将用户ID转换成List<Long>类型 |
| | | List<Long> userIdList = Arrays.stream(userIdByKeywordVo.getUserIds().split(",")) |
| | | .map(Long::parseLong) |
| | | .collect(Collectors.toList()); |
| | |
| | | merOrderPageDto.setMemberUserId(null); |
| | | } |
| | | } |
| | | |
| | | // 获取订单列表 |
| | | List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerOrder(page, merOrderPageDto); |
| | | if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) { |
| | | Long userId; |
| | |
| | | String orderFromDesc; |
| | | BigDecimal zeroBig = new BigDecimal("0.00"); |
| | | StringJoiner userIdSj = new StringJoiner(","); |
| | | // 遍历订单列表 |
| | | for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { |
| | | userId = merOrderPageVo.getUserId(); |
| | | userIdSj.add(userId.toString()); |
| | | orderFrom = merOrderPageVo.getOrderFrom(); |
| | | // 根据订单来源设置订单来源描述 |
| | | if (orderFrom != null) { |
| | | if (orderFrom == 1) { |
| | | orderFromDesc = "商城订单"; |
| | | } else if(orderFrom == 2){ |
| | | orderFromDesc = "店铺砍价活动("+merOrderPageVo.getActivityName()+")"; |
| | | } else if (orderFrom == 2) { |
| | | orderFromDesc = "店铺砍价活动(" + merOrderPageVo.getActivityName() + ")"; |
| | | } else { |
| | | orderFromDesc = "线下创建"; |
| | | } |
| | |
| | | orderFromDesc = "商城订单"; |
| | | } |
| | | merOrderPageVo.setOrderFromDesc(orderFromDesc); |
| | | // 设置未支付金额为0.00,如果未支付金额小于0,则设置为0.00 |
| | | if (merOrderPageVo.getUnPaidMoney() == null) { |
| | | merOrderPageVo.setUnPaidMoney(zeroBig); |
| | | } |
| | | if(merOrderPageVo.getUnPaidMoney().compareTo(zeroBig)<0){ |
| | | if (merOrderPageVo.getUnPaidMoney().compareTo(zeroBig) < 0) { |
| | | merOrderPageVo.setUnPaidMoney(zeroBig); |
| | | } |
| | | } |
| | | |
| | | // 根据用户ID列表获取用户信息 |
| | | MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); |
| | | mgtBaseBathDto.setIds(userIdSj.toString()); |
| | | List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); |
| | | Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() |
| | | .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); |
| | | // 遍历订单列表,设置用户信息 |
| | | for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { |
| | | if (merOrderPageVo.getUserId() != null && userMap.get(merOrderPageVo.getUserId()) != null) { |
| | | merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName()); |