Commit 21a6a433 authored by libin's avatar libin

Merge remote-tracking branch 'origin/master' into master-im

parents 40d77f67 3acb0623
package com.github.wxiaoqi.security.common.msg.auth;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class PageResult<M> {
/** 页码 */
private Integer page;
/** 每页结果数 */
private Integer pageSize;
/** 总页数 */
private Integer totalPage;
/** 总数 */
private Integer total;
private List<M> list=new ArrayList<>();
private PageResult(){
}
private PageResult(int page, int pageSize, int totalPage, int total, List<M> list) {
this.page = page;
this.pageSize = pageSize;
this.totalPage = totalPage;
this.total = total;
this.list = list;
}
public static PageResult nowPageResult(Integer page, Integer limit, List totalList) {
page=page!=null?page:1;
limit=limit!=null?limit:10;
//总条数
Integer total=0;
//总页数
Integer totalPage=0;
//当前页面数据条数
Integer pageSize=0;
//当前页面数据集合
List list = new ArrayList();
if (totalList!=null&&totalList.size()!=0){
total= totalList.size();
totalPage = (total / limit) + 1;
//每页的起始索引
Integer pageNo = (page - 1) * limit;
if (pageNo + limit > total) {
list = totalList.subList(pageNo, total);
} else {
list = totalList.subList(pageNo, pageNo + limit);
}
pageSize=list.size();
}
return new PageResult(page,pageSize,totalPage,total,list);
}
}
package com.github.wxiaoqi.security.admin.constant;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/12 14:27
*/
public enum WalletDetailTypeEnum {
/**
* 活动
*/
ACTIVITY(0, "活动奖励金"),
/**
* 佣金
*/
COMMISSION(1, "佣金"),
/**
* 会员充值
*/
MEMBER(2, "会员充值"),
/**
* 提现
*/
WITHDRAW(10, "提现"),
/**
* 转账
*/
TRANSFER(11, "转账"),
/**
* 购买
*/
BUY(12, "购买"),
/**
* 手续费
*/
SERVICE_CHARGE(13, "手续费");
private Integer code;
private String desc;
WalletDetailTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
......@@ -58,4 +58,10 @@ public class WalletDetailListDTO {
@ApiModelProperty(value = "操作时间", hidden = true )
private Long crtTime;
@ApiModelProperty(value = "订单号")
private String orderNo;
@ApiModelProperty(value = "来源人")
private String sourceUserName;
}
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
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;
/**
* 会员等级表
......@@ -76,5 +79,13 @@ public class BaseUserMemberLevel implements Serializable {
@ApiModelProperty(value = "赠送免费天数")
private Integer number;
@Column(name = "big_icon")
@ApiModelProperty(value = "大图标")
private String bigIcon;
@Column(name = "item_img")
@ApiModelProperty(value = "会员商品图片")
private String itemImg;
}
......@@ -83,6 +83,8 @@ public class AppUserDTO {
private String memberName;
//图标
private String icon;
private String bigIcon;
private String itemImg;
private Integer memberNo;
private Long cardLeave;
private Integer isBind;
......
......@@ -49,6 +49,13 @@ public class WalletDetailAdminVo {
@ApiModelProperty(value = "操作时间", hidden = true )
private Long crtTime;
@ApiModelProperty(value = "来源")
private String sourceName;
@ApiModelProperty(value = "订单号")
private String orderNo;
@ApiModelProperty(value = "来源人")
private String sourceUserName;
}
......@@ -47,4 +47,7 @@ public class WalletDetailPageVo {
@ApiModelProperty(value = "操作时间", hidden = true )
private Long crtTime;
@ApiModelProperty("描述")
private String desc;
}
......@@ -4,10 +4,8 @@ import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDataFindDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberSaveDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberExportMapper;
import com.github.wxiaoqi.security.admin.vo.BaseUserMemberExportVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
......
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.constant.WalletDetailTypeEnum;
import com.github.wxiaoqi.security.admin.dto.PersonalConsumptionDTO;
import com.github.wxiaoqi.security.admin.dto.WalletDetailFindDTO;
import com.github.wxiaoqi.security.admin.dto.WalletDetailListDTO;
......@@ -12,17 +13,15 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import lombok.Data;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import tk.mybatis.mapper.entity.Example;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -35,7 +34,9 @@ import java.util.stream.Collectors;
@Transactional
@Service
@Data
public class MyWalletDetailBiz extends BaseBiz<MyWalletDetailMapper, MyWalletDetail> {
public class MyWalletDetailBiz extends BaseBiz<MyWalletDetailMapper, MyWalletDetail> implements InitializingBean {
private Map<Integer,WalletDetailTypeEnum> typeEnumMap;
public PageDataVO<WalletDetailPageVo> findWalletDetailPage(Integer userId,Integer pageNo,Integer pageSize){
......@@ -56,6 +57,7 @@ public class MyWalletDetailBiz extends BaseBiz<MyWalletDetailMapper, MyWalletDet
for (MyWalletDetail walletDetailPage : walletDetails) {
walletDetail = new WalletDetailPageVo();
BeanUtils.copyProperties(walletDetailPage,walletDetail);
walletDetail.setDesc(typeEnumMap.get(walletDetail.getSource()).getDesc());
walletDetailPageVoList.add(walletDetail);
}
walletDetailPageVo.setTotalPage(walletDetailPageVoPageDataVO.getTotalPage());
......@@ -101,4 +103,9 @@ public class MyWalletDetailBiz extends BaseBiz<MyWalletDetailMapper, MyWalletDet
Map<Integer, BigDecimal> userIdAndPersonalConsumptionMap = personalConsumptions.stream().collect(Collectors.toMap(PersonalConsumptionDTO::getUserId, PersonalConsumptionDTO::getTotalConsumption));
return userIdAndPersonalConsumptionMap;
}
@Override
public void afterPropertiesSet() throws Exception {
typeEnumMap = EnumSet.allOf(WalletDetailTypeEnum.class).stream().collect(Collectors.toMap(WalletDetailTypeEnum::getCode, Function.identity()));
}
}
......@@ -2,9 +2,9 @@ package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.entity.UserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
......@@ -51,4 +51,11 @@ public class UserMemberLevelBiz extends BaseBiz<BaseUserMemberLevelMapper,BaseUs
}
return levelAndDiscountMap;
}
public void updateMemberBaseInfo(BaseUserMemberLevel baseUserMemberLevel) {
int affectRows = mapper.updateByPrimaryKeySelective(baseUserMemberLevel);
if (affectRows==0){
throw new BaseException("更新会员等级失败");
}
}
}
......@@ -153,6 +153,8 @@ public class AppUserController extends CommonBaseController{
if (memberLevel!=null){
String icon=memberLevel.getIcon();
userDTO.setIcon(icon);
userDTO.setBigIcon(memberLevel.getBigIcon());
userDTO.setItemImg(memberLevel.getItemImg());
}
}
}
......
......@@ -74,4 +74,9 @@ public class MemberLevelController extends BaseController<UserMemberLevelBiz, Ba
return ObjectRestResponse.succ();
}
@PutMapping("/update")
public ObjectRestResponse<Void> updateMemberBaseInfo(@RequestBody BaseUserMemberLevel baseUserMemberLevel){
getBaseBiz().updateMemberBaseInfo(baseUserMemberLevel);
return ObjectRestResponse.succ();
}
}
......@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
......
......@@ -18,7 +18,9 @@
ausw.price,
ausw.extract,
ausw.waiting,
ausw.title
ausw.title,
ausw.order_no,
ausw.sourceUserName
FROM
(select id,user_id,source,amount,cono,itype,activity_id,activity_name,`crt_time` FROM `my_wallet_detail` <if test="sourceType != null">
WHERE `source`=#{sourceType}
......@@ -29,7 +31,7 @@ FROM
INNER JOIN (SELECT userid,nickname,realname FROM `app_user_detail`<if test="userName != null and userName != ''">
WHERE `nickname`=#{userName} OR `realname`=#{userName}
</if>) AS `aud` ON aud.userid = aul.id
LEFT JOIN (SELECT DISTINCT order_id,id,price,extract,waiting,title FROM `app_user_selling_water`) AS `ausw` ON ausw.order_id = wd.cono
LEFT JOIN (SELECT DISTINCT order_id,au.id,order_no,IFNULL(d.realname,d.nickname) AS `sourceUserName`,price,extract,waiting,title FROM `app_user_selling_water` AS `au` INNER JOIN `app_user_detail` AS `d` ON d.userid=au.source_id) AS `ausw` ON ausw.order_id = wd.cono
ORDER BY `crtTime` DESC
</select>
......
package com.xxfc.platform.order.pojo;
import lombok.Data;
import org.joda.time.DateTime;
/**
* 会员订单统计条件
......@@ -9,8 +10,8 @@ import lombok.Data;
@Data
public class OrderQuery {
private Integer page=1;
private Integer limit=10;
private Integer page = 1;
private Integer limit = 10;
/**
* 查询开始时间
......@@ -24,6 +25,6 @@ public class OrderQuery {
/**
* 1.按每日统计,2.按每周统计,3.按每月统计
*/
private Integer type=1;
private Integer type = 1;
}
package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
......@@ -8,12 +9,14 @@ import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.google.gson.JsonObject;
import com.xxfc.platform.activity.feign.ActivityFeign;
......@@ -39,6 +42,7 @@ import com.xxfc.platform.universal.feign.MQSenderFeign;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
......@@ -53,12 +57,10 @@ import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.*;
import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant.*;
......@@ -72,7 +74,7 @@ import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
*/
@Service
@Slf4j
public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements UserRestInterface {
@Autowired
OrderMemberDetailBiz orderMemberDetailBiz;
......@@ -332,6 +334,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
dedDetailDTO.setStatusName(detailName);
}
/**
* 获取驾驶人驾照
* @param orderPageVo
*/
public void getUserLicense(OrderPageVO orderPageVo) {
OrderVehicleCrosstownDto orderVehicleCrosstownDto = new OrderVehicleCrosstownDto();
orderVehicleCrosstownDto.setOrderId(orderPageVo.getId());
......@@ -360,6 +366,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setOrderVehicleCrosstownDto(orderVehicleCrosstownDto);
}
/**
* 获取驾驶人信息
* @param orderPageVo
*/
public void getDriverInfo(OrderPageVO orderPageVo) {
List<VehicleUserLicense> vehicleUserLicenses = Lists.newArrayList();
String myDriverIds = orderPageVo.getOrderRentVehicleDetail().getMyDriverIds();
......@@ -387,7 +397,62 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
orderPageVo.setVehicleUserLicenses(vehicleUserLicenses);
}
public ObjectRestResponse save(OrderRentVehicleDetail orderRentVehicleDetail) {
if (orderRentVehicleDetail == null || orderRentVehicleDetail.getId() == null) {
return ObjectRestResponse.paramIsEmpty();
}
log.info("更新订单还车地点》》》 orderRentVehicleDetail = {}", orderRentVehicleDetail.toString());
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
StringBuilder stringBuilder = new StringBuilder();
OrderRentVehicleDetail oldValue = orderRentVehicleBiz.selectById(orderRentVehicleDetail.getId());
if(oldValue == null) {
return ObjectRestResponse.createFailedResult(ResCode.ORDER_IS_NOT_EXIST.getCode(), ResCode.ORDER_IS_NOT_EXIST.getDesc());
}
stringBuilder.append("修改订单和预定记录还车公司成功, 订单ID:");
stringBuilder.append( oldValue.getOrderId());
stringBuilder.append("; 原还车公司ID: ");
stringBuilder.append(oldValue.getEndCompanyId());
stringBuilder.append("; 更新后还车公司ID: ");
stringBuilder.append(orderRentVehicleDetail.getEndCompanyId());
stringBuilder.append("; 操作人ID:");
stringBuilder.append(userDTO.getId());
stringBuilder.append("; 操作人账号:");
stringBuilder.append(userDTO.getUsername());
//添加修改记录实体
BookRecordUpdateLog bookRecordUpdateLog = new BookRecordUpdateLog();
bookRecordUpdateLog.setBookRecordId(oldValue.getBookRecordId());
bookRecordUpdateLog.setOldRetCompanyId(oldValue.getEndCompanyId());
bookRecordUpdateLog.setNewRetCompanyId(orderRentVehicleDetail.getEndCompanyId());
bookRecordUpdateLog.setOperaterId(userDTO.getId());
bookRecordUpdateLog.setOperaterName(userDTO.getName());
bookRecordUpdateLog.setOrderId(oldValue.getOrderId());
bookRecordUpdateLog.setCreateTime(new Date());
BeanUtil.copyProperties(orderRentVehicleDetail, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(orderRentVehicleDetail.getEndCompanyId()).getData();
if(companyDetail != null) {
oldValue.setEndCity(companyDetail.getAddrCity());
oldValue.setEndAddr(companyDetail.detailAddr());
}
oldValue.setEndCompanyId(orderRentVehicleDetail.getEndCompanyId());
orderRentVehicleBiz.updateSelectiveByIdRe(oldValue);
ObjectRestResponse objectRestResponse = vehicleFeign.update(bookRecordUpdateLog);
if (objectRestResponse!= null && objectRestResponse.getRel()) {
log.info(stringBuilder.toString());
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createFailedResult(1355, "修改失败!");
}
/**
* 获取订单详情,包含驾驶人信息,违约金等信息
* @param no
* @return
*/
public ObjectRestResponse<OrderPageVO> getOrderDetail(String no) {
OrderPageVO orderPageVo = mapper.getOrderDetail(no);
if (orderPageVo == null) {
......@@ -641,6 +706,11 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> {
return query;
}
@Override
public UserFeign getUserFeign() {
return userFeign;
}
/**
* 订单查询类
*/
......
......@@ -190,8 +190,10 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
*/
public void refundSubProcess(BaseOrder baseOrder, String refundDesc, BigDecimal originalRefundAmount, BigDecimal refundAmount, Integer refundType, Integer refundStatus, OrderAccountDetail oad) {
String refundTradeNo = null;
//0 小于 退款金额
if(BigDecimal.ZERO.compareTo(refundAmount) < 0) {
//退款金额 = 0 不退款,把refundTradeNo设置为 -1
if(BigDecimal.ZERO.compareTo(refundAmount) == 0) {
refundTradeNo = "-1";
}else if(BigDecimal.ZERO.compareTo(refundAmount) < 0) {
OrderRefundVo orv = new OrderRefundVo();
orv.setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
orv.setOrderNo(baseOrder.getNo());
......@@ -384,6 +386,12 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
String refundDesc = "退还押金:"+ refundAmont.toString()+ "(已扣除 违章预备金:"+ illegalReserve.toString();
refundDesc += handleDedRefundDesc;
refundDesc += ")";
//还车扣除款 剩余的 钱,再减去违章预备金
oad.getDeductions().add(
initDeduction(illegalReserve, "违章保证金", DeductionTypeEnum.VIOLATE_TRAFFIC_KEEP, OrderAccountDeduction.ORIGIN_DEPOSIT)
);
refundTrigger(orderMQDTO, orderMQDTO.getOrderRentVehicleDetail(), illegalReserve, originalRefundAmount, refundAmont, refundDesc, RefundStatusEnum.RESIDUE_ILLEGAL.getCode(), AccountTypeEnum.OUT_PART_DEPOSIT, oad);
//修改押金退还记录状态
......@@ -417,11 +425,6 @@ public class OrderAccountBiz extends BaseBiz<OrderAccountMapper,OrderAccount> {
updateBaseOrder.setExtraAmount(inProgressVO.getExtraAmount());
baseOrderBiz.updateSelectiveByIdReT(updateBaseOrder, Boolean.TRUE);
//还车扣除款 剩余的 钱,再减去违章预备金
oad.getDeductions().add(
initDeduction(illegalReserve, "违章保证金", DeductionTypeEnum.VIOLATE_TRAFFIC_KEEP, OrderAccountDeduction.ORIGIN_DEPOSIT)
);
//生成额外的费用明细
csv.setConsumeAmount(inProgressVO.getConsumeAmount());
csv.setModelAmount(orderItem.getUnitPrice());
......
package com.xxfc.platform.order.biz;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.db.PageResult;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.auth.PageResult;
import com.google.common.collect.Maps;
import com.xxfc.platform.order.Utils.OrderDateUtils;
import com.xxfc.platform.order.contant.enumerate.OrderInquiryType;
......@@ -53,8 +53,10 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
setAdditionalIndemnity(vehicle.getTotalCompensation()
.add(vehicle.getTotalForfeit())
.add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv()).add(vehicle.getTotalReturnGmv()))
);
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv()).add(vehicle.getTotalReturnGmv())));
setTotalOutstandingDeposit(vehicle.getTotalSecurityDeposit()
.subtract(vehicle.getTotalRefundSecurityDeposit())
.subtract(getAdditionalIndemnity()));
}};
orderStatistics.add(data);
}
......@@ -66,12 +68,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
setAdditionalIndemnity(tour.getTotalDefaultMoney());
}};
orderStatistics.add(data);
}
OrderStatistics member = membersBiz.findAll(companyId);
if (vehicle != null) {
HomePageOrderData data = new HomePageOrderData() {{
setTotalOrders(member.getTotalGmv());
}};
orderStatistics.add(data);
}
......@@ -86,13 +89,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
return result;
}
public List<MembersOrderDto> getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) throws ParseException {
public PageResult getMemberOrderStatistics(List<BaseUserMemberLevel> memberLevels, OrderQuery query) throws ParseException {
List<MembersOrder> membersOrderList = membersBiz.getMemberOrderStatistics(query);
//按每天分类
if (CollectionUtil.isEmpty(membersOrderList)) {
return null;
return PageResult.nowPageResult(query.getPage(),query.getLimit(),Lists.newArrayList());
}
//按每天分类
if (CollectionUtil.isEmpty(memberLevels)) {
......@@ -172,18 +175,13 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
//进行分页处理
return arrayList;
return PageResult.nowPageResult(query.getPage(),query.getLimit(),arrayList);
// return pagingProcessing(query, arrayList);
}
private PageResult pagingProcessing(OrderQuery query, ArrayList<MembersOrderDto> arrayList) {
PageResult pageResult = (PageResult) arrayList;
pageResult.setPage(query.getPage());
pageResult.setPageSize(query.getLimit());
return pageResult;
}
private void TotalPaymentAndMemberName(HashMap<Integer, String> map, MembersOrder mb, MembersOrderDto mbdto) {
......@@ -201,11 +199,6 @@ public class OrderStatisticsBiz extends BaseBiz<OrderStatisticsMapper, OrderStat
mbdto.setTotalPayment(totalPayment);
}
public Object downloadExcel() {
return null;
}
public List<HashMap<Object, Object>> getRows(List<MembersOrderDto> list, List<BaseUserMemberLevel> memberLevels) {
ArrayList<HashMap<Object, Object>> rows = Lists.newArrayList();
......
......@@ -172,7 +172,7 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
OrderRentVehicleDetail orderRentVehicleDetail = orderRentVehicleBiz.selectById(baseOrder.getDetailId());
if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.DEPARTURE.getCode()) {
boolean flag = getTodayTime(orderRentVehicleDetail.getEndTime());
boolean flag = getTodayTime(orderRentVehicleDetail.getStartTime());
if (!flag) {
return ObjectRestResponse.createFailedResult(3502, "今日不是交车日期");
}
......@@ -225,9 +225,8 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleDepartureVo.setCheckManTel(orderVehicleCrosstownDto.getLicensePhone());
try {
RestResponse restResponse = vehicleFeign.departureBySmall(vehicleDepartureVo);
log.info("返回信息: " + restResponse);
log.info("返回信息: " + restResponse.toString());
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createFailedResult(1001, e.getMessage());
}
} else if (orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.ARRIVE.getCode() || orderVehicleCrosstownDto.getType() == CrosstownTypeEnum.FIXED_LOSS.getCode()) { //还车
......@@ -243,9 +242,9 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
vehicleArrivalVo.setRecycleManTel("13565235623");
}
try {
vehicleFeign.arrivalBySmall(vehicleArrivalVo);
RestResponse restResponse = vehicleFeign.arrivalBySmall(vehicleArrivalVo);
log.info("返回信息: " + restResponse.toString());
} catch (Exception e) {
e.printStackTrace();
return ObjectRestResponse.createFailedResult(500, e.getMessage());
}
}
......@@ -433,9 +432,16 @@ public class OrderVehicleCrosstownBiz extends BaseBiz<OrderVehicaleCrosstownMapp
public boolean getTodayTime(Long time) {
long current = System.currentTimeMillis();
if (current <= (time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset()) + 24 * 60 * 60 * 1000 - 1) {
if (current <= (getDayStart(time) + 24 * 60 * 60 * 1000 - 1) && current >= getDayStart(time)) {
return true;
}
return false;
}
public static Long getDayStart(Long time) {
long current = time;
long zero = current / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset();
return zero;
}
}
......@@ -122,7 +122,8 @@ public class OrderCalculateBiz {
inProgressVO.setUsedFreeDaysAmount(orderItem.getUnitPrice().multiply(new BigDecimal(useDays+ "")));
//返回剩余免费天数,返回优惠券,订单款
refundAmount = refundAmount.add(goodsRealAmount);
//修改bug,不需要提前加, 已在handleConsumeAmount方法中添加
// refundAmount = refundAmount.add(goodsRealAmount);
inProgressVO.setBackFreeDays(backFreeDays);
//返回优惠券
......@@ -132,7 +133,10 @@ public class OrderCalculateBiz {
}
//设置消费金额 由于返回了优惠券,所以添加优惠券之前减免的金额
consumeAmount = consumeAmount.add(otherItemRealAmount).add(baseOrder.getCouponAmount());
consumeAmount = consumeAmount.add(otherItemRealAmount);
//修改bug,消费金额不需要添加优惠券金额
//.add(baseOrder.getCouponAmount());
inProgressVO.setConsumeAmount(consumeAmount);
refundAmount = handleConsumeAmount(oad, refundAmount, consumeAmount, goodsRealAmount, inProgressVO);
......
package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
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;
......@@ -10,11 +12,10 @@ 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.OrderRefundBiz;
import com.xxfc.platform.order.contant.enumerate.AccountTypeEnum;
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.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.entity.Dictionary;
......@@ -425,9 +426,24 @@ public class OrderMsgBiz {
setOrderId(baseOrder.getId());
setAccountType(AccountTypeEnum.OUT_PART_DEPOSIT.getCode());
}});
originalAmount = orvd.getDeposit();
violateAmount = orderAccount.getDeductAmount();
OrderAccountDetail oad = JSONUtil.toBean(orderAccount.getAccountDetail(), OrderAccountDetail.class);
//BeanUtil.toBean(orderAccount.getAccountDetail(), OrderAccountDetail.class);
OrderAccountDeduction trafficDeduction = new OrderAccountDeduction() {{
setAmount(BigDecimal.ZERO);
}};
//违章保证金
for(OrderAccountDeduction deductionTemp : oad.getDeductions()) {
if(deductionTemp.getType().equals(DeductionTypeEnum.VIOLATE_TRAFFIC_KEEP.getCode())) {
trafficDeduction = deductionTemp;
}
}
//(原押金 - 违章保证金 )+ 订单退款金额
originalAmount = oad.getOriginDepositAmount().subtract(trafficDeduction.getAmount()).add(oad.getOrderAmount());
//退款金额
refundAmount = orderAccount.getAccountAmount();
// 扣款 = originalAmount - refundAmount
violateAmount = originalAmount.subtract(refundAmount);
residueAmount = orvd.getReturnPayResidue();
}else if(RefundStatusEnum.REFUND_DEPOSIT.getCode().equals(baseOrder.getRefundStatus())){
smstype = SmsTemplateDTO.REFUND_B;
......
......@@ -328,6 +328,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
//查询列表数据
Query query = baseOrderBiz.initQuery(dto.getNo());
query.put("crtUser", null);
query.put("userId", null);
PageDataVO<OrderPageVO> page = PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper()));
OrderPageVO orderPageVO = page.getData().get(0);
if(null == orderPageVO) {
......@@ -359,6 +360,12 @@ public class BackStageOrderController extends CommonBaseController implements Us
return ObjectRestResponse.succ();
}
@PostMapping("/updateEndCompany")
@ResponseBody
public ObjectRestResponse updateEndCompany(@RequestBody OrderRentVehicleDetail orderRentVehicleDetail) {
return baseOrderBiz.save(orderRentVehicleDetail);
}
@Data
public static class ChangeVehicleDTO {
String no;
......
......@@ -75,7 +75,7 @@ public class OrderRentVehicleController extends CommonBaseController {
bo.setAppUserDTO(userFeign.userDetailById(dto.getAppUserId()).getData());
bo.setCrtUser("-1"+ BaseContextHandler.getUserID());
//设置-1表示查询所有的车
bo.setUseType(-1);
//bo.setUseType(-1);
orderRentVehicleService.createOrder(bo);
return ObjectRestResponse.succ(bo.getOrder());
}
......
......@@ -110,6 +110,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
companyId = null;
}
//只统计租车订单
if (TYPE_VEHICLE.equals(type)) {
OrderStatistics vehicle = vehicleBiz.findAll(companyId);
return ObjectRestResponse.succ(new HomePageOrderData() {{
......@@ -119,15 +120,21 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
.add(vehicle.getTotalDefaultMoney())
.add(vehicle.getTotalExpenditure().subtract(vehicle.getTotalGmv().subtract(vehicle.getTotalReturnGmv())))
);
setTotalOutstandingDeposit(vehicle.getTotalSecurityDeposit()
.subtract(vehicle.getTotalRefundSecurityDeposit())
.subtract(getAdditionalIndemnity()));
}});
}
//只统计会租车订单
if (TYPE_TOUR.equals(type)) {
OrderStatistics tour = TravelBiz.findAll(companyId);
return ObjectRestResponse.succ(new HomePageOrderData() {{
setTotalOrders(tour.getTotalGmv().subtract(tour.getTotalReturnGmv()));
setAdditionalIndemnity(tour.getTotalDefaultMoney());
}});
}
//只统计会员定案
if (TYPE_MEMBER.equals(type)) {
OrderStatistics member = membersBiz.findAll(companyId);
return ObjectRestResponse.succ(new HomePageOrderData() {{
......@@ -136,6 +143,7 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
}});
}
//所有订单
if (TYPE_TOTAL.equals(type)) {
return ObjectRestResponse.succ(baseBiz.getTotalOrder(companyId));
}
......@@ -151,7 +159,9 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@PostMapping("/order")
@ApiOperation(value = "会员统计")
public ObjectRestResponse<List<MembersOrderDto>> getMemberOrderStatisticsData(@RequestBody OrderQuery query) throws ParseException {
if (query.getEndTime()!=null) {
query.setEndTime(query.getEndTime()+(24*60*60*1000));
}
//获取会员等级信息
List<BaseUserMemberLevel> memberLevels = userFeign.levels();
//获取会员订单统计信息
......@@ -162,12 +172,14 @@ public class OrderStatisticsController extends BaseController<OrderStatisticsBiz
@PostMapping("/excel")
@ApiOperation(value = "下载excel表")
public void downloadExcel(@RequestBody OrderQuery query) throws Exception {
if (query.getEndTime()!=null) {
query.setEndTime(query.getEndTime()+(24*60*60*1000));
}
// 通过工具类创建writer,默认创建xls格式
ExcelWriter writer = ExcelUtil.getWriter(true);
List<BaseUserMemberLevel> memberLevels = userFeign.levels();
List<MembersOrderDto> list = baseBiz.getMemberOrderStatistics(memberLevels, query);
List<HashMap<Object, Object>> rows =baseBiz.getRows(list,memberLevels);
List<MembersOrderDto> list = baseBiz.getMemberOrderStatistics(memberLevels, query).getList();
List<HashMap<Object, Object>> rows = baseBiz.getRows(list, memberLevels);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(rows, true);
......
......@@ -102,7 +102,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
//设置订单状态为3
bo.getOrder().setStatus(OrderStatusEnum.ORDER_UNPAY.getCode());
//设置订单图片
bo.getOrder().setPicture(bo.getBaseUserMemberLevel().getIcon());
bo.getOrder().setPicture(bo.getBaseUserMemberLevel().getItemImg());
//设置订单名称
bo.getOrder().setName(bo.getBaseUserMemberLevel().getName());
......
......@@ -19,7 +19,7 @@
SELECT
IFNULL( sum( gmv ), 0 ) AS totalGmv
FROM
daily_vehicle_order_statistics
daily_members_order_statistics
WHERE
1=1
<if test="companyId != null">
......
......@@ -55,7 +55,7 @@
IFNULL( sum( default_money ), 0 ) AS totalDefaultMoney,
IFNULL( sum( return_gmv ), 0 ) AS totalReturnGmv
FROM
daily_vehicle_order_statistics
daily_travel_order_statistics
WHERE
1=1
<if test="companyId != null">
......
......@@ -184,7 +184,7 @@ public class SummitActivityBiz extends BaseBiz<SummitActivityMapper, SummitActiv
criteria.andEqualTo("isShow", 1);
//位置
criteria.andIn("location", Arrays.asList(location, 0));
criteria.andGreaterThan("endTime", Instant.now().toEpochMilli());
// criteria.andGreaterThan("endTime", Instant.now().toEpochMilli());
List<SummitActivity> summitActivities = mapper.selectByExample(example);
......
......@@ -4,12 +4,17 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.CommonBaseController;
import com.xxfc.platform.tour.entity.TourTag;
import com.xxfc.platform.tour.feign.TourFeign;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("app/unauth/tour")
@Slf4j
......@@ -47,8 +52,9 @@ public class GwTourController extends CommonBaseController {
@GetMapping("/tagList")
@IgnoreUserToken
public ObjectRestResponse getTagList(@RequestParam(value = "isHot", defaultValue = "0") Integer isHot) {
return ObjectRestResponse.succ(tourFeign.tagList(isHot));
List<TourTag> tourTags = tourFeign.tagList(isHot);
tourTags = tourTags.stream().filter(x -> !x.getName().contains("全部")).sorted(Comparator.comparing(TourTag::getRank)).collect(Collectors.toList());
return ObjectRestResponse.succ(tourTags);
}
}
package com.xxfc.platform.uccn.rest;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/10/17 9:37
*/
@RestController
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@RequestMapping("/member_level/app/unauth")
public class MemberLevelController {
private final UserFeign userFeign;
@GetMapping("/list")
public ObjectRestResponse<BaseUserMemberLevel> listMemberLevels(){
List<BaseUserMemberLevel> levels = userFeign.levels();
return ObjectRestResponse.succ(levels);
}
}
......@@ -55,7 +55,7 @@ public class SummitActivityController {
@GetMapping("/list")
public ObjectRestResponse<PageDataVO<SummitActivityVo>> findSummitActivityWithPage(@RequestParam(value = "page", defaultValue = "1", required = false) Integer page,
@RequestParam(value = "limit", defaultValue = "6", required = false) Integer limit,
@RequestParam(value = "location", defaultValue = "0", required = false) Integer location,
@RequestParam(value = "location", defaultValue = "1", required = false) Integer location,
@RequestParam(value = "title",required = false) String title) {
PageDataVO<SummitActivityVo> pageDataVO = summitActivityBiz.findSummitActivityWithPage(page, limit,location,title);
return ObjectRestResponse.succ(pageDataVO);
......
......@@ -39,7 +39,8 @@ public class BJCYAuthentication implements UserAuthentication {
private final String ret="error_code";
@Override
public boolean certificate(UserMessage message) {
Map<String, String> headers = new HashMap<String, String>();
return true;
/*Map<String, String> headers = new HashMap<String, String>();
headers.put(tokenHead, token);
Map<String, String> querys = new HashMap<String, String>();
querys.put(cardNo, message.getIdNumber());
......@@ -66,7 +67,7 @@ public class BJCYAuthentication implements UserAuthentication {
} catch (Exception e) {
e.printStackTrace();
}
return false;
return false;*/
}
}
......
......@@ -70,4 +70,11 @@ public class RestResponse<T> extends BaseResponse {
return restResponse;
}
@Override
public String toString() {
return "RestResponse{" +
"data=" + data +
", code=" + code +
'}';
}
}
package com.xxfc.platform.vehicle.entity;
import lombok.Data;
import java.util.Date;
import javax.persistence.*;
@Data
@Table(name = "book_record_update_log")
public class BookRecordUpdateLog {
@Id
private Integer id;
/**
* 订单ID
*/
@Column(name = "order_id")
private Integer orderId;
/**
* 预定记录ID
*/
@Column(name = "book_record_id")
private Long bookRecordId;
/**
* 原还车公司ID
*/
@Column(name = "old_ret_company_id")
private Integer oldRetCompanyId;
/**
* 新还车公司ID
*/
@Column(name = "new_ret_company_id")
private Integer newRetCompanyId;
/**
* 操作人ID
*/
@Column(name = "operater_id")
private Integer operaterId;
/**
* 操作人姓名
*/
@Column(name = "operater_name")
private String operaterName;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
}
\ No newline at end of file
......@@ -72,6 +72,16 @@ public class VehicleCountRecord {
)
private Date countDate;
/**
* 无效数据数量(超过还车时间后还未出车的数据)
*/
@Column(name = "no_use_num")
private Integer noUseNum;
@Column(name = "cancel_num")
private Integer cancelNum;
@Transient
private String startTime;
......
......@@ -10,6 +10,7 @@ import com.xxfc.platform.vehicle.pojo.dto.BranchCompanyFindDTO;
import com.xxfc.platform.vehicle.pojo.vo.AccompanyingItemVo;
import com.xxfc.platform.vehicle.pojo.vo.BranComanyLeaderVo;
import com.xxfc.platform.vehicle.pojo.vo.BranchCompanyListVO;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
......@@ -163,4 +164,8 @@ public interface VehicleFeign {
@GetMapping("/vehicleInfo/findVehicleIds")
List<String> findbyPlateNumberAndVehicleCod(@RequestParam(value = "plateNumber") String plateNumber,@RequestParam(value = "vehicleCode") String vehicleCode);
@RequestMapping(value = "/vehicleInfo/bookRecord/update", method = RequestMethod.POST)
public ObjectRestResponse update(@RequestBody BookRecordUpdateLog bookRecordUpdateLog);
}
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import lombok.Data;
@Data
public class DepartureLogVo extends VehicleDepartureLog {
VehicleBookRecord vehicleBookRecord;
}
package com.xxfc.platform.vehicle.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import com.xxfc.platform.vehicle.mapper.BookRecordUpdateLogMapper;
import org.springframework.stereotype.Service;
@Service
public class BookRecordUpdateLogBiz extends BaseBiz<BookRecordUpdateLogMapper, BookRecordUpdateLog> {
public ObjectRestResponse save(BookRecordUpdateLog bookRecordUpdateLog) {
BookRecordUpdateLog oldValue = mapper.selectOne(bookRecordUpdateLog);
if (oldValue != null) {
return ObjectRestResponse.succ();
}
insertSelectiveRe(bookRecordUpdateLog);
return ObjectRestResponse.succ();
}
}
......@@ -1209,7 +1209,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
public PageDataVO<UsableVehicleModelVO> searchUsableModel(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto);
if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params);
initBookSearchParam(dto, params, Boolean.TRUE);
}
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
}
public PageDataVO<UsableVehicleModelVO> searchUsableModelBackStage(UsableVeicleDTO dto) {
Map<String, Object> params = BeanUtil.beanToMap(dto);
if (StrUtil.isNotBlank(dto.getStartDate()) && StrUtil.isNotBlank(dto.getEndDate())) {
initBookSearchParam(dto, params, Boolean.FALSE);
}
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
}
......@@ -1220,14 +1228,17 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> implements UserR
return PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), () -> mapper.searchUsableModel(params));
}
private void initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params) {
private void initBookSearchParam(UsableVeicleDTO dto, Map<String, Object> params, Boolean needDateExtend) {
List<String> notBookedDates = Lists.newArrayList();
if (StringUtils.isNotBlank(dto.getStartDate()) &&
StringUtils.isNotBlank(dto.getEndDate())) {
// notBookedDates = convertDatePeriod2List(dto.getStartDate(),
// dto.getEndDate());
if(needDateExtend) {
notBookedDates = convertDatePeriod2List(dto.getStartDateExtend(),
dto.getEndDateExtend());
}else {
notBookedDates = convertDatePeriod2List(dto.getStartDate(),
dto.getEndDate());
}
}
//若传入预定信息查询条件,则查询对应月份预定信息查询条件(不超过3个月)
......
......@@ -78,6 +78,9 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
@Autowired
VehicleDepartureService vehicleDepartureService;
@Autowired
BookRecordUpdateLogBiz bookRecordUpdateLogBiz;
@Override
public UserFeign getUserFeign() {
return userFeign;
......@@ -324,6 +327,21 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
return vehicleBookRecordVos;
}
public ObjectRestResponse update(BookRecordUpdateLog bookRecordUpdateLog) {
VehicleBookRecord vehicleBookRecord = selectById(bookRecordUpdateLog.getBookRecordId());
if(vehicleBookRecord != null) {
vehicleBookRecord.setRetCompany(bookRecordUpdateLog.getNewRetCompanyId());
int a = updateSelectiveByIdRe(vehicleBookRecord);
log.info(vehicleBookRecord.toString());
if(a <= 0) {
return ObjectRestResponse.createDefaultFail();
}
return bookRecordUpdateLogBiz.save(bookRecordUpdateLog);
} else {
return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc());
}
}
public ObjectRestResponse<List<VehicleBookRecordVo>> selectByIds(List<Long> ids) {
Map<String, Object> map = new HashMap<>();
map.put("ids", ids);
......@@ -644,6 +662,10 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
}
public List<VehicleBookRecordVo> selectAllCancelBookRecord(Map<String, Object> param) {
return mapper.selectAllCancelBookRecord(param);
}
public PageDataVO<VehicleRecordInfoVo> getListByParam(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto);
......
......@@ -12,6 +12,7 @@ import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import com.xxfc.platform.vehicle.mapper.VehicleDepartureLogMapper;
import com.xxfc.platform.vehicle.mapper.VehicleMapper;
import com.xxfc.platform.vehicle.pojo.DepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureStatisticDataVo;
import lombok.extern.slf4j.Slf4j;
......@@ -24,6 +25,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
......@@ -103,6 +105,9 @@ public class VehicleDepartureService extends BaseBiz<VehicleDepartureLogMapper,
}
public Integer selectAllDepartureLog(Map<String, Object> param) {
return mapper.selectAllDepartureLog(param);
}
public ObjectRestResponse findOne(Integer vid) throws Exception {
Example exm = Example.builder(VehicleDepartureLog.class)
......
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import tk.mybatis.mapper.common.Mapper;
public interface BookRecordUpdateLogMapper extends Mapper<BookRecordUpdateLog> {
}
\ No newline at end of file
......@@ -43,4 +43,6 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public List<VehicleBookRecordVo> selectAllBookRecord(Map<String, Object> param);
public List<VehicleBookRecordVo> selectByIds(Map<String, Object> param);
public List<VehicleBookRecordVo> selectAllCancelBookRecord(Map<String, Object> param);
}
\ No newline at end of file
......@@ -10,4 +10,5 @@ public interface VehicleCountRecordMapper extends Mapper<VehicleCountRecord> {
List<VehicleCountRecord> countDepartureVehicle(VehicleCountRecord vehicleCountRecord);
List<VehicleCountRecord> selectByTypeAndTime(Map<String, Object> param);
List<VehicleCountRecord> selectByTime(Map<String, Object> param);
}
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleDepartureLog;
import com.xxfc.platform.vehicle.pojo.DepartureLogVo;
import com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.BaseMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog>, Mapper<VehicleDepartureLog> {
......@@ -32,4 +34,5 @@ public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLo
String selectDayByVehicleId(String vehicleId);
VehicleDepartureLogVo selectByBookRecordId(Long bookRecordId);
Integer selectAllDepartureLog(Map<String, Object> param);
}
package com.xxfc.platform.vehicle.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.BookRecordUpdateLogBiz;
import com.xxfc.platform.vehicle.entity.BookRecordUpdateLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/bookRecord")
public class BookRecordUpdateLogController {
@Autowired
BookRecordUpdateLogBiz bookRecordUpdateLogBiz;
@PostMapping(value = "/update")
public ObjectRestResponse save(@RequestBody BookRecordUpdateLog bookRecordUpdateLog) {
return bookRecordUpdateLogBiz.save(bookRecordUpdateLog);
}
}
......@@ -142,8 +142,8 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
}
//设置显示是否有车
dto.setYearNo4Where(Boolean.TRUE);
dto.setUseType(null);
return ObjectRestResponse.succ(vehicleBiz.searchUsableModel(dto));
//dto.setUseType(null);
return ObjectRestResponse.succ(vehicleBiz.searchUsableModelBackStage(dto));
}
/**
......
......@@ -20,9 +20,7 @@ import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.entity.*;
import com.xxfc.platform.vehicle.jobhandler.VehicleJobHandler;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
......@@ -38,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -76,6 +75,10 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
@Autowired
BranchCompanyBiz branchCompanyBiz;
@Autowired
BookRecordUpdateLogBiz bookRecordUpdateLogBiz;
public UserFeign getUserFeign() {
return userFeign;
}
......@@ -304,6 +307,35 @@ public class VehicleController extends BaseController<VehicleBiz> implements Use
}
@RequestMapping(value = "/bookRecord/update", method = RequestMethod.POST)
@ApiOperation(value = "修改预定记录还车地点")
public ObjectRestResponse update(@RequestBody BookRecordUpdateLog bookRecordUpdateLog){
return vehicleBookRecordBiz.update(bookRecordUpdateLog);
}
@RequestMapping(value = "/bookRecord/updateById", method = RequestMethod.POST)
@ApiOperation(value = "修改预定记录还车地点")
public ObjectRestResponse updateById(@RequestBody VehicleBookRecord vehicleBookRecord){
VehicleBookRecord oldValue = vehicleBookRecordBiz.selectById(vehicleBookRecord.getId());
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if(oldValue != null) {
oldValue.setRetCompany(vehicleBookRecord.getRetCompany());
BookRecordUpdateLog bookRecordUpdateLog = new BookRecordUpdateLog();
bookRecordUpdateLog.setBookRecordId(vehicleBookRecord.getId());
bookRecordUpdateLog.setOldRetCompanyId(vehicleBookRecord.getRetCompany());
bookRecordUpdateLog.setNewRetCompanyId(vehicleBookRecord.getRetCompany());
bookRecordUpdateLog.setOperaterId(userDTO.getId());
bookRecordUpdateLog.setOperaterName(userDTO.getName());
bookRecordUpdateLog.setCreateTime(new Date());
vehicleBookRecordBiz.updateSelectiveByIdRe(vehicleBookRecord);
return bookRecordUpdateLogBiz.save(bookRecordUpdateLog);
} else {
return ObjectRestResponse.createFailedResult(ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getCode(), ResCode.VEHICLE_BOOK_RECORD_IS_NOT_EXIST.getDesc());
}
}
@RequestMapping(value = "/bookedRecord", method = RequestMethod.GET)
@ApiOperation(value = "获取多个预定记录")
......
......@@ -30,7 +30,7 @@ public class VehicleCountRecordController {
@GetMapping("/app/unauth/get")
@ResponseBody
public ObjectRestResponse getByTypeAndDate(VehicleCountRecord vehicleCountRecord) {
return vehicleCountRecordBiz.countDepartureVehicle(vehicleCountRecord);
return vehicleCountRecordBiz.selectByTime(vehicleCountRecord);
}
@PostMapping("/app/unauth/export")
......@@ -43,4 +43,10 @@ public class VehicleCountRecordController {
public void download(ExcelParamDto excelParamDto, HttpServletRequest request,HttpServletResponse response) {
DownloadUtil.downloadFile(excelParamDto.getPath(), "export.xls", response,request);
}
@GetMapping("/app/unauth/selectByTime")
public ObjectRestResponse selectByTime(VehicleCountRecord vehicleCountRecord) {
return vehicleCountRecordBiz.selectByTime(vehicleCountRecord);
}
}
......@@ -37,7 +37,7 @@
<!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="vehicle_count_record" domainObjectName="VehicleCountRecord"></table>
<table tableName="book_record_update_log" domainObjectName="BookRecordUpdateLog"></table>
<!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>-->
</context>
</generatorConfiguration>
\ 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.BookRecordUpdateLogMapper" >
</mapper>
\ No newline at end of file
......@@ -91,6 +91,6 @@
<if test="cityCode != null">
AND `addr_city`=#{cityCode}
</if>
) AS `cb` ON cb.id = bc.company_base_id
) AS `cb` ON cb.id = bc.company_base_id ORDER BY `id`
</select>
</mapper>
\ No newline at end of file
......@@ -526,6 +526,17 @@
and v1.book_end_date between #{startTime} and #{endTime}
</if>
</select>
<!--获取所有已取消的预定记录-->
<select id="selectAllCancelBookRecord" resultMap="searchBookRecord" parameterType="Map">
select v1.* from vehicle_book_record v1
where v1.status in (4,6)
<if test="startTime != null">
and v1.book_start_date &lt; #{startTime} and v1.book_end_date &gt; #{endTime}
</if>
and book_user != -2
</select>
<select id="selectByIds" resultMap="searchBookRecord" parameterType="Map">
select v1.* from vehicle_book_record v1
where v1.status not in (4,6,7,3)
......
......@@ -35,4 +35,12 @@
order by id DESC
</select>
<select id="selectByTime" parameterType = "Map" resultType="com.xxfc.platform.vehicle.entity.VehicleCountRecord">
select * from vehicle_count_record
where count_date &gt;= #{startTime} and count_date &lt;= #{endTime}
<if test="type != null">
and type = #{type}
</if>
order by id DESC
</select>
</mapper>
\ No newline at end of file
......@@ -2,7 +2,11 @@
<!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.VehicleDepartureLogMapper" >
<resultMap id="searchBookRecord" type="com.xxfc.platform.vehicle.pojo.DepartureLogVo">
<result column="book_record_id" property="bookRecordId" jdbcType="INTEGER" javaType="java.lang.Integer"/>
<association property="vehicleBookRecord" column="id"
select="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.selectOne"/>
</resultMap>
<select id="selectLastByVehicleId" resultType="com.xxfc.platform.vehicle.entity.VehicleDepartureLog">
select * from vehicle_departure_log
where vehicle_id = #{vehicleId}
......@@ -30,7 +34,55 @@
where vehicle_departure_log.book_record_id = #{id}
order by create_time desc
</select>
<select id="selectAllDepartureLog" resultType="java.lang.Integer" parameterType="Map">
SELECT
count(*)
FROM
vehicle_departure_log v1
LEFT JOIN vehicle_book_record v2 on v1.book_record_id = v2.id
<where>
<if test="startTime != null and status == 1">
and (v1.departure_time between #{startTime} and #{endTime})
</if>
<if test="startTime != null and status == 2">
and (v1.arrival_time between #{startTime} and #{endTime})
</if>
<!--正常出车-->
<if test="startTime != null and status == 1 and type == 1">
and (v2.book_start_date between #{startTime} and #{endTime})
</if>
<!--提前出车-->
<if test="endTime != null and status == 1 and type == 2">
and v2.book_start_date &gt;= #{endTime}
</if>
<!--延期出车-->
<if test="startTime != null and status == 1 and type == 3">
and v2.book_start_date &lt;= #{startTime}
</if>
<!--正常还车-->
<if test="startTime != null and status == 2 and type == 1">
and (v2.book_start_date between #{startTime} and #{endTime})
</if>
<!--提前还车-->
<if test="endTime != null and status == 2 and type == 2">
and v2.book_start_date &gt;= #{endTime}
</if>
<!--延期还车-->
<if test="startTime != null and status == 2 and type == 3">
and v2.book_start_date &lt;= #{startTime}
</if>
<!--统计客户用车-->
<if test="bookUser != null">
and v2.book_user = #{bookUser}
</if>
<if test="bookUser == null">
and v2.book_user != -2
</if>
</where>
</select>
<select id="selectVoAll" resultType="com.xxfc.platform.vehicle.pojo.VehicleDepartureLogVo">
select vehicle_departure_log.*,vehicle.number_plate,
/* IFNULL(DATEDIFF(vehicle_departure_log.arrival_time,vehicle_departure_log.departure_time),0)*/
......
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