Commit bb374b2f authored by hanfeng's avatar hanfeng

Merge branch 'master-Member-bug-modify' into base-modify

# Conflicts:
#	ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/dto/AppUserManageDTO.java
#	ace-modules/ace-admin-api/src/main/java/com/github/wxiaoqi/security/admin/feign/UserFeign.java
#	ace-modules/ace-admin/src/main/resources/mapper/AppUserDetailMapper.xml
parents 147882ba 0e7bf624
...@@ -79,6 +79,11 @@ public class BaseUserMemberLevel implements Serializable { ...@@ -79,6 +79,11 @@ public class BaseUserMemberLevel implements Serializable {
@ApiModelProperty(value = "赠送免费天数") @ApiModelProperty(value = "赠送免费天数")
private Integer number; private Integer number;
//免费天数价值
@Column(name = "days_price")
@ApiModelProperty(value = "免费天数价值")
private BigDecimal daysPrice;
@Column(name = "big_icon") @Column(name = "big_icon")
@ApiModelProperty(value = "大图标") @ApiModelProperty(value = "大图标")
private String bigIcon; private String bigIcon;
......
...@@ -3,7 +3,6 @@ package com.github.wxiaoqi.security.admin.feign; ...@@ -3,7 +3,6 @@ package com.github.wxiaoqi.security.admin.feign;
import com.github.wxiaoqi.security.admin.bo.UserBo; import com.github.wxiaoqi.security.admin.bo.UserBo;
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.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;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
......
...@@ -43,7 +43,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -43,7 +43,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
private AppUserLoginMapper appUserLoginMapper; private AppUserLoginMapper appUserLoginMapper;
@Autowired @Autowired
private BaseUserMemberMapper baseUserMemberMapper; private AppUserDetailBiz appUserDetailBiz;
@Autowired @Autowired
private VehicleFeign vehicleFeign; private VehicleFeign vehicleFeign;
...@@ -56,7 +56,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -56,7 +56,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
*/ */
public PageInfo<AppUserManageVo> findAllByQuery(AppUserManageDTO appUserManageDTO) { public PageInfo<AppUserManageVo> findAllByQuery(AppUserManageDTO appUserManageDTO) {
PageHelper.startPage(appUserManageDTO.getPage(), appUserManageDTO.getLimit()); PageHelper.startPage(appUserManageDTO.getPage(), appUserManageDTO.getLimit());
List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(appUserManageDTO); List<AppUserManageVo> appUserManageVos = mapper.selectAppUser(appUserManageDTO);
PageInfo<AppUserManageVo> pageInfo = PageInfo.of(appUserManageVos); PageInfo<AppUserManageVo> pageInfo = PageInfo.of(appUserManageVos);
if (pageInfo.getList()==null||pageInfo.getList().size()==0) { if (pageInfo.getList()==null||pageInfo.getList().size()==0) {
return pageInfo; return pageInfo;
...@@ -85,6 +85,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -85,6 +85,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
Long cityCode = Long.valueOf(appUserManageVo.getCityCode()); Long cityCode = Long.valueOf(appUserManageVo.getCityCode());
String crtyName = map.get(cityCode); String crtyName = map.get(cityCode);
appUserManageVo.setCityName(crtyName); appUserManageVo.setCityName(crtyName);
} }
} }
...@@ -99,12 +100,10 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -99,12 +100,10 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
*/ */
public PageInfo<AppUserManageVo> findAllByQueryAndCity(AppUserManageDTO appUserManageDTO) { public PageInfo<AppUserManageVo> findAllByQueryAndCity(AppUserManageDTO appUserManageDTO) {
PageHelper.startPage(appUserManageDTO.getPage(), appUserManageDTO.getLimit()); PageHelper.startPage(appUserManageDTO.getPage(), appUserManageDTO.getLimit());
List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(appUserManageDTO); List<AppUserManageVo> appUserManageVos = mapper.selectAppUser(appUserManageDTO);
if (CollectionUtils.isEmpty(appUserManageVos)) { if (CollectionUtils.isEmpty(appUserManageVos)) {
return new PageInfo<AppUserManageVo>(); return new PageInfo<AppUserManageVo>();
} }
// Set<Integer> usSet = appUserManageDTO.getCitySet();
// List<AppUserManageVo> results = appUserManageVos.parallelStream().filter(us -> usSet.contains(us.getCityCode())).collect(Collectors.toList());
PageInfo<AppUserManageVo> pageInfo = PageInfo.of(appUserManageVos); PageInfo<AppUserManageVo> pageInfo = PageInfo.of(appUserManageVos);
return getAppUserManageVoPageInfo(pageInfo); return getAppUserManageVoPageInfo(pageInfo);
} }
...@@ -186,9 +185,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -186,9 +185,7 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
public AppUserManageVo findUserInfoById(Integer userId) { public AppUserManageVo findUserInfoById(Integer userId) {
AppUserManageVo appUserManageVo = new AppUserManageVo(); AppUserManageVo appUserManageVo = new AppUserManageVo();
AppUserManageDTO appUserManageDTO = new AppUserManageDTO(); List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(userId);
appUserManageDTO.setUserId(userId);
List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(appUserManageDTO);
if (CollectionUtils.isEmpty(appUserManageVos)){ if (CollectionUtils.isEmpty(appUserManageVos)){
return appUserManageVo; return appUserManageVo;
} }
......
...@@ -66,12 +66,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel ...@@ -66,12 +66,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线"); log.info("----userId==="+userId+"----parentId===="+parentId+"----自己不能成为自己的上线");
return; return;
} }
AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId); /* AppUserVo appUserVo=userDetailBiz.getUserInfoById(userId);
if (appUserVo==null){ if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在"); log.info("----userId==="+userId+"----parentId===="+parentId+"----该用户不存在");
return; return;
} }*/
appUserVo=userDetailBiz.getUserInfoById(parentId); AppUserVo appUserVo=userDetailBiz.getUserInfoById(parentId);
if (appUserVo==null){ if (appUserVo==null){
log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在"); log.info("----userId==="+userId+"----parentId===="+parentId+"----该上线用户不存在");
return; return;
......
...@@ -14,7 +14,7 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> { ...@@ -14,7 +14,7 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> {
//查询用户信息 //查询用户信息
AppUserVo getUserInfo(@Param("userId") Integer userId); AppUserVo getUserInfo(@Param("userId") Integer userId);
List<AppUserManageVo> selectAppUserManage(AppUserManageDTO appUserManageDTO); List<AppUserManageVo> selectAppUserManage(@Param("userId") Integer userId);
void updateUserMemberStatusByUserId(@Param("userId") Integer userId,@Param("status") Integer status); void updateUserMemberStatusByUserId(@Param("userId") Integer userId,@Param("status") Integer status);
...@@ -23,4 +23,7 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> { ...@@ -23,4 +23,7 @@ public interface AppUserDetailMapper extends Mapper<AppUserDetail> {
List<Integer> getUserIdByUsername(@Param("keywords") String keywords); List<Integer> getUserIdByUsername(@Param("keywords") String keywords);
List<AppUserVo> getUserVo(@Param("list") List<Integer> ids); List<AppUserVo> getUserVo(@Param("list") List<Integer> ids);
List<AppUserManageVo> selectAppUser(AppUserManageDTO appUserManageDTO);
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin.mapper; ...@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.bo.UserBo; import com.github.wxiaoqi.security.admin.bo.UserBo;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin; import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserManage; import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import com.github.wxiaoqi.security.admin.vo.AppUserManageVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update; import org.apache.ibatis.annotations.Update;
...@@ -36,4 +37,6 @@ public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdList ...@@ -36,4 +37,6 @@ public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdList
List<Integer> findAppUser(@Param("phone") String phone,@Param("name") String name,@Param("memberIds") List<Integer> memberIds); List<Integer> findAppUser(@Param("phone") String phone,@Param("name") String name,@Param("memberIds") List<Integer> memberIds);
List<UserBo> selectByUserIds(@Param("userIds") List<Integer> uids); List<UserBo> selectByUserIds(@Param("userIds") List<Integer> uids);
AppUserManageVo selectByParentId(@Param("parentId") Integer parentId);
} }
\ No newline at end of file
...@@ -66,6 +66,11 @@ public class AppUsersManageController extends BaseController<AppUserManageBiz,Ap ...@@ -66,6 +66,11 @@ public class AppUsersManageController extends BaseController<AppUserManageBiz,Ap
return ObjectRestResponse.succ(baseBiz.findAllByQueryAndCity(appUserManageDTO)); return ObjectRestResponse.succ(baseBiz.findAllByQueryAndCity(appUserManageDTO));
} }
/**
* 根据用户id获取用户详情
* @param userId
* @return
*/
@GetMapping("/user_info/{id}") @GetMapping("/user_info/{id}")
public ObjectRestResponse<AppUserManageVo> findUserInfo(@PathVariable(value = "id") Integer userId){ public ObjectRestResponse<AppUserManageVo> findUserInfo(@PathVariable(value = "id") Integer userId){
AppUserManageVo appUserManageVo = baseBiz.findUserInfoById(userId); AppUserManageVo appUserManageVo = baseBiz.findUserInfoById(userId);
......
...@@ -49,21 +49,22 @@ ...@@ -49,21 +49,22 @@
<!-- 获取用户信息 --> <!-- 获取用户信息 -->
<select id="getUserVo" resultMap="AppUserVoMap"> <select id="getUserVo" resultMap="AppUserVoMap">
select l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.*,p.name as jobTitle,buml.name as memberName from app_user_login l select
left join app_user_detail d l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.*,p.name as
on d.userid = l.id jobTitle,buml.name as memberName from app_user_login l
left join base_user_member bum left join app_user_detail d
on bum.user_id=l.id on d.userid = l.id
left join (select level, name from base_user_member_level level where isdel = 0) buml left join base_user_member bum
on bum.member_level = buml.level on bum.user_id=l.id
left join (select id, name from app_user_position where is_del=0) p left join (select level, name from base_user_member_level level where isdel = 0) buml
on d.position_id=p.id on bum.member_level = buml.level
where left join (select id, name from app_user_position where is_del=0) p
d.userid in on d.position_id=p.id
where
<foreach collection="list" item="userId" index="index" open="(" separator="," close=")" > d.userid in
#{userId} <foreach collection="list" item="userId" index="index" open="(" separator="," close=")">
</foreach> #{userId}
</foreach>
</select> </select>
...@@ -76,97 +77,117 @@ ...@@ -76,97 +77,117 @@
</select> </select>
<select id="selectAppUserManage" parameterType="com.github.wxiaoqi.security.admin.dto.AppUserManageDTO" <select id="selectAppUserManage" parameterType="Integer"
resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo"> resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo">
select SELECT
l.id As userid, l.id AS userid,
l.username,
l.certification_status AS certificationStatus,
l.id_number AS idNumber,
l.createtime,
l.last_time AS lastTime,
l. STATUS,
d.channel,
d.is_member,
d.realname,
d.nickname,
d.source,
d.province_code AS provinceCode,
d.city_code AS cityCode,
d.sex,
d.headimgurl,
d.email,
m.valid_time AS validTime,
m.buy_count AS buyCount,
m.total_number AS totalNumber,
m.rent_free_days AS rentFreeDays,
m.crt_time AS timeOfMembership,
m.recent_recharge AS recentRecharge,
ml. NAME AS memberName,
aup. NAME AS `positionName`,
ul.username AS inviter,
IFNULL(pd.realname, pd.nickname) AS nameOfSuperior,
pl.username AS superiorMobileNumber
FROM
app_user_login l
LEFT JOIN app_user_detail d ON d.userid = l.id
LEFT JOIN app_user_login ul ON ul.id = d.inviter_account
LEFT JOIN base_user_member m ON d.userid = m.user_id
LEFT JOIN
(
SELECT
LEVEL,
NAME
FROM
base_user_member_level
WHERE
isdel = 0
) ml ON m.member_level = ml. LEVEL
LEFT JOIN app_user_position aup ON aup.id = d.position_id
LEFT JOIN
(
SELECT
user_id,
parent_id
FROM
app_user_relation
WHERE
is_del = 0
) r ON l.id = r.user_id
LEFT JOIN app_user_login pl ON r.parent_id = pl.id
LEFT JOIN app_user_detail pd ON pl.id = pd.userid
WHERE
l.id = #{userId}
</select>
<update id="updateUserMemberStatusByUserId">
update `app_user_detail` set `is_member`={status} where `userid`=#{userId}
</update>
<update id="updateUserPositionByUserId">
update `app_user_detail` set `position_id`=#{positionId} where `userid`=#{userId}
</update>
<select id="selectAppUser" parameterType="com.github.wxiaoqi.security.admin.dto.AppUserManageDTO"
resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo">
SELECT
l.id AS userid,
l.username, l.username,
l.certification_status as certificationStatus,
l.id_number as idNumber,
l.createtime,
l.last_time as lastTime,
l.status,
d.channel, d.channel,
d.is_member,
d.realname,
d.nickname,
d.source, d.source,
d.province_code as provinceCode, d.realname,
d.city_code as cityCode, ml. NAME AS memberName,
d.sex, aup. NAME AS positionName,
d.headimgurl, m.crt_time AS timeOfMembership,
d.email, m.total_number AS totalNumber,
m.member_level as memberLevel, m.rent_free_days AS rentFreeDays,
m.valid_time as validTime, IFNULL(pd.realname, pd.nickname) AS nameOfSuperior,
m.buy_count as buyCount, pl.username AS superiorMobileNumber
m.total_number as totalNumber, FROM
m.rent_free_days as rentFreeDays,
m.crt_time as timeOfMembership,
m.recent_recharge as recentRecharge,
m.name as memberName,
ul.username as inviter,
aup.name as `positionName`,
p.nameOfSuperior,
p.username AS superiorMobileNumber,
p.parent_id as parentId
from
app_user_login l app_user_login l
inner join LEFT JOIN app_user_detail d ON d.userid = l.id
(select * from app_user_detail where 1=1 LEFT JOIN base_user_member m ON d.userid = m.user_id
<if test="postionState != null"> LEFT JOIN (
<choose>
<when test="postionState == 6">
and `position_id`=#{postionState}
</when>
<otherwise>
and <![CDATA[`position_id`<>6]]>
</otherwise>
</choose>
</if>
) d
on
d.userid = l.id
left join
app_user_login ul
on
ul.id=d.inviter_account
left join
(
select
b.*,
ml.name
from
base_user_member b
left join
base_user_member_level ml
on
ml.level = b.member_level
where
ml.isdel=0
) m
on
l.id = m.user_id
left join
`app_user_position` as aup
on aup.id = d.position_id
left join (
SELECT SELECT
r.user_id, LEVEL,
r.parent_id, NAME
l.username,
IFNULL(d.realname,d.nickname) as nameOfSuperior
FROM FROM
app_user_relation r base_user_member_level
LEFT JOIN app_user_login l ON r.parent_id = l.id WHERE
LEFT JOIN app_user_detail d ON l.id = d.userid isdel = 0
) ml ON m.member_level = ml. LEVEL
LEFT JOIN app_user_position aup ON aup.id = d.position_id
LEFT JOIN (
SELECT
user_id,
parent_id
FROM
app_user_relation
WHERE
is_del = 0
) r ON l.id = r.user_id
LEFT JOIN app_user_login pl ON r.parent_id = pl.id
LEFT JOIN app_user_detail pd ON pl.id = pd.userid
WHERE WHERE
l.isdel = 0 l.isdel = 0
AND
r.is_del = 0
) p
on
l.id=p.user_id
where l.isdel = 0
<if test="mobile !=null and mobile !='' "> <if test="mobile !=null and mobile !='' ">
and l.username like CONCAT('%',#{mobile},'%') and l.username like CONCAT('%',#{mobile},'%')
</if> </if>
...@@ -179,7 +200,6 @@ ...@@ -179,7 +200,6 @@
<if test="memberLevel == -1"> <if test="memberLevel == -1">
and m.member_level in (select level from base_user_member_level) and m.member_level in (select level from base_user_member_level)
</if> </if>
<if test="registrationTimeBegin !=null "> <if test="registrationTimeBegin !=null ">
and l.createtime &gt;= #{registrationTimeBegin} and l.createtime &gt;= #{registrationTimeBegin}
</if> </if>
...@@ -190,24 +210,29 @@ ...@@ -190,24 +210,29 @@
and d.source = #{source} and d.source = #{source}
</if> </if>
<if test="userId!=null"> <if test="userId!=null">
and l.id=#{userId} and l.id=#{userId}
</if>
<if test="postionState != null">
<choose>
<when test="postionState == 6">
and d.position_id =#{postionState}
</when>
<otherwise>
and <![CDATA[d.`position_id`<>6]]>
</otherwise>
</choose>
</if> </if>
<if test="realName !=null and realName != ''"> <if test="realName !=null and realName != ''">
and d.realname like CONCAT('%',#{realName},'%') and d.realname like CONCAT('%',#{realName},'%')
</if> </if>
<if test="citySet != null "> <if test="citySet != null ">
and d.city_code in and d.city_code in
<foreach collection="citySet" item="item" index="index" open="(" separator="," close=")" > <foreach collection="citySet" item="item" index="index" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
order by l.id ASC order by l.id ASC
</select> </select>
<update id="updateUserMemberStatusByUserId">
update `app_user_detail` set `is_member`={status} where `userid`=#{userId}
</update>
<update id="updateUserPositionByUserId">
update `app_user_detail` set `position_id`=#{positionId} where `userid`=#{userId}
</update>
</mapper> </mapper>
\ No newline at end of file
...@@ -55,4 +55,9 @@ ...@@ -55,4 +55,9 @@
INNER JOIN INNER JOIN
`app_user_detail` AS `aud` ON aud.userid=aul.id `app_user_detail` AS `aud` ON aud.userid=aul.id
</select> </select>
<select id="selectByParentId" resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo">
select IFNULL(d.realname, d.nickname) AS nameOfSuperior,l.username AS superiorMobileNumber
from app_user_login l left join app_user_detail d on l.id = d.userid where l.isdel=0 and l.id =#{parentId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -27,6 +27,7 @@ public class Coupon implements Serializable { ...@@ -27,6 +27,7 @@ public class Coupon implements Serializable {
public static final Integer CHANNEL_RENT = 1; public static final Integer CHANNEL_RENT = 1;
public static final Integer CHANNEL_TOUR = 2; public static final Integer CHANNEL_TOUR = 2;
public static final Integer CHANNEL_CAMPSITE = 3; public static final Integer CHANNEL_CAMPSITE = 3;
public static final Integer CHANNEL_MEMBER = 4;
/** /**
* 主键id * 主键id
......
...@@ -136,4 +136,6 @@ public class OrderVehicleCrosstown { ...@@ -136,4 +136,6 @@ public class OrderVehicleCrosstown {
private Integer orperaterId; private Integer orperaterId;
private String userLicenseImg; private String userLicenseImg;
private String checkUserInfo;
} }
\ No newline at end of file
package com.xxfc.platform.order.pojo.order;
import lombok.Data;
@Data
public class CheckUserInfoDto {
private Integer id;
private String username;
private String telephone;
}
...@@ -6,7 +6,6 @@ import com.xxfc.platform.order.entity.OrderVehicleCrosstown; ...@@ -6,7 +6,6 @@ import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.pojo.DedDetailDTO; import com.xxfc.platform.order.pojo.DedDetailDTO;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
......
...@@ -15,4 +15,10 @@ public class AddMemberDTO extends AddOrderCommonDTO{ ...@@ -15,4 +15,10 @@ public class AddMemberDTO extends AddOrderCommonDTO{
@ApiModelProperty(value = "会员等级") @ApiModelProperty(value = "会员等级")
private Integer memberLevel; private Integer memberLevel;
/**
* 优惠券*
*/
@ApiModelProperty(value = "优惠卷卷号")
private String tickerNos;
} }
...@@ -20,4 +20,8 @@ public class NotifyUrlDTO { ...@@ -20,4 +20,8 @@ public class NotifyUrlDTO {
//支付类型 //支付类型
@ApiModelProperty(value = "支付类型") @ApiModelProperty(value = "支付类型")
private Integer type; private Integer type;
//支付类型
@ApiModelProperty(value = "支付方式")
private Integer payWay;
} }
\ No newline at end of file
...@@ -564,7 +564,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -564,7 +564,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
* @param tradeNo * @param tradeNo
*/ */
@Transactional @Transactional
public void payNotifyHandle(String orderNo, String tradeNo, Integer type) { public void payNotifyHandle(String orderNo, String tradeNo, Integer type, Integer payWay) {
OrderRentVehicleDetail orvd = new OrderRentVehicleDetail(); OrderRentVehicleDetail orvd = new OrderRentVehicleDetail();
OrderTourDetail otd = new OrderTourDetail(); OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail(); OrderMemberDetail omd = new OrderMemberDetail();
...@@ -579,6 +579,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -579,6 +579,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
setHasPay(SYS_TRUE); setHasPay(SYS_TRUE);
setPayTime(System.currentTimeMillis()); setPayTime(System.currentTimeMillis());
setPayOrigin(type); setPayOrigin(type);
setPayWay(payWay);
setVersion(baseOrder.getVersion()); setVersion(baseOrder.getVersion());
}}; }};
......
...@@ -305,6 +305,7 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta ...@@ -305,6 +305,7 @@ public class DailyVehicleOrderStatisticsBiz extends BaseBiz<DailyVehicleOrderSta
types.add(DeductionTypeEnum.VIOLATE_ADVANCE.getCode()); types.add(DeductionTypeEnum.VIOLATE_ADVANCE.getCode());
types.add(DeductionTypeEnum.VIOLATE_CANCEL.getCode()); types.add(DeductionTypeEnum.VIOLATE_CANCEL.getCode());
types.add(DeductionTypeEnum.VIOLATE_DELAY.getCode()); types.add(DeductionTypeEnum.VIOLATE_DELAY.getCode());
types.add(DeductionTypeEnum.VIOLATE_CHANGE_C.getCode());
orderStatistics.setDefaultMoney(get(OrderAccountDeductions, types)); orderStatistics.setDefaultMoney(get(OrderAccountDeductions, types));
......
...@@ -387,7 +387,20 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -387,7 +387,20 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
}}); }});
if(null == crosstown) { if(null == crosstown) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet(StrUtil.format("退款第一部分押金失败,获取不了还车/定损记录,订单号:{}, crosstownTypeEnum: {}", orderMQDTO.getId(), crosstownTypeEnum))); //设置等待时间 5秒
try {
Thread.sleep(5000L);
crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{
setOrderId(orderMQDTO.getId());
setType(crosstownTypeEnum);
}});
if(null == crosstown) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet(StrUtil.format("退款第一部分押金失败,获取不了还车/定损记录,订单号:{}, crosstownTypeEnum: {}", orderMQDTO.getId(), crosstownTypeEnum)));
}
} catch (InterruptedException e) {
e.printStackTrace();
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet(StrUtil.format("退款第一部分押金失败,获取不了还车/定损记录,订单号:{}, crosstownTypeEnum: {}", orderMQDTO.getId(), crosstownTypeEnum)));
}
} }
if(null == crosstown.getRestDeposit() if(null == crosstown.getRestDeposit()
......
...@@ -114,10 +114,10 @@ public class OrderDepositRefundRecordBiz extends BaseBiz<DepositRefundRecordMapp ...@@ -114,10 +114,10 @@ public class OrderDepositRefundRecordBiz extends BaseBiz<DepositRefundRecordMapp
} }
if(depositRefundRecord.getStatus() == DepositRefundStatus.VIOLATIONARRIVAL.getCode()) { if(depositRefundRecord.getStatus() == DepositRefundStatus.VIOLATIONARRIVAL.getCode()) {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail()); Long rentDepositAutoRefundTime = new Long(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
if(rentDepositAutoRefundTime != null) { if(rentDepositAutoRefundTime != null) {
Long time = Long.parseLong(rentDepositAutoRefundTime + ""); // Long time = Long.parseLong(rentDepositAutoRefundTime + "");
depositRefundRecord.setRentDepositAutoRefundTime(depositRefundRecord.getCrtTime() + time * 60 * 60 * 1000); depositRefundRecord.setRentDepositAutoRefundTime(depositRefundRecord.getCrtTime() + (rentDepositAutoRefundTime * 60L * 1000L));
} }
} }
} }
......
...@@ -24,6 +24,7 @@ import com.xxfc.platform.order.entity.*; ...@@ -24,6 +24,7 @@ import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.mapper.OrderVehicaleCrosstownMapper; import com.xxfc.platform.order.mapper.OrderVehicaleCrosstownMapper;
import com.xxfc.platform.order.pojo.DedDetailDTO; import com.xxfc.platform.order.pojo.DedDetailDTO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO; import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.CheckUserInfoDto;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto; import com.xxfc.platform.order.pojo.order.OrderVehicleCrosstownDto;
import com.xxfc.platform.universal.constant.DictionaryKey; import com.xxfc.platform.universal.constant.DictionaryKey;
...@@ -250,6 +251,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -250,6 +251,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
} }
} }
//添加验车人信息
JSONArray list = new JSONArray();
CheckUserInfoDto checkUserInfoDto = null;
if (StringUtils.isNotBlank(orderVehicleCrosstownDto.getCheckUserInfo())) {
checkUserInfoDto = JSONObject.parseObject(orderVehicleCrosstownDto.getCheckUserInfo(), CheckUserInfoDto.class);
if (checkUserInfoDto != null) {
list.add(checkUserInfoDto);
}
}
AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData(); AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData();
//调用车辆管理的出车还车 //调用车辆管理的出车还车
//出车 //出车
...@@ -259,21 +269,12 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -259,21 +269,12 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleDepartureVo.setDepartureBranchCompanyId(orderRentVehicleDetail.getStartCompanyId()); vehicleDepartureVo.setDepartureBranchCompanyId(orderRentVehicleDetail.getStartCompanyId());
vehicleDepartureVo.setExpectArrivalBranchCompanyId(orderRentVehicleDetail.getEndCompanyId()); vehicleDepartureVo.setExpectArrivalBranchCompanyId(orderRentVehicleDetail.getEndCompanyId());
vehicleDepartureVo.setMileage(orderVehicleCrosstownDto.getMileage()); vehicleDepartureVo.setMileage(orderVehicleCrosstownDto.getMileage());
if (appUserDTO != null) {
vehicleDepartureVo.setUser(appUserDTO.getNickname());
vehicleDepartureVo.setUserTel(appUserDTO.getUsername());
} else {
vehicleDepartureVo.setUser("APP用戶");
vehicleDepartureVo.setUserTel("13656235623");
}
vehicleDepartureVo.setUse("用户租车");
vehicleDepartureVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId()); vehicleDepartureVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
vehicleDepartureVo.setCheckMan(userDTO.getName()); if (checkUserInfoDto != null) {
if(StringUtils.isNotBlank(orderVehicleCrosstownDto.getLicensePhone())) { vehicleDepartureVo.setCheckMan(checkUserInfoDto.getUsername());
vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getLicensePhone()); vehicleDepartureVo.setCheckManTel(checkUserInfoDto.getTelephone());
} else {
vehicleDepartureVo.setCheckManTel("13656235623");
} }
try { try {
RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo); RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo);
log.error("返回信息: " + restResponse.toString()); log.error("返回信息: " + restResponse.toString());
...@@ -285,14 +286,11 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -285,14 +286,11 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleArrivalVo.setVehicleId(orderRentVehicleDetail.getVehicleId()); vehicleArrivalVo.setVehicleId(orderRentVehicleDetail.getVehicleId());
vehicleArrivalVo.setArrivalBranchCompanyId(userDTO.getCompanyId()); vehicleArrivalVo.setArrivalBranchCompanyId(userDTO.getCompanyId());
vehicleArrivalVo.setMileage(orderVehicleCrosstownDto.getMileage()); vehicleArrivalVo.setMileage(orderVehicleCrosstownDto.getMileage());
vehicleArrivalVo.setRecycleMan(userDTO.getName()); if (checkUserInfoDto != null) {
vehicleArrivalVo.setRecycleManTel("13656235623"); vehicleArrivalVo.setRecycleMan(checkUserInfoDto.getUsername());
vehicleArrivalVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId()); vehicleArrivalVo.setRecycleManTel(checkUserInfoDto.getTelephone());
if (appUserDTO != null) {
vehicleArrivalVo.setRecycleManTel(appUserDTO.getUsername());
} else {
vehicleArrivalVo.setRecycleManTel("13565235623");
} }
vehicleArrivalVo.setBookRecordId(orderRentVehicleDetail.getBookRecordId());
try { try {
RestResponse restResponse = vehicleFeign.arrivalBySmall(vehicleArrivalVo); RestResponse restResponse = vehicleFeign.arrivalBySmall(vehicleArrivalVo);
log.info("返回信息: " + restResponse.toString()); log.info("返回信息: " + restResponse.toString());
...@@ -342,6 +340,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -342,6 +340,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
if (orderVehicleCrosstownDto.getRestDeposit().compareTo(getAmount()) == -1) { //剩余金额小于保证金 if (orderVehicleCrosstownDto.getRestDeposit().compareTo(getAmount()) == -1) { //剩余金额小于保证金
return ObjectRestResponse.createFailedResult(500, "押金不足,不能交车,请联系客服!"); return ObjectRestResponse.createFailedResult(500, "押金不足,不能交车,请联系客服!");
} }
if(StringUtils.isNotBlank(oldValue.get(0).getCheckUserInfo())) {
JSONArray jsonArray = JSONArray.parseArray(oldValue.get(0).getCheckUserInfo());
if (jsonArray != null && checkUserInfoDto != null) {
jsonArray.add(checkUserInfoDto);
orderVehicleCrosstownDto.setCheckUserInfo(jsonArray.toJSONString());
}
} else {
orderVehicleCrosstownDto.setCheckUserInfo(list.toJSONString());
}
BeanUtil.copyProperties(orderVehicleCrosstownDto, oldValue.get(0), CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true)); BeanUtil.copyProperties(orderVehicleCrosstownDto, oldValue.get(0), CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
getOrderLicense(orderVehicleCrosstownDto); getOrderLicense(orderVehicleCrosstownDto);
handleOrderStatus(baseOrder, orderRentVehicleDetail, oldValue.get(0), appUserDTO); handleOrderStatus(baseOrder, orderRentVehicleDetail, oldValue.get(0), appUserDTO);
...@@ -359,6 +366,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -359,6 +366,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
if (orderVehicleCrosstownDto.getRestDeposit().compareTo(getAmount()) == -1) { //剩余金额小于保证金 if (orderVehicleCrosstownDto.getRestDeposit().compareTo(getAmount()) == -1) { //剩余金额小于保证金
return ObjectRestResponse.createFailedResult(500, "押金不足,不能交车,请联系客服!"); return ObjectRestResponse.createFailedResult(500, "押金不足,不能交车,请联系客服!");
} }
orderVehicleCrosstownDto.setCheckUserInfo(list.toJSONString());
getOrderLicense(orderVehicleCrosstownDto); getOrderLicense(orderVehicleCrosstownDto);
orderVehicleCrosstownBiz.insertSelective(orderVehicleCrosstownDto); orderVehicleCrosstownBiz.insertSelective(orderVehicleCrosstownDto);
OrderVehicleCrosstown orderVehicleCrosstown = orderVehicleCrosstownBiz.selectOne(orderVehicleCrosstownDto); OrderVehicleCrosstown orderVehicleCrosstown = orderVehicleCrosstownBiz.selectOne(orderVehicleCrosstownDto);
......
...@@ -612,7 +612,7 @@ public class OrderMsgBiz { ...@@ -612,7 +612,7 @@ public class OrderMsgBiz {
break; break;
case SmsTemplateDTO.REFUND_A: case SmsTemplateDTO.REFUND_A:
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail()); Long rentDepositAutoRefundTime = new Long(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) { if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) {
smsParams.add(USER_M+ appUserDTO.getRealname()); smsParams.add(USER_M+ appUserDTO.getRealname());
}else { }else {
...@@ -623,7 +623,7 @@ public class OrderMsgBiz { ...@@ -623,7 +623,7 @@ public class OrderMsgBiz {
smsParams.add(violateAmount.toString()); smsParams.add(violateAmount.toString());
smsParams.add(refundAmount.toString()); smsParams.add(refundAmount.toString());
smsParams.add(residueAmount.toString()); smsParams.add(residueAmount.toString());
smsParams.add(DateUtil.formatDateTime(DateUtil.date(baseOrder.getRefundTime() + Long.valueOf(rentDepositAutoRefundTime * 60 * 60 * 1000)))); smsParams.add(DateUtil.formatDateTime(DateUtil.date(baseOrder.getRefundTime() + (rentDepositAutoRefundTime * 60L * 1000L))));
break; break;
case SmsTemplateDTO.REFUND_B: case SmsTemplateDTO.REFUND_B:
if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) { if(SYS_TRUE.equals(appUserDTO.getIsMember()) && !NONE.getCode().equals(appUserDTO.getMemberLevel()) ) {
......
...@@ -41,7 +41,7 @@ public class FeignHeadConfiguration { ...@@ -41,7 +41,7 @@ public class FeignHeadConfiguration {
* 遍历请求头里面的属性字段,将logId和token添加到新的请求头中转发到下游服务 * 遍历请求头里面的属性字段,将logId和token添加到新的请求头中转发到下游服务
* */ * */
if ("Authorization".equalsIgnoreCase(name)) { if ("Authorization".equalsIgnoreCase(name)) {
log.debug("添加自定义请求头key:" + name + ",value:" + value); // log.debug("添加自定义请求头key:" + name + ",value:" + value);
requestTemplate.header(name, value); requestTemplate.header(name, value);
} else { } else {
//log.debug("FeignHeadConfiguration", "非自定义请求头key:" + name + ",value:" + value + "不需要添加!"); //log.debug("FeignHeadConfiguration", "非自定义请求头key:" + name + ",value:" + value + "不需要添加!");
......
...@@ -62,9 +62,6 @@ public class RemindMsgJobHandler extends IJobHandler { ...@@ -62,9 +62,6 @@ public class RemindMsgJobHandler extends IJobHandler {
@Override @Override
public ReturnT<String> execute(String idLastNumInterval) { public ReturnT<String> execute(String idLastNumInterval) {
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Integer rentDepositAutoRefundTime = new Integer(dictionaryMap.get(APP_ORDER+ "_"+ DictionaryKey.RENT_DEPOSIT_AUTO_REFUND_TIME).getDetail());
try { try {
Date tomorrow = DateUtil.offsetDay(DateUtil.parse(DateUtil.today(), "yyyy-MM-dd"), 1); Date tomorrow = DateUtil.offsetDay(DateUtil.parse(DateUtil.today(), "yyyy-MM-dd"), 1);
Date tomorrowBegin = DateUtil.beginOfDay(tomorrow); Date tomorrowBegin = DateUtil.beginOfDay(tomorrow);
...@@ -75,8 +72,6 @@ public class RemindMsgJobHandler extends IJobHandler { ...@@ -75,8 +72,6 @@ public class RemindMsgJobHandler extends IJobHandler {
.where(WeekendSqls.<BaseOrder>custom() .where(WeekendSqls.<BaseOrder>custom()
.andIn(BaseOrder::getType, CollectionUtil.newArrayList(OrderTypeEnum.RENT_VEHICLE.getCode(), OrderTypeEnum.TOUR.getCode())) .andIn(BaseOrder::getType, CollectionUtil.newArrayList(OrderTypeEnum.RENT_VEHICLE.getCode(), OrderTypeEnum.TOUR.getCode()))
.andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_TOSTART.getCode()) //待出发的订单 .andEqualTo(BaseOrder::getStatus, OrderStatusEnum.ORDER_TOSTART.getCode()) //待出发的订单
// .andLessThanOrEqualTo(BaseOrder::getCrtTime, DateUtil.beginOfDay(tomorrow))
// .andGreaterThanOrEqualTo(BaseOrder::getCrtTime, DateUtil.endOfDay(tomorrow))
).build()); ).build());
for(BaseOrder baseOrder : lists) { for(BaseOrder baseOrder : lists) {
......
...@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil; ...@@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import com.xxfc.platform.order.biz.OrderAccountBiz; import com.xxfc.platform.order.biz.OrderAccountBiz;
import com.xxfc.platform.order.biz.OrderRefundBiz; import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO; import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
...@@ -46,7 +47,10 @@ public class RefundMQHandler { ...@@ -46,7 +47,10 @@ public class RefundMQHandler {
String msg = new String(message.getBody(), "UTF-8"); String msg = new String(message.getBody(), "UTF-8");
OrderMQDTO orderMQDTO = JSONUtil.toBean(msg, OrderMQDTO.class); OrderMQDTO orderMQDTO = JSONUtil.toBean(msg, OrderMQDTO.class);
orderAccountBiz.refundPartDeposit(orderMQDTO); //租车订单完成
if(OrderTypeEnum.RENT_VEHICLE.getCode().equals(orderMQDTO.getType())) {
orderAccountBiz.refundPartDeposit(orderMQDTO);
}
executorService.shutdown(); executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG); Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
......
...@@ -194,7 +194,7 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -194,7 +194,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
orderPageVO.setMemberName(appUserVo.getMemberName()); orderPageVO.setMemberName(appUserVo.getMemberName());
} }
if (dto.getType() == 1) { if (dto.getType()!= null&&dto.getType() == 1) {
String costDetail = orderPageVO.getOrderRentVehicleDetail().getCostDetail(); String costDetail = orderPageVO.getOrderRentVehicleDetail().getCostDetail();
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
try { try {
...@@ -247,7 +247,6 @@ public class BackStageOrderController extends CommonBaseController implements Us ...@@ -247,7 +247,6 @@ public class BackStageOrderController extends CommonBaseController implements Us
log.info("获取驾驶人信息失败!"); log.info("获取驾驶人信息失败!");
e.printStackTrace(); e.printStackTrace();
} }
} }
} }
......
...@@ -16,15 +16,14 @@ import com.github.wxiaoqi.security.common.util.ClientUtil; ...@@ -16,15 +16,14 @@ import com.github.wxiaoqi.security.common.util.ClientUtil;
import com.github.wxiaoqi.security.common.util.Query; import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.biz.BaseOrderBiz; import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderMemberDetailBiz;
import com.xxfc.platform.order.biz.OrderUserLicenseBiz;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz; import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.biz.inner.OrderMsgBiz;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.OrderItem; import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.mqhandler.RabbitProduct; import com.xxfc.platform.order.mqhandler.RabbitProduct;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.order.CancelOrderDTO; import com.xxfc.platform.order.pojo.order.CancelOrderDTO;
import com.xxfc.platform.order.pojo.order.OrderAboutParamDTO; import com.xxfc.platform.order.pojo.order.OrderAboutParamDTO;
import com.xxfc.platform.order.pojo.order.OrderPageVO; import com.xxfc.platform.order.pojo.order.OrderPageVO;
...@@ -57,6 +56,8 @@ import java.util.List; ...@@ -57,6 +56,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
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.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Controller @Controller
...@@ -90,6 +91,24 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -90,6 +91,24 @@ public class BaseOrderController extends CommonBaseController implements UserRes
@Autowired @Autowired
OrderItemBiz orderItemBiz; OrderItemBiz orderItemBiz;
@Autowired
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderVehicleCrosstownBiz crosstownBiz;
@Autowired
OrderViolationBiz orderViolationBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
@Autowired
OrderMsgBiz orderMsgBiz;
@Autowired
OrderDepositRefundRecordBiz orderDepositRefundRecordBiz;
@Override @Override
public UserFeign getUserFeign() { public UserFeign getUserFeign() {
return userFeign; return userFeign;
...@@ -283,7 +302,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -283,7 +302,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
public ObjectRestResponse notifyUrl(NotifyUrlDTO dto) { public ObjectRestResponse notifyUrl(NotifyUrlDTO dto) {
//判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态 //判断是否成功,并且订单是未支付状态,则添加支付编号和修改状态
if (StrUtil.isNotBlank(dto.getOrderNo())) { if (StrUtil.isNotBlank(dto.getOrderNo())) {
baseOrderBiz.payNotifyHandle(dto.getOrderNo(), dto.getTradeNo(), dto.getType()); baseOrderBiz.payNotifyHandle(dto.getOrderNo(), dto.getTradeNo(), dto.getType(), dto.getPayWay());
} else { } else {
log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto)); log.error(" exception notifyUrl : " + JSONUtil.toJsonStr(dto));
} }
...@@ -381,4 +400,61 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -381,4 +400,61 @@ public class BaseOrderController extends CommonBaseController implements UserRes
return ObjectRestResponse.succ(result); return ObjectRestResponse.succ(result);
} }
@RequestMapping(value = "/app/unauth/refundDeposit/{no}", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "退款违章保证金")
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse refundDepositAmount(@PathVariable("no") String no) {
BaseOrder baseOrder = baseOrderBiz.selectOne(new BaseOrder(){{
setNo(no);
}});
OrderRentVehicleDetail orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail() {{
setOrderId(baseOrder.getId());
}});
Integer crosstownTypeEnum;
//判断是否定损过
if(SYS_TRUE.equals(orvd.getFixedLossStatus())) {
crosstownTypeEnum = CrosstownTypeEnum.FIXED_LOSS.getCode();
}else {
crosstownTypeEnum = CrosstownTypeEnum.ARRIVE.getCode();
}
OrderVehicleCrosstown crosstown = crosstownBiz.selectOne(new OrderVehicleCrosstown(){{
setOrderId(baseOrder.getId());
setType(crosstownTypeEnum);
}});
OrderViolation orderViolation = orderViolationBiz.selectOne(new OrderViolation(){{
setDetailId(orvd.getId());
setIsDel(SYS_FALSE);
}});
OrderAccountDetail oad = new OrderAccountDetail();
String refundDesc = "退还违章押金:";
BigDecimal refundAmont;
if(null != orderViolation) {
//设置扣款项
oad.getDeductions().add(
orderAccountBiz.initDeduction(orderViolation.getPrice(), DeductionTypeEnum.VIOLATE_TRAFFIC_DEDUCT.getDesc(), DeductionTypeEnum.VIOLATE_TRAFFIC_DEDUCT, OrderAccountDeduction.ORIGIN_DEPOSIT)
);
//还车扣除款 剩余的 钱,再减去违章预备金
refundAmont = orvd.getReturnPayResidue().subtract(orderViolation.getPrice());
refundDesc += refundAmont.toString();
}else {
refundAmont = orvd.getReturnPayResidue();
refundDesc += refundAmont.toString();
}
oad.setOriginDepositAmount(orvd.getReturnPayResidue());
oad.setDepositAmount(refundAmont);
orderAccountBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), AccountTypeEnum.OUT_RESIDUE_DEPOSIT, oad);
orderDepositRefundRecordBiz.completeRecordStatus(crosstown.getId(), DepositRefundStatus.VIOLATIONARRIVAL);
orderMsgBiz.handelMsgDeposit(orvd, baseOrder, userFeign.userDetailById(baseOrder.getUserId()).getData());
return ObjectRestResponse.succ();
}
} }
package com.xxfc.platform.order.rest; package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
...@@ -46,7 +47,8 @@ public class OrderMemberController extends BaseController<OrderMemberDetailBiz, ...@@ -46,7 +47,8 @@ public class OrderMemberController extends BaseController<OrderMemberDetailBiz,
@ApiOperation(value = "确认会员订单") @ApiOperation(value = "确认会员订单")
public ObjectRestResponse<BaseOrder> add(@RequestBody AddMemberDTO dto) { public ObjectRestResponse<BaseOrder> add(@RequestBody AddMemberDTO dto) {
MemberBO bo = BeanUtil.toBean(dto, MemberBO.class); MemberBO bo = BeanUtil.toBean(dto, MemberBO.class);
bo.setTickerNo(StrUtil.isNotBlank(dto.getTickerNos())?
StrUtil.splitTrim(dto.getTickerNos(), ","):null);
//查询会员等级实体 //查询会员等级实体
// bo.setBaseUserMemberLevel(userFeign.memberEntityList(BeanUtil.beanToMap(new BaseUserMemberLevel(){{ // bo.setBaseUserMemberLevel(userFeign.memberEntityList(BeanUtil.beanToMap(new BaseUserMemberLevel(){{
// setId(dto.getMemberLevelId()); // setId(dto.getMemberLevelId());
......
...@@ -111,7 +111,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz ...@@ -111,7 +111,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
return ObjectRestResponse.succ(baseBiz.getTourHomePageOrderData(companyIds)); return ObjectRestResponse.succ(baseBiz.getTourHomePageOrderData(companyIds));
} }
//只统计会员订单 //只统计会员订单
if (TYPE_MEMBER.equals(type)||DATA_AUTHORITY.equals(user.getDataAll())) { if (TYPE_MEMBER.equals(type)&&DATA_AUTHORITY.equals(user.getDataAll())) {
return ObjectRestResponse.succ(baseBiz.getMemberHomePageOrderData(companyIds)); return ObjectRestResponse.succ(baseBiz.getMemberHomePageOrderData(companyIds));
} }
//所有订单 //所有订单
......
...@@ -150,8 +150,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or ...@@ -150,8 +150,8 @@ public abstract class AbstractOrderHandle<Biz extends BaseBiz, Detail extends Or
if(BigDecimal.ZERO.compareTo(realAmount) > 0) { if(BigDecimal.ZERO.compareTo(realAmount) > 0) {
throw new BaseException(ResultCode.FAILED_CODE); throw new BaseException(ResultCode.FAILED_CODE);
}else if(BigDecimal.ZERO.compareTo(realAmount) == 0) { }else if(BigDecimal.ZERO.compareTo(realAmount) == 0) {
//直接支付 //直接支付 0表示不需要支付
baseOrderBiz.payNotifyHandle(detail.getOrder().getNo(), null, detail.getOrderOrigin()); baseOrderBiz.payNotifyHandle(detail.getOrder().getNo(), null, detail.getOrderOrigin(), 0);
} }
} }
/** /**
......
...@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; ...@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.BaseOrderBiz; import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderCostDetailBiz; import com.xxfc.platform.order.biz.OrderCostDetailBiz;
...@@ -99,6 +100,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -99,6 +100,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
@PostConstruct @PostConstruct
public void init() { public void init() {
this.channel = Coupon.CHANNEL_MEMBER;
this.orderTypeEnum = OrderTypeEnum.MEMBER; this.orderTypeEnum = OrderTypeEnum.MEMBER;
} }
...@@ -333,9 +335,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -333,9 +335,6 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
pageDataVO.setPageNum(memberOrderFindDTO.getPage()); pageDataVO.setPageNum(memberOrderFindDTO.getPage());
pageDataVO.setPageSize(memberOrderFindDTO.getLimit()); pageDataVO.setPageSize(memberOrderFindDTO.getLimit());
pageDataVO.setData(Collections.EMPTY_LIST); pageDataVO.setData(Collections.EMPTY_LIST);
String name = memberOrderFindDTO.getLevel()==null?"":memberOrderFindDTO.getLevel()==1?"普通":memberOrderFindDTO.getLevel()==2?"黄金":memberOrderFindDTO.getLevel()==3?"钻石":null;
memberOrderFindDTO.setLevelName(name);
if (Objects.nonNull(memberOrderFindDTO.getEndPayTime())){ if (Objects.nonNull(memberOrderFindDTO.getEndPayTime())){
Long payEndTime = memberOrderFindDTO.getEndPayTime()+(1000*60*60*24); Long payEndTime = memberOrderFindDTO.getEndPayTime()+(1000*60*60*24);
memberOrderFindDTO.setEndPayTime(payEndTime); memberOrderFindDTO.setEndPayTime(payEndTime);
...@@ -407,40 +406,29 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -407,40 +406,29 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
private MemberOrderStatisticsBo getMemberOrderStatisticsBo(List<MemberOrderBo> baseOrders){ private MemberOrderStatisticsBo getMemberOrderStatisticsBo(List<MemberOrderBo> baseOrders){
MemberOrderStatisticsBo memberOrderStatisticsBo = new MemberOrderStatisticsBo(); MemberOrderStatisticsBo memberOrderStatisticsBo = new MemberOrderStatisticsBo();
baseOrders.stream().peek(x->{ Map<Integer, List<MemberOrderBo>> baseOrderMap = baseOrders.stream().collect(Collectors.groupingBy(MemberOrderBo::getMemberLevel, Collectors.toList()));
if(x.getName().contains("黄金")){ Map<Integer, List<MemberOrderBo>> baseOrderHasPayMap = baseOrders.stream().filter(x->x.getHasPay()==1).collect(Collectors.groupingBy(MemberOrderBo::getMemberLevel, Collectors.toList()));
x.setDesc("黄金");
}
if (x.getName().contains("钻石")){
x.setDesc("钻石");
}
if (x.getName().contains("普通")){
x.setDesc("普通");
}
}).count();
Map<String, List<MemberOrderBo>> baseOrderMap = baseOrders.stream().collect(Collectors.groupingBy(MemberOrderBo::getDesc, Collectors.toList()));
Map<String, List<MemberOrderBo>> baseOrderHasPayMap = baseOrders.stream().filter(x->x.getHasPay()==1).collect(Collectors.groupingBy(MemberOrderBo::getDesc, Collectors.toList()));
memberOrderStatisticsBo.setOrderNum(baseOrders.size()); memberOrderStatisticsBo.setOrderNum(baseOrders.size());
BigDecimal totalAmount = baseOrders.stream().filter(x->x.getHasPay()==1).map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal totalAmount = baseOrders.stream().filter(x->x.getHasPay()==1).map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalAmount(totalAmount); memberOrderStatisticsBo.setTotalAmount(totalAmount);
List<MemberOrderBo> diamondOrders = baseOrderMap.get(levelEnum.DIAMOND.getDesc()); List<MemberOrderBo> diamondOrders = baseOrderMap.get(levelEnum.DIAMOND.getLevel());
memberOrderStatisticsBo.setDiamondOrderNum(diamondOrders==null?0:diamondOrders.size()); memberOrderStatisticsBo.setDiamondOrderNum(diamondOrders==null?0:diamondOrders.size());
List<MemberOrderBo> diamondHashPayOrders = baseOrderHasPayMap.get(levelEnum.DIAMOND.getDesc()); List<MemberOrderBo> diamondHashPayOrders = baseOrderHasPayMap.get(levelEnum.DIAMOND.getLevel());
diamondHashPayOrders = diamondHashPayOrders==null?Collections.EMPTY_LIST:diamondHashPayOrders; diamondHashPayOrders = diamondHashPayOrders==null?Collections.EMPTY_LIST:diamondHashPayOrders;
BigDecimal diamondAmount = diamondHashPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal diamondAmount = diamondHashPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
memberOrderStatisticsBo.setTotalDiamondAmount(diamondAmount); memberOrderStatisticsBo.setTotalDiamondAmount(diamondAmount);
List<MemberOrderBo> goldOrders = baseOrderMap.get(levelEnum.GOLD.getDesc()); List<MemberOrderBo> goldOrders = baseOrderMap.get(levelEnum.GOLD.getLevel());
memberOrderStatisticsBo.setGoldOrderNum(goldOrders==null?0:goldOrders.size()); memberOrderStatisticsBo.setGoldOrderNum(goldOrders==null?0:goldOrders.size());
List<MemberOrderBo> goldHasPayOrders = baseOrderHasPayMap.get(levelEnum.GOLD.getDesc()); List<MemberOrderBo> goldHasPayOrders = baseOrderHasPayMap.get(levelEnum.GOLD.getLevel());
goldHasPayOrders = goldHasPayOrders==null?Collections.EMPTY_LIST:goldHasPayOrders; goldHasPayOrders = goldHasPayOrders==null?Collections.EMPTY_LIST:goldHasPayOrders;
BigDecimal goldAmount = goldHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal goldAmount = goldHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalGoldAmount(goldAmount); memberOrderStatisticsBo.setTotalGoldAmount(goldAmount);
List<MemberOrderBo> generalOrders = baseOrderMap.get(levelEnum.GENERAL.getDesc()); List<MemberOrderBo> generalOrders = baseOrderMap.get(levelEnum.GENERAL.getLevel());
memberOrderStatisticsBo.setGeneralOrderNum(generalOrders==null?0:generalOrders.size()); memberOrderStatisticsBo.setGeneralOrderNum(generalOrders==null?0:generalOrders.size());
List<MemberOrderBo> generalHasPayOrders = baseOrderHasPayMap.get(levelEnum.GENERAL.getDesc()); List<MemberOrderBo> generalHasPayOrders = baseOrderHasPayMap.get(levelEnum.GENERAL.getLevel());
generalHasPayOrders = generalHasPayOrders==null?Collections.EMPTY_LIST:generalHasPayOrders; generalHasPayOrders = generalHasPayOrders==null?Collections.EMPTY_LIST:generalHasPayOrders;
BigDecimal generalAmount = generalHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y)); BigDecimal generalAmount = generalHasPayOrders.stream().map(MemberOrderBo::getOrderAmount).reduce(BigDecimal.ZERO, (x, y) -> x.add(y));
memberOrderStatisticsBo.setTotalGeneralAmount(generalAmount); memberOrderStatisticsBo.setTotalGeneralAmount(generalAmount);
...@@ -448,16 +436,26 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -448,16 +436,26 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
return memberOrderStatisticsBo; return memberOrderStatisticsBo;
} }
private enum levelEnum{ private enum levelEnum{
DIAMOND("钻石"), DIAMOND(3,"钻石"),
GOLD("黄金"), GOLD(2,"黄金"),
GENERAL("普通"); GENERAL(1,"普通");
levelEnum(String desc) { levelEnum(Integer level,String desc) {
this.level = level;
this.desc = desc; this.desc = desc;
} }
private Integer level;
private String desc; private String desc;
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public String getDesc() { public String getDesc() {
return desc; return desc;
} }
......
...@@ -11,7 +11,6 @@ import com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum; ...@@ -11,7 +11,6 @@ import com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.constant.CommonConstants; import com.github.wxiaoqi.security.common.constant.CommonConstants;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
...@@ -46,13 +45,16 @@ import org.springframework.stereotype.Service; ...@@ -46,13 +45,16 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*; import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*;
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.contant.enumerate.ItemTypeEnum.*; import static com.xxfc.platform.order.contant.enumerate.ItemTypeEnum.ACCOMPANY;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
...@@ -464,7 +466,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -464,7 +466,6 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//根据车型、时间、距离,门店,预定车辆 //根据车型、时间、距离,门店,预定车辆
RentVehicleBookDTO rentVehicleBookDTO = BeanUtil.toBean(detail.getBookVehicleVO(), RentVehicleBookDTO.class); RentVehicleBookDTO rentVehicleBookDTO = BeanUtil.toBean(detail.getBookVehicleVO(), RentVehicleBookDTO.class);
rentVehicleBookDTO.setModelId(detail.getModelId()); rentVehicleBookDTO.setModelId(detail.getModelId());
rentVehicleBookDTO.setUserName(BaseContextHandler.getName());
rentVehicleBookDTO.setLiftCompany(detail.getStartCompanyId()); rentVehicleBookDTO.setLiftCompany(detail.getStartCompanyId());
rentVehicleBookDTO.setLiftAddr(detail.getStartAddr()); rentVehicleBookDTO.setLiftAddr(detail.getStartAddr());
rentVehicleBookDTO.setRetCompany(detail.getEndCompanyId()); rentVehicleBookDTO.setRetCompany(detail.getEndCompanyId());
...@@ -474,6 +475,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -474,6 +475,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rentVehicleBookDTO.setNumberPlate(numberPlate); rentVehicleBookDTO.setNumberPlate(numberPlate);
rentVehicleBookDTO.setStatus(status); rentVehicleBookDTO.setStatus(status);
rentVehicleBookDTO.setUseType(detail.getUseType()); rentVehicleBookDTO.setUseType(detail.getUseType());
if (detail.getAppUserDTO() != null) {
rentVehicleBookDTO.setVehicleUserPhone(detail.getAppUserDTO().getUsername());
rentVehicleBookDTO.setVehicleUsername(detail.getAppUserDTO().getRealname());
}
if(null != detail.getAccompanyItems()) { if(null != detail.getAccompanyItems()) {
rentVehicleBookDTO.setSelectedAccItem(detail.getAccompanyItems().parallelStream().collect(Collectors.toMap(OrderAccompanyDTO::getId, OrderAccompanyDTO::getNum))); rentVehicleBookDTO.setSelectedAccItem(detail.getAccompanyItems().parallelStream().collect(Collectors.toMap(OrderAccompanyDTO::getId, OrderAccompanyDTO::getNum)));
......
...@@ -291,6 +291,7 @@ ...@@ -291,6 +291,7 @@
</select> </select>
<select id="findMemberOrders" resultType="com.xxfc.platform.order.pojo.dto.MemberOrderBo"> <select id="findMemberOrders" resultType="com.xxfc.platform.order.pojo.dto.MemberOrderBo">
select bo.*,omd.member_level AS `memberLevel` from (
SELECT SELECT
`id`, `id`,
`no` AS `orderNo`, `no` AS `orderNo`,
...@@ -304,7 +305,6 @@ ...@@ -304,7 +305,6 @@
`coupon_amount` AS `couponAmount`, `coupon_amount` AS `couponAmount`,
`user_id` AS `userId`, `user_id` AS `userId`,
`has_pay` AS `hasPay`, `has_pay` AS `hasPay`,
`member_level` AS `memberLevel`,
`facilitate_id` AS `facilitateId`, `facilitate_id` AS `facilitateId`,
`facilitate_phone` AS `facilitatePhone` `facilitate_phone` AS `facilitatePhone`
FROM FROM
...@@ -338,15 +338,18 @@ ...@@ -338,15 +338,18 @@
<if test="endPayTime!=null and startPayTime==null"> <if test="endPayTime!=null and startPayTime==null">
and `pay_time` <![CDATA[<=#{endPayTime}]]> and `pay_time` <![CDATA[<=#{endPayTime}]]>
</if> </if>
<if test="levelName!=null and levelName!=''">
and `name` like CONCAT('%',#{levelName},'%')
</if>
<if test="userIds!=null and userIds.size()>0"> <if test="userIds!=null and userIds.size()>0">
and `user_id` IN and `user_id` IN
<foreach collection="userIds" item="userId" separator="," open="(" close=")"> <foreach collection="userIds" item="userId" separator="," open="(" close=")">
#{userId} #{userId}
</foreach> </foreach>
</if> </if>
ORDER BY `crt_time` DESC ) AS `bo`
INNER JOIN (select * from `order_member_detail` where 1=1
<if test="level!=null">
and `member_level`=#{level}
</if>
) AS `omd` ON omd.order_id=bo.id
ORDER BY bo.`creatTime` DESC
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -196,7 +196,8 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> { ...@@ -196,7 +196,8 @@ public class OrderPayBiz extends BaseBiz<OrderPayMapper, OrderPay> {
if (StringUtils.isNotBlank(pay.getNotifyUrl())) { if (StringUtils.isNotBlank(pay.getNotifyUrl())) {
String url = pay.getNotifyUrl(); String url = pay.getNotifyUrl();
Integer type = pay.getType() == null ? 1 : pay.getType(); Integer type = pay.getType() == null ? 1 : pay.getType();
url += "&tradeNo=" + orderNo + "&type=" + type; Integer payWay = pay.getPayWay();
url += "&tradeNo=" + orderNo + "&type=" + type+"&payWay="+payWay;
log.error("---支付回调处理---orderNo=======" + orderNo + "----notifyUrl====" + url); log.error("---支付回调处理---orderNo=======" + orderNo + "----notifyUrl====" + url);
String result = ""; String result = "";
if (url.contains("https") || url.contains("HTTPS")) { if (url.contains("https") || url.contains("HTTPS")) {
......
...@@ -4,14 +4,9 @@ import com.github.wxiaoqi.security.common.vo.PageParam; ...@@ -4,14 +4,9 @@ import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.time.Instant;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.List;
import java.util.Map; import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.DATE_TIME_LINE_FORMATTER;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.YMR_SLASH_FORMATTER; import static com.github.wxiaoqi.security.common.constant.CommonConstants.YMR_SLASH_FORMATTER;
@Data @Data
...@@ -74,6 +69,11 @@ public class RentVehicleBookDTO extends PageParam { ...@@ -74,6 +69,11 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty("用户名") @ApiModelProperty("用户名")
private String userName; private String userName;
//使用人姓名
private String vehicleUsername;
//使用人电话
private String vehicleUserPhone;
@ApiModelProperty("订单号") @ApiModelProperty("订单号")
private String orderNo; private String orderNo;
......
...@@ -15,6 +15,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -15,6 +15,7 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey; import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.Area; import com.xxfc.platform.vehicle.entity.Area;
import com.xxfc.platform.vehicle.entity.BranchCompany; import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.BranchCompanyStockInfo; import com.xxfc.platform.vehicle.entity.BranchCompanyStockInfo;
...@@ -416,4 +417,19 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -416,4 +417,19 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
public List<Integer> getCompanyIds(String dataZone ,String dataCompany) { public List<Integer> getCompanyIds(String dataZone ,String dataCompany) {
return vehicleBiz.dataCompany(dataZone, dataCompany); return vehicleBiz.dataCompany(dataZone, dataCompany);
} }
@CacheClear(pre = RedisKey.BRANCH_COMPANY_CACHE_ALL)
public ObjectRestResponse delCompanyByBaseId(Integer id) {
Example example = new Example(BranchCompany.class);
example.createCriteria().andEqualTo("companyBaseId", id);
example.createCriteria().andEqualTo("isDel", 0);
BranchCompany branchCompany = mapper.selectOneByExample(example);
if(branchCompany == null) {
return ObjectRestResponse.createFailedResult(ResCode.BRANCH_COMPANY_UNEXIST.getCode(), ResCode.BRANCH_COMPANY_UNEXIST.getDesc());
}
branchCompany.setIsDel(1);
updateSelectiveByIdRe(branchCompany);
return ObjectRestResponse.succ();
}
} }
...@@ -8,7 +8,6 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; ...@@ -8,7 +8,6 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.RandomUtil; import com.github.wxiaoqi.security.common.util.RandomUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.RedisKey; import com.xxfc.platform.vehicle.constant.RedisKey;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.BranchCompanyStockInfoMapper; import com.xxfc.platform.vehicle.mapper.BranchCompanyStockInfoMapper;
...@@ -32,7 +31,6 @@ import javax.servlet.http.HttpServletRequest; ...@@ -32,7 +31,6 @@ import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Scanner;
@Service @Service
@Slf4j @Slf4j
...@@ -388,6 +386,7 @@ public class CompanyBaseBiz extends BaseBiz<CompanyBaseMapper, CompanyBase> { ...@@ -388,6 +386,7 @@ public class CompanyBaseBiz extends BaseBiz<CompanyBaseMapper, CompanyBase> {
companyBase.setId(id); companyBase.setId(id);
companyBase.setIsDel(1); companyBase.setIsDel(1);
updateSelectiveById(companyBase); updateSelectiveById(companyBase);
branchCompanyBiz.delCompanyByBaseId(id);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
......
...@@ -10,7 +10,6 @@ import com.xxfc.platform.vehicle.entity.*; ...@@ -10,7 +10,6 @@ import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.mapper.*; import com.xxfc.platform.vehicle.mapper.*;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter; import org.joda.time.format.DateTimeFormatter;
...@@ -66,11 +65,11 @@ public class VehicleActiveService { ...@@ -66,11 +65,11 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
} }
if (StringUtils.isBlank(departureVo.getCheckMan()) || StringUtils.isBlank(departureVo.getCheckManTel())) { // if (StringUtils.isBlank(departureVo.getCheckMan()) || StringUtils.isBlank(departureVo.getCheckManTel())) {
log.error("出车 核销人姓名不能为空!"); // log.error("出车 核销人姓名不能为空!");
throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(), // throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(),
ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode()); // ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode());
} // }
if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode()) || vehicle.getIsDel() == 1 || vehicle.getStatus().equals(VehicleStatus.DEPARTURE.getCode())) { if (vehicle.getStatus().equals(VehicleStatus.DISCARD.getCode()) || vehicle.getIsDel() == 1 || vehicle.getStatus().equals(VehicleStatus.DEPARTURE.getCode())) {
throw new BaseException(ResCode.VEHICLE_STATUS_IS_NOT_NORMAL.getDesc(), throw new BaseException(ResCode.VEHICLE_STATUS_IS_NOT_NORMAL.getDesc(),
ResCode.VEHICLE_STATUS_IS_NOT_NORMAL.getCode()); ResCode.VEHICLE_STATUS_IS_NOT_NORMAL.getCode());
...@@ -199,10 +198,10 @@ public class VehicleActiveService { ...@@ -199,10 +198,10 @@ public class VehicleActiveService {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(), throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNEXIST.getCode());
} }
if (StringUtils.isBlank(arrivalVo.getRecycleMan()) || StringUtils.isBlank(arrivalVo.getRecycleManTel())) { // if (StringUtils.isBlank(arrivalVo.getRecycleMan()) || StringUtils.isBlank(arrivalVo.getRecycleManTel())) {
throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(), // throw new BaseException(ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getDesc(),
ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode()); // ResCode.CHECKUSER_AND_PHONE_NOT_NULL.getCode());
} // }
// if (!vehicle.getStatus().equals(VehicleStatus.DEPARTURE.getCode())) { // if (!vehicle.getStatus().equals(VehicleStatus.DEPARTURE.getCode())) {
// throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()), // throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc() + ", 车辆状态是:" + getVehicleStatus(vehicle.getStatus(), vehicle.getId()),
// ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode()); // ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
......
...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.common.RestResponse; ...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.*; import com.xxfc.platform.vehicle.constant.*;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.jobhandler.VehicleJobHandler;
import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper; import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper; import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper;
import com.xxfc.platform.vehicle.mapper.VehicleMapper; import com.xxfc.platform.vehicle.mapper.VehicleMapper;
...@@ -89,6 +90,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -89,6 +90,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
@Autowired @Autowired
private VehicleBookInfoBiz vehicleBookInfoBiz; private VehicleBookInfoBiz vehicleBookInfoBiz;
@Autowired
private VehicleJobHandler vehicleJobHandler;
@Override @Override
public UserFeign getUserFeign() { public UserFeign getUserFeign() {
...@@ -237,6 +241,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -237,6 +241,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
// } // }
} }
mapper.insertSelective(vehicle); mapper.insertSelective(vehicle);
//排班表插入
vehicleJobHandler.InsertBookInfo(vehicle.getId());
} }
return RestResponse.suc(); return RestResponse.suc();
} }
...@@ -1173,17 +1180,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1173,17 +1180,19 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto) { public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto); Map<String, Object> params = BeanUtil.beanToMap(dto);
if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) { if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params, Boolean.FALSE); params = initBookSearchParam(dto, params, Boolean.FALSE);
} }
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); Map<String, Object> finalParams = params;
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(finalParams));
} }
public PageDataVO<UsableVehicleModelVO> searchUsableModelBackStage(UsableVeicleDTO dto) { public PageDataVO<UsableVehicleModelVO> searchUsableModelBackStage(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto); Map<String, Object> params = BeanUtil.beanToMap(dto);
if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) { if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params, Boolean.FALSE); params = initBookSearchParam(dto, params, Boolean.FALSE);
} }
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); Map<String, Object> finalParams = params;
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(finalParams));
} }
public PageDataVO<UsableVehicleModelVO> hotModel(HotVeicleDTO dto) { public PageDataVO<UsableVehicleModelVO> hotModel(HotVeicleDTO dto) {
...@@ -1192,7 +1201,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1192,7 +1201,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params)); return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
} }
private void initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params, Boolean needDateExtend) { private Map<String, Object> initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params, Boolean needDateExtend) {
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if (StringUtils.isNotBlank(dto.getStartDate()) && if (StringUtils.isNotBlank(dto.getStartDate()) &&
StringUtils.isNotBlank(dto.getEndDate())) { StringUtils.isNotBlank(dto.getEndDate())) {
...@@ -1202,6 +1211,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1202,6 +1211,9 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
}else { }else {
notBookedDates = convertDatePeriod2List(dto.getStartDate(), notBookedDates = convertDatePeriod2List(dto.getStartDate(),
dto.getEndDate()); dto.getEndDate());
dto.setStartDateExtend(dto.getStartDate());
dto.setEndDateExtend(dto.getEndDate());
params = BeanUtil.beanToMap(dto);
} }
} }
...@@ -1221,6 +1233,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1221,6 +1233,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
//加入预定信息查询条件 //加入预定信息查询条件
fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked); fillBookedDateSearchParam(params, yearMonthAndDate, yearMonthAndDateNotBooked);
return params;
} }
public PageDataVO<Vehicle> searchUsableVehicle(RentVehicleBookDTO dto) { public PageDataVO<Vehicle> searchUsableVehicle(RentVehicleBookDTO dto) {
...@@ -1229,16 +1242,20 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1229,16 +1242,20 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
dto.setUseType(null); dto.setUseType(null);
} }
Map<String, Object> params = BeanUtil.beanToMap(dto);
List<String> notBookedDates = Lists.newArrayList(); List<String> notBookedDates = Lists.newArrayList();
if (StringUtils.isNotBlank(dto.getBookEndDate()) && if (StringUtils.isNotBlank(dto.getBookEndDate()) &&
StringUtils.isNotBlank(dto.getBookEndDate())) { StringUtils.isNotBlank(dto.getBookEndDate())) {
notBookedDates = convertDatePeriod2List(dto.getBookStartDate(), notBookedDates = convertDatePeriod2List(dto.getBookStartDate(),
dto.getBookEndDate()); dto.getBookEndDate());
dto.setStartDateExtend(dto.getBookStartDate());
dto.setEndDateExtend(dto.getBookEndDate());
// notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(), // notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(),
// dto.getEndDateExtend()); // dto.getEndDateExtend());
} }
Map<String, Object> params = BeanUtil.beanToMap(dto);
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月) //若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
if (CollectionUtils.isEmpty(notBookedDates)) { if (CollectionUtils.isEmpty(notBookedDates)) {
//return; //return;
......
...@@ -17,6 +17,7 @@ import org.springframework.stereotype.Component; ...@@ -17,6 +17,7 @@ import org.springframework.stereotype.Component;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* @author libin * @author libin
...@@ -66,4 +67,21 @@ public class VehicleJobHandler extends IJobHandler { ...@@ -66,4 +67,21 @@ public class VehicleJobHandler extends IJobHandler {
return FAIL; return FAIL;
} }
} }
public void InsertBookInfo(String vehicleId){
XxlJobLogger.log("----添加新建的车辆【{}】的bookInfo",vehicleId);
List<VehicleBookInfo> bookInfos = Stream.of(0, 1, 2).map(x -> {
LocalDate date = LocalDate.now().plusMonths(x);
int year = date.getYear();
int month = date.getMonthValue();
String yearAndMonth = String.format("%d-%02d", year, month);
VehicleBookInfo vehicleBookInfo = new VehicleBookInfo();
vehicleBookInfo.setVehicle(vehicleId);
vehicleBookInfo.setYearMonth(yearAndMonth);
return vehicleBookInfo;
}).collect(Collectors.toList());
XxlJobLogger.log("----插入车型对象:【{}】",bookInfos);
vehicleBookInfoBiz.InsertBatch(bookInfos);
}
} }
...@@ -200,7 +200,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -200,7 +200,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneOffset.ofHours(8)).plusSeconds(30L); LocalDateTime ldt = LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneOffset.ofHours(8)).plusSeconds(30L);
dto.setBookStartDate(DateTimeFormatter.ofPattern(DATE_TIME_LINE).format(ldt)); dto.setBookStartDate(DateTimeFormatter.ofPattern(DATE_TIME_LINE).format(ldt));
}else { }else {
dto.setBookStartDate(dto.getBookEndDateTime()); dto.setBookStartDate(dto.getBookStartDateTime());
} }
dto.setBookEndDate(dto.getBookEndDateTime()); dto.setBookEndDate(dto.getBookEndDateTime());
BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class); BookVehicleVO bookVehicleVo = BeanUtil.toBean(dto, BookVehicleVO.class);
......
...@@ -802,14 +802,14 @@ ...@@ -802,14 +802,14 @@
</if> </if>
<!-- yearNo4Where 标识时间参数不用于where条件,用于select部分 --> <!-- yearNo4Where 标识时间参数不用于where条件,用于select部分 -->
<if test=" yearMonthAndParam !=null and yearNo4Where != null and yearNo4Where == true"> <if test=" yearMonthAndParam !=null and yearNo4Where != null and yearNo4Where == true">
,(ifnull(max( ,(max(
vbi.bit_str = #{yearMonthAndParamBitStr} ifnull(vbi.bit_str = #{yearMonthAndParamBitStr}, false)
<!-- 租车列表 不过滤前后预约记录不符的车辆 但是合并标示车型是否有车 即 hasVehicle--> <!-- 租车列表 不过滤前后预约记录不符的车辆 但是合并标示车型是否有车 即 hasVehicle-->
<if test="withoutRecordWhere != null and withoutRecordWhere = 1 and startCompanyId != null and endCompanyId != null "> <if test="withoutRecordWhere != null and withoutRecordWhere = 1 and startCompanyId != null and endCompanyId != null ">
and (abr.to_lift_company is null or abr.to_lift_company = #{startCompanyId}) and (abr.to_lift_company is null or abr.to_lift_company = #{startCompanyId})
and (abr.to_return_company is null or abr.to_return_company = #{endCompanyId}) and (abr.to_return_company is null or abr.to_return_company = #{endCompanyId})
</if> </if>
), 1) )
) as hasVehicle ) as hasVehicle
</if> </if>
<if test="lon != null and lat != null"> <if test="lon != null and lat != null">
...@@ -866,7 +866,7 @@ ...@@ -866,7 +866,7 @@
bc.id = #{parkBranchCompanyId} bc.id = #{parkBranchCompanyId}
</otherwise> </otherwise>
</choose> </choose>
where vm.isdel = 0 and vm.status = 0) where vm.isdel = 0 and vm.status = 0 and vm.app_show = 1)
</if> </if>
<if test="lon != null and lat != null"> <if test="lon != null and lat != null">
order by order by
......
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