Commit 2e7077ba authored by hanfeng's avatar hanfeng

Merge remote-tracking branch 'origin/dev' into dev

parents b937e843 19148957
......@@ -21,6 +21,8 @@ import java.io.Serializable;
public class BaseUserMemberExport implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
@Column(name = "user_id")
private Integer userId;
private String username;
@Column(name = "member_level")
private Integer memberLevel;
......
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 钱包提现表
......@@ -134,4 +137,7 @@ public class MyWalletCath implements Serializable {
@Column(name = "offline_way")
@ApiModelProperty(value = "线下提现方式 1:自动 2:手动")
private Integer offlineWay;
@Column(name = "real_reason")
private String realReason;
}
......@@ -5,7 +5,6 @@ import com.github.wxiaoqi.security.admin.bo.UserStaffBo;
import com.github.wxiaoqi.security.admin.dto.AppUserSellingWaterDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserPosition;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
......@@ -162,7 +161,8 @@ public interface UserFeign {
public ObjectRestResponse<Void> withDrawprocess(@RequestParam(value = "orderNo") String orderNo,
@RequestParam(value = "cono",required = false) String cono,
@RequestParam(value = "reason",required = false) String reason,
@RequestParam(value = "isSuccess") Boolean isSuccess);
@RequestParam(value = "isSuccess") Boolean isSuccess,
@RequestParam(value = "realReason",required = false) String realReason);
@GetMapping("/app/user/collect/exist")
boolean isCollectionByTypeAndTypeId(@RequestParam("userId") Integer userId,
......
......@@ -100,7 +100,7 @@ public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay
if(appUserLogin != null && StringUtils.isNotBlank(appUserLogin.getWxOpenid())) {
AppUserDetail appUserDetail = appUserDetailBiz.getUserByUserid(userId);
AppUserAlipay wxAppUser = new AppUserAlipay();
wxAppUser.setType(2);
wxAppUser.setType(0);
wxAppUser.setUserId(userId);
wxAppUser.setNickname(StringUtils.isEmpty(appUserDetail.getWxNickname())?appUserDetail.getNickname():appUserDetail.getWxNickname());
wxAppUser.setTxAlipay(appUserLogin.getWxOpenid());
......
......@@ -77,6 +77,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
throw new BaseException(e);
}
}
boolean hasUsed = phoneAndUserIdMap == null ? false : (phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()) == null ? false : true);
BaseUserMemberExport memberExport = BaseUserMemberExport
.builder()
.username(userMemberSaveDTO.getPhone())
......@@ -85,7 +86,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
.rentFreeDays(userMemberSaveDTO.getRentFreeDays())
.memberName(userMemberSaveDTO.getMemberName())
.discount(level == null ? 0 : level.getDiscount() == null ? 0 : level.getDiscount())
.status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()) == null ? 0 : 1))
.status(hasUsed?1:0)
.userId(hasUsed?phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()):null)
.crtId(userId)
.crtName(name)
.crtTime(Instant.now().toEpochMilli())
......@@ -178,6 +180,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
throw new BaseException(e);
}*/
}
boolean hasUsed = phoneAndUserIdMap == null ? false : (phoneAndUserIdMap.get(phone) == null ? false : true);
BaseUserMemberExport memberExport = BaseUserMemberExport
.builder()
.username(phone.trim())
......@@ -185,7 +188,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
.totalNumber(Integer.valueOf(totalNumber))
.rentFreeDays(Integer.valueOf(rentFreeDays))
.discount(discount)
.status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(phone) == null ? 0 : 1))
.status(hasUsed?1:0)
.userId(hasUsed?phoneAndUserIdMap.get(phone):null)
.crtId(userId)
.memberName(memberName)
.crtName(userName)
......@@ -226,8 +230,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
}
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void updateUserMemberExportDataToLoseEfficacyByPhone(String phone) {
mapper.updateUserMemberExportDataToLoseEfficacyByPhone(phone);
public void updateUserMemberExportDataToLoseEfficacyByPhone(String phone,Integer userId) {
mapper.updateUserMemberExportDataToLoseEfficacyByPhone(phone,userId);
}
public PageDataVO<BaseUserMemberExportVo> findUserMemberExportDataPage(BaseUserMemberExportDataFindDTO exportDataFindDTO) {
......
......@@ -408,7 +408,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
BigDecimal commission = cath.getCommission();
if (status == WithDrawStatusEnum.AGREE.getCode()) {
if(org.springframework.util.StringUtils.hasText(payMentNo)){
withDrawProcess(cath.getOrderNo(),payMentNo,null,true);
withDrawProcess(cath.getOrderNo(),payMentNo,null,null,true);
}else {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String host = StringUtils.defaultIfBlank(request.getHeader("userHost"), ClientUtil.getClientIp(request));
......@@ -425,9 +425,9 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
ObjectRestResponse<String> response = thirdFeign.transferAccount(fundPayVo);
if (response.getStatus() == 200){
withDrawProcess(cath.getOrderNo(),response.getData(),"",true);
withDrawProcess(cath.getOrderNo(),response.getData(),null,null,true);
}else {
withDrawProcess(cath.getOrderNo(),response.getData(),response.getMessage(),false);
withDrawProcess(cath.getOrderNo(),response.getData(),response.getMessage(),response.getMessage(),false);
}
log.info("发送提现消息成功:【{}】", fundPayVo);
......@@ -483,7 +483,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
return payAccountVos;
}
public void withDrawProcess(String orderNo, String cono, String reason, Boolean isSuccess) {
public void withDrawProcess(String orderNo, String cono, String reason, String realReason,Boolean isSuccess) {
MyWalletCath myWalletCath = myWalletCathBiz.findWalletCatchByOrderNo(orderNo);
BigDecimal balnece = myWalletCath.getBalance();
myWalletCath.setCono(cono);
......@@ -510,6 +510,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
wallet.setUserId(myWalletCath.getUserId());
wallet = selectOne(wallet);
myWalletCath.setReason(reason);
myWalletCath.setRealReason(realReason);
myWalletCath.setStauts(WithDrawStatusEnum.FAIL.getCode());
BigDecimal amount = myWalletCath.getRealAmount().add(myWalletCath.getCommission());
BigDecimal balance = wallet.getBalance().add(amount);
......
......@@ -18,7 +18,7 @@ import java.util.List;
public interface BaseUserMemberExportMapper extends Mapper<BaseUserMemberExport>, InsertListMapper<BaseUserMemberExport> {
void updateUserMemberExportDataToLoseEfficacyByPhone(@Param("phone") String phone);
void updateUserMemberExportDataToLoseEfficacyByPhone(@Param("phone") String phone,@Param("userId") Integer userId);
List<BaseUserMemberExportDTO> findExportDataPage(BaseUserMemberExportDataFindDTO exportDataFindDTO);
......
......@@ -143,8 +143,9 @@ public class MyWalletController {
public ObjectRestResponse<Void> withDrawprocess(@RequestParam(value = "orderNo") String orderNo,
@RequestParam(value = "cono", required = false) String cono,
@RequestParam(value = "reason", required = false) String reason,
@RequestParam(value = "isSuccess") Boolean isSuccess) {
myWalletBiz.withDrawProcess(orderNo, cono, reason, isSuccess);
@RequestParam(value = "isSuccess") Boolean isSuccess,
@RequestParam(value = "realReason",required = false) String realReason) {
myWalletBiz.withDrawProcess(orderNo, cono, reason,realReason,isSuccess);
return ObjectRestResponse.succ();
}
}
......@@ -1098,7 +1098,7 @@ public class AppPermissionService {
List<BaseUserMemberExportDTO> memberExportDTOS = baseUserMemberExportBiz.findUserMemberExportDataByPhoneAndHashEffective(phone);
if (CollectionUtils.isNotEmpty(memberExportDTOS)) {
insertUserMemberByExistUserMemberExportData(userId, memberExportDTOS);
baseUserMemberExportBiz.updateUserMemberExportDataToLoseEfficacyByPhone(phone);
baseUserMemberExportBiz.updateUserMemberExportDataToLoseEfficacyByPhone(phone,userId);
}
}
......
......@@ -13,10 +13,11 @@
<result property="crtId" column="crt_id"/>
<result property="crtName" column="crt_name"/>
<result property="crtTime" column="crt_time"/>
<result property="userId" column="user_id"/>
</resultMap>
<update id="updateUserMemberExportDataToLoseEfficacyByPhone">
update `base_user_member_export` set `status`=1 where `username`=#{phone}
update `base_user_member_export` set `status`=1,`user_id`=#{userId} where `username`=#{phone}
</update>
<select id="findExportDataPage" resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO">
......
......@@ -9,6 +9,9 @@ public class NotifyUrlDTO {
public static final int TYPE_APP = 1;
public static final int TYPE_WX = 2;
public static final int PAY_WAY_WX = 1;
public static final int PAY_WAY_ALI = 2;
//订单号
@ApiModelProperty(value = "订单号")
private String orderNo;
......
......@@ -47,6 +47,7 @@ import java.util.*;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.order.pojo.pay.NotifyUrlDTO.PAY_WAY_ALI;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/**
......@@ -742,4 +743,26 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}
return mapper.outStatisticalData(queryCriteria,startTime,endTime);
}
//订单完成时,payway为 支付宝,则转支付
public void finishFreeze2PayAmount(BaseOrder baseOrder) {
try {
if (baseOrder.getPayWay().equals(PAY_WAY_ALI)) {
OrderRefundVo orv = new OrderRefundVo();
orv.setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
orv.setOrderNo(baseOrder.getNo());
orv.setRefundAmount(0);
orv.setRefundDesc("非退款");
orv.setFreeze2PayAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
orv.setFreeze2PayDesc(StrUtil.format("冻结转支付{}", baseOrder.getRealAmount()));
ObjectRestResponse<String> result = thirdFeign.refund(orv);
String refundTradeNo = result.getData();
if(null == refundTradeNo) {
log.error("退款没有refundTradeNo,订单号为:{}, 微服务调用结果为{}", baseOrder.getNo(), JSONUtil.toJsonStr(result));
}
}
}catch (Exception ex) {
log.error(StrUtil.format("退款异常{},订单号为:{}", ex.getMessage(), baseOrder.getNo()), ex);
}
}
}
\ No newline at end of file
package com.xxfc.platform.order.biz;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
......@@ -11,17 +12,21 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.OrderTourVerificationVO;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.tour.vo.TourGoodOrderFindVo;
import com.xxfc.platform.universal.vo.OrderRefundVo;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.Instant;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List;
import static com.xxfc.platform.order.pojo.pay.NotifyUrlDTO.PAY_WAY_ALI;
/**
* 旅游订单核销
*
......@@ -39,6 +44,9 @@ public class OrderTourVerificationBiz{
private BaseOrderBiz baseOrderBiz;
@Autowired
private OrderTourDetailBiz tourDetailBiz;
@Autowired
private OrderAccountBiz orderAccountBiz;
@Autowired
private TourFeign tourFeign;
......@@ -130,6 +138,8 @@ public class OrderTourVerificationBiz{
tourDetail = tourDetailBiz.updateSelectiveByIdReT(tourDetail);
tourFeign.updateTourGoodPersonNum(verificationId,"verification_person",total_number);
baseOrderBiz.sendOrderMq(null,tourDetail,null, baseOrder, OrderMQDTO.ORDER_FINISH);
//订单完成时,payway为 支付宝,则转支付
orderAccountBiz.finishFreeze2PayAmount(baseOrder);
return ObjectRestResponse.succ(tourDetail.getVerificationId());
}
......
......@@ -78,13 +78,13 @@ public class WithDrawMqHandler implements InitializingBean {
String cono = orderPayBiz.fundTrans(fundPayVo);
orderNo = fundPayVo.getOrderNo();
log.info("提现成功:【商户订单号:{}】-->【{}】", cono,msg);
userFeign.withDrawprocess(fundPayVo.getOrderNo(), cono, "", true);
userFeign.withDrawprocess(fundPayVo.getOrderNo(), cono, "", true,"");
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// 手动签收
basicAck(channel, deliveryTag, false, pay_way);
} catch (UnsupportedEncodingException e) {
basicNack(channel, message.getMessageProperties().getDeliveryTag(), false, false, pay_way);
userFeign.withDrawprocess(fundPayVo.getOrderNo(), "",DEFAULT_ERROR_MSG, false);
userFeign.withDrawprocess(fundPayVo.getOrderNo(), "",DEFAULT_ERROR_MSG, false,e.getMessage());
String reason = String.format("%s%s%s", pay_way, "转账失败", "[不支持的编码:UTF-8]");
log.info("{}:【{}】", reason, e);
} catch (BaseException e) {
......@@ -112,9 +112,8 @@ public class WithDrawMqHandler implements InitializingBean {
if (aliPayErrorCodes.contains(subCode) && cathType != null && cathType == PayWay.ALI_PAY.getCode()) {
msg = AliPayErrorEnum.valueOf(subCode).getSubReason();
}
msg = StringUtils.isEmpty(msg) ? DEFAULT_ERROR_MSG : msg;
userFeign.withDrawprocess(fundPayVo.getOrderNo(), "", msg, false);
String reason = StringUtils.isEmpty(msg) ? DEFAULT_ERROR_MSG : msg;
userFeign.withDrawprocess(fundPayVo.getOrderNo(), "",reason, false,e.getMessage());
//放弃此消息
basicNack(channel, message.getMessageProperties().getDeliveryTag(), false, false, pay_way);
}
......
package com.xxfc.platform.vehicle.rest;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
......@@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map;
......@@ -174,5 +176,17 @@ public class VehicleDepartureController {
return ObjectRestResponse.succ(reserveType);
}
/**
* 车辆用途字典查询
* 除去用户租车
*/
@GetMapping("findReservePartType")
public ObjectRestResponse<OrderPageVO> getOrderPartDetail() {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
String reserveType = dictionaryMap.get(VEHICE_ORDER + "_" + RESERVE).getDetail();
HashMap<String, List<Map<String, String>>> map = JSONUtil.toBean(reserveType, HashMap.class);
List<Map<String, String>> type = map.get("type");
type.remove(0);
return ObjectRestResponse.succ(type);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment