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; ...@@ -21,6 +21,8 @@ import java.io.Serializable;
public class BaseUserMemberExport implements Serializable { public class BaseUserMemberExport implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
@Column(name = "user_id")
private Integer userId;
private String username; private String username;
@Column(name = "member_level") @Column(name = "member_level")
private Integer memberLevel; private Integer memberLevel;
......
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; 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 { ...@@ -134,4 +137,7 @@ public class MyWalletCath implements Serializable {
@Column(name = "offline_way") @Column(name = "offline_way")
@ApiModelProperty(value = "线下提现方式 1:自动 2:手动") @ApiModelProperty(value = "线下提现方式 1:自动 2:手动")
private Integer offlineWay; private Integer offlineWay;
@Column(name = "real_reason")
private String realReason;
} }
...@@ -5,7 +5,6 @@ import com.github.wxiaoqi.security.admin.bo.UserStaffBo; ...@@ -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.AppUserSellingWaterDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin; 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.BaseUserMember;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
...@@ -162,7 +161,8 @@ public interface UserFeign { ...@@ -162,7 +161,8 @@ public interface UserFeign {
public ObjectRestResponse<Void> withDrawprocess(@RequestParam(value = "orderNo") String orderNo, public ObjectRestResponse<Void> withDrawprocess(@RequestParam(value = "orderNo") String orderNo,
@RequestParam(value = "cono",required = false) String cono, @RequestParam(value = "cono",required = false) String cono,
@RequestParam(value = "reason",required = false) String reason, @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") @GetMapping("/app/user/collect/exist")
boolean isCollectionByTypeAndTypeId(@RequestParam("userId") Integer userId, boolean isCollectionByTypeAndTypeId(@RequestParam("userId") Integer userId,
......
...@@ -100,7 +100,7 @@ public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay ...@@ -100,7 +100,7 @@ public class AppUserAlipayBiz extends BaseBiz<AppUserAlipayMapper, AppUserAlipay
if(appUserLogin != null && StringUtils.isNotBlank(appUserLogin.getWxOpenid())) { if(appUserLogin != null && StringUtils.isNotBlank(appUserLogin.getWxOpenid())) {
AppUserDetail appUserDetail = appUserDetailBiz.getUserByUserid(userId); AppUserDetail appUserDetail = appUserDetailBiz.getUserByUserid(userId);
AppUserAlipay wxAppUser = new AppUserAlipay(); AppUserAlipay wxAppUser = new AppUserAlipay();
wxAppUser.setType(2); wxAppUser.setType(0);
wxAppUser.setUserId(userId); wxAppUser.setUserId(userId);
wxAppUser.setNickname(StringUtils.isEmpty(appUserDetail.getWxNickname())?appUserDetail.getNickname():appUserDetail.getWxNickname()); wxAppUser.setNickname(StringUtils.isEmpty(appUserDetail.getWxNickname())?appUserDetail.getNickname():appUserDetail.getWxNickname());
wxAppUser.setTxAlipay(appUserLogin.getWxOpenid()); wxAppUser.setTxAlipay(appUserLogin.getWxOpenid());
......
...@@ -77,6 +77,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -77,6 +77,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
throw new BaseException(e); throw new BaseException(e);
} }
} }
boolean hasUsed = phoneAndUserIdMap == null ? false : (phoneAndUserIdMap.get(userMemberSaveDTO.getPhone()) == null ? false : true);
BaseUserMemberExport memberExport = BaseUserMemberExport BaseUserMemberExport memberExport = BaseUserMemberExport
.builder() .builder()
.username(userMemberSaveDTO.getPhone()) .username(userMemberSaveDTO.getPhone())
...@@ -85,7 +86,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -85,7 +86,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
.rentFreeDays(userMemberSaveDTO.getRentFreeDays()) .rentFreeDays(userMemberSaveDTO.getRentFreeDays())
.memberName(userMemberSaveDTO.getMemberName()) .memberName(userMemberSaveDTO.getMemberName())
.discount(level == null ? 0 : level.getDiscount() == null ? 0 : level.getDiscount()) .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) .crtId(userId)
.crtName(name) .crtName(name)
.crtTime(Instant.now().toEpochMilli()) .crtTime(Instant.now().toEpochMilli())
...@@ -178,6 +180,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -178,6 +180,7 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
throw new BaseException(e); throw new BaseException(e);
}*/ }*/
} }
boolean hasUsed = phoneAndUserIdMap == null ? false : (phoneAndUserIdMap.get(phone) == null ? false : true);
BaseUserMemberExport memberExport = BaseUserMemberExport BaseUserMemberExport memberExport = BaseUserMemberExport
.builder() .builder()
.username(phone.trim()) .username(phone.trim())
...@@ -185,7 +188,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -185,7 +188,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
.totalNumber(Integer.valueOf(totalNumber)) .totalNumber(Integer.valueOf(totalNumber))
.rentFreeDays(Integer.valueOf(rentFreeDays)) .rentFreeDays(Integer.valueOf(rentFreeDays))
.discount(discount) .discount(discount)
.status(phoneAndUserIdMap == null ? 0 : (phoneAndUserIdMap.get(phone) == null ? 0 : 1)) .status(hasUsed?1:0)
.userId(hasUsed?phoneAndUserIdMap.get(phone):null)
.crtId(userId) .crtId(userId)
.memberName(memberName) .memberName(memberName)
.crtName(userName) .crtName(userName)
...@@ -226,8 +230,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper, ...@@ -226,8 +230,8 @@ public class BaseUserMemberExportBiz extends BaseBiz<BaseUserMemberExportMapper,
} }
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public void updateUserMemberExportDataToLoseEfficacyByPhone(String phone) { public void updateUserMemberExportDataToLoseEfficacyByPhone(String phone,Integer userId) {
mapper.updateUserMemberExportDataToLoseEfficacyByPhone(phone); mapper.updateUserMemberExportDataToLoseEfficacyByPhone(phone,userId);
} }
public PageDataVO<BaseUserMemberExportVo> findUserMemberExportDataPage(BaseUserMemberExportDataFindDTO exportDataFindDTO) { public PageDataVO<BaseUserMemberExportVo> findUserMemberExportDataPage(BaseUserMemberExportDataFindDTO exportDataFindDTO) {
......
...@@ -408,7 +408,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In ...@@ -408,7 +408,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
BigDecimal commission = cath.getCommission(); BigDecimal commission = cath.getCommission();
if (status == WithDrawStatusEnum.AGREE.getCode()) { if (status == WithDrawStatusEnum.AGREE.getCode()) {
if(org.springframework.util.StringUtils.hasText(payMentNo)){ if(org.springframework.util.StringUtils.hasText(payMentNo)){
withDrawProcess(cath.getOrderNo(),payMentNo,null,true); withDrawProcess(cath.getOrderNo(),payMentNo,null,null,true);
}else { }else {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String host = StringUtils.defaultIfBlank(request.getHeader("userHost"), ClientUtil.getClientIp(request)); String host = StringUtils.defaultIfBlank(request.getHeader("userHost"), ClientUtil.getClientIp(request));
...@@ -425,9 +425,9 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In ...@@ -425,9 +425,9 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
ObjectRestResponse<String> response = thirdFeign.transferAccount(fundPayVo); ObjectRestResponse<String> response = thirdFeign.transferAccount(fundPayVo);
if (response.getStatus() == 200){ if (response.getStatus() == 200){
withDrawProcess(cath.getOrderNo(),response.getData(),"",true); withDrawProcess(cath.getOrderNo(),response.getData(),null,null,true);
}else { }else {
withDrawProcess(cath.getOrderNo(),response.getData(),response.getMessage(),false); withDrawProcess(cath.getOrderNo(),response.getData(),response.getMessage(),response.getMessage(),false);
} }
log.info("发送提现消息成功:【{}】", fundPayVo); log.info("发送提现消息成功:【{}】", fundPayVo);
...@@ -483,7 +483,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In ...@@ -483,7 +483,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
return payAccountVos; 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); MyWalletCath myWalletCath = myWalletCathBiz.findWalletCatchByOrderNo(orderNo);
BigDecimal balnece = myWalletCath.getBalance(); BigDecimal balnece = myWalletCath.getBalance();
myWalletCath.setCono(cono); myWalletCath.setCono(cono);
...@@ -510,6 +510,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In ...@@ -510,6 +510,7 @@ public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> implements In
wallet.setUserId(myWalletCath.getUserId()); wallet.setUserId(myWalletCath.getUserId());
wallet = selectOne(wallet); wallet = selectOne(wallet);
myWalletCath.setReason(reason); myWalletCath.setReason(reason);
myWalletCath.setRealReason(realReason);
myWalletCath.setStauts(WithDrawStatusEnum.FAIL.getCode()); myWalletCath.setStauts(WithDrawStatusEnum.FAIL.getCode());
BigDecimal amount = myWalletCath.getRealAmount().add(myWalletCath.getCommission()); BigDecimal amount = myWalletCath.getRealAmount().add(myWalletCath.getCommission());
BigDecimal balance = wallet.getBalance().add(amount); BigDecimal balance = wallet.getBalance().add(amount);
......
...@@ -18,7 +18,7 @@ import java.util.List; ...@@ -18,7 +18,7 @@ import java.util.List;
public interface BaseUserMemberExportMapper extends Mapper<BaseUserMemberExport>, InsertListMapper<BaseUserMemberExport> { 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); List<BaseUserMemberExportDTO> findExportDataPage(BaseUserMemberExportDataFindDTO exportDataFindDTO);
......
...@@ -143,8 +143,9 @@ public class MyWalletController { ...@@ -143,8 +143,9 @@ public class MyWalletController {
public ObjectRestResponse<Void> withDrawprocess(@RequestParam(value = "orderNo") String orderNo, public ObjectRestResponse<Void> withDrawprocess(@RequestParam(value = "orderNo") String orderNo,
@RequestParam(value = "cono", required = false) String cono, @RequestParam(value = "cono", required = false) String cono,
@RequestParam(value = "reason", required = false) String reason, @RequestParam(value = "reason", required = false) String reason,
@RequestParam(value = "isSuccess") Boolean isSuccess) { @RequestParam(value = "isSuccess") Boolean isSuccess,
myWalletBiz.withDrawProcess(orderNo, cono, reason, isSuccess); @RequestParam(value = "realReason",required = false) String realReason) {
myWalletBiz.withDrawProcess(orderNo, cono, reason,realReason,isSuccess);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
} }
...@@ -1098,7 +1098,7 @@ public class AppPermissionService { ...@@ -1098,7 +1098,7 @@ public class AppPermissionService {
List<BaseUserMemberExportDTO> memberExportDTOS = baseUserMemberExportBiz.findUserMemberExportDataByPhoneAndHashEffective(phone); List<BaseUserMemberExportDTO> memberExportDTOS = baseUserMemberExportBiz.findUserMemberExportDataByPhoneAndHashEffective(phone);
if (CollectionUtils.isNotEmpty(memberExportDTOS)) { if (CollectionUtils.isNotEmpty(memberExportDTOS)) {
insertUserMemberByExistUserMemberExportData(userId, memberExportDTOS); insertUserMemberByExistUserMemberExportData(userId, memberExportDTOS);
baseUserMemberExportBiz.updateUserMemberExportDataToLoseEfficacyByPhone(phone); baseUserMemberExportBiz.updateUserMemberExportDataToLoseEfficacyByPhone(phone,userId);
} }
} }
......
...@@ -13,10 +13,11 @@ ...@@ -13,10 +13,11 @@
<result property="crtId" column="crt_id"/> <result property="crtId" column="crt_id"/>
<result property="crtName" column="crt_name"/> <result property="crtName" column="crt_name"/>
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
<result property="userId" column="user_id"/>
</resultMap> </resultMap>
<update id="updateUserMemberExportDataToLoseEfficacyByPhone"> <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> </update>
<select id="findExportDataPage" resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO"> <select id="findExportDataPage" resultType="com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO">
......
...@@ -9,6 +9,9 @@ public class NotifyUrlDTO { ...@@ -9,6 +9,9 @@ public class NotifyUrlDTO {
public static final int TYPE_APP = 1; public static final int TYPE_APP = 1;
public static final int TYPE_WX = 2; 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 = "订单号") @ApiModelProperty(value = "订单号")
private String orderNo; private String orderNo;
......
...@@ -162,37 +162,37 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -162,37 +162,37 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
// public List<MemberOrderBo> // public List<MemberOrderBo>
/** /**
* 获取订单详情 * 获取订单详情
* *
* @param no * @param no
* @return * @return
*/ */
public ObjectRestResponse<OrderPageVO> getOrderDetail(String no, UserDTO userDTO) { public ObjectRestResponse<OrderPageVO> getOrderDetail(String no, UserDTO userDTO) {
OrderPageVO orderPageVo = mapper.getOrderDetail(no); OrderPageVO orderPageVo = mapper.getOrderDetail(no);
if (orderPageVo == null) { if (orderPageVo == null) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
} }
if(orderPageVo.getStatus() <= 3 && orderPageVo.getStatus() != 2 && orderPageVo.getStatus() != -1) { if (orderPageVo.getStatus() <= 3 && orderPageVo.getStatus() != 2 && orderPageVo.getStatus() != -1) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_DETAIL_IS_NOT_EXIST.getCode(), ResCode.ORDER_DETAIL_IS_NOT_EXIST.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.ORDER_DETAIL_IS_NOT_EXIST.getCode(), ResCode.ORDER_DETAIL_IS_NOT_EXIST.getDesc());
} }
AppUserDTO appUserVo = userFeign.userDetailById(orderPageVo.getUserId()).getData(); AppUserDTO appUserVo = userFeign.userDetailById(orderPageVo.getUserId()).getData();
if(appUserVo != null) { if (appUserVo != null) {
orderPageVo.setTelephone(appUserVo.getUsername()); orderPageVo.setTelephone(appUserVo.getUsername());
orderPageVo.setUsername(appUserVo.getRealname()); orderPageVo.setUsername(appUserVo.getRealname());
} }
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone()); List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList()); List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
if (orderPageVo.getOrderRentVehicleDetail() != null) { if (orderPageVo.getOrderRentVehicleDetail() != null) {
if (!companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getStartCompanyId()) && !companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getEndCompanyId())) { if (!companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getStartCompanyId()) && !companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getEndCompanyId())) {
return ObjectRestResponse.createFailedResult(ResCode.YOU_AUTH_FAIL.getCode(), ResCode.YOU_AUTH_FAIL.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.YOU_AUTH_FAIL.getCode(), ResCode.YOU_AUTH_FAIL.getDesc());
} }
if(userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) { if (userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) {
orderPageVo.setUserCompanyStatus(true); orderPageVo.setUserCompanyStatus(true);
} }
if (orderPageVo.getStatus() == 4) { //未交车 if (orderPageVo.getStatus() == 4) { //未交车
// boolean flag = getTodayTime(orderPageVo.getOrderRentVehicleDetail().getStartTime()); // boolean flag = getTodayTime(orderPageVo.getOrderRentVehicleDetail().getStartTime());
// if (!flag) { // if (!flag) {
// return ObjectRestResponse.createFailedResult(3501, "今日不是交车日期"); // return ObjectRestResponse.createFailedResult(3501, "今日不是交车日期");
...@@ -236,22 +236,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -236,22 +236,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
} }
/** /**
* 后台获取订单详情 * 后台获取订单详情
* @param no *
* @param userDTO * @param no
* @return * @param userDTO
*/ * @return
*/
public ObjectRestResponse<OrderPageVO> orderDetail(String no, UserDTO userDTO) { public ObjectRestResponse<OrderPageVO> orderDetail(String no, UserDTO userDTO) {
OrderPageVO orderPageVo = mapper.getOrderDetail(no); OrderPageVO orderPageVo = mapper.getOrderDetail(no);
if (orderPageVo == null) { if (orderPageVo == null) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
} }
AppUserDTO appUserVo = userFeign.userDetailById(orderPageVo.getUserId()).getData(); AppUserDTO appUserVo = userFeign.userDetailById(orderPageVo.getUserId()).getData();
if(appUserVo != null) { if (appUserVo != null) {
orderPageVo.setTelephone(appUserVo.getUsername()); orderPageVo.setTelephone(appUserVo.getUsername());
orderPageVo.setUsername(appUserVo.getRealname()); orderPageVo.setUsername(appUserVo.getRealname());
orderPageVo.setPositionName(appUserVo.getPositionName()); orderPageVo.setPositionName(appUserVo.getPositionName());
} }
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone()); List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList()); List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
...@@ -261,7 +262,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -261,7 +262,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
if (!companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getStartCompanyId()) && !companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getEndCompanyId())) { if (!companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getStartCompanyId()) && !companyIds.contains(orderPageVo.getOrderRentVehicleDetail().getEndCompanyId())) {
return ObjectRestResponse.createFailedResult(ResCode.YOU_AUTH_FAIL.getCode(), ResCode.YOU_AUTH_FAIL.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.YOU_AUTH_FAIL.getCode(), ResCode.YOU_AUTH_FAIL.getDesc());
} }
if(userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) { if (userDTO.getCompanyId() == orderPageVo.getOrderRentVehicleDetail().getEndCompanyId()) {
orderPageVo.setUserCompanyStatus(true); orderPageVo.setUserCompanyStatus(true);
} }
if (orderPageVo.getStatus() == 4) { //未交车 if (orderPageVo.getStatus() == 4) { //未交车
...@@ -301,7 +302,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -301,7 +302,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail()); BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail());
orderPageVo.setIllegalReserve(illegalReserve); orderPageVo.setIllegalReserve(illegalReserve);
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem(){{ orderPageVo.setItems(orderItemBiz.selectList(new OrderItem() {{
setOrderId(orderPageVo.getId()); setOrderId(orderPageVo.getId());
setType(104); setType(104);
}})); }}));
...@@ -309,23 +310,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -309,23 +310,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
} }
//获取两个日期之间的天数(不包含头尾) //获取两个日期之间的天数(不包含头尾)
public int getDaysBetweenDateTime(DateTime startDay, DateTime endDay) { public int getDaysBetweenDateTime(DateTime startDay, DateTime endDay) {
int a = 0; int a = 0;
for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) { for (DateTime curDate = startDay.plusDays(1); curDate.compareTo(endDay) < 0; curDate = curDate.plusDays(1)) {
a++; a++;
} }
return a; return a;
} }
//获取两个日期之间的天数(包含头尾) //获取两个日期之间的天数(包含头尾)
public int getDaysBetweenDateTimeHasStartEnd(DateTime startDay, DateTime endDay) { public int getDaysBetweenDateTimeHasStartEnd(DateTime startDay, DateTime endDay) {
int a = 0; int a = 0;
for (DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusHours(1)) { for (DateTime curDate = startDay; curDate.compareTo(endDay) <= 0; curDate = curDate.plusHours(1)) {
a++; a++;
} }
return a; return a;
} }
// public static void main(String[] args) { // public static void main(String[] args) {
// DateTime dateTime = DateTime.parse("2019-09-20 12:00:00", DEFAULT_DATE_TIME_FORMATTER); // DateTime dateTime = DateTime.parse("2019-09-20 12:00:00", DEFAULT_DATE_TIME_FORMATTER);
...@@ -476,13 +477,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -476,13 +477,13 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
dedDetailDTO.setType(OrderViolateEnum.DELAY_VEHICLE.getCode()); dedDetailDTO.setType(OrderViolateEnum.DELAY_VEHICLE.getCode());
detailName = "延长还车"; detailName = "延长还车";
} }
//900元+违约金(¥900x2天=)1800元 //900元+违约金(¥900x2天=)1800元
dedDetailDTO.setDeductions(stringBuilder.toString()); dedDetailDTO.setDeductions(stringBuilder.toString());
dedDetailDTO.setCost(cost); dedDetailDTO.setCost(cost);
dedDetailDTO.setId(1); dedDetailDTO.setId(1);
dedDetailDTO.setStatusIndex(1); dedDetailDTO.setStatusIndex(1);
dedDetailDTO.setStatusName(detailName); dedDetailDTO.setStatusName(detailName);
} }
/** /**
* 获取驾驶人驾照 * 获取驾驶人驾照
...@@ -520,62 +521,63 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -520,62 +521,63 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto); orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto);
} }
//后台获取用户驾驶信息 //后台获取用户驾驶信息
public void getUserLicense1(OrderPageVO orderPageVo) { public void getUserLicense1(OrderPageVO orderPageVo) {
OrderVehicleCrosstownDto orderVehicleCrosstownDto = new OrderVehicleCrosstownDto(); OrderVehicleCrosstownDto orderVehicleCrosstownDto = new OrderVehicleCrosstownDto();
orderVehicleCrosstownDto.setOrderId(orderPageVo.getId()); orderVehicleCrosstownDto.setOrderId(orderPageVo.getId());
orderVehicleCrosstownDto.setOrderNo(orderPageVo.getNo()); orderVehicleCrosstownDto.setOrderNo(orderPageVo.getNo());
List<OrderVehicleCrosstownDto> orderVehicleCrosstown = orderVehicleCrosstownBiz.selectByOrderId(orderVehicleCrosstownDto); List<OrderVehicleCrosstownDto> orderVehicleCrosstown = orderVehicleCrosstownBiz.selectByOrderId(orderVehicleCrosstownDto);
if (orderVehicleCrosstown != null && orderVehicleCrosstown.size() > 0) { if (orderVehicleCrosstown != null && orderVehicleCrosstown.size() > 0) {
List<OrderUserLicense> orderUserLicenses = orderUserLicenseBiz.selectByIds(orderVehicleCrosstown.get(0).getUserLicenseId()).getData(); List<OrderUserLicense> orderUserLicenses = orderUserLicenseBiz.selectByIds(orderVehicleCrosstown.get(0).getUserLicenseId()).getData();
if (orderUserLicenses != null && orderUserLicenses.size() > 0) { if (orderUserLicenses != null && orderUserLicenses.size() > 0) {
orderVehicleCrosstownDto.setLicenseIdCard(orderUserLicenses.get(0).getLicenseIdCard()); orderVehicleCrosstownDto.setLicenseIdCard(orderUserLicenses.get(0).getLicenseIdCard());
orderVehicleCrosstownDto.setLicenseImg(orderUserLicenses.get(0).getLicenseImg()); orderVehicleCrosstownDto.setLicenseImg(orderUserLicenses.get(0).getLicenseImg());
orderVehicleCrosstownDto.setLicenseName(orderUserLicenses.get(0).getLicenseName()); orderVehicleCrosstownDto.setLicenseName(orderUserLicenses.get(0).getLicenseName());
orderVehicleCrosstownDto.setLicensePhone(orderUserLicenses.get(0).getLicensePhone()); orderVehicleCrosstownDto.setLicensePhone(orderUserLicenses.get(0).getLicensePhone());
} }
//设置违约明细 //设置违约明细
for (OrderVehicleCrosstownDto a : orderVehicleCrosstown) { for (OrderVehicleCrosstownDto a : orderVehicleCrosstown) {
if(a.getType() != CrosstownTypeEnum.DEPARTURE.getCode()) { if (a.getType() != CrosstownTypeEnum.DEPARTURE.getCode()) {
if(StringUtils.isNotBlank(a.getViolateDetail())) { if (StringUtils.isNotBlank(a.getViolateDetail())) {
orderPageVo.setDedDetailDTO(a.getViolateDetail()); orderPageVo.setDedDetailDTO(a.getViolateDetail());
} }
} }
} }
} }
orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto); orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto);
} }
/** /**
* 获取驾驶人信息 * 获取驾驶人信息
* @param orderPageVo *
*/ * @param orderPageVo
public void getDriverInfo(OrderPageVO orderPageVo) { */
List<VehicleUserLicense> vehicleUserLicenses = Lists.newArrayList(); public void getDriverInfo(OrderPageVO orderPageVo) {
String myDriverIds = orderPageVo.getOrderRentVehicleDetail().getMyDriverIds(); List<VehicleUserLicense> vehicleUserLicenses = Lists.newArrayList();
if (StringUtils.isNotBlank(myDriverIds)) { String myDriverIds = orderPageVo.getOrderRentVehicleDetail().getMyDriverIds();
if (myDriverIds.contains(",")) { if (StringUtils.isNotBlank(myDriverIds)) {
String[] ids = myDriverIds.split(","); if (myDriverIds.contains(",")) {
try { String[] ids = myDriverIds.split(",");
//目前暂定一个驾驶人,后期需要更改再此更改 try {
RestResponse<VehicleUserLicense> restResponse = vehicleFeign.getOne(Integer.parseInt(ids[0])); //目前暂定一个驾驶人,后期需要更改再此更改
log.info(restResponse.getMessage()); RestResponse<VehicleUserLicense> restResponse = vehicleFeign.getOne(Integer.parseInt(ids[0]));
if (restResponse.getData() != null) { log.info(restResponse.getMessage());
vehicleUserLicenses.add(restResponse.getData()); if (restResponse.getData() != null) {
} vehicleUserLicenses.add(restResponse.getData());
} catch (Exception e) { }
log.error(e.getMessage(), e); } catch (Exception e) {
} log.error(e.getMessage(), e);
} else { }
try { } else {
vehicleUserLicenses.add(vehicleFeign.getOne(Integer.parseInt(myDriverIds.trim())).getData()); try {
} catch (Exception e) { vehicleUserLicenses.add(vehicleFeign.getOne(Integer.parseInt(myDriverIds.trim())).getData());
log.error(e.getMessage(), e); } catch (Exception e) {
} log.error(e.getMessage(), e);
} }
} }
orderPageVo.setVehicleUserLicenses(vehicleUserLicenses); }
} orderPageVo.setVehicleUserLicenses(vehicleUserLicenses);
}
/** /**
* 修改订单还车公司 * 修改订单还车公司
...@@ -593,239 +595,242 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -593,239 +595,242 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE)); return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
} }
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
OrderRentVehicleDetail oldValue = orderRentVehicleBiz.selectById(orderRentVehicleDetail.getId()); OrderRentVehicleDetail oldValue = orderRentVehicleBiz.selectById(orderRentVehicleDetail.getId());
if(oldValue == null) { if (oldValue == null) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc()); return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
} }
stringBuilder.append("修改订单和预定记录还车公司成功, 订单ID:"); stringBuilder.append("修改订单和预定记录还车公司成功, 订单ID:");
stringBuilder.append( oldValue.getOrderId()); stringBuilder.append(oldValue.getOrderId());
stringBuilder.append("; 原还车公司ID: "); stringBuilder.append("; 原还车公司ID: ");
stringBuilder.append(oldValue.getEndCompanyId()); stringBuilder.append(oldValue.getEndCompanyId());
stringBuilder.append("; 更新后还车公司ID: "); stringBuilder.append("; 更新后还车公司ID: ");
stringBuilder.append(orderRentVehicleDetail.getEndCompanyId()); stringBuilder.append(orderRentVehicleDetail.getEndCompanyId());
stringBuilder.append("; 操作人ID:"); stringBuilder.append("; 操作人ID:");
stringBuilder.append(userDTO.getId()); stringBuilder.append(userDTO.getId());
stringBuilder.append("; 操作人账号:"); stringBuilder.append("; 操作人账号:");
stringBuilder.append(userDTO.getUsername()); stringBuilder.append(userDTO.getUsername());
//添加修改记录实体 //添加修改记录实体
BookRecordUpdateLog bookRecordUpdateLog = new BookRecordUpdateLog(); BookRecordUpdateLog bookRecordUpdateLog = new BookRecordUpdateLog();
bookRecordUpdateLog.setBookRecordId(oldValue.getBookRecordId()); bookRecordUpdateLog.setBookRecordId(oldValue.getBookRecordId());
bookRecordUpdateLog.setOldRetCompanyId(oldValue.getEndCompanyId()); bookRecordUpdateLog.setOldRetCompanyId(oldValue.getEndCompanyId());
bookRecordUpdateLog.setNewRetCompanyId(orderRentVehicleDetail.getEndCompanyId()); bookRecordUpdateLog.setNewRetCompanyId(orderRentVehicleDetail.getEndCompanyId());
bookRecordUpdateLog.setOperaterId(userDTO.getId()); bookRecordUpdateLog.setOperaterId(userDTO.getId());
bookRecordUpdateLog.setOperaterName(userDTO.getName()); bookRecordUpdateLog.setOperaterName(userDTO.getName());
bookRecordUpdateLog.setOrderId(oldValue.getOrderId()); bookRecordUpdateLog.setOrderId(oldValue.getOrderId());
bookRecordUpdateLog.setCreateTime(new Date()); bookRecordUpdateLog.setCreateTime(new Date());
BeanUtil.copyProperties(orderRentVehicleDetail, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true)); BeanUtil.copyProperties(orderRentVehicleDetail, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(orderRentVehicleDetail.getEndCompanyId()).getData(); CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(orderRentVehicleDetail.getEndCompanyId()).getData();
if(companyDetail != null) { if (companyDetail != null) {
oldValue.setEndCity(companyDetail.getAddrCity()); oldValue.setEndCity(companyDetail.getAddrCity());
oldValue.setEndAddr(companyDetail.detailAddr()); oldValue.setEndAddr(companyDetail.detailAddr());
} }
oldValue.setEndCompanyId(orderRentVehicleDetail.getEndCompanyId()); oldValue.setEndCompanyId(orderRentVehicleDetail.getEndCompanyId());
orderRentVehicleBiz.updateSelectiveByIdRe(oldValue); orderRentVehicleBiz.updateSelectiveByIdRe(oldValue);
ObjectRestResponse objectRestResponse = vehicleFeign.update(bookRecordUpdateLog); ObjectRestResponse objectRestResponse = vehicleFeign.update(bookRecordUpdateLog);
if (objectRestResponse!= null && objectRestResponse.getRel()) { if (objectRestResponse != null && objectRestResponse.getRel()) {
log.info(stringBuilder.toString()); log.info(stringBuilder.toString());
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
return ObjectRestResponse.createFailedResult(1355, "修改失败!"); return ObjectRestResponse.createFailedResult(1355, "修改失败!");
} }
/** /**
* 获取订单详情,包含驾驶人信息,违约金等信息 * 获取订单详情,包含驾驶人信息,违约金等信息
* @param no *
* @return * @param no
*/ * @return
public ObjectRestResponse<OrderPageVO> getOrderDetail(String no) { */
OrderPageVO orderPageVo = mapper.getOrderDetail(no); public ObjectRestResponse<OrderPageVO> getOrderDetail(String no) {
if (orderPageVo == null) { OrderPageVO orderPageVo = mapper.getOrderDetail(no);
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc()); if (orderPageVo == null) {
} return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
if (orderPageVo.getOrderRentVehicleDetail() != null) { }
if (orderPageVo.getStatus() == 4) { //未交车 if (orderPageVo.getOrderRentVehicleDetail() != null) {
if (orderPageVo.getStatus() == 4) { //未交车
// boolean flag = getTodayTime(orderPageVo.getOrderRentVehicleDetail().getStartTime()); // boolean flag = getTodayTime(orderPageVo.getOrderRentVehicleDetail().getStartTime());
// if (!flag) { // if (!flag) {
// return ObjectRestResponse.createFailedResult(3501, "今日不是交车日期"); // return ObjectRestResponse.createFailedResult(3501, "今日不是交车日期");
// } // }
getDriverInfo(orderPageVo); getDriverInfo(orderPageVo);
} else if (orderPageVo.getStatus() >= 5 || orderPageVo.getStatus() == -1) {//出行中 已交车 } else if (orderPageVo.getStatus() >= 5 || orderPageVo.getStatus() == -1) {//出行中 已交车
getDriverInfo(orderPageVo); getDriverInfo(orderPageVo);
getUserLicense(orderPageVo); getUserLicense(orderPageVo);
} }
RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderPageVo.getOrderRentVehicleDetail().getVehicleId()); RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderPageVo.getOrderRentVehicleDetail().getVehicleId());
if (restResponse.getData() != null) { if (restResponse.getData() != null) {
orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate()); orderPageVo.setVehicalNumberPlat(restResponse.getData().getNumberPlate());
} }
} else if (orderPageVo.getOrderTourDetail() != null) { } else if (orderPageVo.getOrderTourDetail() != null) {
if(StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) { if (StringUtils.isNotBlank(orderPageVo.getOrderTourDetail().getTourUserIds())) {
List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData(); List<TourUser> list = tourFeign.getTourUsers(orderPageVo.getOrderTourDetail().getTourUserIds()).getData();
orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list); orderPageVo.getOrderTourDetail().setUserVoList(list == null || list.size() <= 0 ? new ArrayList<>() : list);
} }
} }
//设置保留金 //设置保留金
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail()); BigDecimal illegalReserve = new BigDecimal(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ILLEGAL_RESERVE).getDetail());
orderPageVo.setIllegalReserve(illegalReserve); orderPageVo.setIllegalReserve(illegalReserve);
orderPageVo.setItems(orderItemBiz.selectList(new OrderItem(){{ orderPageVo.setItems(orderItemBiz.selectList(new OrderItem() {{
setOrderId(orderPageVo.getId()); setOrderId(orderPageVo.getId());
}})); }}));
return ObjectRestResponse.succ(orderPageVo); return ObjectRestResponse.succ(orderPageVo);
} }
/**
* 支付回调处理
*
* @param orderNo
* @param tradeNo
*/
@Transactional
public void payNotifyHandle(String orderNo, String tradeNo, Integer type, Integer payWay) {
OrderRentVehicleDetail orvd = new OrderRentVehicleDetail();
OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail();
BaseOrder baseOrder = this.selectOne(new BaseOrder() {{
setNo(orderNo);
}});
if (OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus()) && baseOrder.getHasPay().equals(SYS_FALSE)) {
BaseOrder updateOrder = new BaseOrder() {{
setId(baseOrder.getId());
setOutTradeNo(tradeNo);
setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis());
setPayOrigin(type);
setPayWay(payWay);
setVersion(baseOrder.getVersion());
}};
//订单账款类
OrderAccountDetail oad = new OrderAccountDetail();
oad.setOriginOrderAmount(baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount()));
//账单的的orderAmount 对应 的是商品金额
oad.setOrderAmount(baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount()));
//如果是会员订单,则触发会员效益
if (OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) {
//直接设置订单完成
updateOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
omd = orderMemberDetailBiz.selectOne(new OrderMemberDetail() {{
setOrderId(baseOrder.getId());
}});
//触发会员效益
UserMemberDTO userMemberDTO = new UserMemberDTO() {{
setUserId(baseOrder.getUserId());
setIsBind(ISBIND_BIND);
}};
userMemberDTO.setMemberLevel(omd.getMemberLevel());
userMemberDTO.setRentFreeDays(omd.getRentFreeNum());
userMemberDTO.setTotalNumber(omd.getRentFreeNum());
userMemberDTO.setDiscount(omd.getRebate());
ObjectRestResponse orr = userFeign.buyMember(userMemberDTO);
log.info("orr.getStatus() : " + orr.getStatus());
} else if (OrderTypeEnum.RENT_VEHICLE.getCode().equals(baseOrder.getType())) {
updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{
setOrderId(baseOrder.getId());
}});
//账款设置押金
oad.setOriginDepositAmount(orvd.getDeposit());
oad.setDepositAmount(orvd.getDeposit());
//车辆预定审核通过
RestResponse<Integer> result = vehicleFeign.rentProveVehicleBooking(orvd.getBookRecordId());
//确认免费天数
if (orvd.getFreeDays() > 0) {
userFeign.memberDays(baseOrder.getUserId(), orvd.getFreeDays(), UserFeign.MEMBER_DAYS_CONFIRM);
}
} else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
otd = orderTourDetailBiz.selectOne(new OrderTourDetail() {{
setOrderId(baseOrder.getId());
}});
//站点总人数添加
tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, otd.getTotalNumber());
}
/** try {
* 支付回调处理 BeanUtil.copyProperties(this.updateSelectiveByIdReT(updateOrder), baseOrder);
* //记录订单账款记录
* @param orderNo Integer flag = orderAccountBiz.addOrderAccount(baseOrder.getId(), "订单支付", oad.getOriginOrderAmount().add(oad.getOriginDepositAmount()), oad.getOrderAmount().add(oad.getDepositAmount()), tradeNo, AccountTypeEnum.IN_ORDER_PAY.getCode(), JSONUtil.toJsonStr(oad));
* @param tradeNo } finally {
*/ AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData();
@Transactional
public void payNotifyHandle(String orderNo, String tradeNo, Integer type, Integer payWay) { //处理App用户提醒短信的发送
OrderRentVehicleDetail orvd = new OrderRentVehicleDetail();
OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail();
BaseOrder baseOrder = this.selectOne(new BaseOrder() {{
setNo(orderNo);
}});
if (OrderStatusEnum.ORDER_UNPAY.getCode().equals(baseOrder.getStatus()) && baseOrder.getHasPay().equals(SYS_FALSE)) {
BaseOrder updateOrder = new BaseOrder() {{
setId(baseOrder.getId());
setOutTradeNo(tradeNo);
setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis());
setPayOrigin(type);
setPayWay(payWay);
setVersion(baseOrder.getVersion());
}};
//订单账款类
OrderAccountDetail oad = new OrderAccountDetail();
oad.setOriginOrderAmount(baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount()));
//账单的的orderAmount 对应 的是商品金额
oad.setOrderAmount(baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount()));
//如果是会员订单,则触发会员效益
if (OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) {
//直接设置订单完成
updateOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
omd = orderMemberDetailBiz.selectOne(new OrderMemberDetail() {{
setOrderId(baseOrder.getId());
}});
//触发会员效益
UserMemberDTO userMemberDTO = new UserMemberDTO() {{
setUserId(baseOrder.getUserId());
setIsBind(ISBIND_BIND);
}};
userMemberDTO.setMemberLevel(omd.getMemberLevel());
userMemberDTO.setRentFreeDays(omd.getRentFreeNum());
userMemberDTO.setTotalNumber(omd.getRentFreeNum());
userMemberDTO.setDiscount(omd.getRebate());
ObjectRestResponse orr = userFeign.buyMember(userMemberDTO);
log.info("orr.getStatus() : " + orr.getStatus());
} else if (OrderTypeEnum.RENT_VEHICLE.getCode().equals(baseOrder.getType())) {
updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{
setOrderId(baseOrder.getId());
}});
//账款设置押金
oad.setOriginDepositAmount(orvd.getDeposit());
oad.setDepositAmount(orvd.getDeposit());
//车辆预定审核通过
RestResponse<Integer> result = vehicleFeign.rentProveVehicleBooking(orvd.getBookRecordId());
//确认免费天数
if (orvd.getFreeDays() > 0) {
userFeign.memberDays(baseOrder.getUserId(), orvd.getFreeDays(), UserFeign.MEMBER_DAYS_CONFIRM);
}
} else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
updateOrder.setStatus(OrderStatusEnum.ORDER_TOSTART.getCode());
otd = orderTourDetailBiz.selectOne(new OrderTourDetail() {{
setOrderId(baseOrder.getId());
}});
//站点总人数添加
tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, otd.getTotalNumber());
}
try {
this.updateSelectiveByIdRe(updateOrder);
//记录订单账款记录
Integer flag = orderAccountBiz.addOrderAccount(baseOrder.getId(), "订单支付", oad.getOriginOrderAmount().add(oad.getOriginDepositAmount()), oad.getOrderAmount().add(oad.getDepositAmount()), tradeNo, AccountTypeEnum.IN_ORDER_PAY.getCode(), JSONUtil.toJsonStr(oad));
} finally {
AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData();
//处理App用户提醒短信的发送
// orderMsgBiz.handelAppUserMsg(orvd, omd, baseOrder, appUserDTO); // orderMsgBiz.handelAppUserMsg(orvd, omd, baseOrder, appUserDTO);
orderMsgBiz.handelMsgPayNew(orvd, otd, omd, baseOrder, appUserDTO); orderMsgBiz.handelMsgPayNew(orvd, otd, omd, baseOrder, appUserDTO);
//处理后台用户提醒短信的发送 //处理后台用户提醒短信的发送
// orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_PAY); // orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_PAY);
sendOrderMq(orvd, otd, omd, baseOrder, OrderMQDTO.ORDER_PAY); sendOrderMq(orvd, otd, omd, baseOrder, OrderMQDTO.ORDER_PAY);
if(OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) { if (OrderTypeEnum.MEMBER.getCode().equals(baseOrder.getType())) {
sendOrderMq(orvd, otd, omd, baseOrder, OrderMQDTO.ORDER_FINISH); sendOrderMq(orvd, otd, omd, baseOrder, OrderMQDTO.ORDER_FINISH);
} //订单完成时,payway为 支付宝,则转支付
} baseOrder.setPayWay(payWay);
} else { orderAccountBiz.finishFreeze2PayAmount(baseOrder);
log.error(" order has payed , orderNo:{}, tradeNo:{} ", orderNo, tradeNo); }
} }
} } else {
log.error(" order has payed , orderNo:{}, tradeNo:{} ", orderNo, tradeNo);
public void sendOrderMq(OrderRentVehicleDetail orvd, OrderTourDetail otd, OrderMemberDetail omd, BaseOrder baseOrder, Integer sign) { }
//发送队列消息 }
OrderMQDTO orderMQDTO = BeanUtil.toBean(baseOrder, OrderMQDTO.class);
orderMQDTO.setOrderRentVehicleDetail(orvd);
orderMQDTO.setOrderTourDetail(otd);
orderMQDTO.setOrderMemberDetail(omd);
//获取item public void sendOrderMq(OrderRentVehicleDetail orvd, OrderTourDetail otd, OrderMemberDetail omd, BaseOrder baseOrder, Integer sign) {
orderMQDTO.setItems(orderItemBiz.selectList(new OrderItem() {{ //发送队列消息
setOrderId(baseOrder.getId()); OrderMQDTO orderMQDTO = BeanUtil.toBean(baseOrder, OrderMQDTO.class);
}})); orderMQDTO.setOrderRentVehicleDetail(orvd);
orderMQDTO.setOrderTourDetail(otd);
orderMQDTO.setOrderMemberDetail(omd);
sendQueue(orderMQDTO, sign); //获取item
} orderMQDTO.setItems(orderItemBiz.selectList(new OrderItem() {{
setOrderId(baseOrder.getId());
}}));
@Override sendQueue(orderMQDTO, sign);
public void updateSelectiveById(BaseOrder entity) { }
super.updateSelectiveById(entity);
}
/** @Override
* 更新(不成功抛异常) public void updateSelectiveById(BaseOrder entity) {
* super.updateSelectiveById(entity);
* @param baseOrder }
* @return
*/
public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder) {
return updateSelectiveByIdReT(baseOrder, false);
}
/** /**
* 更新(不成功抛异常) * 更新(不成功抛异常)
* *
* @param baseOrder * @param baseOrder
* @return * @return
*/ */
public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder, boolean needVersion) { public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder) {
if (needVersion) { return updateSelectiveByIdReT(baseOrder, false);
baseOrder.setVersion(selectById(baseOrder.getId()).getVersion()); }
}
if (updateSelectiveByIdRe(baseOrder) > 0) {
return selectById(baseOrder.getId());
} else {
log.error(StrUtil.format("数据更新失败:baseOrder: {}", JSONUtil.toJsonStr(baseOrder)));
throw new BaseException(ResultCode.DB_OPERATION_FAIL_CODE);
}
}
/**
* 更新(不成功抛异常)
*
* @param baseOrder
* @return
*/
public BaseOrder updateSelectiveByIdReT(BaseOrder baseOrder, boolean needVersion) {
if (needVersion) {
baseOrder.setVersion(selectById(baseOrder.getId()).getVersion());
}
if (updateSelectiveByIdRe(baseOrder) > 0) {
return selectById(baseOrder.getId());
} else {
log.error(StrUtil.format("数据更新失败:baseOrder: {}", JSONUtil.toJsonStr(baseOrder)));
throw new BaseException(ResultCode.DB_OPERATION_FAIL_CODE);
}
}
// /** // /**
...@@ -841,19 +846,19 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -841,19 +846,19 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
// } // }
// } // }
public boolean getTodayTime(Long time) { public boolean getTodayTime(Long time) {
Long startTime = getDayStart(); Long startTime = getDayStart();
if (time >= startTime && time <= startTime + 24 * 60 * 60 * 1000 - 1) { if (time >= startTime && time <= startTime + 24 * 60 * 60 * 1000 - 1) {
return true; return true;
} }
return false; return false;
} }
public static Long getDayStart() { public static Long getDayStart() {
long current = System.currentTimeMillis(); long current = System.currentTimeMillis();
long zero = current / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset(); long zero = current / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset();
return zero; return zero;
} }
private void sendQueue(OrderMQDTO orderMQDTO, Integer sign) { private void sendQueue(OrderMQDTO orderMQDTO, Integer sign) {
try { try {
......
...@@ -47,6 +47,7 @@ import java.util.*; ...@@ -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_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; 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; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/** /**
...@@ -742,4 +743,26 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -742,4 +743,26 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
} }
return mapper.outStatisticalData(queryCriteria,startTime,endTime); 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; 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.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
...@@ -11,17 +12,21 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO; ...@@ -11,17 +12,21 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.OrderTourVerificationVO; import com.xxfc.platform.order.pojo.order.OrderTourVerificationVO;
import com.xxfc.platform.tour.feign.TourFeign; import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.tour.vo.TourGoodOrderFindVo; 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.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.Instant; import java.time.Instant;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import static com.xxfc.platform.order.pojo.pay.NotifyUrlDTO.PAY_WAY_ALI;
/** /**
* 旅游订单核销 * 旅游订单核销
* *
...@@ -39,6 +44,9 @@ public class OrderTourVerificationBiz{ ...@@ -39,6 +44,9 @@ public class OrderTourVerificationBiz{
private BaseOrderBiz baseOrderBiz; private BaseOrderBiz baseOrderBiz;
@Autowired @Autowired
private OrderTourDetailBiz tourDetailBiz; private OrderTourDetailBiz tourDetailBiz;
@Autowired
private OrderAccountBiz orderAccountBiz;
@Autowired @Autowired
private TourFeign tourFeign; private TourFeign tourFeign;
...@@ -130,6 +138,8 @@ public class OrderTourVerificationBiz{ ...@@ -130,6 +138,8 @@ public class OrderTourVerificationBiz{
tourDetail = tourDetailBiz.updateSelectiveByIdReT(tourDetail); tourDetail = tourDetailBiz.updateSelectiveByIdReT(tourDetail);
tourFeign.updateTourGoodPersonNum(verificationId,"verification_person",total_number); tourFeign.updateTourGoodPersonNum(verificationId,"verification_person",total_number);
baseOrderBiz.sendOrderMq(null,tourDetail,null, baseOrder, OrderMQDTO.ORDER_FINISH); baseOrderBiz.sendOrderMq(null,tourDetail,null, baseOrder, OrderMQDTO.ORDER_FINISH);
//订单完成时,payway为 支付宝,则转支付
orderAccountBiz.finishFreeze2PayAmount(baseOrder);
return ObjectRestResponse.succ(tourDetail.getVerificationId()); return ObjectRestResponse.succ(tourDetail.getVerificationId());
} }
......
...@@ -78,13 +78,13 @@ public class WithDrawMqHandler implements InitializingBean { ...@@ -78,13 +78,13 @@ public class WithDrawMqHandler implements InitializingBean {
String cono = orderPayBiz.fundTrans(fundPayVo); String cono = orderPayBiz.fundTrans(fundPayVo);
orderNo = fundPayVo.getOrderNo(); orderNo = fundPayVo.getOrderNo();
log.info("提现成功:【商户订单号:{}】-->【{}】", cono,msg); log.info("提现成功:【商户订单号:{}】-->【{}】", cono,msg);
userFeign.withDrawprocess(fundPayVo.getOrderNo(), cono, "", true); userFeign.withDrawprocess(fundPayVo.getOrderNo(), cono, "", true,"");
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG); Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// 手动签收 // 手动签收
basicAck(channel, deliveryTag, false, pay_way); basicAck(channel, deliveryTag, false, pay_way);
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
basicNack(channel, message.getMessageProperties().getDeliveryTag(), false, false, pay_way); 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]"); String reason = String.format("%s%s%s", pay_way, "转账失败", "[不支持的编码:UTF-8]");
log.info("{}:【{}】", reason, e); log.info("{}:【{}】", reason, e);
} catch (BaseException e) { } catch (BaseException e) {
...@@ -112,9 +112,8 @@ public class WithDrawMqHandler implements InitializingBean { ...@@ -112,9 +112,8 @@ public class WithDrawMqHandler implements InitializingBean {
if (aliPayErrorCodes.contains(subCode) && cathType != null && cathType == PayWay.ALI_PAY.getCode()) { if (aliPayErrorCodes.contains(subCode) && cathType != null && cathType == PayWay.ALI_PAY.getCode()) {
msg = AliPayErrorEnum.valueOf(subCode).getSubReason(); msg = AliPayErrorEnum.valueOf(subCode).getSubReason();
} }
msg = StringUtils.isEmpty(msg) ? DEFAULT_ERROR_MSG : msg; String reason = StringUtils.isEmpty(msg) ? DEFAULT_ERROR_MSG : msg;
userFeign.withDrawprocess(fundPayVo.getOrderNo(), "",reason, false,e.getMessage());
userFeign.withDrawprocess(fundPayVo.getOrderNo(), "", msg, false);
//放弃此消息 //放弃此消息
basicNack(channel, message.getMessageProperties().getDeliveryTag(), false, false, pay_way); basicNack(channel, message.getMessageProperties().getDeliveryTag(), false, false, pay_way);
} }
......
package com.xxfc.platform.vehicle.rest; 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.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
...@@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map; import java.util.Map;
...@@ -174,5 +176,17 @@ public class VehicleDepartureController { ...@@ -174,5 +176,17 @@ public class VehicleDepartureController {
return ObjectRestResponse.succ(reserveType); 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