Commit 9304e0d8 authored by libin's avatar libin

merg

parents 12e77b53 048026ec
......@@ -16,6 +16,10 @@ public class ResultCode {
// 操作失败
public static int FAILED_CODE = Integer.valueOf(SystemProperty.getResultConfig("FAILED_CODE"));
//IM消息删除失败
public static int IM_DELETE_FAIL_CODE = Integer.valueOf(SystemProperty.getResultConfig("IM_DELETE_FAIL_CODE"));
public static int IM_MSG_NOT_EXIST_CODE = Integer.valueOf(SystemProperty.getResultConfig("IM_MSG_NOT_EXIST_CODE"));
// 车辆预定失败,请重试
public static int BOOKED_FAILED_CODE = Integer.valueOf(SystemProperty.getResultConfig("BOOKED_FAILED_CODE"));
//预定时间不能为空 DATE_TIME_IS_NULL
......
......@@ -6,6 +6,10 @@ SUCCESS_CODE=200
#操作失败
FAILED_CODE=1001
1001=操作失败
IM_DELETE_FAIL_CODE = 10011
10011 = 删除消息失败
IM_MSG_NOT_EXIST_CODE = 10012
10012 = 消息不存在
#数据已存在
EXIST_CODE=1002
1002=数据已存在
......@@ -106,9 +110,6 @@ USER_EXIST_CODE=5003
ORG_INSERT_FAILED_CODE=6001
6001=新增组织失败
VEHICLE_NOT_=6001
6001=新增组织失败
ORG_UPDATE_FAILED_CODE=6002
6002=更新组织信息失败
......
......@@ -118,6 +118,8 @@ public interface UserFeign {
@GetMapping("/app/user/one")
public AppUserLogin one(@RequestParam(value = "username")String username);
@GetMapping("/app/user/getOne")
public List<AppUserLogin> getOne(@RequestParam(value = "username")String username,@RequestParam(value = "realName")String realName);
@GetMapping("/api/app/imi/{imiId}")
ImiVo findUserInfoByImiId(@PathVariable(value = "imiId") Integer imiId);
......
......@@ -131,23 +131,27 @@ public class GroupBiz extends BaseBiz<GroupMapper, Group> {
@CacheClear(keys = {"permission:menu","permission:u","app:permission:u"})
public void modifyAuthorityMenu(int groupId, String[] menus) {
resourceAuthorityMapper.deleteByAuthorityIdAndResourceType(groupId + "", AdminCommonConstant.RESOURCE_TYPE_MENU);
List<Menu> menuList = menuMapper.selectAll();
Map<String, String> map = new HashMap<String, String>();
for (Menu menu : menuList) {
map.put(menu.getId().toString(), menu.getParentId().toString());
}
Set<String> relationMenus = new HashSet<String>();
relationMenus.addAll(Arrays.asList(menus));
ResourceAuthority authority = null;
for (String menuId : menus) {
findParentID(map, relationMenus, menuId);
}
for (String menuId : relationMenus) {
authority = new ResourceAuthority(AdminCommonConstant.AUTHORITY_TYPE_GROUP, AdminCommonConstant.RESOURCE_TYPE_MENU);
authority.setAuthorityId(groupId + "");
authority.setResourceId(menuId);
authority.setParentId("-1");
resourceAuthorityMapper.insertSelective(authority);
if (menus.length>0){
List<Menu> menuList = menuMapper.selectAll();
Map<String, String> map = new HashMap<String, String>();
for (Menu menu : menuList) {
map.put(menu.getId().toString(), menu.getParentId().toString());
}
Set<String> relationMenus = new HashSet<String>();
relationMenus.addAll(Arrays.asList(menus));
ResourceAuthority authority = null;
for (String menuId : menus) {
findParentID(map, relationMenus, menuId);
}
for (String menuId : relationMenus) {
authority = new ResourceAuthority(AdminCommonConstant.AUTHORITY_TYPE_GROUP, AdminCommonConstant.RESOURCE_TYPE_MENU);
authority.setAuthorityId(groupId + "");
authority.setResourceId(menuId);
authority.setParentId("-1");
resourceAuthorityMapper.insertSelective(authority);
}
}
}
......
......@@ -28,4 +28,7 @@ public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdList
List<Integer> selectAllExistUserIds();
List<AppUserLogin> getUserByUsernameAndRealName(@Param("username") String username, @Param("realName")String realName);
}
\ No newline at end of file
......@@ -262,6 +262,15 @@ public class AppUserController extends CommonBaseController{
return appUserLoginBiz.getUserByUsername(username);
}
/**
* 根据用户真实姓名和手机号模糊查询寻用户
* @param username
* @return
*/
@GetMapping("/getOne")
public List<AppUserLogin> getOne(@RequestParam(value = "username",required = false)String username, @RequestParam(value = "realName",required = false)String realName){
return appUserLoginBiz.getUserByUsernameAndRealName(username,realName);
}
@GetMapping("/findusersByIds")
public Map<Integer,AppUserLogin> findAppUsersByUserIds(@RequestParam(value = "userIds") List<Integer> userIds){
return appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(userIds);
......
......@@ -73,11 +73,15 @@ public class GroupController extends BaseController<GroupBiz, Group> {
@RequestMapping(value = "/{id}/authority/menu", method = RequestMethod.PUT)
@ResponseBody
public ObjectRestResponse modifyMenuAuthority(@PathVariable int id, String menuTrees){
String [] menus = menuTrees.split(",");
String [] menus =new String[]{};
if (StringUtils.isNotBlank(menuTrees)){
menus= menuTrees.split(",");
}
baseBiz.modifyAuthorityMenu(id, menus);
return new ObjectRestResponse().rel(true);
}
@RequestMapping(value = "/{id}/authority/menu", method = RequestMethod.GET)
@ResponseBody
public ObjectRestResponse<List<AuthorityMenuTree>> getMenuAuthority(@PathVariable int id){
......
......@@ -42,7 +42,6 @@
where d.userid = #{userId} limit 1
</select>
<select id="getUserIdByUsername" resultType="java.lang.Integer">
select d.userid from app_user_login l
left join app_user_detail d
......
......@@ -5,10 +5,10 @@
<select id="selectbyPhones" resultType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
select `id`,`username` from `app_user_login` where `username` in
<foreach collection="phones" item="phone" open="(" close=")" separator=",">
#{phone}
#{phone}
</foreach>
</select>
<update id="bindOpenId" parameterType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
UPDATE app_user_login SET wx_openid=#{wxOpenid},unionid=#{unionid},openid=#{openid} where id=#{id}
</update>
......@@ -16,4 +16,15 @@
<select id="selectAllExistUserIds" resultType="integer">
SELECT `id` FROM `app_user_login` WHERE `isdel`=0;
</select>
<select id="getUserByUsernameAndRealName" resultType="com.github.wxiaoqi.security.admin.entity.AppUserLogin">
select l.* from app_user_login l left join app_user_detail d on l.id=d.userid where 1=1
<if test="username!=null ">
and l.username like concat('%',#{username},'%')
</if>
<if test="realName !=null">
and d.realname like concat('%',#{realName},'%')
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -208,15 +208,16 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper, CampsiteShop> {
List<String> tagNames = shopIdOfTagsMap.get(campsiteShopAdminPageDTO.getId());
campsiteShopAdminPageDTO.setStoreTypeName(tagNames == null ? new ArrayList<String>() : tagNames);
}
}).sorted(Comparator.comparing(CampsiteShopAdminPageDTO::getHot).reversed().thenComparing(CampsiteShopAdminPageDTO::getCrtTime).reversed()).collect(Collectors.toList());
}).collect(Collectors.toList());
List<CampsiteShopAdminPageVo> campsiteShopAdminPageVos = JSONObject.parseObject(JSONObject.toJSONString(campsiteShopAdminPageDTOS), new TypeReference<List<CampsiteShopAdminPageVo>>() {
});
campsiteShopAdminPageVos.sort(Comparator.comparing(CampsiteShopAdminPageVo::getHot).reversed().thenComparing(Comparator.comparing(CampsiteShopAdminPageVo::getCrtTime).reversed()));
//组装数据
campsiteShopAdminPageDataVos.setTotalPage(campsiteShopAdminpageDTOPageDataVO.getTotalPage());
campsiteShopAdminPageDataVos.setTotalCount(campsiteShopAdminpageDTOPageDataVO.getTotalCount());
campsiteShopAdminPageDataVos.setPageSize(campsiteShopAdminpageDTOPageDataVO.getPageSize());
campsiteShopAdminPageDataVos.setPageNum(campsiteShopAdminpageDTOPageDataVO.getPageNum());
campsiteShopAdminPageDataVos.setData(JSONObject.parseObject(JSONObject.toJSONString(campsiteShopAdminPageDTOS), new TypeReference<List<CampsiteShopAdminPageVo>>() {
}));
campsiteShopAdminPageDataVos.setData(campsiteShopAdminPageVos);
return campsiteShopAdminPageDataVos;
}
......
......@@ -69,7 +69,7 @@
and `city`=#{cityCode}
</if>
GROUP BY cs.id
order by `crtTime` DESC
order by cs.hot DESC,cs.crt_time DESC
</select>
<!--首页查询全部-->
......@@ -111,7 +111,7 @@
<if test="name != null and name != ''">
and `name` like concat('%',#{name},'%')
</if>
ORDER BY `hot` DESC
</select>
<!--根据id更新营地状态-->
......
......@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.mongodb.client.result.DeleteResult;
import com.xxfc.platform.im.dto.CommentVo;
import com.xxfc.platform.im.dto.PraiseVo;
import com.xxfc.platform.im.dto.QuestionParamDto;
......@@ -16,7 +17,9 @@ import com.xxfc.platform.im.model.Comment;
import com.xxfc.platform.im.model.Msg;
import com.xxfc.platform.im.model.Praise;
import com.xxfc.platform.im.vo.MsgVo;
import com.xxfc.platform.universal.constant.ResCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
......@@ -27,9 +30,7 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.*;
@Service
@Slf4j
......@@ -162,6 +163,36 @@ public class MsgBiz {
}
/**
* 删除消息
* @param ids id字符串,用逗号隔开
* @return
*/
public ObjectRestResponse deleteByList(String ids) {
Integer userId = 0;
AppUserDTO appUserDTO = userBiz.getUserInfo();
if(appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (StringUtils.isBlank(ids)) {
return ObjectRestResponse.paramIsEmpty();
}
userId = appUserDTO.getImUserid();
List<String> list = Arrays.asList(ids.split(","));
Set<String> set = new HashSet<>();
set.addAll(list);
Query query = new Query(Criteria.where("id").in(set));
query.addCriteria(Criteria.where("userId").is(userId));
List<Msg> msgList = mongoTemplate.find(query, Msg.class, "s_msg");
if(msgList.size() != set.size()) { //查询到的消息条数不等于查询的Id数
return ObjectRestResponse.createFailedResult(ResultCode.IM_DELETE_FAIL_CODE, ResultCode.getMsg(ResultCode.IM_DELETE_FAIL_CODE));
}
DeleteResult deleteResult = mongoTemplate.remove(query, Msg.class, "s_msg");
if (deleteResult != null && deleteResult.getDeletedCount() == set.size()) {
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createFailedResult(ResultCode.IM_DELETE_FAIL_CODE, ResultCode.getMsg(ResultCode.IM_DELETE_FAIL_CODE));
}
/**
......
......@@ -35,4 +35,9 @@ public class MsgController {
public ObjectRestResponse getByUserId(Integer page, Integer limit, Integer type) {
return msgBiz.getMsgListByUserId(page, limit, type);
}
@GetMapping(value = "/delete")
public ObjectRestResponse deleteByIds(String ids) {
return msgBiz.deleteByList(ids);
}
}
package com.xxfc.platform.order.contant.enumerate;
import java.util.HashMap;
import java.util.Map;
public enum AccountTypeEnum {
//账款类型 1*--入账;2*--出账
//账款类型 记帐类型 101--订单支付;201--取消订单退款;202--全部押金退款;203--部分押金退款;204--剩余押金退款
IN_ORDER_PAY(101, "订单支付"),
OUT_ORDER_FUND(201, "订单款"),
OUT_DEPOSIT(202, "所有押金"),
OUT_PART_DEPOSIT(203, "部分押金(扣除该扣除的 + 保留违章预备金)"),
OUT_RESIDUE_DEPOSIT(204, "剩余押金(扣除该扣除的)"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
//Maps.newHashMap();
static{
for(AccountTypeEnum enumE : AccountTypeEnum.values()){
codeAndDesc.put(enumE.getCode(),enumE.getDesc());
}
}
AccountTypeEnum(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
}
\ No newline at end of file
......@@ -7,6 +7,7 @@ public enum CrosstownTypeEnum {
DEPARTURE(1, "交车"),
ARRIVE(2, "还车"),
FIXED_LOSS(3, "定损"),
FIXED_LOSS_NOW(4, "定损"),
;
/**
* 编码
......
package com.xxfc.platform.order.contant.enumerate;
import java.util.HashMap;
import java.util.Map;
public enum DeductionTypeEnum {
//账款类型 1--违约金;2--消费金额;3--赔偿金(定损);4--违章相关
VIOLATE_CANCEL(101, "提前取消违约金"),
VIOLATE_ADVANCE(102, "提前还车违约金"),
VIOLATE_DELAY(103, "延迟还车违约金"),
EXTRA(201, "消费金额"),
DAMAGES(301, "赔偿金(定损)"),
VIOLATE_TRAFFIC_DEDUCT(401, "违章扣款"),
VIOLATE_TRAFFIC_KEEP(402, "违章扣款保留金"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
//Maps.newHashMap();
static{
for(DeductionTypeEnum enumE : DeductionTypeEnum.values()){
codeAndDesc.put(enumE.getCode(),enumE.getDesc());
}
}
DeductionTypeEnum(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
}
\ No newline at end of file
......@@ -6,7 +6,8 @@ import java.util.Map;
public enum OrderViolateEnum {
BEFORE(1, "提前"),
AFTER(2, "延期")
AFTER(2, "延期"),
EXCESS(3, "消费超额金")
;
/**
* 编码
......
......@@ -252,31 +252,31 @@ public class BaseOrder implements Serializable {
@Column(name = "member_level")
private Integer memberLevel;
/**
* 违约金
*/
@ApiModelProperty(value = "违约金")
@Column(name = "violate_amount")
BigDecimal ViolateAmount;
/**
* 赔偿金
*/
@ApiModelProperty(value = "赔偿金")
@Column(name = "damages_amount")
BigDecimal damagesAmount;
/**
* 额外费用
*/
@ApiModelProperty(value = "额外费用")
@Column(name = "extra_amount")
BigDecimal extraAmount;
/**
* 返还的优惠券
*/
@ApiModelProperty(value = "返回的优惠券")
@Column(name = "back_coupon")
String backCoupon;
// /**
// * 违约金
// */
// @ApiModelProperty(value = "违约金")
// @Column(name = "violate_amount")
// BigDecimal ViolateAmount;
//
// /**
// * 赔偿金
// */
// @ApiModelProperty(value = "赔偿金")
// @Column(name = "damages_amount")
// BigDecimal damagesAmount;
//
// /**
// * 额外费用
// */
// @ApiModelProperty(value = "额外费用")
// @Column(name = "extra_amount")
// BigDecimal extraAmount;
//
// /**
// * 返还的优惠券
// */
// @ApiModelProperty(value = "返回的优惠券")
// @Column(name = "back_coupon")
// String backCoupon;
}
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 订单帐目
*
* @author zhoujw
* @email 18178966185@163.com
* @date 2019-09-09 15:51:16
*/
@Data
@Table(name = "order_account")
public class OrderAccount implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键")
private Integer id;
/**
* 订单id
*/
@Column(name = "order_id")
@ApiModelProperty(value = "订单id")
private Integer orderId;
/**
* 账款对应的流水号
*/
@Column(name = "trade_no")
@ApiModelProperty(value = "账款对应的流水号")
private String tradeNo;
/**
* 记账时间
*/
@Column(name = "account_time")
@ApiModelProperty(value = "记账时间")
private Long accountTime;
/**
* 记帐类型 101--订单支付;201--取消订单退款;202--全部押金退款;203--部分押金退款;204--剩余押金退款
*/
@Column(name = "account_type")
@ApiModelProperty(value = "记帐类型 101--订单支付;201--取消订单退款;202--全部押金退款;203--部分押金退款;204--剩余押金退款")
private Integer accountType;
/**
* 账款状态 1--成功;2--失败
*/
@Column(name = "account_status")
@ApiModelProperty(value = "账款状态 1--成功;2--失败")
private Integer accountStatus;
/**
* 账款金额
*/
@Column(name = "account_amount")
@ApiModelProperty(value = "账款金额")
private BigDecimal accountAmount;
/**
* 账款说明
*/
@Column(name = "account_desc")
@ApiModelProperty(value = "账款说明")
private String accountDesc;
/**
* 账款详情
*/
@Column(name = "account_detail")
@ApiModelProperty(value = "账款详情")
private String accountDetail;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 原金额
*/
@Column(name = "original_amount")
@ApiModelProperty(value = "原金额")
private BigDecimal originalAmount;
/**
* 扣除金额
*/
@Column(name = "deduct_amount")
@ApiModelProperty(value = "扣除金额")
private BigDecimal deductAmount;
}
......@@ -146,6 +146,14 @@ public class OrderItem implements Serializable {
return calculateAmount;
}
public BigDecimal getBuyAmount() {
return getUnitPrice().multiply(new BigDecimal(getBuyNum() + ""));
}
public BigDecimal getCutAmount() {
return getUnitPrice().multiply(new BigDecimal(getCutNum() + ""));
}
public BigDecimal handleCouponAmount(BigDecimal couponAmount) {
BigDecimal realAmountResidue = getRealAmount().subtract(couponAmount);
//剩余价格小于0 即优惠价格超出本item的实际价格,返回剩余优惠
......
......@@ -308,11 +308,19 @@ public class OrderRentVehicleDetail implements Serializable {
@Column(name = "fixed_loss_status")
private Integer fixedLossStatus;
/**
* 返还的免费天数
*/
@ApiModelProperty(value = "返回的免费天数")
@Column(name = "back_free_days")
Integer backFreeDays;
// /**
// * 返还的免费天数
// */
// @ApiModelProperty(value = "返回的免费天数")
// @Column(name = "back_free_days")
// Integer backFreeDays;
@ApiModelProperty(value = "违章金额")
@Column(name = "violate_traffic_amount")
BigDecimal violateTrafficAmount;
@ApiModelProperty(value = "使用天数")
@Column(name = "used_day")
Integer usedDay;
}
......@@ -7,6 +7,9 @@ import java.util.List;
@Data
public class DedDetailDTO {
//public static final int TYPE_VIOLATE_ADVANCE = 1;
/**
* : 扣除项名称
*/
......@@ -17,13 +20,19 @@ public class DedDetailDTO {
*/
BigDecimal cost;
/**
* 订单超额费用
*/
BigDecimal excessCost;
/**
* 编号(用于顺序)
*/
Integer id;
//1、延期, 2、车辆损坏 3、其他
//作为:DedDetail :2、车辆损坏 3、其他
//作为:violate_amount_detail 1--提前还车 2--延期还车 3--消费超额
Integer type;
//小雨都不知道什么东西
......
package com.xxfc.platform.order.pojo.account;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OrderAccountDeduction {
public static final int ORIGIN_ORDER = 1;
public static final int ORIGIN_DEPOSIT = 2;
public static final int ORIGIN_ORDER_DEPOSIT = 3;
public static final int ORIGIN_DEPOSIT_ORDERß = 4;
/**
* 名称
*/
String name;
/**
* 类型
*/
Integer type;
/**
* 来源 1--订单款 2--押金
*/
Integer origin;
/**
* 金额
*/
BigDecimal amount;
}
package com.xxfc.platform.order.pojo.account;
import lombok.Data;
import org.assertj.core.util.Lists;
import java.math.BigDecimal;
import java.util.List;
@Data
public class OrderAccountDetail {
/**
* 实际返回订单款
*/
BigDecimal orderAmount;
/**
* 实际返回押金款
*/
BigDecimal depositAmount;
/**
* 原来要返回的订单款
*/
BigDecimal originOrderAmount;
/**
* 原来要返回的押金款
*/
BigDecimal originDepositAmount;
/**
* 扣款列表
*/
List<OrderAccountDeduction> deductions = Lists.newArrayList();
}
......@@ -23,6 +23,31 @@ public class InProgressVO {
*/
BigDecimal extraAmount = BigDecimal.ZERO;
/**
* 已使用天数
*/
Integer usedDays = 0;
/**
* 已使用的金额
*/
BigDecimal usedAmount = BigDecimal.ZERO;
/**
* 已使用免费天数
*/
Integer usedfreeDays = 0;
/**
* 已使用的免费天数对应的费用
*/
BigDecimal usedFreeDaysAmount = BigDecimal.ZERO;
/**
* 返回订单款金额
*/
BigDecimal refundOrderAmount = BigDecimal.ZERO;
/**
* 返还的优惠券
*/
......@@ -32,4 +57,9 @@ public class InProgressVO {
* 返还的免费天数
*/
Integer backFreeDays = 0;
String cancelCostDetail = "";
String advanceDelayCostDetail = "";
}
......@@ -30,6 +30,7 @@ public class OrderListVo extends BaseOrder {
private String endCompanyName;
private String realName;
/**
* 是否是用户匹配公司
*/
......
package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.DedDetailDTO;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import lombok.Data;
......@@ -33,6 +34,8 @@ public class OrderPageVO extends BaseOrder {
private String telephone;
//订单违约金
private String dedDetailDTO;
/**
* 車輛編碼
*/
......
......@@ -33,4 +33,29 @@ public class RentVehiclePriceVO extends OrderPriceVO{
BigDecimal damageSafePrice;
@ApiModelProperty(value = "费用详情")
private String costDetail;
// /**
// * 原租车天数
// */
// private Integer originDayNum;
/**
* 免费天数
*/
private Integer freeDayNum;
/**
* 免费价格
*/
private BigDecimal freeAmount;
/**
* 购买的租车金额
*/
private BigDecimal buyVehicleAmount;
/**
* 优惠描述
*/
private String couponDesc = "";
}
......@@ -5,6 +5,7 @@ import cn.hutool.extra.template.Template;
import cn.hutool.extra.template.TemplateEngine;
import cn.hutool.extra.template.TemplateUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.google.common.collect.Maps;
import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.mapper.OrderTemplateMapper;
import org.springframework.stereotype.Service;
......@@ -57,4 +58,17 @@ public class OrderTemplateBiz extends BaseBiz<OrderTemplateMapper,OrderTemplate>
return template.render(map);
}
public static void main(String[] args) {
String tempStr = "{\"key\":\"费用明细\", \"val\":\"\", \"consumeAmount\":\"${consumeAmount}\",\"children\":[${children}]}";
Map map = Maps.newHashMap();
map.put("consumeAmount", "");
map.put("children", "{\"test\" : \"1111\" }");
//匹配参数 填充参数
TemplateEngine engine = TemplateUtil.createEngine();
Template template = engine.getTemplate(tempStr);
String result = template.render(new Dict(map));
System.out.println(result);
}
}
\ No newline at end of file
......@@ -68,7 +68,7 @@ public class OrderTourVerificationBiz{
if(baseOrder==null){
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
}
if(baseOrder.getStatus()!=OrderStatusEnum.ORDER_TOSTART.getCode()){
if(baseOrder.getHasPay()==0){
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_PAY.getCode(), ResCode.ORDER_IS_NOT_PAY.getDesc());
}
Integer orderId=baseOrder.getId();
......
package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.date.DateUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.app.entity.Cofig;
import com.xxfc.platform.app.feign.ConfigFeign;
import com.xxfc.platform.order.biz.OrderAccountBiz;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundStatusEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.HOUR_MINUTE_FORMATTE_HUTOOL;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/**
* 订单退款记录表
......@@ -71,22 +54,33 @@ public class OrderCalculateBiz {
@Autowired
OrderItemBiz orderItemBiz;
public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays) {
@Autowired
OrderAccountBiz orderAccountBiz;
public InProgressVO inProgressCalculate(BaseOrder baseOrder, OrderItem orderItem, Integer freeDays, Integer useDays, OrderAccountDetail oad) {
BigDecimal refundAmount = BigDecimal.ZERO;
InProgressVO inProgressVO = new InProgressVO();
inProgressVO.setUsedDays(useDays);
inProgressVO.setUsedfreeDays(freeDays);
inProgressVO.setUsedAmount(orderItem.getUnitPrice().multiply(new BigDecimal(useDays+ "")));
inProgressVO.setUsedFreeDaysAmount(orderItem.getUnitPrice().multiply(new BigDecimal(freeDays+ "")));
//计算:剩余免费天数
Integer backFreeDays = freeDays - useDays;
//待返还的免费天数
List<String> backCouponNos = Lists.newArrayList();
//剩余天数
Integer residueDays = orderItem.getTotalNum() - useDays;
//过了出发时间取消订单 ,优先使用免费天数
if(backFreeDays <= 0) {
//大于总天数 只返回押金
if(useDays >= orderItem.getTotalNum()) {
//退押金
//orderRefundBiz.rentRefundDepositProcess(hasUpdateOrder, orvd.getDeposit(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, freeDayAmount);
}else {
//使用天数 小于 总天数
if(useDays < orderItem.getTotalNum()) {
//需要扣除订单费用
//判断是否达到优惠券条件 不符合则返还优惠券
//消费天数
Integer consumeDays = 0 - backFreeDays;
//计算使用天数的费用
//计算使用天数的费用
BigDecimal consumeAmount = orderItem.getUnitPrice().multiply(new BigDecimal(consumeDays+""));
List<String> backCouponNos = Lists.newArrayList();
List<BigDecimal> couponAmounts = Lists.newArrayList();
for(String tickerNo : baseOrder.getCouponTickerNos().split(",")) {
BigDecimal couponAmount = activityFeign.use(baseOrder.getUserId(), Lists.newArrayList(tickerNo), baseOrder.getNo(), Coupon.CHANNEL_RENT, consumeAmount, ActivityFeign.TYPE_CHECK);
......@@ -97,14 +91,60 @@ public class OrderCalculateBiz {
backCouponNos.add(tickerNo);
}
}
for(BigDecimal couponAmount : couponAmounts) {
consumeAmount = consumeAmount.subtract(couponAmount);
}
if(consumeAmount.compareTo(orderItem.getRealAmount()) > 0) {
//消费金额 大于真实的金额 增加额外费用
inProgressVO.setExtraAmount(consumeAmount.subtract(orderItem.getRealAmount()));
// consumeAmount = orderItem
OrderAccountDeduction extraDeduction = orderAccountBiz.initDeduction(inProgressVO.getExtraAmount(), "消费额外费用", DeductionTypeEnum.EXTRA, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(extraDeduction);
}else {
//否则,设置返回钱
refundAmount = refundAmount.add(orderItem.getRealAmount().subtract(consumeAmount));
}
} else {
}
}else {
//返回剩余免费天数,返回优惠券,订单款
refundAmount = refundAmount.add(orderItem.getRealAmount());
inProgressVO.setBackFreeDays(backFreeDays);
}
inProgressVO.setRefundOrderAmount(refundAmount);
inProgressVO.setBackCoupons(backCouponNos);
//计算违约金
//residueDays * 身份价格
if(residueDays > 0) {
if(residueDays > 2) {
residueDays = 2;
}
inProgressVO.setViolateAmount(orderItem.getUnitPrice().multiply(new BigDecimal((residueDays + ""))));
OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), "违约金", DeductionTypeEnum.VIOLATE_ADVANCE, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(violateDeduction);
}else if(residueDays < 0){
//如果订单 出发中 或者 已完成 或者定损中
if(OrderStatusEnum.ORDER_WAIT.equals(baseOrder.getStatus()) ||
OrderStatusEnum.ORDER_FINISH.equals(baseOrder.getStatus()) ||
OrderStatusEnum.ORDER_FIXED_LOSS.equals(baseOrder.getStatus())) {
Integer overDays = 0 - residueDays;
if(overDays > 2) {
overDays = 2;
}
//超过的天数 * 200% * 单价
inProgressVO.setViolateAmount(orderItem.getUnitPrice().multiply(new BigDecimal(2+ "")).multiply(new BigDecimal((overDays + ""))));
OrderAccountDeduction violateDeduction = orderAccountBiz.initDeduction(inProgressVO.getViolateAmount(), "违约金", DeductionTypeEnum.VIOLATE_DELAY, OrderAccountDeduction.ORIGIN_DEPOSIT);
oad.getDeductions().add(violateDeduction);
}
}
return new InProgressVO();
return inProgressVO;
}
public InProgressVO inProgressCalculate(BaseOrder baseOrder, Integer useDays) {
......@@ -113,6 +153,15 @@ public class OrderCalculateBiz {
setOrderId(baseOrder.getId());
}});
Integer freeDays = (null == orderItem.getCutNum())?0 :orderItem.getCutNum();
return inProgressCalculate(baseOrder, orderItem, freeDays, useDays);
return inProgressCalculate(baseOrder, orderItem, freeDays, useDays, null);
}
public InProgressVO calculateOrderComplete(BaseOrder baseOrder, OrderRentVehicleDetail orvd, OrderAccountDetail oad, OrderItem orderItem, Integer useDays) {
InProgressVO inProgressVO = inProgressCalculate(baseOrder, orderItem, orvd.getFreeDays(), useDays, oad);
oad.setDepositAmount(orvd.getDeposit().subtract(inProgressVO.getExtraAmount()).subtract(inProgressVO.getViolateAmount()));
oad.setOrderAmount(inProgressVO.getRefundOrderAmount());
oad.setOriginDepositAmount(orvd.getDeposit());
oad.setOriginOrderAmount(baseOrder.getRealAmount());
return inProgressVO;
}
}
\ No newline at end of file
package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.calculate.InProgressVO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.tour.feign.TourFeign;
......@@ -16,7 +19,6 @@ import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.util.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -62,6 +64,9 @@ public class OrderCancelBiz {
@Autowired
OrderCalculateBiz orderCalculateBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
@Autowired
UserFeign userFeign;
......@@ -110,6 +115,8 @@ public class OrderCancelBiz {
setVersion(baseOrder.getVersion());
}};
BaseOrder hasUpdateOrder = baseOrderBiz.updateSelectiveByIdReT(updateOrder);
InProgressVO inProgressVO = null;
OrderAccountDetail oad = new OrderAccountDetail();
//触发退款流程
//判断是否已支付
......@@ -135,10 +142,15 @@ public class OrderCancelBiz {
//获取出发时间 到现在 距离时间
Long timeLag = orvd.getStartTime() - System.currentTimeMillis();
if(timeLag < 0 ) {
//开始时间当天时间戳
Long beginOfStartDay = DateUtil.beginOfDay(DateUtil.date(orvd.getStartTime())).getTime();
//计算:使用天数 当前时间 - 开始时间的0时0分0秒
Long useTimeLag = System.currentTimeMillis() - orvd.getStartTime();
Long useTimeLag = System.currentTimeMillis() - beginOfStartDay;
Integer useDays = new BigDecimal(useTimeLag + "").divide(new BigDecimal((24 * 60 * 60 * 1000)+ "")).setScale(0, BigDecimal.ROUND_UP).intValue();
orderCalculateBiz.inProgressCalculate(baseOrder, orderItem, freeDays, useDays);
inProgressVO = orderCalculateBiz.calculateOrderComplete(baseOrder, orvd, oad, orderItem, useDays);
//结合
//退款子流程: 订单基础,退款描述,退款金额
orderAccountBiz.refundSubProcess(baseOrder, "", baseOrder.getRealAmount().subtract(orvd.getDeposit()), oad.getDepositAmount().add(oad.getOrderAmount()), AccountTypeEnum.OUT_ORDER_FUND.getCode(), RefundStatusEnum.ALL.getCode(), oad);
}else {
//没到出车时间
......@@ -147,27 +159,19 @@ public class OrderCancelBiz {
freeDayAmount = orderItem.getUnitPrice().multiply(new BigDecimal(orvd.getFreeDays()+ ""));
//违约金封顶 租车身份价 * 2天
BigDecimal topAmount = orderItem.getUnitPrice().multiply(new BigDecimal("2"));
BigDecimal topAmount = orderItem.getUnitPrice().multiply(new BigDecimal(2+ ""));
if(freeDayAmount.compareTo(topAmount) > 0) {
freeDayAmount = freeDayAmount;
}
}
//退款流程
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, orderItem.getRealAmount(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, orvd.getDeposit(), freeDayAmount);
}
//退款流程
//退订单款
orderRefundBiz.rentRefundProcess(hasUpdateOrder, timeLag, APP_ORDER+ "_"+ RENT_REFUND);
//退押金
orderRefundBiz.rentRefundDepositProcess(hasUpdateOrder, orvd.getDeposit(), timeLag, APP_ORDER+ "_"+ RENT_REFUND, freeDayAmount);
//已付款的取消订单发送消息
try {
AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData();
//处理后台用户提醒短信的发送
// orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_CANCEL);
orderMsgBiz.handelMsgCancel(orvd, otd, omd, baseOrder, appUserDTO);
}catch (Exception e) {
log.error(e.getMessage(), e);
......@@ -177,15 +181,26 @@ public class OrderCancelBiz {
otd = orderTourDetailBiz.selectOne(new OrderTourDetail(){{
setOrderId(baseOrder.getId());
}});
Long timeLag = otd.getStartTime() - System.currentTimeMillis();
OrderItem adultItem = orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.TOUR_ADULT.getCode());
setOrderId(baseOrder.getId());
}});
OrderItem childItem = orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.TOUR_CHILD.getCode());
setOrderId(baseOrder.getId());
}});
//判断是省内还是省外
String key = TOUR_IN_REFUND;
if(SYS_TRUE.equals(otd.getIsOutside())) {
key = TOUR_REFUND;
}
//退款流程
orderRefundBiz.rentRefundProcess(hasUpdateOrder, timeLag, APP_ORDER+ "_"+ key);
orderAccountBiz.rentRefundProcessCancel(hasUpdateOrder, adultItem.getRealAmount().add(childItem.getRealAmount()), timeLag, APP_ORDER+ "_"+ key, BigDecimal.ZERO, BigDecimal.ZERO);
//站点总人数减少
tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, (otd.getTotalNumber() * -1));
......@@ -209,11 +224,20 @@ public class OrderCancelBiz {
//取消租车免费天数使用
if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
int result = userFeign.memberDays(baseOrder.getUserId(), orvd.getFreeDays(), UserFeign.MEMBER_DAYS_WITHDRAW);
Integer freeDays = (null == inProgressVO) ? orvd.getFreeDays(): inProgressVO.getBackFreeDays();
int result = userFeign.memberDays(baseOrder.getUserId(), freeDays, UserFeign.MEMBER_DAYS_WITHDRAW);
if(result < 0) {
throw new BaseException(ResultCode.FAILED_CODE);
}
}
//返还优惠券
if(StrUtil.isNotBlank(baseOrder.getCouponTickerNos())) {
List<String> backCoupons = (null == inProgressVO)? inProgressVO.getBackCoupons(): Convert.convert(List.class, baseOrder.getCouponTickerNos().split(","));
for(String backCoupon : backCoupons) {
activityFeign.cancelUse(backCoupon);
}
}
}else if(OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
otd = orderTourDetailBiz.selectOne(new OrderTourDetail(){{
setOrderId(baseOrder.getId());
......
......@@ -10,6 +10,7 @@ import com.xxfc.platform.order.entity.BaseOrder;
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.pojo.account.OrderAccountDetail;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
......@@ -61,6 +62,9 @@ public class RentDepositJobHandler extends IJobHandler {
@Autowired
OrderRefundBiz orderRefundBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
@Autowired
OrderMsgBiz orderMsgBiz;
......@@ -120,7 +124,9 @@ public class RentDepositJobHandler extends IJobHandler {
refundAmont = orvd.getReturnPayResidue();
refundDesc += refundAmont.toString();
}
orderRefundBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT);
OrderAccountDetail oad = new OrderAccountDetail();
orderAccountBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), AccountTypeEnum.OUT_RESIDUE_DEPOSIT, oad);
//orderRefundBiz.refundTrigger(baseOrder, orvd, BigDecimal.ZERO, orvd.getReturnPayResidue(), refundAmont, refundDesc, RefundStatusEnum.REFUND_DEPOSIT.getCode(), RefundTypeEnum.RESIDUE_DEPOSIT);
orderDepositRefundRecordBiz.completeRecordStatus(crosstown.getId(), DepositRefundStatus.VIOLATIONARRIVAL);
orderMsgBiz.handelMsgDeposit(orvd, baseOrder, userFeign.userDetailById(baseOrder.getUserId()).getData());
}
......
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderAccount;
import tk.mybatis.mapper.common.Mapper;
/**
* 订单帐目
*
* @author zhoujw
* @email 18178966185@163.com
* @date 2019-09-09 15:51:16
*/
public interface OrderAccountMapper extends Mapper<OrderAccount> {
}
......@@ -3,6 +3,7 @@ package com.xxfc.platform.order.mqhandler;
import cn.hutool.json.JSONUtil;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.order.biz.OrderAccountBiz;
import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import lombok.extern.slf4j.Slf4j;
......@@ -27,6 +28,9 @@ public class RefundMQHandler {
@Autowired
OrderRefundBiz orderRefundBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
/**
* 退款
* @param
......@@ -42,7 +46,7 @@ public class RefundMQHandler {
String msg = new String(message.getBody(), "UTF-8");
OrderMQDTO orderMQDTO = JSONUtil.toBean(msg, OrderMQDTO.class);
orderRefundBiz.refundPartDeposit(orderMQDTO);
orderAccountBiz.refundPartDeposit(orderMQDTO);
executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
......
package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
......@@ -48,6 +49,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.lang.reflect.Array;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
......@@ -103,10 +105,11 @@ public class BackStageOrderController extends CommonBaseController implements Us
dto.setEndTime(new Date().getTime());
}
}
if (StringUtils.isNotBlank(dto.getPhone())) {
AppUserLogin appUserLogin = userFeign.one(dto.getPhone());
if (appUserLogin != null) {
dto.setUserId(appUserLogin.getId());
if (StringUtils.isNotBlank(dto.getPhone())||StringUtils.isNotBlank(dto.getRealName())) {
List<AppUserLogin> appUserLoins = userFeign.getOne(dto.getPhone(),dto.getRealName());
if (CollectionUtil.isNotEmpty(appUserLoins)) {
List<Integer> collect = appUserLoins.parallelStream().map(AppUserLogin::getId).collect(Collectors.toList());
dto.setUserIds(collect);
}else {
return ObjectRestResponse.succ(new PageDataVO<>());
}
......@@ -121,8 +124,8 @@ public class BackStageOrderController extends CommonBaseController implements Us
dto.setCompanyIds(companyIds);
}
if (StringUtils.isNotEmpty(dto.getPlateNumber())){
List<String> vehicleIds = vehicleFeign.findbyPlateNumber(dto.getPlateNumber().trim());
if (StringUtils.isNotEmpty(dto.getPlateNumber())||StringUtils.isNotEmpty(dto.getVehicleCode())){
List<String> vehicleIds = vehicleFeign.findbyPlateNumberAndVehicleCod(dto.getPlateNumber(),dto.getVehicleCode());
dto.setVehicleIds(vehicleIds);
}
......@@ -148,10 +151,11 @@ public class BackStageOrderController extends CommonBaseController implements Us
if(appUserVo != null) {
orderPageVO.setTelephone(appUserVo.getUsername());
orderPageVO.setUsername(appUserVo.getNickname());
orderPageVO.setRealName(appUserVo.getRealname());
}
if (orderPageVO.getOrderRentVehicleDetail() != null && orderPageVO.getOrderRentVehicleDetail().getVehicleId() != null) {
RestResponse<Vehicle> restResponse = vehicleFeign.findById(orderPageVO.getOrderRentVehicleDetail().getVehicleId());
log.info("获取车辆信息返回消息:{}", restResponse.getMessage());
log.info("获取车辆信息返回消息:{}", restResponse.getData());
if (restResponse.getData() != null) {
orderPageVO.setVehicleNumberPlat(restResponse.getData().getNumberPlate());
}
......
......@@ -309,6 +309,16 @@ public class BaseOrderController extends CommonBaseController implements UserRes
private String phone;
/**
* 后台搜索条件:真实姓名
*/
private String realName;
/**
* 后台搜索条件:车辆编号
*/
private String vehicleCode;
private List<String> vehicleIds;
//订单用户ID列表
......
package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderAccountBiz;
import com.xxfc.platform.order.entity.OrderAccount;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("orderAccount")
public class OrderAccountController extends BaseController<OrderAccountBiz,OrderAccount> {
}
\ No newline at end of file
......@@ -72,43 +72,43 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
switch (orderTypeEnum) {
case RENT_VEHICLE:
orderRefundAmount = orderRefundBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
, orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis()
, DictionaryKey.APP_ORDER+ "_"+ RENT_REFUND
, refundDescBuilder);
OrderRentVehicleDetail orvd = orderPageVO.getOrderRentVehicleDetail();
Long timeLag = orvd.getStartTime() - System.currentTimeMillis();
//原退还押金
BigDecimal originalDeductAmount = BigDecimal.ZERO;
BigDecimal originalRefundAmount = BigDecimal.ZERO.add(orvd.getDeposit());
//判断是否使用免费天数,并且进行扣款
if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
refundDescBuilder = new StringBuilder("");
OrderItem orderItem = orderItemBiz.selectOne(new OrderItem(){{
setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
setOrderId(orderPageVO.getId());
}});
originalDeductAmount = orderItem.getUnitPrice().multiply(new BigDecimal(orvd.getFreeDays()+ ""));
}
BigDecimal residueAmount = orderRefundBiz.calculateRefund(originalDeductAmount, timeLag, APP_ORDER+ "_"+ RENT_REFUND, refundDescBuilder);
residueAmount = residueAmount.setScale(2, RoundingMode.HALF_UP);
//押金剩余款 :押金 - (原扣除款 - 剩余款)
//退款金额 :订单剩余款 + 押金剩余款
orderRefundAmount = orderRefundAmount.add(originalRefundAmount.subtract(originalDeductAmount.subtract(residueAmount)));
// orderRefundAmount = orderRefundBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
// , orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis()
// , DictionaryKey.APP_ORDER+ "_"+ RENT_REFUND
// , refundDescBuilder);
// OrderRentVehicleDetail orvd = orderPageVO.getOrderRentVehicleDetail();
// Long timeLag = orvd.getStartTime() - System.currentTimeMillis();
// //原退还押金
// BigDecimal originalDeductAmount = BigDecimal.ZERO;
// BigDecimal originalRefundAmount = BigDecimal.ZERO.add(orvd.getDeposit());
// //判断是否使用免费天数,并且进行扣款
// if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
// refundDescBuilder = new StringBuilder("");
// OrderItem orderItem = orderItemBiz.selectOne(new OrderItem(){{
// setType(ItemTypeEnum.VEHICLE_MODEL.getCode());
// setOrderId(orderPageVO.getId());
// }});
// originalDeductAmount = orderItem.getUnitPrice().multiply(new BigDecimal(orvd.getFreeDays()+ ""));
// }
// BigDecimal residueAmount = orderRefundBiz.calculateRefund(originalDeductAmount, timeLag, APP_ORDER+ "_"+ RENT_REFUND, refundDescBuilder);
// residueAmount = residueAmount.setScale(2, RoundingMode.HALF_UP);
//
// //押金剩余款 :押金 - (原扣除款 - 剩余款)
// //退款金额 :订单剩余款 + 押金剩余款
// orderRefundAmount = orderRefundAmount.add(originalRefundAmount.subtract(originalDeductAmount.subtract(residueAmount)));
break;
case TOUR:
//判断是省内还是省外
String key = TOUR_IN_REFUND;
if(SYS_TRUE.equals(orderPageVO.getOrderTourDetail().getIsOutside())) {
key = TOUR_REFUND;
}
orderRefundAmount = orderRefundBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
, orderPageVO.getOrderTourDetail().getStartTime() - System.currentTimeMillis()
, DictionaryKey.APP_ORDER+ "_"+ key
, refundDescBuilder);
break;
// String key = TOUR_IN_REFUND;
// if(SYS_TRUE.equals(orderPageVO.getOrderTourDetail().getIsOutside())) {
// key = TOUR_REFUND;
// }
// orderRefundAmount = orderRefundBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
// , orderPageVO.getOrderTourDetail().getStartTime() - System.currentTimeMillis()
// , DictionaryKey.APP_ORDER+ "_"+ key
// , refundDescBuilder);
// break;
default:
break;
}
......
......@@ -219,6 +219,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
BigDecimal damageSafeAmount = BigDecimal.ZERO;
// BigDecimal modelAmount = BigDecimal.ZERO;
BigDecimal couponAmount = BigDecimal.ZERO;
String couponDesc = "";
Integer vehicleDayNum = 0;
Integer freeDayNum = 0;
......@@ -314,6 +315,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail.getOrder().setCouponTickerNos(detail.getTickerNo().stream().collect(Collectors.joining(",")));
detail.getOrder().setHasDiscount(SYS_TRUE);
vehicleOrderItem.handleCouponAmount(couponAmount);
couponDesc += activityFeign.info(detail.getTickerNo().get(0)).getTitle();
}
}
......@@ -340,6 +342,11 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rvp.setModelAmount(vehicleOrderItem.getUnitPrice());
rvp.setVehicleDayNum(vehicleDayNum);
rvp.setFreeDayNum(freeDayNum);
rvp.setFreeAmount(vehicleOrderItem.getCutAmount());
rvp.setBuyVehicleAmount(vehicleOrderItem.getBuyAmount());
rvp.setCouponDesc(couponDesc);
//设置收费明细
costDetail(rvp, handleChildren(detail, vehicleDayNum));
return rvp;
......@@ -389,6 +396,9 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
if(DRIVER_TYPE_DAMAGE_SAFE.equals(detail.getDamageSafe())) {
childrenStr.append(",${tem_0104}");
}
if(detail.getFreeDays() > 0) {
childrenStr.append(",${tem_0105}");
}
if(StrUtil.isNotBlank(detail.getOrder().getCouponTickerNos())) {
childrenStr.append(",${tem_9901}");
}
......@@ -407,6 +417,8 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
OrderTemplate template = orderTemplateBiz.selectById(OrderCostEnum.RentVehicle.getCode());
template.setTemplate(orderTemplateBiz.result(template.getTemplate(), new HashMap(){{
put("children", children);
put("vehicleAmount", vo.getVehicleAmount());
put("realAmount", vo.getRealAmount());
}}));
String result = orderTemplateBiz.result(template, Dict.parse(vo));
vo.setCostDetail(result);
......@@ -433,4 +445,5 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
detail.setVehicleId(orr.getData().getVehicleId());
detail.setBookRecordId(orr.getData().getId());
}
}
......@@ -120,8 +120,12 @@
<if test="crtUser != null">
and b.crt_user = #{crtUser}
</if>
<if test="userId != null">
and b.user_id = #{userId}
<if test="userIds != null and userIds.size() > 0">
and b.user_id in
<foreach collection="userIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="status != null">
and b.status = #{status}
......@@ -185,7 +189,7 @@
</foreach>
</if>
<if test="status != null and status == -1">
AND b.status in (6,-1)
AND b.status = -1
and b.refund_status in (0,2)
</if>
<if test="status != null and status != -1">
......
......@@ -138,9 +138,9 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
article.setType(0);
}
if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
throw new BaseException("必须设置seo");
}
// if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
// throw new BaseException("必须设置seo");
// }
if (article.getStatus()==1){
article.setAddTime(new Date());
......@@ -171,9 +171,9 @@ public class ArticleBiz extends BaseBiz<ArticleMapper, Article> {
@Transactional(rollbackFor = Exception.class)
public int updateSelectiveByIdRe(Article article){
article.setUpdTime(new Date());
if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
throw new BaseException("必须设置seo");
}
// if (article.getTagTitle()==null||article.getKeywords()==null||article.getDescription()==null) {
// throw new BaseException("必须设置seo");
// }
return mapper.updateByPrimaryKeySelective(article);
}
......
package com.xxfc.platform.universal.constant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 跳转页面类型
*/
public enum PushJumpType {
ALL(0,"app首页"),
VEHICLE_ORDER_DETAIL(1,"租车订单详情页"),
TOUR_ORDER_DETAIL(2,"旅游订单详情页"),
VEHICLE_ORDER_SCORE(3,"租车订单评价页"),
TOUR_ORDER_SCORE(4,"旅游订单评价页面"),
MEMBER_ORDER_DETAIL(5,"会员订单详情页"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
private static List<Map<String,Object>> list = new ArrayList<>();
static{
for(PushJumpType pushJumpType : PushJumpType.values()){
codeAndDesc.put(pushJumpType.getCode(),pushJumpType.getDesc());
Map<String,Object> map=new HashMap<>();
map.put("code",pushJumpType.getCode());
map.put("value",pushJumpType.getDesc());
list.add(map);
}
}
PushJumpType(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static String getByCode(Integer code) {
switch (code) {
case 1:
return ALL.getDesc();
case 2:
return VEHICLE_ORDER_DETAIL.getDesc();
case 3:
return VEHICLE_ORDER_SCORE.getDesc();
case 4:
return TOUR_ORDER_SCORE.getDesc();
case 5:
return MEMBER_ORDER_DETAIL.getDesc();
}
return "";
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
public static List<Map<String,Object>> getList(){
return list;
}
}
package com.xxfc.platform.universal.constant;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 系统发送类型
*/
public enum PushSendType {
ALL(0,"全部"),
VEHICLE_PAY(1,"租车预定成功"),
TOUR_PAY(2,"旅游预订成功"),
VEHICLE_CANCEL(3,"租车取消预订"),
TOUR_CANCEL(4,"旅游取消预订"),
TAKE_VEHICLE(5,"取车提醒"),
ALSO_VEHICLE(6,"还车提醒"),
GET_VEHICLE(7,"上车提醒"),
VEHICLE_FINISH(8, "租车订单完成"),
TOUR_FINISH(9, "旅游订单完成"),
MEMBER_PAY(10, "会员购买成功")
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
private static List<Map<String,Object>> list = new ArrayList<>();
static{
for(PushSendType pushSendType : PushSendType.values()){
codeAndDesc.put(pushSendType.getCode(),pushSendType.getDesc());
Map<String,Object> map=new HashMap<>();
map.put("code",pushSendType.getCode());
map.put("value",pushSendType.getDesc());
list.add(map);
}
}
PushSendType(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static String getByCode(Integer code) {
return codeAndDesc.get(code);
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
public static List<Map<String,Object>> getList(){
return list;
}
}
......@@ -64,6 +64,10 @@ public class MessagePush implements Serializable {
@ApiModelProperty(value = "指定跳转页面")
private String intent;
@Column(name = "jump_type")
@ApiModelProperty(value = "跳转页面类型:0-进入app;其他见枚举")
private Integer jumpType;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
......
//package com.xxfc.platform.universal.fastservice.api;
//
//
//import com.alibaba.fastjson.JSONObject;
//import com.github.wxiaoqi.security.common.util.HTTPSUtils;
//import com.github.wxiaoqi.security.common.util.process.SystemConfig;
//import com.xxfc.platform.universal.fastservice.dto.EventNotifyRequestDto;
//import com.xxfc.platform.universal.fastservice.dto.RequestBodyDto;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Service;
//
//import java.util.HashMap;
//import java.util.Map;
//
//@Slf4j
//@Service
//public class FastServiceApi {
//
// public String getAccessToken(String code) {
// RequestBodyDto requestBodyDto = new RequestBodyDto(SystemConfig.HUAWEI_FAST_SERVICE_GRANT_TYPE_AUTH,
// SystemConfig.HUAWEI_FAST_SERVICE_CLIENT_ID,
// SystemConfig.HUAWEI_FAST_SERVICE_CLIENT_SECRET,
// code,
// SystemConfig.HUAWEI_FAST_SERVICE_REDIRECT_URI);
// String paramString = requestBodyDto.getParamMap();
// log.info("获取token参数列表: param = {}", paramString);
// Map<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/x-www-form-urlencoded");
// try {
// String result = HTTPSUtils.post(SystemConfig.HUAWEI_FAST_SERVICE_GET_TOKEN, paramString, headers);
// log.info("获取token返回结果: result = {}", result);
// return result;
// } catch (Exception e) {
// log.info("获取token返回失败");
// e.printStackTrace();
// }
// return null;
// }
//
// public String refreshAccessToken(String refreshToken) {
// RequestBodyDto requestBodyDto = new RequestBodyDto(SystemConfig.HUAWEI_FAST_SERVICE_GRANT_TYPE_REFRESH_TOKEN,
// refreshToken,
// SystemConfig.HUAWEI_FAST_SERVICE_CLIENT_ID,
// SystemConfig.HUAWEI_FAST_SERVICE_CLIENT_SECRET
// );
// String paramString = requestBodyDto.getParamMap();
// Map<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/x-www-form-urlencoded");
// try {
// String result = HTTPSUtils.post(SystemConfig.HUAWEI_FAST_SERVICE_GET_TOKEN, paramString, headers);
// log.info("刷新token返回结果: result = {}", result);
// return result;
// } catch (Exception e) {
// log.info("刷新token返回失败");
// e.printStackTrace();
// }
// return null;
// }
// public String getOpenId(String accessToken) {
// RequestBodyDto requestBodyDto = new RequestBodyDto(SystemConfig.HUAWEI_FAST_SERVICE_NSP_SVC,
// SystemConfig.HUAWEI_FAST_SERVICE_OPEN_ID,
// accessToken
// );
// String paramString = requestBodyDto.getParamMap();
// log.info("获取openId参数列表: param = {}", paramString);
// Map<String, String> headers = new HashMap<>();
// headers.put("Content-Type", "application/x-www-form-urlencoded");
// try {
// String result = HTTPSUtils.post(SystemConfig.HUAWEI_FAST_SERVICE_GET_OPENID, paramString, headers);
// log.info("获取openId返回结果: result = {}", result);
// return result;
// } catch (Exception e) {
// log.info("获取openId返回失败");
// e.printStackTrace();
// }
// return null;
// }
//
// public String eventNotify(EventNotifyRequestDto eventNotifyRequestDto) {
// Map<String, String> headers = new HashMap<>();
// headers.put("x-appid", SystemConfig.HUAWEI_FAST_SERVICE_CLIENT_ID);
// headers.put("Authorization", eventNotifyRequestDto.getOAuthToken().getAccessToken());
// headers.put("Content-Type", "application/json");
// headers.put("Accept", "application/json");
// String paramString = JSONObject.toJSONString(eventNotifyRequestDto);
// log.info("事件通知参数列表: param = {}", paramString);
// try {
// String result = HTTPSUtils.post(SystemConfig.HUAWEI_FAST_SERVICE_EVENT_NOTIFY, paramString, headers);
// log.info("事件通知返回: result = {}", result);
// return result;
// } catch (Exception e) {
// log.info("事件通知返回失败");
// e.printStackTrace();
// }
// return null;
// }
//
// public static void main(String[] args) {
// FastServiceApi fastServiceApi = new FastServiceApi();
//
// }
//}
package com.xxfc.platform.universal.fastservice.dto;
import lombok.Data;
/**
* 快服务事件通知参数实体
*/
@Data
public class EventNotifyRequestDto {
private String requestTime; // String(17) M 请求报文的发送时间,格式:yyyyMMddHHmmssSSS(UTC)
private String requestId;// String M 事件唯一ID。在消息是否重传、以及撤销时作唯一识别标识。如果重传,则需要保证重传消息的requestId与原消息的requestId一致,服务端会对重复请求进行过滤处理。其他情况,则需要保证每次requestId不同。可以使用UUID作为requestId;Pattern: [a-zA-Z0-9\-]{1,64}。
private String openId; //String(512) M 华为分配的,第三方帐号与华为帐号的关联ID。
private String eventName; // String(100) M 事件名称,由开发者定义,在事件卡片规则中关联到某个卡片;需要保证事件名称在同一个appid下是唯一的。
private String parameters; //String(255) O 事件的参数,由开发者定义,华为快服务智慧平台透传给卡片页面。 Json格式,key不能以_、$和hag_开始,不要使用for, if, show, tid等保留字。
private String effectiveTime; //String(17) M 事件的生效时间,如酒店入住时间;UTC时区,精确到毫秒,格式:yyyyMMddHHmmssSSS。
private String expireTime; //String(17) M 事件的失效时间,超过该时间后,事件不再通知用户,UTC时区,精确到毫秒,格式:yyyyMMddHHmmssSSS。
private String abilityId; //String(128) O 通知的服务ID,开发者可以在华为快服务智慧平台的开发者控制台上获取。
private OAuthToken oAuthToken; //OAuthToken O 开发者在账号绑定完成后,如果快应用服务器需要对用户的快应用请求进行鉴权,则需要给用户分配AccessToken/RefreshToken信息;如果快应用服务器需要刷新保存在华为快服务智慧平台的用户AccessToken/RefreshToken,也通过该参数。
}
package com.xxfc.platform.universal.fastservice.dto;
import lombok.Data;
@Data
public class OAuthToken {
private String accessToken; //String(512) M 快应用服务器遵循OAuth2.0规范,分配的用户AccessToken。
private Long tokenExpire; // Long M 用户AccessToken的有效期,单位为秒,过期后,华为快服务智慧平台会使用refreshToken向快应用服务器重新申请。
private String refreshToken; // String(512) M 快应用服务器遵循OAuth2.0规范提供的,用于刷新AccessToken的标识。
private String tokenType = "bearer"; // String(64) O 传递Token的字段,默认为 bearer。
}
package com.xxfc.platform.universal.fastservice.dto;
import com.github.wxiaoqi.security.common.util.process.SystemConfig;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.net.URLEncoder;
@Data
public class RequestBodyDto {
private String grantType;
private String refreshToken;
private String clientId;
private String clientSecret;
private String code;
private String redirectUri;
private String nspSvc;
private String openId;
private String accessToken;
public RequestBodyDto(String grantType, String refreshToken, String clientId, String clientSecret, String code, String redirectUri, String nspSvc, String openId, String accessToken) {
this.grantType = grantType;
this.refreshToken = refreshToken;
this.clientId = clientId;
this.clientSecret = clientSecret;
this.code = code;
this.redirectUri = redirectUri;
this.nspSvc = nspSvc;
this.openId = openId;
this.accessToken = accessToken;
}
public RequestBodyDto(String grantType, String clientId, String clientSecret, String code, String redirectUri) {
this.grantType = grantType;
this.clientId = clientId;
this.clientSecret = clientSecret;
this.code = code;
this.redirectUri = redirectUri;
}
public RequestBodyDto(String grantType, String refreshToken, String clientId, String clientSecret) {
this.grantType = grantType;
this.refreshToken = refreshToken;
this.clientId = clientId;
this.clientSecret = clientSecret;
}
public RequestBodyDto(String nspSvc, String openId, String accessToken) {
this.nspSvc = nspSvc;
this.openId = openId;
this.accessToken = accessToken;
}
public String getParamMap(){
StringBuilder stringBuilder = new StringBuilder();
if(StringUtils.isNotBlank(this.grantType)) {
stringBuilder.append("granType = ");
stringBuilder.append( URLEncoder.encode(this.grantType));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.refreshToken)) {
stringBuilder.append("refresh_token = ");
stringBuilder.append( URLEncoder.encode(this.refreshToken));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.clientId)) {
stringBuilder.append("client_id = ");
stringBuilder.append( URLEncoder.encode(this.clientId));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.clientSecret)) {
stringBuilder.append("client_secret = ");
stringBuilder.append( URLEncoder.encode(this.clientSecret));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.code)) {
stringBuilder.append("code = ");
stringBuilder.append( URLEncoder.encode(this.code));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.redirectUri)) {
stringBuilder.append("redirect_uri = ");
stringBuilder.append( URLEncoder.encode(this.redirectUri));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.nspSvc)) {
stringBuilder.append("nsp_svc = ");
stringBuilder.append( URLEncoder.encode(this.nspSvc));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.openId)) {
stringBuilder.append("open_id = ");
stringBuilder.append( URLEncoder.encode(this.openId));
stringBuilder.append("&");
}
if(StringUtils.isNotBlank(this.accessToken)) {
stringBuilder.append("access_token = ");
stringBuilder.append( URLEncoder.encode(this.accessToken));
stringBuilder.append("&");
}
return stringBuilder.toString();
}
}
......@@ -89,6 +89,12 @@
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</dependency>
<dependency>
<groupId>com.github.andrewoma.dexx</groupId>
<artifactId>dexx-collections</artifactId>
<version>0.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -20,6 +20,8 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.xxfc.platform.universal.constant.PushJumpType;
import com.xxfc.platform.universal.constant.PushSendType;
import com.xxfc.platform.universal.entity.MessagePush;
import com.xxfc.platform.universal.mapper.MessagePushMapper;
import lombok.extern.slf4j.Slf4j;
......@@ -27,6 +29,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
......@@ -126,10 +131,10 @@ public class JPushBiz extends BaseBiz<MessagePushMapper, MessagePush> {
//推送
public ObjectRestResponse jpushToAlias(Integer id,String userIds){
public ObjectRestResponse jpushToAlias(Integer id,String userIds,String orderNo){
ClientConfig clientConfig = ClientConfig.getInstance();
final JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, clientConfig);
PushPayload payload = buildPushObject_android_id(id,userIds);
PushPayload payload = buildPushObject_android_id(id,userIds,orderNo);
if (payload==null){
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE,"参数无效");
}
......@@ -152,7 +157,7 @@ public class JPushBiz extends BaseBiz<MessagePushMapper, MessagePush> {
}
public PushPayload buildPushObject_android_id(Integer id,String userIds) {
public PushPayload buildPushObject_android_id(Integer id,String userIds,String orderNo) {
Example example =new Example(MessagePush.class);
example.createCriteria().andEqualTo("id",id).andEqualTo("isDel",0);
MessagePush messagePush=mapper.selectOneByExample(example);
......@@ -172,6 +177,11 @@ public class JPushBiz extends BaseBiz<MessagePushMapper, MessagePush> {
if (StringUtils.isNotBlank(messagePush.getIntent())){
intent= getJsonObject(messagePush.getIntent());
}
Map<String, String> extras = new HashMap<String, String>();
extras.put("onclickType",messagePush.getJumpType()+"");
if (StringUtils.isNotBlank(orderNo)){
extras.put("orderNo",orderNo);
}
Notification notification = Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.setAlert(messagePush.getAlert())
......@@ -184,6 +194,7 @@ public class JPushBiz extends BaseBiz<MessagePushMapper, MessagePush> {
.setTitle(messagePush.getTitle())
.setPriority(1)
.setIntent(intent)
.addExtras(extras)
.build())
.build();
return PushPayload.newBuilder()
......@@ -216,7 +227,9 @@ public class JPushBiz extends BaseBiz<MessagePushMapper, MessagePush> {
}
//删除推送内容
public ObjectRestResponse delMessagePush(MessagePush messagePush){
public ObjectRestResponse delMessagePush(Integer id){
MessagePush messagePush=new MessagePush();
messagePush.setId(id);
messagePush.setIsDel(1);
updateSelectiveById(messagePush);
return ObjectRestResponse.succ();
......@@ -236,6 +249,16 @@ public class JPushBiz extends BaseBiz<MessagePushMapper, MessagePush> {
return ObjectRestResponse.succ(PageDataVO.pageInfo(page, limit, ()->mapper.selectByExample(example)));
}
//获取枚举列表
public List<Map<String,Object>> getSendTypes(){
return PushSendType.getList();
}
//获取枚举列表
public List<Map<String,Object>> getJumpTypes(){
return PushJumpType.getList();
}
}
......@@ -36,8 +36,9 @@ public class JPushController {
@RequestMapping(value = "/stype", method = RequestMethod.GET)
public ObjectRestResponse stype(@RequestParam(value = "id",defaultValue = "0") Integer id,
@RequestParam(value = "userIds",defaultValue = "") String userIds) throws Exception {
return jPushBiz.jpushToAlias(id,userIds);
@RequestParam(value = "userIds",defaultValue = "") String userIds,
@RequestParam(value = "orderNo",defaultValue = "") String orderNo) throws Exception {
return jPushBiz.jpushToAlias(id,userIds,orderNo);
}
@RequestMapping(value = "/addMessagePush", method = RequestMethod.POST)
......@@ -51,9 +52,9 @@ public class JPushController {
}
@RequestMapping(value = "/del", method = RequestMethod.POST)
public ObjectRestResponse delMessagePush(@RequestBody MessagePush messagePush){
return jPushBiz.delMessagePush(messagePush);
@RequestMapping(value = "/del/{id}", method = RequestMethod.DELETE)
public ObjectRestResponse delMessagePush(@PathVariable Integer id){
return jPushBiz.delMessagePush(id);
}
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ObjectRestResponse getList(@RequestParam(value = "page",defaultValue = "1") Integer page,
......@@ -63,6 +64,22 @@ public class JPushController {
return jPushBiz.getList(page,limit,title,type);
}
@RequestMapping(value = "/getOne/{id}", method = RequestMethod.GET)
public ObjectRestResponse getOne(@PathVariable Integer id){
return ObjectRestResponse.succ(jPushBiz.selectById(id));
}
@RequestMapping(value = "/sendTpyes", method = RequestMethod.GET)
public ObjectRestResponse sendTpyes(){
return ObjectRestResponse.succ(jPushBiz.getSendTypes());
}
@RequestMapping(value = "/jumpTpyes", method = RequestMethod.GET)
public ObjectRestResponse jumpTpyes(){
return ObjectRestResponse.succ(jPushBiz.getJumpTypes());
}
}
......
......@@ -248,7 +248,7 @@ public class SmsService {
}
if (i>3){
if (i>2){
jsonParams.put(param+(i+2),para);
}else {
jsonParams.put(param+(i+1),para);
......
......@@ -58,29 +58,7 @@ public enum BookType {
}
public static String getByCode(Integer code) {
switch (code) {
case 2:
return EMPLOYEE_APPLY.getDesc();
case 1:
return USER_RENT.getDesc();
case 3:
return REPAIRING.getDesc();
case 4:
return SHOW.getDesc();
case 5:
return TOUR.getDesc();
case 6:
return MAINTAIN.getDesc();
case 7:
return BOOKING.getDesc();
case 8:
return DISABLE.getDesc();
case 9:
return CUSTOMER_APPLY.getDesc();
case 10:
return OTHER.getDesc();
}
return "";
return codeAndDesc.get(code);
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
......
......@@ -152,4 +152,7 @@ public interface VehicleFeign {
@GetMapping("/vehicleInfo/findwith_plate_number")
List<String> findbyPlateNumber(@RequestParam(value = "plateNumber") String plateNumber);
@GetMapping("/vehicleInfo/findVehicleIds")
List<String> findbyPlateNumberAndVehicleCod(@RequestParam(value = "plateNumber") String plateNumber,@RequestParam(value = "vehicleCode") String vehicleCode);
}
......@@ -18,6 +18,11 @@ public class VehicleBookRecordQueryVo extends PageParam {
*/
private String numberPlate;
/**
* 车牌和车辆编号的关键字
*/
private String keywords;
/**
* 所属分支机构(id)
*/
......
......@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz;
import cn.hutool.core.bean.BeanUtil;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
......@@ -393,4 +394,8 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
pageDataVO.setTotalCount(dataVO.getTotalCount());
return pageDataVO;
}
public List<JSONObject> getList(){
return mapper.getList();
}
}
......@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.biz;
import com.ace.cache.annotation.CacheClear;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.RandomUtil;
......@@ -25,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
......@@ -124,6 +126,36 @@ public class CompanyBaseBiz extends BaseBiz<CompanyBaseMapper, CompanyBase> {
return ObjectRestResponse.succ();
}
//临时数据同步5(添加车辆)
public ObjectRestResponse synchro5(){
List<JSONObject> list= branchCompanyBiz.getList();
Integer number=10000;
if (list.size()>0){
for (JSONObject obj:list){
Integer code= obj.getInteger("code");
if (code==null||code==0){
continue;
}
Example example=new Example(Vehicle.class);
example.createCriteria().andEqualTo("code",code);
List<Vehicle> vehicles=vehicleBiz.selectByExample(example);
int num=0;
for (Vehicle vehicle:vehicles){
num++;
if (num==1){
continue;
}
number++;
vehicle.setCode(number);
vehicleBiz.updateSelectiveById(vehicle);
}
}
}
return ObjectRestResponse.succ();
}
public String getNumberPlate(int number){
String str=number+"";
......
......@@ -164,21 +164,21 @@ public class VehicleActiveService {
}
List<VehicleBookRecordVo> vehicleBookRecordVos = vehicleBookRecordBiz.selectByVehicleId(vehicleId);
if (vehicleBookRecordVos != null && vehicleBookRecordVos.size() > 0) {
Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordVos.iterator();
while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() != 1) { //已经出车
stringBuilder.append("中,使用人:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUsername());
stringBuilder.append(" 使用人电话:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUserPhone());
return stringBuilder.toString();
}
Iterator<VehicleBookRecordVo> iterator = vehicleBookRecordVos.iterator();
while (iterator.hasNext()) {
VehicleBookRecordVo vehicleBookRecordVo = iterator.next();
if (vehicleBookRecordVo.getVehicleDepartureLogVo() != null && vehicleBookRecordVo.getVehicleDepartureLogVo().getState() != 1) { //已经出车
stringBuilder.append("中,使用人:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUsername());
stringBuilder.append(" 使用人电话:");
stringBuilder.append(vehicleBookRecordVo.getVehicleUserPhone());
return stringBuilder.toString();
}
}
}
stringBuilder.append(", 请联系管理员修改车辆状态为正常状态");
return stringBuilder.toString();
}
}
public void arrival(VehicleArrivalVo arrivalVo) {
Vehicle vehicle = vehicleMapper.selectByPrimaryKey(arrivalVo.getVehicleId());
......
......@@ -258,6 +258,10 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
if (addOrUpdateVehicleVo.getNumberPlate() == null) {
throw new BaseException(ResultCode.NUMBER_PLAT_CAN_NOT_BE_NULL);
}
boolean exist = checkCodeExist(addOrUpdateVehicleVo.getCode(),addOrUpdateVehicleVo.getId());
if (exist){
throw new BaseException("车辆编码已经被占用",400);
}
List<Vehicle> vehicles = mapper.lockByCode(addOrUpdateVehicleVo);
return vehicles;
......@@ -1448,14 +1452,46 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
}
public List<String> findVehicleIdsByPlateNumber(String plateNumber) {
List<String> vehicleIds = Lists.newArrayList();
List<String> vehicleIds = Lists.newArrayList();
Example example = new Example(Vehicle.class);
Example.Criteria criteria = example.createCriteria();
criteria.andLike("numberPlate",String.format("%%%s%%",plateNumber.trim()));
criteria.andLike("numberPlate", String.format("%%%s%%", plateNumber.trim()));
List<Vehicle> vehicles = mapper.selectByExample(example);
if (CollectionUtils.isEmpty(vehicles)) {
return vehicleIds;
}
return vehicles.stream().map(Vehicle::getId).collect(Collectors.toList());
}
public Boolean checkCodeExist(Integer code, String id) {
Example example = new Example(Vehicle.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("code", code);
criteria.andEqualTo("isDel",0);
if (StringUtils.isNotEmpty(id)) {
criteria.andNotEqualTo("id", id);
}
int count = mapper.selectCountByExample(example);
return count > 0;
}
public List<String> findbyPlateNumberAndVehicleCod(String plateNumber,String vehicleCode) {
List<String> vehicleIds = Lists.newArrayList();
Example example = new Example(Vehicle.class);
Example.Criteria criteria = example.createCriteria();
if (StringUtils.isNotBlank(plateNumber)) {
criteria.andLike("numberPlate", String.format("%%%s%%", plateNumber.trim()));
}
if (StringUtils.isNotBlank(vehicleCode)) {
criteria.andLike("code", String.format("%%%s%%", vehicleCode.trim()));
}
List<Vehicle> vehicles = mapper.selectByExample(example);
if (CollectionUtils.isEmpty(vehicles)){
return vehicleIds;
}
return vehicles.stream().map(Vehicle::getId).collect(Collectors.toList());
}
}
......@@ -32,17 +32,17 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
@Autowired
VehicleMapper vehicleMapper;
public PageInfo<VehicleDepartureLogVo> page(String numberPlate,Integer code, String time, Integer page, Integer limit) {
public PageInfo<VehicleDepartureLogVo> page(String numberPlate, String time, Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(mapper.selectVoAll(numberPlate,code, time));
return new PageInfo<>(mapper.selectVoAll(numberPlate,code,zoneId,departureId,time));
}
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate, String time, Integer page, Integer limit, List<Integer> companyList) {
public PageInfo<VehicleDepartureLogVo> pageNotAllData(String numberPlate,Integer code,Integer zoneId,Integer departureId, String time, Integer page, Integer limit, List<Integer> companyList) {
PageHelper.startPage(page, limit);
if (companyList == null || companyList.size() == 0) {
companyList = Arrays.asList(-1);
}
return new PageInfo<>(mapper.selectVoAllNotAllData(numberPlate, time, companyList));
return new PageInfo<>(mapper.selectVoAllNotAllData(numberPlate,code,zoneId,departureId,time, companyList));
}
public PageInfo<VehicleDepartureLogVo> findByVehicle(String vehicleId, Integer page, Integer limit) {
......
......@@ -53,6 +53,7 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> {
try {
PageDataVO<VehicleModelVo> mPageDataVO = PageDataVO.pageInfo(vmqc.getPage(),
vmqc.getLimit(), () -> mapper.findVehicleModelPage(vmqc));
return ObjectRestResponse.succ(mPageDataVO);
} catch (Exception e) {
e.printStackTrace();
......@@ -127,7 +128,7 @@ public class VehicleModelBiz extends BaseBiz<VehicleModelMapper, VehicleModel> {
WeekendSqls.<VehicleModel>custom()
.andEqualTo(VehicleModel::getIsdel, 0)
.andEqualTo(VehicleModel::getHotSign,1)
).orderByDesc("id").build();
).orderByAsc("sort").build();
List<VehicleModel> vehicleModels = selectByExample(example);
if (CollectionUtils.isEmpty(vehicleModels)) {
return null;
......
package com.xxfc.platform.vehicle.mapper;
import com.alibaba.fastjson.JSONObject;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyListDTO;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
......@@ -17,4 +19,8 @@ public interface BranchCompanyMapper extends Mapper<BranchCompany>, SelectByIdLi
List<Integer> findCompanyIdsByAreaId(@Param("areaId") Integer areaId);
List<BranchCompanyListDTO > findBranchCompanys(@Param("provinceCode") Integer provinceCode,@Param("cityCode") Integer cityCode);
@Select("SELECT `code`,count(id) cd FROM `vehicle` WHERE is_del=0 and number_plate LIKE '%测试%' GROUP BY code HAVING cd>=2")
List<JSONObject> getList();
}
\ No newline at end of file
......@@ -14,9 +14,18 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
List<VehicleDepartureLogVo> selectByVehicleId(String vehicleId);
List<VehicleDepartureLog> selectByVehicle(String vehicleId);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate,@Param("code") Integer code, @Param("time") String time);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate, @Param("time") String time, @Param("companyList") List<Integer> companyList);
List<VehicleDepartureLogVo> selectVoAll(@Param("numberPlate") String numberPlate,
@Param("code") Integer code,
@Param("zoneId") Integer zoneId,
@Param("departureId") Integer departureId,
@Param("time") String time);
List<VehicleDepartureLogVo> selectVoAllNotAllData(@Param("numberPlate") String numberPlate,
@Param("code") Integer code,
@Param("zoneId") Integer zoneId,
@Param("departureId") Integer departureId,
@Param("time") String time,
@Param("companyList") List<Integer> companyList);
Integer selectMileageByVehicleId(String vehicleId);
......
......@@ -522,4 +522,16 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
List<String> findbyPlateNumber(@RequestParam(value = "plateNumber") String plateNumber){
return vehicleBiz.findVehicleIdsByPlateNumber(plateNumber);
}
@GetMapping("/exist_code/{code}")
public ObjectRestResponse<Boolean> checkCodeExist(@PathVariable(value = "code") Integer code,@RequestParam(value = "id") String id){
Boolean exist = vehicleBiz.checkCodeExist(code,id);
return ObjectRestResponse.succ(exist);
}
@GetMapping("/findVehicleIds")
public List<String> findbyPlateNumberAndVehicleCod(@RequestParam(value = "plateNumber",required = false) String plateNumber,@RequestParam(value = "vehicleCode",required = false) String vehicleCode){
return vehicleBiz.findbyPlateNumberAndVehicleCod(plateNumber,vehicleCode);
}
}
......@@ -33,8 +33,22 @@ public class VehicleDepartureController {
@Autowired
private UserAuthConfig userAuthConfig;
/**
* @param numberPlate 车牌
* @param code 车辆编码
* @param time
* @param departureId 出发分公司id
* @param page
* @param limit
* @param request
* @return
*/
@GetMapping("page")
public RestResponse page(String numberPlate,@RequestParam(value = "code",required = false) Integer code,String time, Integer page, Integer limit, HttpServletRequest request) {
public RestResponse page(String numberPlate,
@RequestParam(value = "code", required = false) Integer code, String time,
@RequestParam(value = "zoneId",required = false) Integer zoneId,
@RequestParam(value = "departureId", required = false) Integer departureId,
Integer page, Integer limit, HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
......@@ -43,15 +57,15 @@ public class VehicleDepartureController {
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, time, page, limit, companyList));
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, code, zoneId,departureId, time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate,code, time, page, limit));
return RestResponse.suc(vehicleDepartureService.page(numberPlate, code, zoneId,departureId, time, page, limit));
}
@GetMapping("small/page")
@IgnoreUserToken
public RestResponse pageBySmall(String numberPlate,@RequestParam(value = "code",required = false) Integer code, String time,Integer page, Integer limit, Integer uid,HttpServletRequest request) {
public RestResponse pageBySmall(String numberPlate, @RequestParam(value = "code", required = false) Integer code, String time, Integer page, Integer limit, Integer uid, HttpServletRequest request) {
if (page == null || limit == null) {
page = 1;
limit = 10;
......@@ -60,14 +74,15 @@ public class VehicleDepartureController {
if (userDTO != null) {
if (userDTO.getDataAll() == 2) {
List<Integer> companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate,time, page, limit, companyList));
return RestResponse.data(vehicleDepartureService.pageNotAllData(numberPlate, code, null,null, time, page, limit, companyList));
}
}
return RestResponse.suc(vehicleDepartureService.page(numberPlate,code,time,page, limit));
return RestResponse.suc(vehicleDepartureService.page(numberPlate, code, null,null, time, page, limit));
}
/**
* 根据车辆id查询并分页
*
* @param vehicleId
* @param page
* @param limit
......@@ -97,39 +112,40 @@ public class VehicleDepartureController {
/**
* 保存
*
* @param vehicleDepartureLog
* @return
*/
@PostMapping("/app/save")
public ObjectRestResponse save(@RequestBody VehicleDepartureLog vehicleDepartureLog){
public ObjectRestResponse save(@RequestBody VehicleDepartureLog vehicleDepartureLog) {
return vehicleDepartureService.save(vehicleDepartureLog);
}
/**
* 查询一条
*
* @param vid 车辆id
* @return
* @throws Exception
*/
@GetMapping("/app/findOne/{id}")
public ObjectRestResponse findOne(@PathVariable Integer vid) throws Exception {
return vehicleDepartureService.findOne(vid);
public ObjectRestResponse findOne(@PathVariable Integer vid) throws Exception {
return vehicleDepartureService.findOne(vid);
}
/**
*
* 收车
*
* @param vdl
* @return
* @throws Exception
*/
@PutMapping("/app/collect")
public ObjectRestResponse collect(@RequestBody VehicleDepartureLog vdl) throws Exception {
public ObjectRestResponse collect(@RequestBody VehicleDepartureLog vdl) throws Exception {
return vehicleDepartureService.collect(vdl);
}
}
......@@ -32,6 +32,8 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
......@@ -154,6 +156,7 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
return vehicleModelBiz.findVehicleModelPage(vmqc);
}
@GetMapping(value = "/app/unauth/findRandomVehicle")
@IgnoreUserToken
@ApiOperation("获取随机车型")
......@@ -195,6 +198,8 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
if (StringUtils.isBlank(host)) {
return ObjectRestResponse.createDefaultFail();
}
//设置信息
vm.setCrtName(uorr.getData().getName());
vm.setCrtUser(uorr.getData().getId());
......@@ -279,7 +284,6 @@ public class VehicleModelController extends BaseController<VehicleModelBiz, Vehi
}
vehicleCataBiz.inserts(vcs);
}
}
return ObjectRestResponse.succ();
} catch (NumberFormatException e) {
......
......@@ -33,8 +33,8 @@ public class CompanyController extends BaseController<CompanyBaseBiz> {
@ApiOperation("同步股权3")
@PostMapping("synchro3")
public ObjectRestResponse<String> synchro3() {
return baseBiz.synchro3();
public ObjectRestResponse synchro3() {
return baseBiz.synchro5();
}
......
......@@ -42,8 +42,7 @@
</when>
</choose>
where
vehicle = #{vehicleId} and `year_month`=#{yearMonth}
where vehicle = #{vehicleId} and `year_month`=#{yearMonth}
</update>
<update id="updateById" parameterType="com.xxfc.platform.vehicle.entity.VehicleBookInfo">
update vehicle_book_info set
......
......@@ -327,7 +327,7 @@
<select id="selectByVehicleIdAndTime" parameterType="java.util.Map" resultMap="searchBookRecord">
select v1.* from vehicle_book_record v1
where v1.vehicle_id = #{vehicleId} and v1.book_end_date >= #{time} and v1.status BETWEEN 1 and 2
where v1.vehicle_id = #{vehicleId} and v1.book_end_date > #{time} and v1.status BETWEEN 1 and 2
</select>
<select id="selectZeroHourRecord" resultMap="searchBookRecord" parameterType="java.util.Map">
......
......@@ -64,6 +64,12 @@
<if test="code!=null">
and vehicle.code=#{code}
</if>
<if test="zoneId!=null">
and bc.zone_id=#{zoneId}
</if>
<if test="departureId!=null">
and vehicle_departure_log.departure_branch_company_id=#{departureId}
</if>
</trim>
order by create_time desc
</select>
......@@ -112,6 +118,15 @@
or vehicle_departure_log.departure_time is null
)
</if>
<if test="code!=null">
and vehicle.code=#{code}
</if>
<if test="zoneId!=null">
and bc.zone_id=#{zoneId}
</if>
<if test="departureId!=null">
and vehicle_departure_log.departure_branch_company_id=#{departureId}
</if>
</trim>
order by create_time desc
</select>
......
......@@ -154,19 +154,15 @@
v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
and bc.addr_province=#{addrProvince}
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
and bc.addr_city=#{addrCity}
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
and bc.zone_id=#{zoneId}
</if>
</trim>
)
</if>
order by v.code
) r ORDER BY r.parkBranchCompanyName
......@@ -310,19 +306,15 @@
v.expect_destination_branch_company_id=#{subordinateBranch} )
</if>
<if test=" addrProvince !=null or addrCity !=null or zoneId !=null ">
and (
<trim suffixOverrides="OR">
<if test="addrProvince !=null">
(bc.addr_province=#{addrProvince} or bc1.addr_province=#{addrProvince}) OR
</if>
<if test="addrCity !=null">
(bc.addr_city=#{addrProvince} or bc1.addr_city=#{addrProvince}) OR
</if>
<if test="zoneId !=null">
(bc.zone_id=#{zoneId} or bc1.zone_id=#{zoneId}) OR
</if>
</trim>
)
<if test="addrProvince !=null">
and bc.addr_province=#{addrProvince}
</if>
<if test="addrCity !=null">
and bc.addr_city=#{addrCity}
</if>
<if test="zoneId !=null">
and bc.zone_id=#{zoneId}
</if>
</if>
order by v.code
) r ORDER BY r.parkBranchCompanyName
......@@ -493,9 +485,6 @@
<if test="status != null">
and v1.status = #{status}
</if>
<if test="code !=null">
and v1.code=#{code}
</if>
<if test="companyIds != null and companyIds.size > 0">
and v1.park_branch_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
......
......@@ -53,7 +53,7 @@
</foreach>
)
</if>
ORDER BY vmqc.id ASC
ORDER BY vmqc.sort ASC
</select>
<update id="updateScoreByModelIdAndavgScore">
......
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