Commit 944cdc3c authored by hezhen's avatar hezhen

Merge branch 'master-chw' of http://113.105.137.151:22280/youjj/cloud-platform into master-chw

parents 95e933cb e66e9373
...@@ -74,6 +74,8 @@ public class SystemConfig { ...@@ -74,6 +74,8 @@ public class SystemConfig {
public static final String ALIPAY_ACOUNT = SystemProperty.getConfig("ALIPAY_ACOUNT"); public static final String ALIPAY_ACOUNT = SystemProperty.getConfig("ALIPAY_ACOUNT");
public static final String ALIPAY_PRIVATE_KEY = SystemProperty.getConfig("ALIPAY_PRIVATE_KEY"); public static final String ALIPAY_PRIVATE_KEY = SystemProperty.getConfig("ALIPAY_PRIVATE_KEY");
public static final String VEHICLE_VIOLATE_KEY = SystemProperty.getConfig("VEHICLE_VIOLATE_KEY");
/** /**
* 交易创建,等待买家付款 * 交易创建,等待买家付款
*/ */
......
...@@ -34,6 +34,9 @@ spring.mail.properties.smtp.auth=false ...@@ -34,6 +34,9 @@ spring.mail.properties.smtp.auth=false
spring.mail.properties.smtp.timeout=25000 spring.mail.properties.smtp.timeout=25000
spring.mail.username=xinxinmanager@126.com spring.mail.username=xinxinmanager@126.com
#违章appkey
VEHICLE_VIOLATE_KEY=714ac24873c6a8b76114dca575a3748b
#ios #ios
APP_ID_IOS=wx3f51779d49171d63 APP_ID_IOS=wx3f51779d49171d63
APP_PARTNER_IOS=1492557632 APP_PARTNER_IOS=1492557632
......
...@@ -74,6 +74,11 @@ public class AppUserManageDTO { ...@@ -74,6 +74,11 @@ public class AppUserManageDTO {
*/ */
private String realName; private String realName;
/**
* 昵称
*/
private String nickname;
/** /**
* 注册来源 * 注册来源
......
package com.github.wxiaoqi.security.admin.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:27
*/
@Data
public class AppraiseLabeInfoDTO extends PageParam {
private String name;
private Integer type;
private Integer enable;
}
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 评价标签
*
* @author wuweizhi
* @email 18178966185@163.com
* @date 2020-11-16 14:07:35
*/
@Data
@Table(name = "appraise_label_info")
public class AppraiseLabelInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("")
private Integer id;
/**
* 标签名称
*/
@Column(name = "name")
@ApiModelProperty(value = "标签名称")
private String name;
/**
* 分值
*/
@Column(name = "point")
@ApiModelProperty(value = "分值")
private Integer point;
/**
* 1-全部,2-房车,3-机车,4-游艇,5豪车
*/
@Column(name = "type")
@ApiModelProperty(value = "1-全部,2-房车,3-机车,4-游艇,5豪车")
private Integer type;
/**
* 是否启用:0、否,1、是
*/
@Column(name = "enable")
@ApiModelProperty(value = "是否启用:0、否,1、是")
private Integer enable;
/**
* 是否删除:0、否,1、是
*/
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除:0、否,1、是")
private Integer isDel;
/**
*
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "", hidden = true )
private Long crtTime;
/**
*
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "", hidden = true )
private Long updTime;
/**
* 规则:[{"star":1,"point":20,"level":"一般"}]
*/
@Column(name = "rules")
@ApiModelProperty(value = "规则:[{\"star\":1,\"point\":20,\"level\":\"一般\"}]")
private String rules;
/**
* 排序
*/
@Column(name = "sort")
@ApiModelProperty(value = "排序")
private Integer sort;
}
package com.github.wxiaoqi.security.admin.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.dto.AppraiseLabeInfoDTO;
import com.github.wxiaoqi.security.admin.dto.CompanyApplyFindDTO;
import com.github.wxiaoqi.security.admin.entity.CompanyInfo;
import com.github.wxiaoqi.security.admin.vo.CompanyApplyVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.AppraiseLabelInfo;
import com.github.wxiaoqi.security.admin.mapper.AppraiseLabelInfoMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 评价标签
*
* @author wuweizhi
* @email 18178966185@163.com
* @date 2020-11-16 14:07:35
*/
@Service
@Slf4j
@Transactional
public class AppraiseLabelInfoBiz extends BaseBiz<AppraiseLabelInfoMapper, AppraiseLabelInfo> {
public List<AppraiseLabelInfo> getList(AppraiseLabeInfoDTO appraiseLabeInfoDTO){
return mapper.selectList(appraiseLabeInfoDTO);
}
public ObjectRestResponse selectList(AppraiseLabeInfoDTO appraiseLabeInfoDTO){
PageHelper.startPage(appraiseLabeInfoDTO.getPage(), appraiseLabeInfoDTO.getLimit());
PageInfo<AppraiseLabelInfo> pageInfo = new PageInfo<>(getList(appraiseLabeInfoDTO));
return ObjectRestResponse.succ(PageDataVO.pageInfo(pageInfo));
}
public void saveOrUpd(AppraiseLabelInfo appraiseLabelInfo){
Long id = appraiseLabelInfo.getId() == null ? 0L :appraiseLabelInfo.getId();
if (id > 0L ){
updateSelectiveById(appraiseLabelInfo);
}else {
insertSelective(appraiseLabelInfo);
}
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.dto.AppraiseLabeInfoDTO;
import com.github.wxiaoqi.security.admin.dto.CompanyApplyFindDTO;
import com.github.wxiaoqi.security.admin.entity.AppraiseLabelInfo;
import com.github.wxiaoqi.security.admin.vo.CompanyApplyVo;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* 评价标签
*
* @author wuweizhi
* @email 18178966185@163.com
* @date 2020-11-16 14:07:35
*/
public interface AppraiseLabelInfoMapper extends Mapper<AppraiseLabelInfo> {
List<AppraiseLabelInfo> selectList(AppraiseLabeInfoDTO appraiseLabeInfoDTO);
}
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.admin.biz.AppraiseLabelInfoBiz;
import com.github.wxiaoqi.security.admin.entity.AppraiseLabelInfo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("app/appraiseLabelInfo")
public class AppraiseLabelInfoController extends BaseController<AppraiseLabelInfoBiz, AppraiseLabelInfo> {
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.rest.admin;
import com.github.wxiaoqi.security.admin.biz.AppraiseLabelInfoBiz;
import com.github.wxiaoqi.security.admin.dto.AppraiseLabeInfoDTO;
import com.github.wxiaoqi.security.admin.dto.CompanyApplyFindDTO;
import com.github.wxiaoqi.security.admin.entity.AppraiseLabelInfo;
import com.github.wxiaoqi.security.admin.entity.CompanyInfo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("backstage/appraiseLabelInfo")
public class AdminAppraiseLabelInfoController extends BaseController<AppraiseLabelInfoBiz, AppraiseLabelInfo> {
@GetMapping("tag/selectList")
@ApiModelProperty("标签列表")
public ObjectRestResponse applySelectList(AppraiseLabeInfoDTO appraiseLabeInfoDTO) {
return baseBiz.selectList(appraiseLabeInfoDTO);
}
@PostMapping("tag/upd")
@ApiModelProperty("修改标签")
public ObjectRestResponse upd(@RequestBody AppraiseLabelInfo appraiseLabelInfo) {
baseBiz.saveOrUpd(appraiseLabelInfo);
return ObjectRestResponse.succ();
}
}
\ No newline at end of file
...@@ -41,11 +41,12 @@ ...@@ -41,11 +41,12 @@
<!-- 获取用户信息 --> <!-- 获取用户信息 -->
<select id="getUserInfo" resultMap="AppUserVoMap"> <select id="getUserInfo" resultMap="AppUserVoMap">
select l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.* from app_user_login l select l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.*
left join app_user_detail d from app_user_login l
on d.userid = l.id left join app_user_detail d
where d.userid = #{userId} limit 1 on d.userid = l.id
</select> where d.userid = #{userId} limit 1
</select>
<!-- 获取用户信息 --> <!-- 获取用户信息 -->
...@@ -71,8 +72,8 @@ ...@@ -71,8 +72,8 @@
<select id="getUserIdByUsername" resultType="java.lang.Integer" parameterType="java.lang.String"> <select id="getUserIdByUsername" resultType="java.lang.Integer" parameterType="java.lang.String">
select d.userid from app_user_login l select d.userid from app_user_login l
left join app_user_detail d left join app_user_detail d
on d.userid = l.id on d.userid = l.id
where d.realname like concat("%", #{keywords}, "%") or l.username like concat("%", #{keywords}, "%") where d.realname like concat("%", #{keywords}, "%") or l.username like concat("%", #{keywords}, "%")
</select> </select>
...@@ -80,78 +81,78 @@ ...@@ -80,78 +81,78 @@
<select id="selectAppUserManage" parameterType="Integer" <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.username,
l.certification_status AS certificationStatus, l.certification_status AS certificationStatus,
l.id_number AS idNumber, l.id_number AS idNumber,
l.createtime, l.createtime,
l.last_time AS lastTime, l.last_time AS lastTime,
l. STATUS, l. STATUS,
z.mark_name AS markName, z.mark_name AS markName,
d.channel, d.channel,
d.register_source, d.register_source,
d.is_member, d.is_member,
d.realname, d.realname,
d.nickname, d.nickname,
d.source, d.source,
d.province_code AS provinceCode, d.province_code AS provinceCode,
d.city_code AS cityCode, d.city_code AS cityCode,
d.sex, d.sex,
d.headimgurl, d.headimgurl,
d.email, d.email,
m.valid_time AS validTime, m.valid_time AS validTime,
m.buy_count AS buyCount, m.buy_count AS buyCount,
m.total_number AS totalNumber, m.total_number AS totalNumber,
m.rent_free_days AS rentFreeDays, m.rent_free_days AS rentFreeDays,
m.crt_time AS timeOfMembership, m.crt_time AS timeOfMembership,
m.recent_recharge AS recentRecharge, m.recent_recharge AS recentRecharge,
ml.NAME AS memberName, ml.NAME AS memberName,
m.member_type, m.member_type,
aup. NAME AS `positionName`, aup. NAME AS `positionName`,
ul.username AS inviter, ul.username AS inviter,
IFNULL(pd.realname, pd.nickname) AS nameOfSuperior, IFNULL(pd.realname, pd.nickname) AS nameOfSuperior,
pl.username AS superiorMobileNumber pl.username AS superiorMobileNumber
FROM FROM
app_user_login l app_user_login l
LEFT JOIN app_user_detail d ON d.userid = l.id 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 app_user_login ul ON ul.id = d.inviter_account
LEFT JOIN base_user_member m ON d.userid = m.user_id LEFT JOIN base_user_member m ON d.userid = m.user_id
LEFT JOIN chw_app.app_version_mark z ON z.mark = d.register_source LEFT JOIN chw_app.app_version_mark z ON z.mark = d.register_source
LEFT JOIN LEFT JOIN
( (
SELECT SELECT
LEVEL, LEVEL,
NAME NAME
FROM FROM
base_user_member_level base_user_member_level
WHERE WHERE
isdel = 0 isdel = 0
) ml ON m.member_level = ml. LEVEL ) ml ON m.member_level = ml. LEVEL
LEFT JOIN app_user_position aup ON aup.id = d.position_id LEFT JOIN app_user_position aup ON aup.id = d.position_id
LEFT JOIN LEFT JOIN
( (
SELECT SELECT
user_id, user_id,
parent_id parent_id
FROM FROM
app_user_relation app_user_relation
WHERE WHERE
is_del = 0 is_del = 0
) r ON l.id = r.user_id ) r ON l.id = r.user_id
LEFT JOIN app_user_login pl ON r.parent_id = pl.id LEFT JOIN app_user_login pl ON r.parent_id = pl.id
LEFT JOIN app_user_detail pd ON pl.id = pd.userid LEFT JOIN app_user_detail pd ON pl.id = pd.userid
WHERE WHERE
d.channel>0 d.channel>0
and and
l.id = #{userId} l.id = #{userId}
</select> </select>
<update id="updateUserMemberStatusByUserId"> <update id="updateUserMemberStatusByUserId">
update `app_user_detail` set `is_member`={status} where `userid`=#{userId} update `app_user_detail` set `is_member`={status} where `userid`=#{userId}
</update> </update>
<update id="updateUserPositionByUserId"> <update id="updateUserPositionByUserId">
update `app_user_detail` set `position_id`=#{positionId} where `userid`=#{userId} update `app_user_detail` set `position_id`=#{positionId} where `userid`=#{userId}
</update> </update>
<select id="selectAppUser" parameterType="com.github.wxiaoqi.security.admin.dto.AppUserManageDTO" <select id="selectAppUser" parameterType="com.github.wxiaoqi.security.admin.dto.AppUserManageDTO"
resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo"> resultType="com.github.wxiaoqi.security.admin.vo.AppUserManageVo">
...@@ -162,6 +163,7 @@ ...@@ -162,6 +163,7 @@
d.register_source, d.register_source,
d.source, d.source,
d.realname, d.realname,
d.nickname,
z.mark_name AS markName, z.mark_name AS markName,
ml. NAME AS memberName, ml. NAME AS memberName,
aup. NAME AS positionName, aup. NAME AS positionName,
...@@ -215,6 +217,7 @@ ...@@ -215,6 +217,7 @@
<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>
...@@ -240,6 +243,9 @@ ...@@ -240,6 +243,9 @@
<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="nickname !=null and nickname != ''">
and d.nickname, like CONCAT('%',#{nickname},'%')
</if>
<if test="citySet != null and citySet.size > 0 "> <if test="citySet != null and citySet.size > 0 ">
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=")">
...@@ -251,10 +257,12 @@ ...@@ -251,10 +257,12 @@
<!--查询非普通用户--> <!--查询非普通用户-->
<select id="selectAllStaffs" resultType="com.github.wxiaoqi.security.admin.bo.UserStaffBo"> <select id="selectAllStaffs" resultType="com.github.wxiaoqi.security.admin.bo.UserStaffBo">
select aud.userid as `userId`,aud.realname as `realName`,aud.nickname as `nickName`,aul.username as `phone`,aud.position_id as `postionId`,aup.name as `postionName`,aupt.company_id as `companyId`,aupt.company_name as `companyName` select aud.userid as `userId`,aud.realname as `realName`,aud.nickname as `nickName`,aul.username as
from `app_user_detail` as `aud` left join `app_user_login` as `aul` on aul.id=aud.userid `phone`,aud.position_id as `postionId`,aup.name as `postionName`,aupt.company_id as
left join `app_user_position_temp` as `aupt` on aupt.user_id=aul.id `companyId`,aupt.company_name as `companyName`
left join `app_user_position` as `aup` on aup.id=aud.position_id from `app_user_detail` as `aud` left join `app_user_login` as `aul` on aul.id=aud.userid
left join `app_user_position_temp` as `aupt` on aupt.user_id=aul.id
left join `app_user_position` as `aup` on aup.id=aud.position_id
where <![CDATA[aud.position_id<>6]]> and aud.isdel=0 where <![CDATA[aud.position_id<>6]]> and aud.isdel=0
</select> </select>
<select id="getUserByUserIdList" resultMap="AppUserVoMap"> <select id="getUserByUserIdList" resultMap="AppUserVoMap">
...@@ -342,36 +350,42 @@ from `app_user_detail` as `aud` left join `app_user_login` as `aul` on aul.id= ...@@ -342,36 +350,42 @@ from `app_user_detail` as `aud` left join `app_user_login` as `aul` on aul.id=
order by sell.sellAmount desc order by sell.sellAmount desc
</select> </select>
<select id="getUser" resultMap="AppUserVoMap"> <select id="getUser" resultMap="AppUserVoMap">
select l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.* from app_user_login l select l.im_userid,l.username,l.wx_openid,l.unionid,l.openid,l.status,l.id_number,l.certification_status,d.*
left join app_user_detail d from app_user_login l
on d.userid = l.id left join app_user_detail d
where l.id = #{userId} limit 1 on d.userid = l.id
</select> where l.id = #{userId} limit 1
</select>
<select id="findUserBosByPhones" resultType="com.github.wxiaoqi.security.admin.bo.UserBo"> <select id="findUserBosByPhones" resultType="com.github.wxiaoqi.security.admin.bo.UserBo">
select aul.id as `userId`,aul.username as `phone`,IFNULL(aud.realname,aud.nickname) as `name` from (select `id`,`username` from `app_user_login` select aul.id as `userId`,aul.username as `phone`,IFNULL(aud.realname,aud.nickname) as `name` from (select
`id`,`username` from `app_user_login`
<if test="phones!=null and phones.size()>0"> <if test="phones!=null and phones.size()>0">
where username in where username in
<foreach collection="phones" item="phone" open="(" close=")" separator=","> <foreach collection="phones" item="phone" open="(" close=")" separator=",">
#{phone} #{phone}
</foreach> </foreach>
</if>) as aul inner join `app_user_detail` as aud on aud.userid=aul.id </if>
) as aul inner join `app_user_detail` as aud on aud.userid=aul.id
</select> </select>
<select id="selectAllWithNoProviinceCode" <select id="selectAllWithNoProviinceCode"
resultType="com.github.wxiaoqi.security.admin.entity.AppUserDetail"> resultType="com.github.wxiaoqi.security.admin.entity.AppUserDetail">
select `id`,`crt_host` from `app_user_detail` where crt_host is not null and ( province_code = 0 or province_code is null) select `id`,`crt_host` from `app_user_detail` where crt_host is not null and ( province_code = 0 or
province_code is null)
</select> </select>
<select id="selectUserByUserIds" resultType="com.github.wxiaoqi.security.admin.bo.UserBo"> <select id="selectUserByUserIds" resultType="com.github.wxiaoqi.security.admin.bo.UserBo">
select aud.userid as `userId`,case when length(aud.realname)>0 then aud.realname else aud.nickname end as `name`,aul.username as `phone` from `app_user_detail` as aud left join `app_user_login` as aul on aul.id=aud.userid select aud.userid as `userId`,case when length(aud.realname)>0 then aud.realname else aud.nickname end as
`name`,aul.username as `phone` from `app_user_detail` as aud left join `app_user_login` as aul on
aul.id=aud.userid
<where> <where>
<if test="userIds != null and userIds.size() != 0"> <if test="userIds != null and userIds.size() != 0">
userid in userid in
<foreach collection="userIds" item="userId" open="(" close=")" separator=","> <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
#{userId} #{userId}
</foreach> </foreach>
</if> </if>
</where> </where>
</select> </select>
</mapper> </mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.github.wxiaoqi.security.admin.mapper.AppraiseLabelInfoMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.github.wxiaoqi.security.admin.entity.AppraiseLabelInfo" id="appraiseLabelInfoMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="point" column="point"/>
<result property="type" column="type"/>
<result property="enable" column="enable"/>
<result property="isDel" column="is_del"/>
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="rules" column="rules"/>
<result property="sort" column="sort"/>
</resultMap>
<select id="selectList" resultType="com.github.wxiaoqi.security.admin.entity.AppraiseLabelInfo" parameterType="com.github.wxiaoqi.security.admin.dto.AppraiseLabeInfoDTO">
SELECT
*
FROM appraise_label_info a
where a.is_del = 0
<if test="name != null and name != ''">
AND ( a.`name` like concat('%',#{name},'%'))
</if>
<if test="type != null ">
AND a.`type`= #{type}
</if>
<if test="enable != null">
AND a.enable = #{enable}
</if>
order by a.upd_time DESC
</select>
</mapper>
\ No newline at end of file
...@@ -29,6 +29,8 @@ public interface ConfigFeign { ...@@ -29,6 +29,8 @@ public interface ConfigFeign {
public static final int TYPE_COMPANY_CATH=89; public static final int TYPE_COMPANY_CATH=89;
public static final int TYPE_VEHICLE_PUBLISH=96;
@RequestMapping(value = "/cofig/app/unauth/types",method = RequestMethod.GET) @RequestMapping(value = "/cofig/app/unauth/types",method = RequestMethod.GET)
ObjectRestResponse<List<Cofig>> getAllByType(@RequestParam("types") String types); ObjectRestResponse<List<Cofig>> getAllByType(@RequestParam("types") String types);
......
...@@ -36,6 +36,8 @@ public class OrderViolation { ...@@ -36,6 +36,8 @@ public class OrderViolation {
private String picture; private String picture;
private String violateJson;
/** /**
* 创建人id * 创建人id
*/ */
......
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -237,4 +238,7 @@ public class ShuntApply implements Serializable { ...@@ -237,4 +238,7 @@ public class ShuntApply implements Serializable {
@Column(name = "is_bizdel") @Column(name = "is_bizdel")
private Integer isBizdel; private Integer isBizdel;
@Column(name = "real_amount")
private BigDecimal realAmount;
} }
...@@ -266,4 +266,11 @@ public class SpecialRent implements Serializable { ...@@ -266,4 +266,11 @@ public class SpecialRent implements Serializable {
@Column(name = "over_time") @Column(name = "over_time")
@ApiModelProperty(value = "超时时间戳", hidden = true ) @ApiModelProperty(value = "超时时间戳", hidden = true )
private Long overTime; private Long overTime;
/**
* 超时时间戳
*/
@Column(name = "price_type")
@ApiModelProperty(value = "超时时间戳", hidden = true )
private Integer priceType;
} }
package com.xxfc.platform.order.pojo;
import lombok.Data;
import java.util.Date;
/**
* @ClassName : OrderViolateVo
* @Description : 车辆违章信息
* @Author : jiaoruizhen
* @Date: 2020-11-19 17:19
*/
@Data
public class OrderViolateVo {
//违章时间
Date date;
//违章地点
String area;
//违章行为
String act;
//违章代码(仅供参考,不一定有值)
String code;
//违章扣分(仅供参考,不一定有值)
String fen;
//违章城市(不一定有值)
String wzcity;
// 违章罚款(仅供参考,不一定有值)
String money;
// 处理状态。0-未处理未交费,1-已处理未交费,默认不返回已处理已缴费的违章
String handled;
//文书编号(不一定会获取到)
String archiveno;
}
...@@ -650,17 +650,20 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -650,17 +650,20 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
).map(OrderAccountDeduction::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); ).map(OrderAccountDeduction::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal toExtendDeduction = oad.getOriginOrderAmount().subtract(toOdDeduction); BigDecimal toExtendDeduction = oad.getOriginOrderAmount().subtract(toOdDeduction);
BigDecimal residueOrderAmount = oad.getOriginOrderAmount().subtract(toOdDeduction);
//如果订单原款 - 扣费 小于零,则押金有额外扣费 //如果订单原款 - 扣费 小于零,则押金有额外扣费
if(toExtendDeduction.compareTo(BigDecimal.ZERO) < 0) { if(toExtendDeduction.compareTo(BigDecimal.ZERO) < 0) {
//置反 //置反 去用押金抵扣
toExtendDeduction = BigDecimal.ZERO.subtract(toExtendDeduction); toExtendDeduction = BigDecimal.ZERO.subtract(toExtendDeduction);
residueOrderAmount = BigDecimal.ZERO;
}else { }else {
//否则 则置为零 //否则 则置为零
toExtendDeduction = BigDecimal.ZERO; toExtendDeduction = BigDecimal.ZERO;
} }
oad.setDepositAmount(oad.getOriginDepositAmount().subtract(toDeduction).subtract(toExtendDeduction)); oad.setDepositAmount(oad.getOriginDepositAmount().subtract(toDeduction).subtract(toExtendDeduction));
oad.setOrderAmount(residueOrderAmount);
} }
private void handleViolateDetail(DeductionTypeEnum dte, OrderAccountDetail oad, DedDetailDTO vio, CancelStartedVO csv) { private void handleViolateDetail(DeductionTypeEnum dte, OrderAccountDetail oad, DedDetailDTO vio, CancelStartedVO csv) {
...@@ -703,6 +706,22 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> { ...@@ -703,6 +706,22 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
return mapper.getOrderAccountByOrderType(term); return mapper.getOrderAccountByOrderType(term);
} }
public void handleRentDepositMarginV2(BaseOrder baseOrder, OrderRentVehicleDetail orvd){
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);
}});
handleRentDepositMargin(baseOrder, orvd, crosstown);
}
public void handleRentDepositMargin(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderVehicleCrosstown crosstown) { public void handleRentDepositMargin(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderVehicleCrosstown crosstown) {
OrderViolation orderViolation = orderViolationBiz.selectOne(new OrderViolation(){{ OrderViolation orderViolation = orderViolationBiz.selectOne(new OrderViolation(){{
......
...@@ -29,8 +29,6 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO; ...@@ -29,8 +29,6 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.CheckUserInfoDto; 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.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign; import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode; import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
...@@ -51,13 +49,12 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -51,13 +49,12 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TimeZone; import java.util.TimeZone;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service @Service
@Slf4j @Slf4j
public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapper, OrderVehicleCrosstown> implements UserRestInterface { public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapper, OrderVehicleCrosstown> implements UserRestInterface {
...@@ -542,6 +539,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp ...@@ -542,6 +539,15 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
} }
} }
public List<OrderVehicleCrosstown> selectOrderList(List<Integer> orderIdList, Integer type, Integer time) {
Map<String, Object> params = new HashMap<>();
params.put("orderIdList", orderIdList);
params.put("type", type);
params.put("time", time);
return mapper.selectOrderList(params);
}
// public BigDecimal getAmount() { // public BigDecimal getAmount() {
// //设置保留金 // //设置保留金
// Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData(); // Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
......
...@@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -55,6 +56,9 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat ...@@ -55,6 +56,9 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
@Autowired @Autowired
UserFeign userFeign; UserFeign userFeign;
@Autowired
OrderAccountBiz orderAccountBiz;
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd"); public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
@Override @Override
public UserFeign getUserFeign() { public UserFeign getUserFeign() {
...@@ -97,13 +101,14 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat ...@@ -97,13 +101,14 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
if (baseOrder != null) { if (baseOrder != null) {
baseOrder.setRefundStatus(3); baseOrder.setRefundStatus(3);
baseOrderBiz.updateSelectiveByIdRe(baseOrder); baseOrderBiz.updateSelectiveByIdRe(baseOrder);
//触发违章金退款
//orderAccountBiz.handleRentDepositMarginV2(baseOrder, orderRentVehicleDetail);
} }
} else { } else {
throw new BaseException("The operation cannot be changed at this time"); throw new BaseException("The operation cannot be changed at this time");
} }
} }
} }
/** /**
...@@ -180,4 +185,9 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat ...@@ -180,4 +185,9 @@ public class OrderViolationBiz extends BaseBiz<OrderViolationMapper, OrderViolat
public OrderViolation getOneByDetailId(Integer detailId) { public OrderViolation getOneByDetailId(Integer detailId) {
return mapper.getOneByDetailId(detailId); return mapper.getOneByDetailId(detailId);
} }
public void batchSave(List<OrderViolation> list) {
mapper.batchSave(list);
}
} }
...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.feign.VehicleFeign; ...@@ -22,6 +22,7 @@ import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.BookVehicleVO; import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import com.xxfc.platform.vehicle.pojo.CompanyDetail; import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import com.xxfc.platform.vehicle.pojo.vo.VehicleVO; import com.xxfc.platform.vehicle.pojo.vo.VehicleVO;
import lombok.extern.slf4j.Slf4j;
import org.mockito.internal.util.collections.Sets; import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -46,6 +47,7 @@ import static com.xxfc.platform.vehicle.entity.Vehicle.STATE_DOWN; ...@@ -46,6 +47,7 @@ import static com.xxfc.platform.vehicle.entity.Vehicle.STATE_DOWN;
* @date 2020-10-31 11:02:42 * @date 2020-10-31 11:02:42
*/ */
@Service @Service
@Slf4j
public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> { public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> {
...@@ -104,8 +106,12 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> { ...@@ -104,8 +106,12 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> {
} }
//判断车辆是否下架、是否已经存在一个特惠租车 //判断车辆是否下架、是否已经存在一个特惠租车
if(STATE_DOWN == vehicle.getStatus() || checkHasSpecialRent(vehicle.getId())) { if(STATE_DOWN == vehicle.getStatus() ) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE); throw new BaseException("车辆已下架", ResultCode.PARAM_ILLEGAL_CODE);
}
if(checkHasSpecialRent(vehicle.getId()) ) {
throw new BaseException("车辆已被占用", ResultCode.PARAM_ILLEGAL_CODE);
} }
//设置当前经营门店为停靠门店、品牌id、型号id //设置当前经营门店为停靠门店、品牌id、型号id
...@@ -113,6 +119,7 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> { ...@@ -113,6 +119,7 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> {
specialRent.setBrandId(vehicle.getBrandId()); specialRent.setBrandId(vehicle.getBrandId());
specialRent.setCategoryId(vehicle.getCategoryId()); specialRent.setCategoryId(vehicle.getCategoryId());
specialRent.setGoodsType(vehicle.getGoodsType()); specialRent.setGoodsType(vehicle.getGoodsType());
specialRent.setPriceType(vehicle.getPriceType());
//缓存商品信息 //缓存商品信息
specialRent.setGoodsJson(JSONUtil.parse(vehicle).toString()); specialRent.setGoodsJson(JSONUtil.parse(vehicle).toString());
...@@ -123,7 +130,7 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> { ...@@ -123,7 +130,7 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> {
DateTime afterDateTime = DateUtil.offsetHour(DateUtil.date(), 1); DateTime afterDateTime = DateUtil.offsetHour(DateUtil.date(), 1);
if(!startDateTime.isAfterOrEquals(afterDateTime)) { if(!startDateTime.isAfterOrEquals(afterDateTime)) {
throw new BaseException(ResultCode.FAILED_CODE, Sets.newSet("请提前一小时特惠租车发布")); throw new BaseException("请提前一小时特惠租车发布", ResultCode.FAILED_CODE);
} }
if(null != specialRent.getStartCompanyId()) { if(null != specialRent.getStartCompanyId()) {
...@@ -190,6 +197,7 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> { ...@@ -190,6 +197,7 @@ public class SpecialRentBiz extends BaseBiz<SpecialRentMapper, SpecialRent> {
setId(vehicle.getId()); setId(vehicle.getId());
setState(STATE_DOWN); setState(STATE_DOWN);
}}); }});
log.info("设置车辆下架: {} restResponse: {}", vehicle.getId(), JSONUtil.toJsonStr(restResponse));
} }
Date endDateTime = DateUtil.date(specialRent.getEndTime()); Date endDateTime = DateUtil.date(specialRent.getEndTime());
......
...@@ -402,7 +402,7 @@ public class OrderCancelBiz { ...@@ -402,7 +402,7 @@ public class OrderCancelBiz {
orderRentVehicleBiz.updateSelectiveById(orvd); orderRentVehicleBiz.updateSelectiveById(orvd);
} }
if(BaseOrder.ORDER_SIGN_APPLY == baseOrder.getOrderOrigin()) { if(BaseOrder.ORDER_SIGN_APPLY == baseOrder.getOrderSign()) {
//更新 申请状态 //更新 申请状态
ShuntApply shuntApply = shuntApplyBiz.selectOne(new ShuntApply(){{ ShuntApply shuntApply = shuntApplyBiz.selectOne(new ShuntApply(){{
setOrderNo(baseOrder.getNo()); setOrderNo(baseOrder.getNo());
...@@ -422,7 +422,7 @@ public class OrderCancelBiz { ...@@ -422,7 +422,7 @@ public class OrderCancelBiz {
} }
} }
if(BaseOrder.ORDER_SIGN_SPECIAL == baseOrder.getOrderOrigin()) { if(BaseOrder.ORDER_SIGN_SPECIAL == baseOrder.getOrderSign()) {
//更新 申请状态 //更新 申请状态
SpecialRent specialRent = specialRentBiz.selectOne(new SpecialRent(){{ SpecialRent specialRent = specialRentBiz.selectOne(new SpecialRent(){{
setOrderNo(baseOrder.getNo()); setOrderNo(baseOrder.getNo());
......
...@@ -11,4 +11,6 @@ public interface OrderVehicaleCrosstownMapper extends Mapper<OrderVehicleCrossto ...@@ -11,4 +11,6 @@ public interface OrderVehicaleCrosstownMapper extends Mapper<OrderVehicleCrossto
List<OrderVehicleCrosstownDto> selectByOrderId(OrderVehicleCrosstownDto orderVehicleCrosstownDto); List<OrderVehicleCrosstownDto> selectByOrderId(OrderVehicleCrosstownDto orderVehicleCrosstownDto);
OrderVehicleCrosstownDto selectByOrderNo(Map<String, Object> map); OrderVehicleCrosstownDto selectByOrderNo(Map<String, Object> map);
List<OrderVehicleCrosstown> selectOrderList(Map<String, Object> map);
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import com.xxfc.platform.order.entity.OrderViolation; ...@@ -4,6 +4,7 @@ import com.xxfc.platform.order.entity.OrderViolation;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -14,4 +15,6 @@ public interface OrderViolationMapper extends Mapper<OrderViolation> { ...@@ -14,4 +15,6 @@ public interface OrderViolationMapper extends Mapper<OrderViolation> {
Map<String,Object> getOrderAndVehicleStatus(@Param("vId") Integer detailId); Map<String,Object> getOrderAndVehicleStatus(@Param("vId") Integer detailId);
OrderViolation getOneByDetailId(Integer detailId); OrderViolation getOneByDetailId(Integer detailId);
void batchSave(List<OrderViolation> list);
} }
...@@ -20,7 +20,6 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -20,7 +20,6 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.biz.*; import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz; import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.biz.inner.OrderMsgBiz; import com.xxfc.platform.order.biz.inner.OrderMsgBiz;
import com.xxfc.platform.order.contant.enumerate.CrosstownTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.*; import com.xxfc.platform.order.entity.*;
...@@ -59,7 +58,6 @@ import java.util.List; ...@@ -59,7 +58,6 @@ 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_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Controller @Controller
...@@ -471,19 +469,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -471,19 +469,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
setOrderId(baseOrder.getId()); setOrderId(baseOrder.getId());
}}); }});
Integer crosstownTypeEnum; orderAccountBiz.handleRentDepositMarginV2(baseOrder, orvd);
//判断是否定损过
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);
}});
orderAccountBiz.handleRentDepositMargin(baseOrder, orvd, crosstown);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
......
...@@ -2,13 +2,14 @@ package com.xxfc.platform.order.rest; ...@@ -2,13 +2,14 @@ package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.biz.OrderDepositRefundRecordBiz; import com.xxfc.platform.order.biz.OrderDepositRefundRecordBiz;
import com.xxfc.platform.order.biz.OrderViolationBiz; import com.xxfc.platform.order.biz.OrderViolationBiz;
import com.xxfc.platform.order.entity.OrderViolation; import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.order.service.OrderViolateService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -36,6 +37,9 @@ public class OrderViolationController extends BaseController<OrderViolationBiz, ...@@ -36,6 +37,9 @@ public class OrderViolationController extends BaseController<OrderViolationBiz,
@Autowired @Autowired
OrderDepositRefundRecordBiz orderDepositRefundRecordBiz; OrderDepositRefundRecordBiz orderDepositRefundRecordBiz;
@Autowired
OrderViolateService orderViolateService;
private Long MAX_DRIVING_LICENSE_SIZE = 1024 * 1024 * 50L; private Long MAX_DRIVING_LICENSE_SIZE = 1024 * 1024 * 50L;
...@@ -52,15 +56,21 @@ public class OrderViolationController extends BaseController<OrderViolationBiz, ...@@ -52,15 +56,21 @@ public class OrderViolationController extends BaseController<OrderViolationBiz,
@PostMapping("/saveOrderViolation") @PostMapping("/saveOrderViolation")
public ObjectRestResponse saveOrderViolation(@RequestBody OrderViolation orderViolation, HttpServletRequest request) { public ObjectRestResponse saveOrderViolation(@RequestBody OrderViolation orderViolation, HttpServletRequest request) {
log.info("保存违章记录:orderViolation = {}", orderViolation.toString()); log.info("保存违章记录:orderViolation = {}", orderViolation.toString());
if (orderViolation.getId() == null) { try {
getBaseBiz().insertOrderViolation(orderViolation); if (orderViolation.getId() == null) {
} else { getBaseBiz().insertOrderViolation(orderViolation);
getBaseBiz().updateOrderViolation(orderViolation); } else {
getBaseBiz().updateOrderViolation(orderViolation);
}
} catch (Exception e) {
return ObjectRestResponse.createFailedResult(500, e.getMessage());
} }
orderDepositRefundRecordBiz.saveViolationDeposit(orderViolation); orderDepositRefundRecordBiz.saveViolationDeposit(orderViolation);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
/** /**
* 通过订单id查询违章记录 * 通过订单id查询违章记录
* *
...@@ -68,17 +78,15 @@ public class OrderViolationController extends BaseController<OrderViolationBiz, ...@@ -68,17 +78,15 @@ public class OrderViolationController extends BaseController<OrderViolationBiz,
* @return * @return
*/ */
@GetMapping("/getOne/{detailId}") @GetMapping("/getOne/{detailId}")
public ObjectRestResponse<OrderViolation> getOne(@PathVariable Integer detailId) { public ObjectRestResponse<List<OrderViolation>> getOne(@PathVariable Integer detailId) {
Example exa = Example.builder(OrderViolation.class) Example exa = Example.builder(OrderViolation.class)
.where(WeekendSqls.<OrderViolation>custom().andEqualTo(OrderViolation::getDetailId, detailId) .where(WeekendSqls.<OrderViolation>custom().andEqualTo(OrderViolation::getDetailId, detailId)
.andEqualTo(OrderViolation::getIsDel, 0)).build(); .andEqualTo(OrderViolation::getIsDel, 0)).build();
List<OrderViolation> orderViolations = getBaseBiz().selectByExample(exa); List<OrderViolation> orderViolations = getBaseBiz().selectByExample(exa);
if (orderViolations.size() > 1) { if (orderViolations != null && orderViolations.size() > 0) {
throw new BaseException("The database has multiple records"); return ObjectRestResponse.succ(orderViolations.get(0));
} }
OrderViolation orderViolation = new OrderViolation(); return ObjectRestResponse.succ();
orderViolation = (orderViolations.size() == 0) ? null : orderViolations.get(0);
return ObjectRestResponse.succ(orderViolation);
} }
...@@ -102,4 +110,11 @@ public class OrderViolationController extends BaseController<OrderViolationBiz, ...@@ -102,4 +110,11 @@ public class OrderViolationController extends BaseController<OrderViolationBiz,
public ResponseEntity<byte[]> downloadViolation(@RequestParam("realFileRelPath") String realFileRelPath) throws Exception { public ResponseEntity<byte[]> downloadViolation(@RequestParam("realFileRelPath") String realFileRelPath) throws Exception {
return baseBiz.downloadViolation(realFileRelPath); return baseBiz.downloadViolation(realFileRelPath);
} }
@GetMapping(value = "/app/unauth/get")
@IgnoreUserToken
public void get() {
orderViolateService.generateData();
}
} }
...@@ -41,7 +41,6 @@ import lombok.Data; ...@@ -41,7 +41,6 @@ import lombok.Data;
import org.mockito.internal.util.collections.Sets; import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -179,6 +178,22 @@ public class ShuntApplyController extends BaseController<ShuntApplyBiz, ShuntApp ...@@ -179,6 +178,22 @@ public class ShuntApplyController extends BaseController<ShuntApplyBiz, ShuntApp
return ObjectRestResponse.succ(pages); return ObjectRestResponse.succ(pages);
} }
@RequestMapping(value = "/toOrderPayCount", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "待下单、待支付数量")
public ObjectRestResponse<Integer> toPayCount() {
//查询列表数据
if (StrUtil.isBlank(getCurrentUserId())) {
throw new BaseException(ResultCode.AJAX_WECHAT_NOTEXIST_CODE);
}
QueryDTO dto = new QueryDTO();
dto.setUserId(Integer.valueOf(BaseContextHandler.getUserID()));
dto.setPageStatus(QueryDTO.PAGE_STATUS_TOORDERPAY);
Query query = new Query(dto);
return ObjectRestResponse.succ(baseBiz.pageList(dto).size());
}
@RequestMapping(value = "/applyOrder", method = RequestMethod.POST) @RequestMapping(value = "/applyOrder", method = RequestMethod.POST)
@ResponseBody @ResponseBody
@ApiOperation(value = "申请调车下单") @ApiOperation(value = "申请调车下单")
...@@ -208,12 +223,14 @@ public class ShuntApplyController extends BaseController<ShuntApplyBiz, ShuntApp ...@@ -208,12 +223,14 @@ public class ShuntApplyController extends BaseController<ShuntApplyBiz, ShuntApp
dto.setEndCompanyId(shuntApply.getEndCompanyId()); dto.setEndCompanyId(shuntApply.getEndCompanyId());
RentVehicleBO bo = orderRentVehicleBiz.initRentVehicleBO(dto); RentVehicleBO bo = orderRentVehicleBiz.initRentVehicleBO(dto);
bo.setOrderSign(BaseOrder.ORDER_SIGN_APPLY); bo.setOrderSign(BaseOrder.ORDER_SIGN_APPLY);
bo.setBookRecordId(shuntApply.getBookRecordId());
bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData()); bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData());
orderRentVehicleService.applyCreateOrder(bo, shuntApply.getOrderNo()); orderRentVehicleService.applyCreateOrder(bo, shuntApply.getOrderNo());
baseBiz.updateSelectiveById(new ShuntApply(){{ baseBiz.updateSelectiveById(new ShuntApply(){{
setId(shuntApply.getId()); setId(shuntApply.getId());
setStatus(ShuntApply.STATUS_ORDER); setStatus(ShuntApply.STATUS_ORDER);
setOrderStatus(ShuntApply.ORDER_STATUS_TOPAY); setOrderStatus(ShuntApply.ORDER_STATUS_TOPAY);
setRealAmount(bo.getOrder().getRealAmount());
}}); }});
return ObjectRestResponse.succ(bo.getOrder()); return ObjectRestResponse.succ(bo.getOrder());
} }
...@@ -221,7 +238,7 @@ public class ShuntApplyController extends BaseController<ShuntApplyBiz, ShuntApp ...@@ -221,7 +238,7 @@ public class ShuntApplyController extends BaseController<ShuntApplyBiz, ShuntApp
@Data @Data
public static class QueryDTO extends PageParam { public static class QueryDTO extends PageParam {
public static final int PAGE_STATUS_ING = 1; public static final int PAGE_STATUS_ING = 1;
public static final int PAGE_STATUS_TOPAY = 2; public static final int PAGE_STATUS_TOORDERPAY = 2;
public static final int PAGE_STATUS_PAYED = 3; public static final int PAGE_STATUS_PAYED = 3;
public static final int PAGE_STATUS_CNL = 4; public static final int PAGE_STATUS_CNL = 4;
......
...@@ -191,6 +191,7 @@ public class SpecialRentController extends BaseController<SpecialRentBiz, Specia ...@@ -191,6 +191,7 @@ public class SpecialRentController extends BaseController<SpecialRentBiz, Specia
RentVehicleBO bo = orderRentVehicleBiz.initRentVehicleBO(dto); RentVehicleBO bo = orderRentVehicleBiz.initRentVehicleBO(dto);
bo.setOrderSign(BaseOrder.ORDER_SIGN_SPECIAL); bo.setOrderSign(BaseOrder.ORDER_SIGN_SPECIAL);
bo.setAppUserDTO(getAppUser()); bo.setAppUserDTO(getAppUser());
bo.setBookRecordId(specialRent.getBookRecordId());
orderRentVehicleService.specialCreateOrder(bo, specialRent.getOrderNo()); orderRentVehicleService.specialCreateOrder(bo, specialRent.getOrderNo());
baseBiz.updateSelectiveById(new SpecialRent(){{ baseBiz.updateSelectiveById(new SpecialRent(){{
setId(specialRent.getId()); setId(specialRent.getId());
......
package com.xxfc.platform.order.service;
import com.alibaba.fastjson.JSONArray;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderVehicleCrosstownBiz;
import com.xxfc.platform.order.biz.OrderViolationBiz;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.entity.OrderVehicleCrosstown;
import com.xxfc.platform.order.entity.OrderViolation;
import com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper;
import com.xxfc.platform.order.pojo.OrderViolateVo;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName : OrderViolateService
* @Description : 查询订单车辆违章
* @Author : jiaoruizhen
* @Date: 2020-11-19 11:23
*/
@Service
@Slf4j
public class OrderViolateService {
@Autowired
BaseOrderBiz baseOrderBiz;
@Autowired
OrderVehicleCrosstownBiz orderVehicleCrosstownBiz;
@Autowired
ThirdFeign thirdFeign;
@Autowired
OrderRentVehicleDetailMapper orderRentVehicleDetailMapper;
@Autowired
VehicleFeign vehicleFeign;
@Autowired
OrderViolationBiz orderViolationBiz;
//查询所有符合条件的订单,已交车,未扣押金
private List<OrderPageVO> getOrderList() {
Map<String, Object> params = new HashMap<>();
params.put("refundStatus", 2);
params.put("status", 6);
return baseOrderBiz.getRentVehicle(params);
}
//过滤时间,根据还车时间,符合几天后的订单执行查询违章操作
private List<OrderRentVehicleDetail> getAllVehicleCrosstown() {
List<OrderPageVO> orderPageVOList = getOrderList();
List<OrderRentVehicleDetail> orderRentVehicleDetailList = new ArrayList<>();
if (orderPageVOList != null && orderPageVOList.size() > 0) {
List<OrderVehicleCrosstown> arrayList = new ArrayList<>();
List<Integer> orderIdList = orderPageVOList.stream().map(OrderPageVO::getId).collect(Collectors.toList());
List<Integer> time = getTimeList();
if (time != null && time.size() > 0) {
time.parallelStream().forEach(time1-> {
List<OrderVehicleCrosstown> orderVehicleCrosstownList = orderVehicleCrosstownBiz.selectOrderList(orderIdList, 1, time1);
if (orderVehicleCrosstownList != null && orderVehicleCrosstownList.size() > 0) {
arrayList.addAll(orderVehicleCrosstownList);
}
});
} else {
List<OrderVehicleCrosstown> orderVehicleCrosstownList = orderVehicleCrosstownBiz.selectOrderList(orderIdList, 1, 0);
if (orderVehicleCrosstownList != null && orderVehicleCrosstownList.size() > 0) {
arrayList.addAll(orderVehicleCrosstownList);
}
}
List<Integer> idList = arrayList.stream().map(OrderVehicleCrosstown::getOrderId).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(idList)) {
Example example = new Example(OrderRentVehicleDetail.class);
example.createCriteria().andIn("orderId", idList);
orderRentVehicleDetailList.addAll(orderRentVehicleDetailMapper.selectByExample(example));
}
}
return orderRentVehicleDetailList;
}
//获取所有车辆信息
private List<Vehicle> getAllVehicleInfo() {
List<OrderRentVehicleDetail> orderRentVehicleDetailList = getAllVehicleCrosstown();
if (CollectionUtils.isNotEmpty(orderRentVehicleDetailList)) {
String idString = orderRentVehicleDetailList.stream().map(OrderRentVehicleDetail::getVehicleId).collect(Collectors.joining(","));
ObjectRestResponse<List<Vehicle>> restResponse = vehicleFeign.getAllVehicleById(idString);
return restResponse.getData();
}
return new ArrayList<>();
}
//获取查询时间列表
private List<Integer> getTimeList() {
Dictionary dictionary = thirdFeign.findDictionaryByTypeAndCode(DictionaryKey.VEHICLE, DictionaryKey.VEHICLE_VIOLATE_TIME);
if (dictionary != null && StringUtils.isNotBlank(dictionary.getDetail())) {
return JSONArray.parseArray(dictionary.getDetail(), Integer.class);
}
return new ArrayList<>();
}
//讲查询结果存入违章信息表中
@Scheduled(cron = "0 0 1 * * ?")
public void generateData() {
List<Vehicle> vehicleList = getAllVehicleInfo();
List<OrderRentVehicleDetail> orderRentVehicleDetailList = getAllVehicleCrosstown();
List<OrderViolation> orderViolationList = new ArrayList<>();
Map<String, List<OrderRentVehicleDetail>> orderRentVehicleMap = orderRentVehicleDetailList.stream().collect(Collectors.groupingBy(OrderRentVehicleDetail::getVehicleId));
if (vehicleList != null && vehicleList.size() > 0) {
vehicleList.parallelStream().forEach(vehicle -> {
List<OrderRentVehicleDetail> orderRentVehicleDetail = orderRentVehicleMap.get(vehicle.getId());
requestViolate(vehicle, orderRentVehicleDetail, orderViolationList);
});
}
if (orderViolationList.size() > 0) {
orderViolationBiz.batchSave(orderViolationList);
}
}
private void requestViolate(Vehicle vehicle, List<OrderRentVehicleDetail> orderRentVehicleDetailList, List<OrderViolation> orderViolationList) {
ObjectRestResponse response = thirdFeign.getVehicleViolate(new VehicleViolateDto(){{
setNumberPlate(vehicle.getNumberPlate());
setEngineNo(vehicle.getEngineNum());
setClassNo(vehicle.getVin());
}});
if (response.isRel() && response.getData() != null) {
List<OrderViolateVo> list = JSONArray.parseArray(response.getData().toString(), OrderViolateVo.class);
if (list != null) {
Map<Integer, List<OrderViolateVo>> map = new HashMap<>();
if (orderRentVehicleDetailList.size() > 0) {
orderRentVehicleDetailList.parallelStream().forEach(orderRentVehicleDetail -> {
List<OrderViolateVo> orderViolateVoList = map.get(orderRentVehicleDetail.getId());
if (orderViolateVoList == null) {
orderViolateVoList = new ArrayList<>();
}
List<OrderViolateVo> finalOrderViolateVoList = orderViolateVoList;
list.parallelStream().forEach(orderViolateVo -> {
if (orderViolateVo.getDate().getTime() >= orderRentVehicleDetail.getDeliveryTime() && orderViolateVo.getDate().getTime() <= orderRentVehicleDetail.getCollectTime()) {
finalOrderViolateVoList.add(orderViolateVo);
}
});
map.put(orderRentVehicleDetail.getId(), orderViolateVoList);
});
}
for (Map.Entry<Integer, List<OrderViolateVo>> entry : map.entrySet()) {
List<OrderViolateVo> orderViolateVoList = entry.getValue();
OrderViolation orderViolation = new OrderViolation();
orderViolation.setViolateJson(response.getData().toString());
if(orderViolateVoList != null && orderViolateVoList.size() > 0) {
Double amount = orderViolateVoList.stream().mapToDouble(e->Double.parseDouble(e.getMoney())).reduce(0, Double::sum);
if (amount != null) {
orderViolation.setPrice(new BigDecimal(amount));
} else {
orderViolation.setPrice(BigDecimal.ZERO);
}
} else {
orderViolation.setPrice(BigDecimal.ZERO);
}
orderViolation.setDetailId(entry.getKey());
orderViolationList.add(orderViolation);
}
}
}
log.error("违章查询失败: {}", response.getMessage());
}
}
...@@ -233,6 +233,9 @@ ...@@ -233,6 +233,9 @@
AND b.status = -1 AND b.status = -1
and b.refund_status in (0,2) and b.refund_status in (0,2)
</if> </if>
<if test="refundStatus != null">
and b.refund_status = #{refundStatus}
</if>
<if test="status != null and status != -1"> <if test="status != null and status != -1">
and b.status = #{status} and b.status = #{status}
</if> </if>
......
...@@ -69,5 +69,14 @@ ...@@ -69,5 +69,14 @@
where order_no = #{no} and type = #{type} where order_no = #{no} and type = #{type}
</select> </select>
<select id="selectOrderList" resultType="com.xxfc.platform.order.entity.OrderVehicleCrosstown">
select order_id from order_vehicle_crosstown
where order_id in
<foreach collection="orderIdList" item="orderId" index="index" open="(" separator="," close=")">
#{orderId}
</foreach>
and type &gt; #{type}
and ((UNIX_TIMESTAMP(NOW()) - crt_time/1000)/(60*60*24)) > #{time}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -19,4 +19,27 @@ ...@@ -19,4 +19,27 @@
select * from order_violation select * from order_violation
where detail_id = #{detailId} where detail_id = #{detailId}
</select> </select>
<insert id="batchSave" parameterType="list">
insert into order_violation ( price, detail_id, violate_date, area, act, is_del)
VALUES
<foreach collection="list" item="emp" index="index" separator=",">
(
#{emp.price,jdbcType=DECIMAL},
#{emp.detailId,jdbcType=INTEGER},
#{emp.violateDate,jdbcType=BIGINT},
#{emp.area,jdbcType=VARCHAR},
#{emp.act,jdbcType=VARCHAR},
#{emp.isDel,jdbcType=INTEGER}
)
</foreach>
ON DUPLICATE KEY UPDATE
price = values(price),
detail_id = values(detail_id),
violate_date = values(violate_date),
area = values(area),
act = values(act),
is_del = values(is_del)
</insert>
</mapper> </mapper>
\ No newline at end of file
...@@ -78,6 +78,9 @@ public class DictionaryKey { ...@@ -78,6 +78,9 @@ public class DictionaryKey {
public static final String VEHICLE_MANUFACTURER = "VEHICLE_MANUFACTURER"; public static final String VEHICLE_MANUFACTURER = "VEHICLE_MANUFACTURER";
public static final String VEHICLE = "VEHICLE"; public static final String VEHICLE = "VEHICLE";
public static final String VEHICLE_VIOLATE_TIME = "VEHICLE_VIOLATE_TIME";
/** /**
* 支付价格减低 * 支付价格减低
*/ */
......
package com.xxfc.platform.universal.dto;
import lombok.Data;
/**
* @ClassName : VehicleViolateDto
* @Description : 车辆违章查询
* @Author : jiaoruizhen
* @Date: 2020-11-19 10:29
*/
@Data
public class VehicleViolateDto {
//车牌号
String numberPlate;
//发动机号
String engineNo;
//车架号
String classNo;
}
...@@ -3,6 +3,7 @@ package com.xxfc.platform.universal.feign; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.universal.feign;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.dto.SmsTemplateDTO; import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import com.xxfc.platform.universal.entity.Dictionary; import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.entity.IdInformation; import com.xxfc.platform.universal.entity.IdInformation;
import com.xxfc.platform.universal.entity.vo.InvoiceVo; import com.xxfc.platform.universal.entity.vo.InvoiceVo;
...@@ -52,6 +53,9 @@ public interface ThirdFeign { ...@@ -52,6 +53,9 @@ public interface ThirdFeign {
@PostMapping("/trafficViolations") @PostMapping("/trafficViolations")
ObjectRestResponse queryTrafficViolations(@RequestBody TrafficViolations trafficViolations) ; ObjectRestResponse queryTrafficViolations(@RequestBody TrafficViolations trafficViolations) ;
@PostMapping(value = "/violate/get")
public ObjectRestResponse getVehicleViolate(@RequestBody VehicleViolateDto vehicleViolateDto);
/** /**
* 车辆类型查询 * 车辆类型查询
* @return * @return
......
package com.xxfc.platform.universal.controller;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import com.xxfc.platform.universal.service.VehicleViolateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName : VehicleViolateController
* @Description : 车辆违章查询
* @Author : jiaoruizhen
* @Date: 2020-11-19 11:14
*/
@RestController
@RequestMapping(value = "/violate")
public class VehicleViolateController {
@Autowired
VehicleViolateService vehicleViolateService;
@PostMapping(value = "get")
public ObjectRestResponse getVehicleViolate(@RequestBody VehicleViolateDto vehicleViolateDto) {
return vehicleViolateService.getRequest2(vehicleViolateDto);
}
}
package com.xxfc.platform.universal.service;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.SystemConfig;
import com.xxfc.platform.universal.dto.VehicleViolateDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
/**
* @ClassName : VehicleViolateService
* @Description : 车辆违章服务查询
* @Author : jiaoruizhen
* @Date: 2020-11-18 10:38
*/
@Service
@Slf4j
public class VehicleViolateService {
public static final String DEF_CHATSET = "UTF-8";
public static final int DEF_CONN_TIMEOUT = 30000;
public static final int DEF_READ_TIMEOUT = 30000;
public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
//1.获取支持城市参数接口
public void getRequest1() {
String result = null;
String url = "http://v.juhe.cn/wz/citys";//请求接口地址
Map params = new HashMap();//请求参数
params.put("key", SystemConfig.VEHICLE_VIOLATE_KEY);//你申请的key
try {
result = net(url, params, "GET");
JSONObject object = JSONObject.parseObject(result);
if (object.getInteger("error_code") == 0) {
System.out.println(object.get("result"));
} else {
System.out.println(object.get("error_code") + ":" + object.get("reason"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
//2.请求违章查询接口
public ObjectRestResponse getRequest2(VehicleViolateDto vehicleViolateDto) {
//
ObjectRestResponse<Integer> response = getRequest3();
if (response.isRel() && (response.getData() == null || response.getData() <= 0)) {
return response;
}
String result = null;
String url = "http://v.juhe.cn/wz/query";//请求接口地址
Map params = new HashMap();//请求参数
params.put("dtype", "json");//返回数据格式:json或xml或jsonp,默认json
params.put("key", SystemConfig.VEHICLE_VIOLATE_KEY);//你申请的key
params.put("hphm", vehicleViolateDto.getNumberPlate());//号牌号码 完整7位 ,需要utf8 urlencode*
params.put("hpzl", "02");//号牌类型,默认02
params.put("engineno", vehicleViolateDto.getEngineNo());//发动机号 (根据城市接口中的参数填写)
params.put("classno", vehicleViolateDto.getClassNo());//车架号 (根据城市接口中的参数填写)
try {
result = net(url, params, "GET");
log.info("查询违章记录:请求--> {}, 响应--> {}", vehicleViolateDto, result);
JSONObject object = JSONObject.parseObject(result);
if (object.getInteger("error_code") == 0) {
JSONObject resultObj = object.getJSONObject("result");
return ObjectRestResponse.succ(resultObj.getString("lists"));
} else {
return ObjectRestResponse.createFailedResult(500, object.getString("reason"));
}
} catch (Exception e) {
log.error("{}", e);
}
return ObjectRestResponse.createDefaultFail();
}
//3.接口剩余请求次数查询
public ObjectRestResponse<Integer> getRequest3() {
String result = null;
String url = "http://v.juhe.cn/wz/status";//请求接口地址
Map params = new HashMap();//请求参数
params.put("key", SystemConfig.VEHICLE_VIOLATE_KEY);//应用APPKEY(应用详细页查询)
params.put("dtype", "json");//返回数据的格式,xml或json,默认json
try {
result = net(url, params, "GET");
JSONObject object = JSONObject.parseObject(result);
if (object.getInteger("error_code") == 0) {
JSONObject jsonObject = object.getJSONObject("result");
if (jsonObject != null) {
return ObjectRestResponse.succ(jsonObject.getInteger("surplus"));
} else {
return ObjectRestResponse.createFailedResult(500, "查询次数不存在");
}
} else {
return ObjectRestResponse.createFailedResult(500, object.getString("reason"));
}
} catch (Exception e) {
log.error("{}", e);
}
return ObjectRestResponse.createDefaultFail();
}
/**
* @param strUrl 请求地址
* @param params 请求参数
* @param method 请求方法
* @return 网络请求字符串
* @throws Exception
*/
public static String net(String strUrl, Map params, String method) throws Exception {
HttpURLConnection conn = null;
BufferedReader reader = null;
String rs = null;
try {
StringBuffer sb = new StringBuffer();
if (method == null || method.equals("GET")) {
strUrl = strUrl + "?" + urlencode(params);
}
URL url = new URL(strUrl);
conn = (HttpURLConnection) url.openConnection();
if (method == null || method.equals("GET")) {
conn.setRequestMethod("GET");
} else {
conn.setRequestMethod("POST");
conn.setDoOutput(true);
}
conn.setRequestProperty("User-agent", userAgent);
conn.setUseCaches(false);
conn.setConnectTimeout(DEF_CONN_TIMEOUT);
conn.setReadTimeout(DEF_READ_TIMEOUT);
conn.setInstanceFollowRedirects(false);
conn.connect();
if (params != null && method.equals("POST")) {
try {
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeBytes(urlencode(params));
} catch (Exception e) {
// TODO: handle exception
}
}
InputStream is = conn.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sb.append(strRead);
}
rs = sb.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
reader.close();
}
if (conn != null) {
conn.disconnect();
}
}
return rs;
}
//将map型转为请求参数型
public static String urlencode(Map<String, Object> data) {
StringBuilder sb = new StringBuilder();
for (Map.Entry i : data.entrySet()) {
try {
sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue() + "", "UTF-8")).append("&");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.util.List;
/**
* 商品发布需求表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_publish")
public class VehiclePublish implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "company_id")
@ApiModelProperty(value = "店铺id")
private Integer companyId;
@Column(name = "type")
@ApiModelProperty(value = "类型:1-我要车;2-我有车")
private Integer type;
@Column(name = "goods_type")
@ApiModelProperty(value = "商品类型 1--房车;2--机车;3--游艇;4-豪车")
private Integer goodsType;
@Column(name = "number")
@ApiModelProperty(value = "总商品数")
private Integer number;
@Column(name = "confirm_number")
@ApiModelProperty(value = "已确认商品数量")
private Integer confirmNumber;
@Column(name = "wait_confirm_number")
@ApiModelProperty(value = "待确认商品数量")
private Integer waitConfirmNumber;
@Column(name = "publish_end_time")
@ApiModelProperty(value = "需求结束时间")
private Long publishEndTime;
@Column(name = "start_time")
@ApiModelProperty(value = "开始时间")
private Long startTime;
@Column(name = "end_time")
@ApiModelProperty(value = "结束时间")
private Long endTime;
@Column(name = "status")
@ApiModelProperty(value = "状态:0-发布中;1-已取消;2-待收车,3-已完成")
private Integer status;
@Column(name = "remarks")
@ApiModelProperty(value = "备注")
private String remarks;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
@Transient
@ApiModelProperty(value = "调出信息")
private List<VehiclePublishGoods> publishGoodsList;
}
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 需求商品子表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_publish_goods")
public class VehiclePublishGoods implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "publish_id")
@ApiModelProperty(value = "需求id")
private Integer publishId;
@Column(name = "vehicle_id")
@ApiModelProperty(value = "商品id")
private String vehicleId;
@Column(name = "number")
@ApiModelProperty(value = "商品数量")
private Integer number;
@Column(name = "receive_amount")
@ApiModelProperty(value = "接单者服务费(单个商品)")
private BigDecimal receiveAmount;
@Column(name = "publish_amount")
@ApiModelProperty(value = "发布服务费(单个商品)")
private BigDecimal publishAmount;
@Column(name = "goods_type")
@ApiModelProperty(value = "商品类型 1--房车;2--机车;3--游艇;4-豪车")
private Integer goodsType;
@Column(name = "brand_id")
@ApiModelProperty(value = "品牌id")
private Integer brandId;
@Column(name = "category_id")
@ApiModelProperty(value = "型号id")
private Integer categoryId;
@Column(name = "cover")
@ApiModelProperty(value = "封面")
private String cover;
@Column(name = "extension_list")
@ApiModelProperty(value = "扩展信息(逗号隔开)")
private String extensionList;
@Column(name = "status")
@ApiModelProperty(value = "状态:0-发布中;1-已取消;2-待收车,3-已完成")
private Integer status;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 需求接单表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_publish_receive")
public class VehiclePublishReceive implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "code")
@ApiModelProperty(value = "商品编号")
private String code;
@Column(name = "vehicle_id")
@ApiModelProperty(value = "商品id")
private String vehicleId;
@Column(name = "publish_goods_id")
@ApiModelProperty(value = "需求子id")
private Integer publishGoodsId;
@Column(name = "receive_company_id")
@ApiModelProperty(value = "接单公司id")
private Integer receiveCompanyId;
@Column(name = "receive_time")
@ApiModelProperty(value = "接单时间")
private Long receiveTime;
@Column(name = "receive_order_no")
@ApiModelProperty(value = "接单者订单号")
private String receiveOrderNo;
@Column(name = "publish_company_id")
@ApiModelProperty(value = "发布公司id")
private Integer publishCompanyId;
@Column(name = "publish_order_no")
@ApiModelProperty(value = "接单者订单号")
private String publishOrderNo;
@Column(name = "ack_time")
@ApiModelProperty(value = "确认时间")
private Long ackTime;
@Column(name = "status")
@ApiModelProperty(value = "状态:0-已接单待支付;1-已支付,待确认;2-拒绝;3-同意;4-取消")
private Integer status;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.vehicle.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 商品使用时间
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_use_time")
public class VehicleUseTime implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "vehicle_id")
@ApiModelProperty(value = "商品id")
private Integer vehicleId;
@Column(name = "company_id")
@ApiModelProperty(value = "店铺id")
private Integer companyId;
@Column(name = "start_time")
@ApiModelProperty(value = "开始时间")
private Long startTime;
@Column(name = "end_time")
@ApiModelProperty(value = "结束时间")
private Long endTime;
@Column(name = "status")
@ApiModelProperty(value = "状态:1-开启;2-关闭")
private Integer status;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
}
...@@ -6,17 +6,16 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -6,17 +6,16 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.entity.*; import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyAreaDTO; import com.xxfc.platform.vehicle.pojo.dto.*;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.CompanyInfoFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehicleModelCalendarPriceDTO;
import com.xxfc.platform.vehicle.pojo.vo.*; import com.xxfc.platform.vehicle.pojo.vo.*;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.*; import java.util.List;
import java.util.Map;
import java.util.Set;
/** /**
* Created by ace on 2017/9/15. * Created by ace on 2017/9/15.
...@@ -38,6 +37,9 @@ public interface VehicleFeign { ...@@ -38,6 +37,9 @@ public interface VehicleFeign {
@RequestMapping(value = "/vehicleInfo/getByIds", method = RequestMethod.GET) @RequestMapping(value = "/vehicleInfo/getByIds", method = RequestMethod.GET)
public RestResponse<List<Vehicle>> getByIds(@RequestParam(value = "ids") List<String> id); public RestResponse<List<Vehicle>> getByIds(@RequestParam(value = "ids") List<String> id);
@GetMapping(value = "/vehicleInfo/app/unauth/getAllVehicleById")
public ObjectRestResponse<List<Vehicle>> getAllVehicleById(@RequestParam(value = "vehicleFindAppDTO") String vehicleFindAppDTO);
//提车 //提车
@PostMapping("/backstage/vehicle/unauth/app/updVehicleFeign") @PostMapping("/backstage/vehicle/unauth/app/updVehicleFeign")
public ObjectRestResponse updVehicleFeign(@RequestBody Vehicle vehicle); public ObjectRestResponse updVehicleFeign(@RequestBody Vehicle vehicle);
......
...@@ -59,4 +59,6 @@ public class VehicleFindDTO extends PageParam implements DataInter { ...@@ -59,4 +59,6 @@ public class VehicleFindDTO extends PageParam implements DataInter {
@ApiModelProperty("店铺状态:1-上架中;2-下架中;3-已调出") @ApiModelProperty("店铺状态:1-上架中;2-下架中;3-已调出")
private Integer goodStatus; private Integer goodStatus;
private List<String> vehicleIdList;
} }
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.DataInter;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/23 16:27
*/
@Data
public class VehiclePublishFindDTO extends PageParam implements DataInter {
@ApiModelProperty("商品类型 1--房车;2--机车;3--游艇;4-豪车")
private Integer goodsType;
@ApiModelProperty("类型:1-我要车;2-我有车")
private Integer type;
@ApiModelProperty("类型:1-调度信息;2-我的发布")
private Integer selectType;
@ApiModelProperty("店铺id")
private Integer companyId;
@ApiModelProperty("需求id")
private Integer publishId;
@ApiModelProperty("当前时间")
private Long nowTime;
List<Integer> dataCorporationIds;
List<Integer> dataCompanyIds;
Integer bizType;
}
package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.vehicle.entity.VehiclePublishGoods;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class VehiclePublishGoodsVo extends VehiclePublishGoods {
@ApiModelProperty("品牌名称")
String brandName;
@ApiModelProperty("型号名称")
String categoryName;
private List<VehicleExtensionVO> extensionVOS;
}
package com.xxfc.platform.vehicle.pojo.vo;
import com.xxfc.platform.vehicle.entity.VehiclePublish;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class VehiclePublishVo extends VehiclePublish {
@ApiModelProperty("店铺名称")
String companyName;
@ApiModelProperty("需求商品")
List<VehiclePublishGoodsVo> publishGoodsVos;
}
...@@ -34,6 +34,12 @@ ...@@ -34,6 +34,12 @@
<artifactId>xx-order-api</artifactId> <artifactId>xx-order-api</artifactId>
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.xxfc.platform</groupId>
<artifactId>xx-app-api</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -1809,6 +1809,12 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR ...@@ -1809,6 +1809,12 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
} }
public ObjectRestResponse<List<Vehicle>> getAllVehicleById(String vehicleFindAppDTO) {
Example example = new Example(Vehicle.class);
example.createCriteria().andIn("id", Arrays.asList(vehicleFindAppDTO.split(",")));
return ObjectRestResponse.succ(mapper.selectByExample(example));
}
public Long countByCompanyId(Integer companyId){ public Long countByCompanyId(Integer companyId){
return mapper.countByCompamyId(companyId); return mapper.countByCompamyId(companyId);
......
package com.xxfc.platform.vehicle.biz;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.app.entity.Cofig;
import com.xxfc.platform.app.feign.ConfigFeign;
import com.xxfc.platform.vehicle.entity.VehiclePublish;
import com.xxfc.platform.vehicle.entity.VehiclePublishGoods;
import com.xxfc.platform.vehicle.mapper.VehiclePublishMapper;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@Slf4j
public class VehiclePublishBiz extends BaseBiz<VehiclePublishMapper, VehiclePublish> {
@Autowired
VehiclePublishGoodsBiz publishGoodsBiz;
@Autowired
ConfigFeign configFeign;
public void addOrUpd(VehiclePublish vehiclePublish){
List<VehiclePublishGoods> goodsList = vehiclePublish.getPublishGoodsList();
if (CollectionUtils.isEmpty(goodsList)){
throw new BaseException("参数不能为空", ResultCode.FAILED_CODE);
}
vehiclePublish.setId(null);
insertSelective(vehiclePublish);
Integer id = vehiclePublish.getId();
JSONObject config = getConfig();
for (VehiclePublishGoods publishGoods : goodsList){
publishGoods.setId(null);
publishGoods.setPublishId(id);
publishGoods.setGoodsType(vehiclePublish.getGoodsType());
publishGoods.setPublishAmount(config.getBigDecimal("publishAmount"));
publishGoods.setReceiveAmount(config.getBigDecimal("receiveAmount"));
publishGoodsBiz.insertSelective(publishGoods);
}
}
public List<VehiclePublishVo> getList(VehiclePublishFindDTO publishFindDTO){
return mapper.selectList(publishFindDTO);
}
public PageDataVO<VehiclePublishVo> selectList(VehiclePublishFindDTO publishFindDTO){
Integer page = publishFindDTO.getPage() == null ? 1 : publishFindDTO.getPage();
Integer limit = publishFindDTO.getLimit() == null ? 10 : publishFindDTO.getLimit();
PageHelper.startPage(page, limit);
PageInfo<VehiclePublishVo> pageInfo = new PageInfo<>(getList(publishFindDTO));
PageDataVO<VehiclePublishVo> pageDataVO = PageDataVO.pageInfo(pageInfo);
List<VehiclePublishVo> list = pageDataVO.getData();
if (CollectionUtils.isNotEmpty(list)){
for (VehiclePublishVo publishVo : list){
publishFindDTO.setPublishId(publishVo.getId());
publishVo.setPublishGoodsVos(publishGoodsBiz.getList(publishFindDTO));
}
}
return pageDataVO;
}
//入驻规则管理
public JSONObject getConfig(){
try {
List<Cofig> list=configFeign.getAllByType(ConfigFeign.TYPE_VEHICLE_PUBLISH+"").getData();
if (list!=null && list.size()>0){
String params=list.get(0).getParams();
JSONObject object = JSONObject.parseObject(params);
return object;
}
}catch (Exception e){
log.error(e.getMessage(), e);;
}
return null;
}
}
package com.xxfc.platform.vehicle.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.vehicle.entity.VehiclePublishGoods;
import com.xxfc.platform.vehicle.mapper.VehiclePublishGoodsMapper;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehicleExtensionVO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishGoodsVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class VehiclePublishGoodsBiz extends BaseBiz<VehiclePublishGoodsMapper, VehiclePublishGoods> {
@Autowired
VehicleExtensionBiz extensionBiz;
public List<VehiclePublishGoodsVo> getList(VehiclePublishFindDTO publishFindDTO){
List<VehiclePublishGoodsVo> list = mapper.selectList(publishFindDTO);
if (CollectionUtils.isNotEmpty(list)){
for (VehiclePublishGoodsVo publishGoodsVo : list){
String vehicleId = publishGoodsVo.getVehicleId();
List<VehicleExtensionVO> extensionVOS = new ArrayList<>();
if (StringUtils.isNotBlank(vehicleId)){
extensionVOS=extensionBiz.getTree(vehicleId);
}else {
String extensionList = publishGoodsVo.getExtensionList();
if (StringUtils.isNotBlank(extensionList)){
extensionVOS=extensionBiz.getTreeByApply(Arrays.asList(extensionList.split(",")).parallelStream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()));
}
}
publishGoodsVo.setExtensionVOS(extensionVOS);
}
}
return list;
}
}
package com.xxfc.platform.vehicle.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.vehicle.entity.VehiclePublishReceive;
import com.xxfc.platform.vehicle.mapper.VehiclePublishReceiveMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class VehiclePublishReceiveBiz extends BaseBiz<VehiclePublishReceiveMapper, VehiclePublishReceive> {
}
package com.xxfc.platform.vehicle.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.xxfc.platform.vehicle.entity.VehicleUseTime;
import com.xxfc.platform.vehicle.mapper.VehicleUseTimeMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class VehicleUseTimeBiz extends BaseBiz<VehicleUseTimeMapper, VehicleUseTime> {
}
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehiclePublishGoods;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishGoodsVo;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehiclePublishGoodsMapper extends Mapper<VehiclePublishGoods>, SelectByIdListMapper<VehiclePublishGoods,Integer> {
List<VehiclePublishGoodsVo> selectList(VehiclePublishFindDTO publishFindDTO);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehiclePublish;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishVo;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehiclePublishMapper extends Mapper<VehiclePublish>, SelectByIdListMapper<VehiclePublish,Integer> {
List<VehiclePublishVo> selectList(VehiclePublishFindDTO publishFindDTO);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehiclePublishReceive;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
public interface VehiclePublishReceiveMapper extends Mapper<VehiclePublishReceive>, SelectByIdListMapper<VehiclePublishReceive,Integer> {
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleUseTime;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
public interface VehicleUseTimeMapper extends Mapper<VehicleUseTime>, SelectByIdListMapper<VehicleUseTime,Integer> {
}
\ No newline at end of file
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.BeanUtils;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.biz.VehicleApplyBiz;
import com.xxfc.platform.vehicle.biz.VehiclePublishBiz;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleApply;
import com.xxfc.platform.vehicle.entity.VehiclePublish;
import com.xxfc.platform.vehicle.pojo.dto.VehicleApplyFindDTO;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.VehiclePublishVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping("app/publish")
@Api(tags = {"商品需求"})
public class AppVehiclePublishController extends BaseController<VehiclePublishBiz> {
@PostMapping("save")
@ApiModelProperty("发布需求")
public ObjectRestResponse apply(@RequestBody VehiclePublish vehiclePublish) {
if (vehiclePublish.getCompanyId() == null || vehiclePublish.getCompanyId() == 0){
List<Integer> companyIds = getBusinessUserCompanyIds();
if (companyIds != null && companyIds.size() > 0){
vehiclePublish.setCompanyId(companyIds.get(0));
}
}
baseBiz.addOrUpd(vehiclePublish);
return ObjectRestResponse.succ();
}
@GetMapping("app/unauth/selectList")
@ApiModelProperty("需求列表")
@IgnoreUserToken
public ObjectRestResponse selectList(VehiclePublishFindDTO publishFindDTO) {
publishFindDTO.setSelectType(1);
return ObjectRestResponse.succ(baseBiz.selectList(publishFindDTO));
}
@GetMapping("selectListByCompany")
@ApiModelProperty("我的发布")
public ObjectRestResponse selectListByCompany(VehiclePublishFindDTO publishFindDTO) {
if (publishFindDTO.getCompanyId() == null || publishFindDTO.getCompanyId() == 0){
List<Integer> companyIds = getBusinessUserCompanyIds();
if (companyIds != null && companyIds.size() > 0){
publishFindDTO.setCompanyId(companyIds.get(0));
}
}
publishFindDTO.setSelectType(2);
return ObjectRestResponse.succ(baseBiz.selectList(publishFindDTO));
}
@GetMapping("app/unauth/detail")
@ApiModelProperty("详情")
@IgnoreUserToken
public ObjectRestResponse detail(VehiclePublishFindDTO publishFindDTO) {
PageDataVO<VehiclePublishVo> pageDataVO = baseBiz.selectList(publishFindDTO);
List<VehiclePublishVo> list = pageDataVO.getData();
VehiclePublishVo publishVo = new VehiclePublishVo();
if (CollectionUtils.isNotEmpty(list)){
publishVo=list.get(0);
}
return ObjectRestResponse.succ(publishVo);
}
}
...@@ -3,7 +3,6 @@ package com.xxfc.platform.vehicle.rest; ...@@ -3,7 +3,6 @@ package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONException;
...@@ -17,7 +16,6 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler; ...@@ -17,7 +16,6 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
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;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.biz.*; import com.xxfc.platform.vehicle.biz.*;
import com.xxfc.platform.vehicle.common.BaseController; import com.xxfc.platform.vehicle.common.BaseController;
...@@ -715,6 +713,12 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use ...@@ -715,6 +713,12 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
return ObjectRestResponse.succ(baseBiz.appSelectList(vehicleFindAppDTO)); return ObjectRestResponse.succ(baseBiz.appSelectList(vehicleFindAppDTO));
} }
@GetMapping(value = "/app/unauth/getAllVehicleById")
@IgnoreUserToken
public ObjectRestResponse<List<Vehicle>> getAllVehicleById(@RequestParam("vehicleFindAppDTO") String vehicleFindAppDTO) {
return baseBiz.getAllVehicleById(vehicleFindAppDTO);
}
@Data @Data
static public class VehicleVO extends Vehicle { static public class VehicleVO extends Vehicle {
private VehicleModel vehicleModel; private VehicleModel vehicleModel;
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehiclePublishGoodsMapper">
<select id="selectList" resultType="com.xxfc.platform.vehicle.pojo.vo.VehiclePublishGoodsVo" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO">
SELECT g.*, IFNULL(b1.cn_name,b.cn_name) as brandName,IFNULL(c1.`name`,c.`name`) as categoryName FROM vehicle_publish_goods g
LEFT JOIN vehicle v ON g.vehicle_id=v.id
LEFT JOIN vehicle_brand b1 ON v.brand_id=b1.id
LEFT JOIN vehicle_category c1 ON v.category_id=c1.id
LEFT JOIN vehicle_brand b ON g.brand_id=b.id
LEFT JOIN vehicle_category c ON g.category_id=c.id
<where>
g.is_del = 0
<if test="publishId != null and publishId > 0">
AND g.`publish_id`= #{publishId}
</if>
</where>
order by g.number DESC
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehiclePublishMapper">
<select id="selectList" resultType="com.xxfc.platform.vehicle.pojo.vo.VehiclePublishVo" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePublishFindDTO">
SELECT p.*,c.`name` as companyName FROM vehicle_publish p
LEFT JOIN branch_company c ON p.company_id = c.id
<where>
p.is_del = 0
<if test="type != null ">
AND p.`type`= #{type}
</if>
<if test="companyId != null and companyId > 0">
AND p.`company_id`= #{companyId}
</if>
<if test="goodsType != null ">
AND p.`goods_type`= #{goodsType}
</if>
<if test="nowTime != null and nowTime > 0">
AND p.`publish_end_time` >= #{nowTime}
</if>
<if test="dataCompanyIds != null and dataCompanyIds.size > 0">
and p.id in
<foreach collection="dataCompanyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="dataCorporationIds != null and dataCorporationIds.size > 0">
and p.company_id in
<foreach collection="dataCorporationIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</where>
<if test="selectType != null ">
<choose>
<when test="selectType == 1">
order by p.publish_end_time ASC
</when>
<when test="selectType == 2">
order by p.wait_confirm_number DESC,p.publish_end_time ASC
</when>
<otherwise>
order by p.id DESC
</otherwise>
</choose>
</if>
</select>
</mapper>
\ No newline at end of file
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