Commit c51f9687 authored by hanfeng's avatar hanfeng

Merge branch 'base-modify' of http://10.5.52.3/youjj/cloud-platform into base-modify

parents ffaab5f5 b601a815
...@@ -107,4 +107,6 @@ public abstract class BaseBiz<M extends Mapper<T>, T> { ...@@ -107,4 +107,6 @@ public abstract class BaseBiz<M extends Mapper<T>, T> {
List<T> list = mapper.selectByExample(example); List<T> list = mapper.selectByExample(example);
return new TableResultResponse<T>(result.getTotal(), list); return new TableResultResponse<T>(result.getTotal(), list);
} }
} }
package com.github.wxiaoqi.security.admin.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 用户会员
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 19:38:56
*/
@Data
public class UserMemberDTO {
/**
* 用户id
*/
@ApiModelProperty(value = "用户id")
private Integer userId;
/**
* 会员等级
*/
@ApiModelProperty(value = "会员等级")
private Integer memberLevel;
/**
* 0:未支付 1:绑定 2:解绑
*/
@ApiModelProperty(value = "0:未支付 1:绑定 2:解绑")
private Integer isBind;
/**
* 赠送总天数
*/
@ApiModelProperty(value = "赠送总天数")
private Integer totalNumber;
/**
* 剩余天数
*/
@ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays;
//折扣
@ApiModelProperty(value = "折扣")
private Integer discount;
}
...@@ -69,13 +69,35 @@ public class BaseUserMember implements Serializable { ...@@ -69,13 +69,35 @@ public class BaseUserMember implements Serializable {
@ApiModelProperty(value = "赠送总天数") @ApiModelProperty(value = "赠送总天数")
private Integer totalNumber; private Integer totalNumber;
/** /**
* 剩余天数 * 剩余天数
*/ */
@Column(name = "rent_free_days") @Column(name = "rent_free_days")
@ApiModelProperty(value = "剩余天数") @ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays; private Integer rentFreeDays;
/**
* 会员消费次数
*/
@Column(name = "pay_count")
@ApiModelProperty(value = "会员消费次数")
private Integer payCount;
/**
* 购买会员次数
*/
@Column(name = "buy_count")
@ApiModelProperty(value = "购买会员次数")
private Integer buyCount;
/**
* 下单锁住天数
*/
@Column(name = "lock_days")
@ApiModelProperty(value = "下单锁住天数")
private Integer lockDays;
//折扣 //折扣
@Column(name = "discount") @Column(name = "discount")
......
package com.github.wxiaoqi.security.admin.feign; package com.github.wxiaoqi.security.admin.feign;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
...@@ -55,7 +53,7 @@ public interface UserFeign { ...@@ -55,7 +53,7 @@ public interface UserFeign {
* @return * @return
*/ */
@RequestMapping(value = "/member/app/unauth/level/{type}", method = RequestMethod.GET) @RequestMapping(value = "/member/app/unauth/level/{type}", method = RequestMethod.GET)
public List<BaseUserMemberLevel> level(@PathVariable Integer type); public BaseUserMemberLevel level(@PathVariable Integer type);
/** /**
* 批量获取用户基本信息 * 批量获取用户基本信息
...@@ -64,4 +62,30 @@ public interface UserFeign { ...@@ -64,4 +62,30 @@ public interface UserFeign {
*/ */
@RequestMapping(value = "/public/getByUserIds", method = RequestMethod.GET) @RequestMapping(value = "/public/getByUserIds", method = RequestMethod.GET)
public ObjectRestResponse<List<AppUserVo>> getByUserIds(@RequestParam("ids")List<Integer> ids); public ObjectRestResponse<List<AppUserVo>> getByUserIds(@RequestParam("ids")List<Integer> ids);
/**
* 购买会员
* @param userMemberDTO
* @return
* @throws Exception
*/
@RequestMapping(value = "/member/user/buyMember", method = RequestMethod.POST)
public ObjectRestResponse buyMember(@RequestBody UserMemberDTO userMemberDTO) throws Exception;
/**
* 订单更改会员
* @param userId
* @param days
* @param type 1-用户锁定下单;2-购买下单;3-取消订单
* @return
* @throws Exception
*/
@RequestMapping(value = "/member/user/memberDays", method = RequestMethod.POST)
public int memberDays(
@RequestParam(value = "userId",defaultValue = "0")Integer userId,
@RequestParam(value = "days",defaultValue = "0")Integer days,
@RequestParam(value = "type",defaultValue = "1")Integer type
) throws Exception;
} }
...@@ -27,6 +27,9 @@ public class AppUserDTO { ...@@ -27,6 +27,9 @@ public class AppUserDTO {
private Integer certificationStatus; private Integer certificationStatus;
private Integer rentFreeDays; private Integer rentFreeDays;
private Integer totalNumber; private Integer totalNumber;
private Integer payCount;
private Integer buyCount;
private Integer lockDays;
private Integer discount; private Integer discount;
private Integer memberLevel; private Integer memberLevel;
private Integer memberNo; private Integer memberNo;
......
...@@ -57,12 +57,31 @@ public class UserMemberVo { ...@@ -57,12 +57,31 @@ public class UserMemberVo {
@ApiModelProperty(value = "赠送总天数") @ApiModelProperty(value = "赠送总天数")
private Integer totalNumber; private Integer totalNumber;
/** /**
* 剩余天数 * 剩余天数
*/ */
@ApiModelProperty(value = "剩余天数") @ApiModelProperty(value = "剩余天数")
private Integer rentFreeDays; private Integer rentFreeDays;
/**
* 会员消费次数
*/
@ApiModelProperty(value = "会员消费次数")
private Integer payCount;
/**
* 购买会员次数
*/
@ApiModelProperty(value = "购买会员次数")
private Integer buyCount;
/**
* 下单锁住天数
*/
@ApiModelProperty(value = "下单锁住天数")
private Integer lockDays;
//折扣 //折扣
@ApiModelProperty(value = "折扣") @ApiModelProperty(value = "折扣")
private Integer discount; private Integer discount;
......
...@@ -2,7 +2,12 @@ package com.github.wxiaoqi.security.admin.biz; ...@@ -2,7 +2,12 @@ package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache; import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear; import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.UserMemberVo; import com.github.wxiaoqi.security.admin.vo.UserMemberVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember; import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper; import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper;
...@@ -17,9 +22,13 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -17,9 +22,13 @@ import org.springframework.transaction.annotation.Transactional;
* @date 2019-06-18 19:38:56 * @date 2019-06-18 19:38:56
*/ */
@Service @Service
@Slf4j
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMember> { public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMember> {
@Autowired
AppUserDetailBiz detailBiz;
//获取用户会员信息 //获取用户会员信息
@Cache(key = "user:member{1}") @Cache(key = "user:member{1}")
public UserMemberVo getMemberInfoByUserId(Integer userId){ public UserMemberVo getMemberInfoByUserId(Integer userId){
...@@ -32,11 +41,104 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb ...@@ -32,11 +41,104 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper,BaseUserMemb
public void updateSelectiveById(BaseUserMember userMember){ super.updateSelectiveById(userMember);} public void updateSelectiveById(BaseUserMember userMember){ super.updateSelectiveById(userMember);}
//用户会员信息更新 //用户购买会员信息更新
public void updUserMemberByUserId(){ public void updUserMemberByUserId(UserMemberDTO userMemberDTO)throws Exception{
if(userMemberDTO==null){
log.error("updUserMemberByUserId----参数为空");
return;
}
Integer userId=userMemberDTO.getUserId();
UserMemberVo userMemberVo=getMemberInfoByUserId(userId);
BaseUserMember baseUserMember=new BaseUserMember();
BeanUtils.copyProperties(baseUserMember,userMemberDTO);
Integer freeDays= baseUserMember.getRentFreeDays();
Integer totalNumber=baseUserMember.getTotalNumber()==null?0:baseUserMember.getTotalNumber();
if(freeDays==null||freeDays==0){
freeDays=totalNumber;
}
if(userMemberVo==null){
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setBuyCount(1);
insertSelective(baseUserMember);
}else {
baseUserMember.setId(userMemberVo.getId());
totalNumber+=userMemberVo.getTotalNumber()==null?0:userMemberVo.getTotalNumber();
freeDays+=userMemberVo.getRentFreeDays()==null?0:userMemberVo.getRentFreeDays();
baseUserMember.setBuyCount(userMemberVo.getBuyCount()+1);
baseUserMember.setTotalNumber(totalNumber);
baseUserMember.setRentFreeDays(freeDays);
updateSelectiveById(baseUserMember);
}
AppUserVo userVo= detailBiz.getUserInfoById(userId);
if(userVo!=null&&(userVo.getIsMember()==null||userVo.getIsMember()==0)){
AppUserVo userVo1=new AppUserVo();
userVo1.setId(userVo.getId());
userVo1.setIsMember(1);
detailBiz.updUuserInfoById(userVo1);
}
}
/**
* //
* @param userId
* @param days
* @param type;1-用户锁定下单;2-购买下单;3-取消订单
* @return
*/
public int upMemberDays(Integer userId,Integer days,Integer type){
int num=-1;
UserMemberVo userMemberVo=getMemberInfoByUserId(userId);
if(userMemberVo!=null){
days=days==null?0:days;
Integer freeDays=userMemberVo.getRentFreeDays()==null?0:userMemberVo.getRentFreeDays();
// Integer lockDays=userMemberVo.getLockDays()==null?userMemberVo.getLockDays():0;
Integer totalNumber=userMemberVo.getTotalNumber()==null?0:userMemberVo.getTotalNumber();
BaseUserMember baseUserMember=new BaseUserMember();
baseUserMember.setId(userMemberVo.getId());
if(type==1){
/*if((freeDays-lockDays)>0&&(freeDays-lockDays)>=days){
baseUserMember.setLockDays(lockDays+days);
updateSelectiveById(baseUserMember);
num=freeDays-(lockDays+days);
}*/
if(freeDays>0&&freeDays>=days){
freeDays=freeDays-days;
baseUserMember.setRentFreeDays(freeDays);
updateSelectiveById(baseUserMember);
num=freeDays;
}
}else if(type==2){
/*Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
payCount=payCount+1;
freeDays=(freeDays-days)>0?(freeDays-days):0;
lockDays=lockDays>0?(lockDays-days)>0?(lockDays-days):0:0;
baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setPayCount(payCount);
baseUserMember.setLockDays(lockDays);
updateSelectiveById(baseUserMember);
num=freeDays-lockDays;*/
Integer payCount=userMemberVo.getPayCount()==null?0:userMemberVo.getPayCount();
payCount=payCount+1;
baseUserMember.setPayCount(payCount);
updateSelectiveById(baseUserMember);
num=freeDays;
}else {
/*lockDays=lockDays>0?(lockDays-days)>0?(lockDays-days):0:0;
baseUserMember.setLockDays(lockDays);
updateSelectiveById(baseUserMember);
num=freeDays-lockDays;*/
freeDays=(freeDays+days)>0?(freeDays+days):0;
freeDays=freeDays>totalNumber?totalNumber:freeDays;
baseUserMember.setRentFreeDays(freeDays);
updateSelectiveById(baseUserMember);
num=freeDays;
}
}
return num;
} }
} }
\ No newline at end of file
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.BaseUserMemberBiz;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-08 11:51
*/
@RestController
@RequestMapping("member")
public class UserMemberController {
@Autowired
private BaseUserMemberBiz memberBiz;
/**
* 购买会员
* @param userMemberDTO
* @return
* @throws Exception
*/
@RequestMapping(value = "/user/buyMember", method = RequestMethod.POST)
public ObjectRestResponse buyMember(@RequestBody UserMemberDTO userMemberDTO) throws Exception {
memberBiz.updUserMemberByUserId(userMemberDTO);
return ObjectRestResponse.succ();
}
/**
* 订单更改会员
* @param userId
* @param days
* @param type 1-用户锁定下单;2-购买下单;3-取消订单
* @return
* @throws Exception
*/
@RequestMapping(value = "/user/memberDays", method = RequestMethod.POST)
public int memberDays(
@RequestParam(value = "userId",defaultValue = "0")Integer userId,
@RequestParam(value = "days",defaultValue = "0")Integer days,
@RequestParam(value = "type",defaultValue = "1")Integer type
) throws Exception {
return memberBiz.upMemberDays(userId,days,type);
}
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/19 18:07
*/
@Data
public class CampsiteShopAdminDTO {
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺logo
*/
@ApiModelProperty(value = "店铺logo")
private String logo;
/**
* 店铺介绍
*/
@ApiModelProperty(value = "店铺介绍")
private String intro;
/**
* 店铺URL
*/
@ApiModelProperty(value = "店铺URL")
private String url;
/**
* 主要联系人
*/
@ApiModelProperty(value = "主要联系人")
private String concat;
/**
* 联系人身份证号
*/
@ApiModelProperty(value = "联系人身份证号")
private String idNumber;
/**
* 联系人电话
*/
@ApiModelProperty(value = "联系人电话")
private String phone;
/**
* 公司id
*/
@ApiModelProperty(value = "公司id")
private Integer companyId;
/**
* 公司名称
*/
@ApiModelProperty(value = "公司名称")
private String companyName;
/**
* 开店时间
*/
@ApiModelProperty(value = "开店时间")
private Long startTime;
/**
* 地址-省/直辖市(编码)
*/
@ApiModelProperty(value = "地址-省/直辖市(编码)")
private Integer province;
/**
* 地址-省/直辖市(名称)
*/
@ApiModelProperty(value = "地址-省/直辖市(名称)")
private String provinceName;
/**
* 地址-市
*/
@ApiModelProperty(value = "地址-市")
private Integer city;
/**
* 地址-市(名称)
*/
@ApiModelProperty(value = "地址-市(名称)")
private String cityName;
/**
* 经度
*/
@ApiModelProperty(value = "经度")
private Double longitude;
/**
* 纬度
*/
@ApiModelProperty(value = "纬度")
private Double latitude;
/**
* 具体地址
*/
@ApiModelProperty(value = "具体地址")
private String adress;
/**
* 客服电话
*/
@ApiModelProperty(value = "客服电话")
private String servicePhone;
/**
* 配套设施&收费
*/
@ApiModelProperty(value = "配套设施&收费")
private String configure;
/**
* 店铺详情
*/
@ApiModelProperty(value = "店铺详情")
private String content;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 轮播图
*/
private List<CampsiteShopCarouselDTO> carouselDTOS;
/**
* 营地类型
*/
private List<Integer> campsiteTagDTOS;
}
package com.xxfc.platform.campsite.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/19 15:44
*/
@Data
@ApiModel(value = "营地查找条件dto")
public class CampsiteShopAdminFindDTO extends PageParam {
/**
* 营地创建时间范围的起始时间
*/
@ApiModelProperty(value = "营地创建时间范围的起始时间")
private Long startTime;
/**
* 营地创建时间范围的结束时间
*/
@ApiModelProperty(value = "营地创建时间范围的结束时间")
private Long endTime;
/**
* 营地的名称
*/
@ApiModelProperty(value = "营地的名称")
private String name;
}
package com.xxfc.platform.campsite.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "营地店铺*后台dto")
public class CampsiteShopAdminPageDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺类型名称
*/
@ApiModelProperty(value = "店铺类型名称")
private List<String> storeTypeName;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 上下架状态 0-创建状态 1-上架 2-下架
*/
@ApiModelProperty(value = "上下架状态 0-创建状态 1-上架 2-下架")
private Integer saleState;
}
...@@ -16,12 +16,10 @@ import java.io.Serializable; ...@@ -16,12 +16,10 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_carousel")
@ApiModel(value = "店铺轮播Vo") @ApiModel(value = "店铺轮播Vo")
public class CampsiteShopCarouselDTO implements Serializable { public class CampsiteShopCarouselDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private Integer id; private Integer id;
/** /**
...@@ -42,17 +40,4 @@ public class CampsiteShopCarouselDTO implements Serializable { ...@@ -42,17 +40,4 @@ public class CampsiteShopCarouselDTO implements Serializable {
@ApiModelProperty(value = "轮播图片链接") @ApiModelProperty(value = "轮播图片链接")
private String imgUrl; private String imgUrl;
/**
* 图片名称
*/
@ApiModelProperty(value = "图片名称")
private String name;
/**
* 是否删除:0-正常;1-删除
*/
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
} }
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺dto" ) @ApiModel(value = "营地店铺dto" )
public class CampsiteShopDTO implements Serializable { public class CampsiteShopDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -17,7 +17,6 @@ import java.io.Serializable; ...@@ -17,7 +17,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo") @ApiModel(value = "营地店铺vo")
public class CampsiteShopPageDTO implements Serializable { public class CampsiteShopPageDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -81,4 +80,17 @@ public class CampsiteShopPageDTO implements Serializable { ...@@ -81,4 +80,17 @@ public class CampsiteShopPageDTO implements Serializable {
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private Double latitude; private Double latitude;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
} }
...@@ -17,15 +17,12 @@ import java.io.Serializable; ...@@ -17,15 +17,12 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteShopTagDTO implements Serializable { public class CampsiteShopTagDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("首页banner图主键")
private Long id; private Long id;
/** /**
* 店铺id * 店铺id
*/ */
...@@ -39,22 +36,14 @@ public class CampsiteShopTagDTO implements Serializable { ...@@ -39,22 +36,14 @@ public class CampsiteShopTagDTO implements Serializable {
private Integer tagId; private Integer tagId;
/** /**
* 创建时间 * 类型名称
*/ */
@ApiModelProperty(value = "创建时间", hidden = true) @ApiModelProperty(value = "类型名称")
private Long crtTime; private String tagName;
/** /**
* 修改时间 * 创建时间
*/
@ApiModelProperty(value = "修改时间", hidden = true)
private Long updTime;
/**
* 是否删除,0否,1是
*/ */
@ApiModelProperty(value = "是否删除,0否,1是") private Long crtTime;
private Integer isDel;
} }
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteTagDTO implements Serializable { public class CampsiteTagDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型dto") @ApiModel(value = "店铺类型dto")
public class CampsiteTagListDTO implements Serializable { public class CampsiteTagListDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
package com.xxfc.platform.campsite.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.List;
/**
* 营地店铺表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-06-17 10:28:48
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "营地店铺*后台vo")
public class CampsiteShopAdminPageVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键id")
private Integer id;
/**
* 店铺名称
*/
@ApiModelProperty(value = "店铺名称")
private String name;
/**
* 店铺类型名称
*/
@ApiModelProperty(value = "店铺类型名称")
private List<String> storeTypeName;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
/**
* 上下架状态 0-创建状态 1-上架 2-下架
*/
@ApiModelProperty(value = "上下架状态 0-创建状态 1-上架 2-下架")
private Integer saleState;
}
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_carousel")
@ApiModel(value = "店铺轮播Vo") @ApiModel(value = "店铺轮播Vo")
public class CampsiteShopCarouselVo implements Serializable { public class CampsiteShopCarouselVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -20,7 +20,6 @@ import java.io.Serializable; ...@@ -20,7 +20,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo") @ApiModel(value = "营地店铺vo")
@Builder @Builder
@NoArgsConstructor @NoArgsConstructor
...@@ -78,15 +77,25 @@ public class CampsiteShopPageVo implements Serializable { ...@@ -78,15 +77,25 @@ public class CampsiteShopPageVo implements Serializable {
/** /**
* 经度 * 经度
*/ */
@Column(name = "longitude")
@ApiModelProperty(value = "经度") @ApiModelProperty(value = "经度")
private Double longitude; private Double longitude;
/** /**
* 纬度 * 纬度
*/ */
@Column(name = "latitude")
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private Double latitude; private Double latitude;
/**
* 热度值
*/
@ApiModelProperty(value = "热度值")
private Integer hot;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间", hidden = true)
private Long crtTime;
} }
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteShopTagVo implements Serializable { public class CampsiteShopTagVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_shop")
@ApiModel(value = "营地店铺vo") @ApiModel(value = "营地店铺vo")
public class CampsiteShopVo implements Serializable { public class CampsiteShopVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteTagListVo implements Serializable { public class CampsiteTagListVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -16,7 +16,6 @@ import java.io.Serializable; ...@@ -16,7 +16,6 @@ import java.io.Serializable;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Data @Data
@Table(name = "campsite_tag")
@ApiModel(value = "店铺类型vo") @ApiModel(value = "店铺类型vo")
public class CampsiteTagVo implements Serializable { public class CampsiteTagVo implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
package com.xxfc.platform.campsite.biz; package com.xxfc.platform.campsite.biz;
import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.CampSiteApplication; import com.xxfc.platform.campsite.dto.*;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO; import com.xxfc.platform.campsite.vo.CampsiteShopAdminPageVo;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO;
import com.xxfc.platform.campsite.vo.CampsiteShopCarouselDetailVo; import com.xxfc.platform.campsite.vo.CampsiteShopCarouselDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo; import com.xxfc.platform.campsite.vo.CampsiteShopDetailVo;
import com.xxfc.platform.campsite.vo.CampsiteShopPageVo; import com.xxfc.platform.campsite.vo.CampsiteShopPageVo;
...@@ -19,9 +17,11 @@ import org.springframework.stereotype.Service; ...@@ -19,9 +17,11 @@ import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShop; import com.xxfc.platform.campsite.entity.CampsiteShop;
import com.xxfc.platform.campsite.mapper.CampsiteShopMapper; import com.xxfc.platform.campsite.mapper.CampsiteShopMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.time.Instant;
import java.util.List; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -72,6 +72,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -72,6 +72,7 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
BeanUtils.copyProperties(campsiteShopPageDTO,campsiteShopPageVo); BeanUtils.copyProperties(campsiteShopPageDTO,campsiteShopPageVo);
campsiteShopPageVoList.add(campsiteShopPageVo); campsiteShopPageVoList.add(campsiteShopPageVo);
} }
campsiteShopPageVoList.stream().sorted(Comparator.comparing(CampsiteShopPageVo::getHot).reversed().thenComparing(CampsiteShopPageVo::getCrtTime).reversed());
campsiteShopPageDataVO.setData(campsiteShopPageVoList); campsiteShopPageDataVO.setData(campsiteShopPageVoList);
return campsiteShopPageDataVO; return campsiteShopPageDataVO;
} }
...@@ -118,6 +119,81 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -118,6 +119,81 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
return campsiteShopDetailVo; return campsiteShopDetailVo;
} }
/**
* 根据创建时间或营地名称来查找营地列表
* @param campsiteShopAdminFindDTO
* @return
*/
public PageDataVO<CampsiteShopAdminPageVo> findCampsiteShopPage(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO) {
if (log.isDebugEnabled()){
log.debug("查询条件:【{}】",campsiteShopAdminFindDTO);
}
PageDataVO<CampsiteShopAdminPageDTO> campsiteShopAdminpageDTOPageDataVO = PageDataVO.pageInfo(campsiteShopAdminFindDTO.getPage(),campsiteShopAdminFindDTO.getLimit(),()->mapper.findCampsiteShops(campsiteShopAdminFindDTO));
List<CampsiteShopAdminPageDTO> campsiteShopAdminPageDTOS = campsiteShopAdminpageDTOPageDataVO.getData();
if (log.isDebugEnabled()){
log.debug("查询结果:【{}】",campsiteShopAdminPageDTOS);
}
PageDataVO<CampsiteShopAdminPageVo> campsiteShopAdminPageDataVos = new PageDataVO<>();
if (CollectionUtils.isEmpty(campsiteShopAdminPageDTOS)){
return campsiteShopAdminPageDataVos;
}
//转换成营地ids
List<Integer> campsiteShopIds = campsiteShopAdminPageDTOS.stream().map(CampsiteShopAdminPageDTO::getId).collect(Collectors.toList());
//根据营地ids查询营地对应的标签 键营地id 值对应的标签列表
Map<Integer,List<String>> shopTagsMap = campsiteShopTagBiz.findByCampsiteShopIds(campsiteShopIds);
if (log.isDebugEnabled()){
log.debug("营地id为:【{}】的类型【{}】",campsiteShopIds,shopTagsMap);
}
campsiteShopAdminPageDTOS.stream().peek(campsiteShopAdminPageDTO -> campsiteShopAdminPageDTO.setStoreTypeName(shopTagsMap.get(campsiteShopAdminPageDTO.getId())))
.sorted(Comparator.comparing(CampsiteShopAdminPageDTO::getHot).reversed().thenComparing(CampsiteShopAdminPageDTO::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>>(){}));
return campsiteShopAdminPageDataVos;
}
/**
* 营地保存或更新
* @param campsiteShopAdminDTO
* @return
*/
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public int saveCampsiteShop(CampsiteShopAdminDTO campsiteShopAdminDTO) {
CampsiteShop campsiteShop = new CampsiteShop();
BeanUtils.copyProperties(campsiteShopAdminDTO,campsiteShop);
int effectRows = 0;
if (Objects.nonNull(campsiteShopAdminDTO.getId())){
if (log.isDebugEnabled()){
log.debug("更新营地的信息:【{}】",campsiteShop);
}
//更新操作
campsiteShop.setUpdTime(Instant.now().toEpochMilli());
effectRows = mapper.updateByPrimaryKeySelective(campsiteShop);
}else {
//保存操作
//保存营地信息
if (log.isDebugEnabled()){
log.debug("保存营地的信息:【{}】",campsiteShop);
}
campsiteShop.setCrtTime(Instant.now().toEpochMilli());
effectRows = mapper.insertSelective(campsiteShop);
}
//保存或更新 * 营地与 轮播图信息
List<CampsiteShopCarouselDTO> carouselDTOS = campsiteShopAdminDTO.getCarouselDTOS();
if (CollectionUtils.isNotEmpty(carouselDTOS)) {
carouselDTOS.stream().peek(campsiteShopCarouselDTO -> campsiteShopCarouselDTO.setShopId(campsiteShop.getId())).count();
}
campsiteShopCarouselBiz.saveBatch(carouselDTOS,campsiteShop.getId());
//保存或更新 * 营地与营地类型信息
List<Integer> campsiteTagDTOS = campsiteShopAdminDTO.getCampsiteTagDTOS();
campsiteShopTagBiz.saveBatch(campsiteTagDTOS,campsiteShop.getId());
return effectRows;
}
/** /**
* 根据经纬度,计算两点间的距离 * 根据经纬度,计算两点间的距离
* *
...@@ -145,4 +221,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> { ...@@ -145,4 +221,6 @@ public class CampsiteShopBiz extends BaseBiz<CampsiteShopMapper,CampsiteShop> {
s = s * EARTH_RADIUS; s = s * EARTH_RADIUS;
return s; return s;
} }
} }
\ No newline at end of file
...@@ -2,13 +2,20 @@ package com.xxfc.platform.campsite.biz; ...@@ -2,13 +2,20 @@ package com.xxfc.platform.campsite.biz;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO; import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO; import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel; import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import com.xxfc.platform.campsite.mapper.CampsiteShopCarouselMapper; import com.xxfc.platform.campsite.mapper.CampsiteShopCarouselMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* 店铺轮播表 * 店铺轮播表
...@@ -18,6 +25,7 @@ import java.util.List; ...@@ -18,6 +25,7 @@ import java.util.List;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Service @Service
@Slf4j
public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,CampsiteShopCarousel> { public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,CampsiteShopCarousel> {
/** /**
...@@ -28,4 +36,32 @@ public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper, ...@@ -28,4 +36,32 @@ public class CampsiteShopCarouselBiz extends BaseBiz<CampsiteShopCarouselMapper,
public List<CampsiteShopCarouselDetailDTO> findByCampsiteShopId(Integer id) { public List<CampsiteShopCarouselDetailDTO> findByCampsiteShopId(Integer id) {
return mapper.findCarousesByShopId(id); return mapper.findCarousesByShopId(id);
} }
/**
* 批量保存
* @param carouselDTOS
* @return
*/
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public int saveBatch(List<CampsiteShopCarouselDTO> carouselDTOS,Integer shopId) {
List<Integer> ids =null;
List<CampsiteShopCarouselDTO> shopCarouselDTOS=null;
if (CollectionUtils.isNotEmpty(carouselDTOS)){
ids = carouselDTOS.stream().filter(campsiteShopCarouselDTO -> Objects.nonNull(campsiteShopCarouselDTO.getId())).map(CampsiteShopCarouselDTO::getId).collect(Collectors.toList());
shopCarouselDTOS = carouselDTOS.stream()
.filter(campsiteShopCarouselDTO -> Objects.isNull(campsiteShopCarouselDTO.getId()))
.collect(Collectors.toList());
}
if (log.isDebugEnabled()){
log.debug("更新的营地id:【{}】的轮播图信息id:【{}】",shopId,ids);
}
int effectRows = mapper.updateCarouseStatus(ids, shopId, 1);
if (CollectionUtils.isEmpty(shopCarouselDTOS)){
return effectRows;
}
if (log.isDebugEnabled()){
log.debug("保存营地id:【{}】的轮播图信息:【{}】",shopId,shopCarouselDTOS);
}
return mapper.saveBatch(shopCarouselDTOS);
}
} }
\ No newline at end of file
package com.xxfc.platform.campsite.biz; package com.xxfc.platform.campsite.biz;
import com.alibaba.fastjson.JSONObject;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO; import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopTagDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.xxfc.platform.campsite.entity.CampsiteShopTag; import com.xxfc.platform.campsite.entity.CampsiteShopTag;
import com.xxfc.platform.campsite.mapper.CampsiteShopTagMapper; import com.xxfc.platform.campsite.mapper.CampsiteShopTagMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.Instant;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* 店铺类型表 * 店铺类型表
...@@ -17,6 +27,7 @@ import java.util.List; ...@@ -17,6 +27,7 @@ import java.util.List;
* @date 2019-06-17 10:28:48 * @date 2019-06-17 10:28:48
*/ */
@Service @Service
@Slf4j
public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteShopTag> { public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteShopTag> {
/** /**
* 根据店铺id查询 * 根据店铺id查询
...@@ -26,4 +37,43 @@ public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteSh ...@@ -26,4 +37,43 @@ public class CampsiteShopTagBiz extends BaseBiz<CampsiteShopTagMapper,CampsiteSh
public List<String> findByCampsiteShopId(Integer id) { public List<String> findByCampsiteShopId(Integer id) {
return mapper.findByCampsiteShopId(id); return mapper.findByCampsiteShopId(id);
} }
/**
* 根据店铺ids查询
* @param campsiteShopIds
* @return
*/
public Map<Integer, List<String>> findByCampsiteShopIds(List<Integer> campsiteShopIds) {
List<CampsiteShopTagDTO> campsiteShopTagDTOS = mapper.findByCampsiteShopIds(campsiteShopIds);
if (CollectionUtils.isEmpty(campsiteShopTagDTOS)){
return null;
}
Map<Integer, List<String>> shopOfTagsMap = campsiteShopTagDTOS.stream()
.collect(Collectors.groupingBy(CampsiteShopTagDTO::getShopId,Collectors.mapping(CampsiteShopTagDTO::getTagName,Collectors.toList())));
return shopOfTagsMap;
}
/**
* 批量保存
* @param campsiteTagIds
* @return
*/
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
public int saveBatch(List<Integer> campsiteTagIds,Integer shopId) {
int effectRows = mapper.deleteByShopId(shopId);
if (CollectionUtils.isNotEmpty(campsiteTagIds)){
List<CampsiteShopTagDTO> campsiteShopTagDTOS = campsiteTagIds.stream().map(id -> {
CampsiteShopTagDTO campsiteShopTagDTO = new CampsiteShopTagDTO();
campsiteShopTagDTO.setTagId(id);
campsiteShopTagDTO.setShopId(shopId);
campsiteShopTagDTO.setCrtTime(Instant.now().toEpochMilli());
return campsiteShopTagDTO;
}).collect(Collectors.toList());
if (log.isDebugEnabled()){
log.debug("保存的营地与标签的信息:【{}】",campsiteShopTagDTOS);
}
mapper.saveBatch(campsiteShopTagDTOS);
}
return effectRows;
}
} }
\ No newline at end of file
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO; import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopCarousel; import com.xxfc.platform.campsite.entity.CampsiteShopCarousel;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -22,4 +24,8 @@ public interface CampsiteShopCarouselMapper extends Mapper<CampsiteShopCarousel> ...@@ -22,4 +24,8 @@ public interface CampsiteShopCarouselMapper extends Mapper<CampsiteShopCarousel>
* @return * @return
*/ */
List<CampsiteShopCarouselDetailDTO> findCarousesByShopId(Integer shopId); List<CampsiteShopCarouselDetailDTO> findCarousesByShopId(Integer shopId);
int updateCarouseStatus(@Param("ids") List<Integer> ids, @Param("shopId") Integer shopId, @Param("status") int status);
int saveBatch(@Param("sc") List<CampsiteShopCarouselDTO> shopCarouselDTOS);
} }
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminFindDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminPageDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO; import com.xxfc.platform.campsite.dto.CampsiteShopDetailDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO; import com.xxfc.platform.campsite.dto.CampsiteShopPageDTO;
import com.xxfc.platform.campsite.entity.CampsiteShop; import com.xxfc.platform.campsite.entity.CampsiteShop;
...@@ -30,4 +32,11 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> { ...@@ -30,4 +32,11 @@ public interface CampsiteShopMapper extends Mapper<CampsiteShop> {
* @return * @return
*/ */
CampsiteShopDetailDTO findCampsiteShopDetailById(Integer id); CampsiteShopDetailDTO findCampsiteShopDetailById(Integer id);
/**
* 根据条件查询
* @param campsiteShopAdminFindDTO
* @return
*/
List<CampsiteShopAdminPageDTO> findCampsiteShops(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO);
} }
package com.xxfc.platform.campsite.mapper; package com.xxfc.platform.campsite.mapper;
import com.xxfc.platform.campsite.dto.CampsiteShopTagDTO;
import com.xxfc.platform.campsite.entity.CampsiteShopTag; import com.xxfc.platform.campsite.entity.CampsiteShopTag;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
...@@ -22,4 +25,17 @@ public interface CampsiteShopTagMapper extends Mapper<CampsiteShopTag> { ...@@ -22,4 +25,17 @@ public interface CampsiteShopTagMapper extends Mapper<CampsiteShopTag> {
*/ */
@Select("select `name` from campsite_shop_tag as `cst` left join campsite_tag as `ct` on cst.tag_id=ct.id where `shop_id`=#{shopId}") @Select("select `name` from campsite_shop_tag as `cst` left join campsite_tag as `ct` on cst.tag_id=ct.id where `shop_id`=#{shopId}")
List<String> findByCampsiteShopId(Integer shopId); List<String> findByCampsiteShopId(Integer shopId);
/**
* 根据店铺ids查询
* @param campsiteShopIds
* @return
*/
List<CampsiteShopTagDTO> findByCampsiteShopIds(@Param("cspIds") List<Integer> campsiteShopIds);
int updateCampsiteTagStatus(@Param("ids") List<Long> ids,@Param("status") Integer status, @Param("shopId") Integer shopId);
int saveBatch(@Param("stgdtos") List<CampsiteShopTagDTO> shopTagDTOS);
int deleteByShopId(Integer shopId);
} }
...@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -23,7 +23,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@RequestMapping("/campsiteShop") @RequestMapping("/campsiteShop")
@Api(value = "营地店铺",tags = "营地店铺") @Api(value = "营地店铺",tags = "App营地店铺")
public class CampsiteShopController extends BaseController<CampsiteShopBiz,CampsiteShop> { public class CampsiteShopController extends BaseController<CampsiteShopBiz,CampsiteShop> {
...@@ -59,4 +59,6 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz,Camps ...@@ -59,4 +59,6 @@ public class CampsiteShopController extends BaseController<CampsiteShopBiz,Camps
CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id,longitude,latitude); CampsiteShopDetailVo campsiteShopDetailVo = getBaseBiz().findCampsiteShopDetailById(id,longitude,latitude);
return ObjectRestResponse.succ(campsiteShopDetailVo); return ObjectRestResponse.succ(campsiteShopDetailVo);
} }
} }
\ No newline at end of file
...@@ -27,12 +27,12 @@ import java.util.List; ...@@ -27,12 +27,12 @@ import java.util.List;
public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> { public class CampsiteTagController extends BaseController<CampsiteTagBiz,CampsiteTag> {
/** /**
* 查询营地列表 * 查询营地类型列表
* @return * @return
*/ */
@GetMapping("/app/unauth/tags") @GetMapping("/app/unauth/tags")
@IgnoreClientToken @IgnoreClientToken
@ApiOperation(value = "营地列表") @ApiOperation(value = "营地类型列表")
public ObjectRestResponse<CampsiteTagListVo> findCampstieTags(){ public ObjectRestResponse<CampsiteTagListVo> findCampstieTags(){
List<CampsiteTagListVo> campsiteTagListVolist = getBaseBiz().findCampsiteTags(); List<CampsiteTagListVo> campsiteTagListVolist = getBaseBiz().findCampsiteTags();
return ObjectRestResponse.succ(campsiteTagListVolist); return ObjectRestResponse.succ(campsiteTagListVolist);
......
package com.xxfc.platform.campsite.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.biz.CampsiteShopBiz;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminFindDTO;
import com.xxfc.platform.campsite.entity.CampsiteShop;
import com.xxfc.platform.campsite.vo.CampsiteShopAdminPageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
/**
* @author libin
* @version 1.0
* @description 营地店铺
* @data 2019/6/17 13:37
*/
@RestController
@RequestMapping("/admin/campsiteShop")
@Api(value = "营地店铺",tags = "后台营地店铺")
public class CampsiteShopAdminController extends BaseController<CampsiteShopBiz,CampsiteShop> {
/**
* 按条件分页查询 营地列表
* @param campsiteShopAdminFindDTO
* @return
*/
@ApiOperation(value = "营地列表")
@GetMapping("/pages")
public ObjectRestResponse<PageDataVO<CampsiteShopAdminPageVo>> findCampsiteShopPage(CampsiteShopAdminFindDTO campsiteShopAdminFindDTO){
PageDataVO<CampsiteShopAdminPageVo> pageVoPageDataVO = getBaseBiz().findCampsiteShopPage(campsiteShopAdminFindDTO);
return ObjectRestResponse.succ(pageVoPageDataVO);
}
/**
* 营地保存
* @param campsiteShopAdminDTO
* @return
*/
@PostMapping("/save")
public ObjectRestResponse<Void> saveCampistieShop(@RequestBody CampsiteShopAdminDTO campsiteShopAdminDTO){
int effectRows = getBaseBiz().saveCampsiteShop(campsiteShopAdminDTO);
if (effectRows>0){
return ObjectRestResponse.succ();
}
return ObjectRestResponse.createDefaultFail();
}
}
\ No newline at end of file
package com.xxfc.platform.campsite.rest.admin;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.campsite.biz.CampsiteTagBiz;
import com.xxfc.platform.campsite.entity.CampsiteTag;
import com.xxfc.platform.campsite.vo.CampsiteTagListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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/6/17 13:36
*/
@RestController
@RequestMapping("/admin/campsiteTag")
@Api(tags = "营地类型")
public class CampsiteTagAdminController extends BaseController<CampsiteTagBiz,CampsiteTag> {
}
\ No newline at end of file
...@@ -14,6 +14,22 @@ ...@@ -14,6 +14,22 @@
</resultMap> </resultMap>
<select id="findCarousesByShopId" resultType="com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO"> <select id="findCarousesByShopId" resultType="com.xxfc.platform.campsite.dto.CampsiteShopCarouselDetailDTO">
select `img_url`as `imgUrl`,`url`as `url` from campsite_shop_carousel where shop_id=#{shopId} select `img_url`as `imgUrl`,`url`as `url` from `campsite_shop_carousel` where shop_id=#{shopId}
</select> </select>
<update id="updateCarouseStatus">
update `campsite_shop_carousel` set `is_del`=#{status} where `shop_id`=#{shopId}
<if test="ids != null and ids.size() != 0">
and `id` not in <foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</update>
<insert id="saveBatch" >
insert into `campsite_shop_carousel` (`shop_id`,`img_url`)values
<foreach collection="sc" item="s" separator=",">
(#{s.shopId} ,#{s.imgUrl} )
</foreach>;
</insert>
</mapper> </mapper>
\ No newline at end of file
...@@ -30,11 +30,13 @@ ...@@ -30,11 +30,13 @@
<result property="crtTime" column="crt_time"/> <result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/> <result property="updTime" column="upd_time"/>
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
<result property="hot" column="hot"/>
<result property="saleState" column="sale_state"/>
</resultMap> </resultMap>
<select id="findCampsiteShopsByType" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO"> <select id="findCampsiteShopsByType" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO">
select cs.id as `id`,cs.name as `name`,cs.logo as `logo`,cs.url as `url`,cs.province_name as `provinceName`,cs.city_name as `cityName`, select cs.id as `id`,cs.name as `name`,cs.logo as `logo`,cs.url as `url`,cs.province_name as `provinceName`,cs.city_name as `cityName`,
cs.longitude as `longitude`,cs.latitude as `latitude`,ct.id as `storeId`,ct.name as `storeTypeName` cs.longitude as `longitude`,cs.latitude as `latitude`,cs.hot as `hot`,cs.crt_time as `crtTime`,ct.id as `storeId`,ct.name as `storeTypeName`
FROM `campsite_shop_tag` cst FROM `campsite_shop_tag` cst
left JOIN `campsite_shop` cs on cst.shop_id=cs.id left JOIN `campsite_shop` cs on cst.shop_id=cs.id
left JOIN `campsite_tag` ct on cst.tag_id=ct.id left JOIN `campsite_tag` ct on cst.tag_id=ct.id
...@@ -47,4 +49,30 @@ ...@@ -47,4 +49,30 @@
select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`adress` as `address`, select `name` as `name`,`province_name` as `provinceName`,`city_name` as `cityName`,`adress` as `address`,
`content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id} `content` as `content`,`configure` as `configure`,`longitude` as `longitude`,`latitude` as `latitude` from `campsite_shop` where `id`=#{id}
</select> </select>
<select id="findCampsiteShops" parameterType="com.xxfc.platform.campsite.dto.CampsiteShopAdminFindDTO" resultType="com.xxfc.platform.campsite.dto.CampsiteShopAdminPageDTO">
SELECT `id`,`name`,`hot`,`crt_time` as `crtTime`,`sale_state` as
`saleState` FROM `campsite_shop`
<where>
<if test="startTime != null || endTime!=null">
<choose>
<when test="startTime!=null and endTime!=null">
crt_time between #{startTime} and #{endTime}
</when>
<otherwise>
<if test="startTime!=null">
crt_time=#{startTime}
</if>
<if test="endTime != null">
crt_time=#{endTime}
</if>
</otherwise>
</choose>
</if>
<if test="name != null and name != ''">
and `name` like concat('%',#{name},'%')
</if>
</where>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -13,4 +13,33 @@ ...@@ -13,4 +13,33 @@
<result property="isDel" column="is_del"/> <result property="isDel" column="is_del"/>
</resultMap> </resultMap>
<select id="findByCampsiteShopIds" resultType="com.xxfc.platform.campsite.dto.CampsiteShopTagDTO">
select cst.shop_id as `shopId`,cst.tag_id as `tagId`,ct.name as `tagName` from `campsite_shop_tag` as `cst` inner join `campsite_tag` as `ct` on cst.tag_id=ct.id where cst.is_del=0
and cst.tag_id in
<foreach collection="cspIds" item="tagId" separator="," open="(" close=")">
#{tagId}
</foreach>
</select>
<update id="updateCampsiteTagStatus">
update `campsite_shop_tag` set `is_del`=#{status} where `shop_id`=#{shopId}
<if test="ids != null and ids.size() != 0">
and `id` not in <foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</update>
<insert id="saveBatch">
insert into `campsite_shop_tag`(`shop_id`,`tag_id`,`crt_time`)values
<foreach collection="stgdtos" item="stg" separator=",">
(#{stg.shopId} ,#{stg.tagId} ,#{stg.crtTime} )
</foreach>
</insert>
<delete id="deleteByShopId">
delete from `campsite_shop_tag` where `shop_id`=#{shopId} ;
</delete>
</mapper> </mapper>
\ No newline at end of file
package com.xxfc.service;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.campsite.CampSiteApplication;
import com.xxfc.platform.campsite.biz.CampsiteShopBiz;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopAdminFindDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopCarouselDTO;
import com.xxfc.platform.campsite.dto.CampsiteShopTagDTO;
import com.xxfc.platform.campsite.vo.CampsiteShopAdminPageVo;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.time.Instant;
import java.util.Arrays;
/**
* @author libin
* @version 1.0
* @description TODO
* @data 2019/6/19 16:41
*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = CampSiteApplication.class)
@Slf4j
public class CampsiteShopBizTest {
@Autowired
private CampsiteShopBiz campsiteShopBiz;
@Test
public void testList(){
CampsiteShopAdminFindDTO campsiteShopAdminFindDTO = new CampsiteShopAdminFindDTO();
campsiteShopAdminFindDTO.setName("kon");
Instant now = Instant.now();
long start = now.minusMillis(3 * 24 * 60 * 60 * 1000).toEpochMilli();
campsiteShopAdminFindDTO.setStartTime(start);
campsiteShopAdminFindDTO.setEndTime(now.toEpochMilli());
campsiteShopAdminFindDTO.setPage(1);
campsiteShopAdminFindDTO.setLimit(10);
PageDataVO<CampsiteShopAdminPageVo> campsiteShopPage = campsiteShopBiz.findCampsiteShopPage(campsiteShopAdminFindDTO);
System.out.println(campsiteShopPage.getData());
}
@Test
public void testSae(){
CampsiteShopAdminDTO campsiteShopAdminDTO = new CampsiteShopAdminDTO();
// campsiteShopAdminDTO.setId(13);
campsiteShopAdminDTO.setProvince(2323);
campsiteShopAdminDTO.setProvinceName("浙江省");
campsiteShopAdminDTO.setCity(2342342);
campsiteShopAdminDTO.setCityName("台州市");
campsiteShopAdminDTO.setAdress("胡同路23号");
campsiteShopAdminDTO.setConcat("zhangsan");
campsiteShopAdminDTO.setConfigure("dsaasdfasdfa");
campsiteShopAdminDTO.setContent("sadfasdfasdfasd");
campsiteShopAdminDTO.setHot(23);
campsiteShopAdminDTO.setLogo("https://xxtest.upyuns.com/image/admin/2019-06-13/23.png");
campsiteShopAdminDTO.setName("kong");
campsiteShopAdminDTO.setPhone("132121212121");
campsiteShopAdminDTO.setServicePhone("4545454545");
campsiteShopAdminDTO.setLatitude(39.983171);
campsiteShopAdminDTO.setLongitude(116.308479);
CampsiteShopCarouselDTO campsiteShopCarouselDTO = new CampsiteShopCarouselDTO();
//campsiteShopCarouselDTO.setId(12);
campsiteShopCarouselDTO.setImgUrl("https://xxtest.upyuns.com/image/admin/2019-06-13/23.png");
campsiteShopAdminDTO.setCarouselDTOS(Arrays.asList(campsiteShopCarouselDTO));
campsiteShopAdminDTO.setCampsiteTagDTOS(Arrays.asList(1));
System.out.println("保存的json信息:【{}】"+JSONObject.toJSONString(campsiteShopAdminDTO));
campsiteShopBiz.saveCampsiteShop(campsiteShopAdminDTO);
}
}
package com.xxfc.platform.order.contant.enumerate;
import java.util.HashMap;
import java.util.Map;
public enum RefundTypeEnum {
RentVehicle(1, "订单款"),
TOUR(2, "押金"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
//Maps.newHashMap();
// static{
// for(VehicleBookRecordStatus constantType : VehicleBookRecordStatus.values()){
// codeAndDesc.put(constantType.getCode(),constantType.getDesc());
// }
// }
RefundTypeEnum(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
package com.xxfc.platform.order.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
@Data
@Table(name = "order_member_detail")
public class OrderMemberDetail 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 = "name")
@ApiModelProperty(value = "名称")
private String name;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 出租免费天数
*/
@Column(name = "rent_free_num")
@ApiModelProperty(value = "出租免费天数")
private Integer rentFreeNum;
/**
* 折扣比例 80即 八折
*/
@Column(name = "rebate")
@ApiModelProperty(value = "折扣比例 80即 八折")
private Integer rebate;
}
package com.xxfc.platform.order.entity; package com.xxfc.platform.order.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -39,7 +40,7 @@ public class OrderRefund implements Serializable { ...@@ -39,7 +40,7 @@ public class OrderRefund implements Serializable {
*/ */
@Column(name = "trade_no") @Column(name = "trade_no")
@ApiModelProperty(value = "退款对应的流水号") @ApiModelProperty(value = "退款对应的流水号")
private Integer tradeNo; private String tradeNo;
/** /**
* 退款时间 * 退款时间
...@@ -67,7 +68,7 @@ public class OrderRefund implements Serializable { ...@@ -67,7 +68,7 @@ public class OrderRefund implements Serializable {
*/ */
@Column(name = "refund_amount") @Column(name = "refund_amount")
@ApiModelProperty(value = "退款金额") @ApiModelProperty(value = "退款金额")
private Integer refundAmount; private BigDecimal refundAmount;
/** /**
* 退款说明 * 退款说明
......
...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.entity; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.order.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -12,7 +13,7 @@ import lombok.Data; ...@@ -12,7 +13,7 @@ import lombok.Data;
* *
* @author zjw * @author zjw
* @email nishijjo@qq.com * @email nishijjo@qq.com
* @date 2019-06-15 17:11:08 * @date 2019-06-19 20:21:29
*/ */
@Data @Data
@Table(name = "order_rent_vehicle_detail") @Table(name = "order_rent_vehicle_detail")
...@@ -258,6 +259,13 @@ public class OrderRentVehicleDetail implements Serializable { ...@@ -258,6 +259,13 @@ public class OrderRentVehicleDetail implements Serializable {
@ApiModelProperty(value = "优惠天数") @ApiModelProperty(value = "优惠天数")
private Integer freeDays; private Integer freeDays;
/**
* 折扣 80 即 8折
*/
@Column(name = "rebate")
@ApiModelProperty(value = "折扣 80 即 8折")
private Integer rebate;
/** /**
* 出发公司区域id * 出发公司区域id
*/ */
...@@ -265,5 +273,19 @@ public class OrderRentVehicleDetail implements Serializable { ...@@ -265,5 +273,19 @@ public class OrderRentVehicleDetail implements Serializable {
@ApiModelProperty(value = "出发公司区域id") @ApiModelProperty(value = "出发公司区域id")
private Integer startZoneId; private Integer startZoneId;
/**
* 退还钱(押金)的状态 0--未退还;1--已退还所有钱;2--已退还部分押金(保留违章预备金);3--已退还所有押金(扣除该扣除的)
*/
@Column(name = "return_pay_status")
@ApiModelProperty(value = "退还钱(押金)的状态 0--未退还;1--已退还所有钱;2--已退还部分押金(保留违章预备金);3--已退还所有押金(扣除该扣除的)")
private Integer returnPayStatus;
/**
* 剩余需要退还的钱(押金)
*/
@Column(name = "return_pay_residue")
@ApiModelProperty(value = "剩余需要退还的钱(押金)")
private BigDecimal returnPayResidue;
} }
...@@ -114,9 +114,11 @@ public class OrderVehicaleCrosstown { ...@@ -114,9 +114,11 @@ public class OrderVehicaleCrosstown {
/** /**
* 是否有扣除项 * 是否有扣除项
*/ */
private Boolean isDed; private Boolean deduction;
/** /**
* 扣除项明细 * 扣除项明细 json
* deductions: 扣除项
* cost:费用
*/ */
private String dedDetail; private String dedDetail;
...@@ -129,4 +131,14 @@ public class OrderVehicaleCrosstown { ...@@ -129,4 +131,14 @@ public class OrderVehicaleCrosstown {
* 1、交车, 2、还车 * 1、交车, 2、还车
*/ */
private Integer type; private Integer type;
/**
* 合计扣除费用
*/
private Integer deductionCost;
/**
* 剩余押金
*/
private Integer restDeposit;
} }
\ No newline at end of file
...@@ -60,4 +60,8 @@ public class AddTourDTO { ...@@ -60,4 +60,8 @@ public class AddTourDTO {
//联系邮箱 //联系邮箱
@ApiModelProperty(value = "联系邮箱") @ApiModelProperty(value = "联系邮箱")
private String contactEmail; private String contactEmail;
//站点id
@ApiModelProperty(value = "站点id")
private Integer siteId;
} }
package com.xxfc.platform.order.pojo.order;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderMemberDetail;
import com.xxfc.platform.order.entity.OrderTourDetail;
import com.xxfc.platform.order.entity.inter.OrderDetail;
import com.xxfc.platform.tour.entity.TourGood;
import com.xxfc.platform.tour.entity.TourUser;
import lombok.Data;
import java.util.List;
@Data
public class MemberBO extends OrderMemberDetail implements OrderDetail {
private BaseOrder order;
private BaseUserMemberLevel baseUserMemberLevel;
private Integer levelNum;
}
...@@ -25,6 +25,14 @@ ...@@ -25,6 +25,14 @@
<version>2.0-SNAPSHOT</version> <version>2.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum; import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum; import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder; import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRefund; import com.xxfc.platform.order.entity.OrderRefund;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
...@@ -21,6 +24,7 @@ import java.util.LinkedList; ...@@ -21,6 +24,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
/** /**
...@@ -81,15 +85,30 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> { ...@@ -81,15 +85,30 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper,BaseOrder> {
//计算退款金额 //计算退款金额
// 1、押金 + 租金(规则扣除) // 1、押金 + 租金(规则扣除)
BigDecimal refundAmont = orvd.getDeposit().add(baseOrder.getGoodsAmount()); BigDecimal refundAmont = orvd.getDeposit().add(baseOrder.getGoodsAmount());
thirdFeign.refund(new OrderRefundVo(){{ String refundTradeNo = thirdFeign.refund(new OrderRefundVo(){{
setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue()); setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
setRefundAmount(refundAmont.multiply(new BigDecimal("100")).intValue()); setRefundAmount(refundAmont.multiply(new BigDecimal("100")).intValue());
setOrderNo(baseOrder.getNo()); setOrderNo(baseOrder.getNo());
setRefundDesc("取消订单退款:"+ refundAmont.toString()); setRefundDesc("取消订单退款:"+ refundAmont.toString());
}}); }}).getData();
//创建订单退款记录 //如果返回的流水为空,则当做失败
Integer refundStatus = SYS_TRUE;
if(StrUtil.isBlank(refundTradeNo)) {
refundStatus = SYS_FALSE;
}
//创建订单退款记录
OrderRefund orderRefund = new OrderRefund(){{
setOrderId(baseOrder.getId());
setRefundAmount(refundAmont);
setRefundTime(System.currentTimeMillis());
setRefundDesc("取消订单退款:"+ refundAmont.toString());
setTradeNo(refundTradeNo);
setRefundType(RefundTypeEnum.RentVehicle.getCode());
}};
orderRefund.setRefundStatus(refundStatus);
orderRefundBiz.insertSelective(orderRefund);
}else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) { }else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
......
package com.xxfc.platform.order.biz;
import org.springframework.stereotype.Service;
import com.xxfc.platform.order.entity.OrderMemberDetail;
import com.xxfc.platform.order.mapper.OrderMemberDetailMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
@Service
public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderMemberDetail> {
}
\ No newline at end of file
package com.xxfc.platform.order.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* xxl-job config
*
* @author xuxueli 2017-04-28
*/
@Slf4j
@Configuration
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appname}")
private String appName;
@Value("${xxl.job.executor.ip}")
private String ip;
@Value("${xxl.job.executor.port}")
private int port;
@Value("${xxl.job.accessToken}")
private String accessToken;
@Value("${xxl.job.executor.logpath}")
private String logPath;
@Value("${xxl.job.executor.logretentiondays}")
private int logRetentionDays;
@Bean(initMethod = "start", destroyMethod = "destroy")
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init.");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppName(appName);
xxlJobSpringExecutor.setIp(ip);
xxlJobSpringExecutor.setPort(port);
xxlJobSpringExecutor.setAccessToken(accessToken);
xxlJobSpringExecutor.setLogPath(logPath);
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
return xxlJobSpringExecutor;
}
/**
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
*
* 1、引入依赖:
* <dependency>
* <groupId>org.springframework.cloud</groupId>
* <artifactId>spring-cloud-commons</artifactId>
* <version>${version}</version>
* </dependency>
*
* 2、配置文件,或者容器启动变量
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
*
* 3、获取IP
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
*/
}
\ No newline at end of file
package com.xxfc.platform.order.jobhandler;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* 跨平台Http任务
*
* @author xuxueli 2018-09-16 03:48:34
*/
@JobHandler(value = "httpJobHandler")
@Component
@Slf4j
public class HttpJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
try {
for(int i =0; i < 10; i++) {
XxlJobLogger.log("helloword");
log.info("helloword");
}
ReturnT returnT = new ReturnT();
returnT.setCode(100);
returnT.setMsg("成功");
returnT.setContent(param);
return returnT;
} catch (Exception e) {
XxlJobLogger.log(e);
return FAIL;
} finally {
;
}
}
}
\ No newline at end of file
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderMemberDetail;
import tk.mybatis.mapper.common.Mapper;
/**
*
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-19 17:00:35
*/
public interface OrderMemberDetailMapper extends Mapper<OrderMemberDetail> {
}
...@@ -84,18 +84,9 @@ public class BaseOrderController extends CommonBaseController { ...@@ -84,18 +84,9 @@ public class BaseOrderController extends CommonBaseController {
return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper()))); return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query, () -> baseOrderBiz.pageByParm(query.getSuper())));
} }
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "订单列表")
@IgnoreClientToken
public ObjectRestResponse<PageDataVO<OrderPageVO>> getOrderList(QueryOrderDTO dto) {
Query query = new Query(dto);
return new ObjectRestResponse<>().data(PageDataVO.pageInfo(query, () -> baseOrderBiz.selectListAll()));
}
@RequestMapping(value = "/getOrderList", method = RequestMethod.GET) @RequestMapping(value = "/getOrderList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "订单列表") @ApiOperation(value = "获取后台订单列表")
@IgnoreClientToken @IgnoreClientToken
public ObjectRestResponse<PageDataVO<OrderPageVO>> selectByUser(QueryOrderList dto) { public ObjectRestResponse<PageDataVO<OrderPageVO>> selectByUser(QueryOrderList dto) {
if (dto.getStartTime() != null) { if (dto.getStartTime() != null) {
...@@ -130,7 +121,7 @@ public class BaseOrderController extends CommonBaseController { ...@@ -130,7 +121,7 @@ public class BaseOrderController extends CommonBaseController {
@RequestMapping(value = "/getVehicleList", method = RequestMethod.GET) @RequestMapping(value = "/getVehicleList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "交还车订单列表") @ApiOperation(value = "交还车租车订单列表")
@IgnoreClientToken @IgnoreClientToken
public ObjectRestResponse<List<OrderPageVO>> getVehicleList(QueryOrderList dto) { public ObjectRestResponse<List<OrderPageVO>> getVehicleList(QueryOrderList dto) {
if (dto.getStartTime() != null) { if (dto.getStartTime() != null) {
...@@ -146,7 +137,7 @@ public class BaseOrderController extends CommonBaseController { ...@@ -146,7 +137,7 @@ public class BaseOrderController extends CommonBaseController {
@RequestMapping(value = "/getTourList", method = RequestMethod.GET) @RequestMapping(value = "/getTourList", method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "交还车订单列表") @ApiOperation(value = "交还车旅游订单列表")
@IgnoreClientToken @IgnoreClientToken
public ObjectRestResponse<List<OrderPageVO>> getTourList(QueryOrderList dto) { public ObjectRestResponse<List<OrderPageVO>> getTourList(QueryOrderList dto) {
if (dto.getStartTime() != null) { if (dto.getStartTime() != null) {
......
package com.xxfc.platform.order.rest;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderMemberDetailBiz;
import com.xxfc.platform.order.entity.OrderMemberDetail;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("orderMemberDetail")
public class OrderMemberDetailController extends BaseController<OrderMemberDetailBiz,OrderMemberDetail> {
}
\ No newline at end of file
package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Dict;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.order.biz.OrderCostDetailBiz;
import com.xxfc.platform.order.biz.OrderMemberDetailBiz;
import com.xxfc.platform.order.biz.OrderTemplateBiz;
import com.xxfc.platform.order.biz.OrderTourDetailBiz;
import com.xxfc.platform.order.contant.enumerate.OrderCostEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderTemplate;
import com.xxfc.platform.order.pojo.order.MemberBO;
import com.xxfc.platform.order.pojo.order.TourBO;
import com.xxfc.platform.order.pojo.price.OrderPriceVO;
import com.xxfc.platform.order.pojo.price.TourPriceVO;
import com.xxfc.platform.tour.dto.TourSpePriceDTO;
import com.xxfc.platform.tour.entity.TourGood;
import com.xxfc.platform.tour.entity.TourGoodVerification;
import com.xxfc.platform.tour.entity.TourUser;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.tour.vo.TourSpePriceVo;
import com.xxfc.platform.vehicle.entity.SysRegion;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.log4j.Log4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Log4j
public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz, MemberBO> {
@Autowired
TourFeign tourFeign;
@Autowired
VehicleFeign vehicleFeign;
private static Integer IS_CHILD = 1;
private static Integer LEVEL_DEFAULT = 0;
private static Integer NUMBER_ZERO = 0;
@Autowired
OrderCostDetailBiz orderCostDetailBiz;
@Autowired
OrderTemplateBiz orderTemplateBiz;
@Autowired
protected UserAuthConfig userAuthConfig;
@Autowired
UserFeign userFeign;
@Autowired
public HttpServletRequest request;
@PostConstruct
public void init(){
this.orderTypeEnum = OrderTypeEnum.MEMBER;
}
public AppUserDTO getUserInfo(){
return userFeign.userDetailByToken(userAuthConfig.getToken(request)).getData();
}
@Override
public void initDetail(MemberBO bo) {
super.initDetail(bo);
BaseUserMemberLevel buml = userFeign.level(bo.getLevelNum());
bo.setBaseUserMemberLevel(buml);
bo.setRentFreeNum(buml.getNumber());
bo.setRebate(buml.getDiscount());
}
@Override
public void handleDetail(MemberBO bo) {
//设置订单状态为3
bo.getOrder().setStatus(OrderStatusEnum.ORDER_UNPAY.getCode());
//设置订单图片
bo.getOrder().setPicture(bo.getBaseUserMemberLevel().getIcon());
//设置订单名称
bo.getOrder().setName(bo.getBaseUserMemberLevel().getName());
super.handleDetail(bo);
}
@Override
public void handleCalculate(MemberBO bo) {
OrderPriceVO tpv = calculatePrice(bo);
BeanUtil.copyProperties(tpv, bo.getOrder());
BeanUtil.copyProperties(tpv, bo);
}
@Override
public OrderPriceVO calculatePrice(MemberBO detail) {
BigDecimal orderAmount = BigDecimal.ZERO;
BigDecimal goodsAmount = BigDecimal.ZERO;
BigDecimal realAmount = BigDecimal.ZERO;
//商品价格
goodsAmount = goodsAmount.add(detail.getBaseUserMemberLevel().getPrice());
//订单总价格
orderAmount = orderAmount.add(goodsAmount);
//真实价格
realAmount = realAmount.add(orderAmount);
//生成订单明细
OrderPriceVO opv = new OrderPriceVO();
opv.setOrderAmount(orderAmount);
opv.setGoodsAmount(goodsAmount);
opv.setRealAmount(realAmount);
return opv;
}
}
...@@ -113,11 +113,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -113,11 +113,11 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
bo.setStartCityName(sysRegion.getName()); bo.setStartCityName(sysRegion.getName());
//设置verificationId 核销id //设置verificationId 核销id
// bo.setVerificationId(tourFeign.entityList(BeanUtil.beanToMap(new TourGoodVerification(){{ bo.setVerificationId(tourFeign.entityList(BeanUtil.beanToMap(new TourGoodVerification(){{
// setSpeId(bo.getSpePriceId()); setSpeId(bo.getSpePriceId());
// setGoodId(bo.getGoodId()); setGoodId(bo.getGoodId());
// setSiteId(bo.getSiteId()); setSiteId(bo.getSiteId());
// }})).getData().get(0).getId()); }})).getData().get(0).getId());
//扣減庫存 //扣減庫存
tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber()); tourFeign.stock(bo.getSpePriceId(), bo.getTotalNumber());
......
...@@ -24,9 +24,11 @@ ...@@ -24,9 +24,11 @@
<result column="upd_time" jdbcType="BIGINT" property="updTime" /> <result column="upd_time" jdbcType="BIGINT" property="updTime" />
<result column="vehicle_key" jdbcType="LONGVARCHAR" property="vehicleKey"/> <result column="vehicle_key" jdbcType="LONGVARCHAR" property="vehicleKey"/>
<result column="license_id_card" jdbcType="VARCHAR" property="licenseIdCard"/> <result column="license_id_card" jdbcType="VARCHAR" property="licenseIdCard"/>
<result column="is_ded" jdbcType="BIT" property="isDeD" /> <result column="deduction" jdbcType="BIT" property="deduction" />
<result column="ded_detail" jdbcType="LONGVARCHAR" property="dedDetail" /> <result column="ded_detail" jdbcType="LONGVARCHAR" property="dedDetail" />
<result column="type" jdbcType="INTEGER" property="type"/> <result column="type" jdbcType="INTEGER" property="type"/>
<result column="deduction_cost" jdbcType="INTEGER" property="deductionCost"/>
<result column="rest_deposit" jdbcType="INTEGER" property="restDeposit"/>
</resultMap> </resultMap>
<select id="selectByOrderId" parameterType="com.xxfc.platform.order.entity.OrderVehicaleCrosstown" resultMap="BaseResultMap"> <select id="selectByOrderId" parameterType="com.xxfc.platform.order.entity.OrderVehicaleCrosstown" resultMap="BaseResultMap">
......
...@@ -36,7 +36,7 @@ public interface TourFeign { ...@@ -36,7 +36,7 @@ public interface TourFeign {
public ObjectRestResponse<TourSpePriceVo> refund(@RequestBody TourSpePriceDTO spePriceDto); public ObjectRestResponse<TourSpePriceVo> refund(@RequestBody TourSpePriceDTO spePriceDto);
@RequestMapping(value = "/spe/stock", method = RequestMethod.GET) @RequestMapping(value = "/spe/stock", method = RequestMethod.GET)
public ObjectRestResponse<TourSpePriceVo> stock(@RequestParam Integer speId, @RequestParam Integer number); public ObjectRestResponse<TourSpePriceVo> stock(@RequestParam Integer speId, @RequestParam Integer number, @RequestParam Integer type);
@RequestMapping(value = "/tourGood/app/unauth/usable/{id}", method = RequestMethod.GET) @RequestMapping(value = "/tourGood/app/unauth/usable/{id}", method = RequestMethod.GET)
......
...@@ -83,14 +83,18 @@ public class TourGoodSpeBiz extends BaseBiz<TourGoodSpePriceMapper, TourGoodSpeP ...@@ -83,14 +83,18 @@ public class TourGoodSpeBiz extends BaseBiz<TourGoodSpePriceMapper, TourGoodSpeP
} }
//减库存 //减库存
public ObjectRestResponse cutStock(Integer speId,Integer number) { public ObjectRestResponse cutStock(Integer speId,Integer number,Integer type) {
TourGoodSpePrice spePrice = mapper.selectByPrimaryKey(speId); TourGoodSpePrice spePrice = mapper.selectByPrimaryKey(speId);
if (spePrice != null && spePrice.getStock() > 0 && spePrice.getStock() >= number) { if(type==1){
mapper.updStockById(speId, number); if (spePrice != null && spePrice.getStock() > 0 && spePrice.getStock() >= number) {
return ObjectRestResponse.succ(); mapper.updStockById(speId, number,type);
} else { } else {
return ObjectRestResponse.createFailedResult(ResultCode.STOCK_CODE, "库存不足"); return ObjectRestResponse.createFailedResult(ResultCode.STOCK_CODE, "库存不足");
}
}else {
mapper.updStockById(speId, number,type);
} }
return ObjectRestResponse.succ();
} }
//删除 //删除
......
...@@ -19,7 +19,7 @@ public interface TourGoodSpePriceMapper extends Mapper<TourGoodSpePrice> { ...@@ -19,7 +19,7 @@ public interface TourGoodSpePriceMapper extends Mapper<TourGoodSpePrice> {
List<TourDepartTimeVo> getAllByGoodId(@Param("goodId") Integer goodId); List<TourDepartTimeVo> getAllByGoodId(@Param("goodId") Integer goodId);
//减库存 //减库存
int updStockById(@Param("id") Integer id,@Param("number") Integer number); int updStockById(@Param("id") Integer id,@Param("number") Integer number,@Param("type") Integer type);
//删除站点 //删除站点
public int delSpe(@Param("goodId")Integer goodId,@Param("list")List<Integer> ids); public int delSpe(@Param("goodId")Integer goodId,@Param("list")List<Integer> ids);
......
...@@ -26,8 +26,10 @@ public class TourGoodSpeController extends TourBaseController<TourGoodSpeBiz> { ...@@ -26,8 +26,10 @@ public class TourGoodSpeController extends TourBaseController<TourGoodSpeBiz> {
@RequestMapping(value = "/stock", method = RequestMethod.GET) @RequestMapping(value = "/stock", method = RequestMethod.GET)
public ObjectRestResponse<TourSpePriceVo> stock( public ObjectRestResponse<TourSpePriceVo> stock(
@RequestParam(value = "speId",defaultValue = "0")Integer speId, @RequestParam(value = "speId",defaultValue = "0")Integer speId,
@RequestParam(value = "number",defaultValue = "0") Integer number){ @RequestParam(value = "number",defaultValue = "0") Integer number,
return baseBiz.cutStock(speId,number); @RequestParam(value = "type",defaultValue = "1") Integer type
){
return baseBiz.cutStock(speId,number,type);
} }
} }
\ No newline at end of file
...@@ -43,7 +43,14 @@ ...@@ -43,7 +43,14 @@
<!-- 减库存--> <!-- 减库存-->
<update id="updStockById"> <update id="updStockById">
update tour_good_spe_price set stock=stock-#{number} where id=#{id} update tour_good_spe_price set
<if test="type==1">
stock=stock-#{number}
</if>
<if test="type==2">
stock=stock+#{number}
</if>
where id=#{id}
</update> </update>
<update id="delSpe"> <update id="delSpe">
......
package com.xxfc.platform.universal.feign; package com.xxfc.platform.universal.feign;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.universal.entity.OrderRefund; import com.xxfc.platform.universal.entity.OrderRefund;
import com.xxfc.platform.universal.vo.OrderPayVo; import com.xxfc.platform.universal.vo.OrderPayVo;
import com.xxfc.platform.universal.vo.OrderRefundVo; import com.xxfc.platform.universal.vo.OrderRefundVo;
...@@ -27,6 +28,6 @@ public interface ThirdFeign { ...@@ -27,6 +28,6 @@ public interface ThirdFeign {
@RequestMapping(value = "/pay/app/wx", method = RequestMethod.POST) @RequestMapping(value = "/pay/app/wx", method = RequestMethod.POST)
public JSONObject wx(@RequestBody OrderPayVo orderPayVo); public JSONObject wx(@RequestBody OrderPayVo orderPayVo);
@RequestMapping(value = "/refund/app/wx", method = RequestMethod.POST) @RequestMapping(value = "/refund/app/wx", method = RequestMethod.POST)
public JSONObject refund(@RequestBody OrderRefundVo orderRefundVo); public ObjectRestResponse<String> refund(@RequestBody OrderRefundVo orderRefundVo);
} }
package com.xxfc.platform.vehicle.entity;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Table(name = "vehicle_book_hour_info")
public class VehicleBookHourInfo {
@Id
private Integer id;
@Column(name = "vehicle_id")
private String vehicleId;
@Column(name = "year_month_day")
private String yearMonthDay;
@Column(name = "booked_hour")
private Integer bookedHour;
@Column(name = "create_time")
private Date createTime;
@Column(name = "update_time")
private Date updateTime;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* @return vehicle_id
*/
public String getVehicleId() {
return vehicleId;
}
/**
* @param vehicleId
*/
public void setVehicleId(String vehicleId) {
this.vehicleId = vehicleId;
}
/**
* @return year_month_day
*/
public String getYearMonthDay() {
return yearMonthDay;
}
/**
* @param yearMonthDay
*/
public void setYearMonthDay(String yearMonthDay) {
this.yearMonthDay = yearMonthDay;
}
/**
* @return booked_hour
*/
public Integer getBookedHour() {
return bookedHour;
}
/**
* @param bookedHour
*/
public void setBookedHour(Integer bookedHour) {
this.bookedHour = bookedHour;
}
/**
* @return create_time
*/
public Date getCreateTime() {
return createTime;
}
/**
* @param createTime
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* @return update_time
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* @param updateTime
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
\ No newline at end of file
...@@ -18,7 +18,7 @@ public class VehicleBookRecord { ...@@ -18,7 +18,7 @@ public class VehicleBookRecord {
/** /**
* 车辆id * 车辆id
*/ */
private String vehicle; private String vehicleId;
/** /**
* 申请状态:1-申请中 2-已通过 3-已归还 4-拒绝 5-逾期归还 * 申请状态:1-申请中 2-已通过 3-已归还 4-拒绝 5-逾期归还
......
...@@ -37,4 +37,10 @@ public interface VehicleFeign { ...@@ -37,4 +37,10 @@ public interface VehicleFeign {
@RequestMapping(value ="/branchCompany/app/unauth/detail/{id}",method = RequestMethod.GET) @RequestMapping(value ="/branchCompany/app/unauth/detail/{id}",method = RequestMethod.GET)
public ObjectRestResponse<CompanyDetail> getCompanyDetail(@PathVariable Integer id); public ObjectRestResponse<CompanyDetail> getCompanyDetail(@PathVariable Integer id);
@RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE)
public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId);
@RequestMapping(value = "/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT)
public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId);
} }
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import lombok.Data;
import java.util.List;
@Data
public class VehicleAndModelInfoVo extends Vehicle {
VehicleModel vehicleModel;
List<VehicleBookRecord> vehicleBookRecord;
}
package com.xxfc.platform.vehicle.pojo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class VehicleCountVo {
@ApiModelProperty(value = "总数")
private Integer total;
@ApiModelProperty(value = "车辆状态")
private Integer travelStatus;
@ApiModelProperty(value = "状态描述")
private String detail;
}
package com.xxfc.platform.vehicle.pojo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import lombok.Data;
@Data
public class VehicleRecordInfoVo extends VehicleBookRecord {
VehicleAndModelInfoVo vehicleAndModelInfoVo;
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class VehiclePlanDto extends PageParam {
@ApiModelProperty(value = "车辆Id")
private String vehicleId;
@ApiModelProperty(value = "开始时间")
private String startTime;
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "车辆状态")
private Integer status;
@ApiModelProperty(value = "车牌")
private String numberPlate;
@ApiModelProperty(value = "所属分公司Id")
private Integer subordinateBranch;
@ApiModelProperty(value = "停车分公司Id")
private Integer parkBranchCompanyId;
}
...@@ -8,6 +8,7 @@ import com.github.pagehelper.PageInfo; ...@@ -8,6 +8,7 @@ import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.base.Function; import com.google.common.base.Function;
...@@ -26,6 +27,7 @@ import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper; ...@@ -26,6 +27,7 @@ import com.xxfc.platform.vehicle.mapper.VehicleBookInfoMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper; import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper;
import com.xxfc.platform.vehicle.mapper.VehicleMapper; import com.xxfc.platform.vehicle.mapper.VehicleMapper;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.BeanUtilsBean; import org.apache.commons.beanutils.BeanUtilsBean;
...@@ -52,7 +54,6 @@ import tk.mybatis.mapper.entity.Example; ...@@ -52,7 +54,6 @@ import tk.mybatis.mapper.entity.Example;
import tk.mybatis.mapper.weekend.WeekendSqls; import tk.mybatis.mapper.weekend.WeekendSqls;
import java.io.File; import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -303,7 +304,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -303,7 +304,7 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
} }
//加入预定申请记录 //加入预定申请记录
VehicleBookRecord vehicleBookRecord = new VehicleBookRecord(); VehicleBookRecord vehicleBookRecord = new VehicleBookRecord();
vehicleBookRecord.setVehicle(bookVehicleVo.getVehicle()); vehicleBookRecord.setVehicleId(bookVehicleVo.getVehicle());
vehicleBookRecord.setBookType(BookType.EMPLOYEE_APPLY.getCode()); vehicleBookRecord.setBookType(BookType.EMPLOYEE_APPLY.getCode());
vehicleBookRecord.setStatus(VehicleBookRecordStatus.APPLY.getCode()); vehicleBookRecord.setStatus(VehicleBookRecordStatus.APPLY.getCode());
vehicleBookRecord.setBookUser(userId); vehicleBookRecord.setBookUser(userId);
...@@ -1014,4 +1015,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> { ...@@ -1014,4 +1015,15 @@ public class VehicleBiz extends BaseBiz<VehicleMapper, Vehicle> {
} }
public List<VehicleCountVo> countVehicleByParam(VehiclePlanDto vehiclePlanDto) {
return mapper.countVehicleByParam(vehiclePlanDto);
}
public PageDataVO<VehicleAndModelInfoVo> getAllVehicle(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto);
PageDataVO<VehicleAndModelInfoVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllVehicle(query.getSuper()));
return pageDataVO;
}
} }
...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz; ...@@ -3,6 +3,7 @@ package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -17,6 +18,7 @@ import com.xxfc.platform.vehicle.entity.VehicleBookRecord; ...@@ -17,6 +18,7 @@ import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper; import com.xxfc.platform.vehicle.mapper.BookRecordAccItemMapper;
import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper; import com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils; import org.apache.commons.beanutils.PropertyUtils;
...@@ -313,6 +315,12 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic ...@@ -313,6 +315,12 @@ public class VehicleBookRecordBiz extends BaseBiz<VehicleBookRecordMapper, Vehic
} }
public PageDataVO<VehicleRecordInfoVo> getListByParam(VehiclePlanDto vehiclePlanDto) {
Query query = new Query(vehiclePlanDto);
PageDataVO<VehicleRecordInfoVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getByParam(query.getSuper()));
return pageDataVO;
}
private String getTbNameNow(){ private String getTbNameNow(){
return TB_NAME_PREFIX+ DateTime.now().toString(YEAR_DATE_TIME_FORMATTER); return TB_NAME_PREFIX+ DateTime.now().toString(YEAR_DATE_TIME_FORMATTER);
} }
......
...@@ -14,6 +14,7 @@ import com.xxfc.platform.vehicle.entity.VehicleWarningRule; ...@@ -14,6 +14,7 @@ import com.xxfc.platform.vehicle.entity.VehicleWarningRule;
import com.xxfc.platform.vehicle.mapper.VehicleMapper; import com.xxfc.platform.vehicle.mapper.VehicleMapper;
import com.xxfc.platform.vehicle.mapper.VehicleWarningMsgMapper; import com.xxfc.platform.vehicle.mapper.VehicleWarningMsgMapper;
import com.xxfc.platform.vehicle.mapper.VehicleWarningRuleMapper; import com.xxfc.platform.vehicle.mapper.VehicleWarningRuleMapper;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import com.xxfc.platform.vehicle.util.JSUtil; import com.xxfc.platform.vehicle.util.JSUtil;
import com.xxfc.platform.vehicle.pojo.AddVehicleWarningMsgVo; import com.xxfc.platform.vehicle.pojo.AddVehicleWarningMsgVo;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
...@@ -212,5 +213,8 @@ public class VehicleWarningMsgBiz extends BaseBiz<VehicleWarningMsgMapper, Vehic ...@@ -212,5 +213,8 @@ public class VehicleWarningMsgBiz extends BaseBiz<VehicleWarningMsgMapper, Vehic
} }
} }
public List<VehicleWarningMsg> getAllByParam(VehiclePlanDto vehiclePlanDto) {
return mapper.getAllByparam(vehiclePlanDto);
}
} }
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleBookHourInfo;
import tk.mybatis.mapper.common.Mapper;
public interface VehicleBookHourInfoMapper extends Mapper<VehicleBookHourInfo> {
}
\ No newline at end of file
...@@ -3,6 +3,8 @@ package com.xxfc.platform.vehicle.mapper; ...@@ -3,6 +3,8 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord; import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo; import com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo;
import com.xxfc.platform.vehicle.pojo.VehicleBookRecordAndTbNameVo; import com.xxfc.platform.vehicle.pojo.VehicleBookRecordAndTbNameVo;
import com.xxfc.platform.vehicle.pojo.VehicleRecordInfoVo;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -28,4 +30,8 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> { ...@@ -28,4 +30,8 @@ public interface VehicleBookRecordMapper extends Mapper<VehicleBookRecord> {
public VehicleBookRecord getById(Map<String, Object> params); public VehicleBookRecord getById(Map<String, Object> params);
public List<VehicleRecordInfoVo> getByParam(Map<String, Object> params);
public List<VehicleBookRecord> getByVehicleId(String vehicleId);
} }
\ No newline at end of file
package com.xxfc.platform.vehicle.mapper; package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.pojo.AddOrUpdateVehicleVo; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.QueryVehicleVo; import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import com.xxfc.platform.vehicle.pojo.UsableVehicleModelVO;
import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
...@@ -13,12 +12,14 @@ import java.util.Map; ...@@ -13,12 +12,14 @@ import java.util.Map;
public interface VehicleMapper extends Mapper<Vehicle> { public interface VehicleMapper extends Mapper<Vehicle> {
public List<QueryVehicleVo> getByPage(Map<String, Object> params); public List<QueryVehicleVo> getByPage(Map<String, Object> params);
public List<QueryVehicleVo> getByPageNotAllData(Map<String, Object> params); public List<QueryVehicleVo> getByPageNotAllData(Map<String, Object> params);
public int updateStatusById(Map<String, Object> params); public int updateStatusById(Map<String, Object> params);
/** /**
* 锁定相关编码 或 车牌 的行 * 锁定相关编码 或 车牌 的行
*
* @param addOrUpdateVehicleVo * @param addOrUpdateVehicleVo
* @return * @return
*/ */
...@@ -32,4 +33,8 @@ public interface VehicleMapper extends Mapper<Vehicle> { ...@@ -32,4 +33,8 @@ public interface VehicleMapper extends Mapper<Vehicle> {
List<UsableVehicleModelVO> searchUsableModel(Map<String, Object> params); List<UsableVehicleModelVO> searchUsableModel(Map<String, Object> params);
List<Vehicle> searchUsableVehicle(Map<String, Object> params); List<Vehicle> searchUsableVehicle(Map<String, Object> params);
List<VehicleCountVo> countVehicleByParam(VehiclePlanDto vehiclePlanDto);
List<VehicleAndModelInfoVo> getAllVehicle(Map<String, Object> params);
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.mapper; ...@@ -2,6 +2,7 @@ package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleWarningMsg; import com.xxfc.platform.vehicle.entity.VehicleWarningMsg;
import com.xxfc.platform.vehicle.pojo.QueryVehicleWarningMsgVo; import com.xxfc.platform.vehicle.pojo.QueryVehicleWarningMsgVo;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
...@@ -13,4 +14,6 @@ public interface VehicleWarningMsgMapper extends Mapper<VehicleWarningMsg> { ...@@ -13,4 +14,6 @@ public interface VehicleWarningMsgMapper extends Mapper<VehicleWarningMsg> {
public List<VehicleWarningMsg> getMsgByVehicle(String vehicleId); public List<VehicleWarningMsg> getMsgByVehicle(String vehicleId);
public List<VehicleWarningMsg> getAllByparam(VehiclePlanDto vehiclePlanDto);
} }
...@@ -14,9 +14,11 @@ import com.github.wxiaoqi.security.common.exception.BaseException; ...@@ -14,9 +14,11 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.biz.VehicleBiz; import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.biz.VehicleBookRecordBiz; import com.xxfc.platform.vehicle.biz.VehicleBookRecordBiz;
import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz; import com.xxfc.platform.vehicle.biz.VehiclePlatCataBiz;
import com.xxfc.platform.vehicle.biz.VehicleWarningMsgBiz;
import com.xxfc.platform.vehicle.common.BaseController; import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException; import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
...@@ -25,8 +27,11 @@ import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus; ...@@ -25,8 +27,11 @@ import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo; import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.entity.VehiclePlatCata; import com.xxfc.platform.vehicle.entity.VehiclePlatCata;
import com.xxfc.platform.vehicle.entity.VehicleWarningMsg;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -51,9 +56,9 @@ import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP; ...@@ -51,9 +56,9 @@ import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
@RestController @RestController
@RequestMapping("/vehicleInfo") @RequestMapping("/vehicleInfo")
@Slf4j @Slf4j
@IgnoreClientToken @IgnoreClientToken
@Api(value = "车辆管理controller", tags = {"车辆管理接口"}) @Api(value="车辆管理controller",tags={"车辆管理接口"})
public class VehicleController extends BaseController<VehicleBiz> { public class VehicleController extends BaseController<VehicleBiz> {
@Autowired @Autowired
...@@ -71,6 +76,9 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -71,6 +76,9 @@ public class VehicleController extends BaseController<VehicleBiz> {
@Autowired @Autowired
private VehiclePlatCataBiz vehiclePlatCataBiz; private VehiclePlatCataBiz vehiclePlatCataBiz;
@Autowired
private VehicleWarningMsgBiz vehicleWarningMsgBiz;
private static Integer MAX_DRIVING_LICENSE_SIZE = 10 * 1024 * 1024;//10M private static Integer MAX_DRIVING_LICENSE_SIZE = 10 * 1024 * 1024;//10M
public static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); public static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
...@@ -138,6 +146,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -138,6 +146,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
} }
@RequestMapping(value = "/upload/drivingLicense", method = RequestMethod.POST) @RequestMapping(value = "/upload/drivingLicense", method = RequestMethod.POST)
@ApiOperation(value = "上传驾驶员驾驶证")
public RestResponse uploadDrivingLicense(@RequestParam("file") MultipartFile file) public RestResponse uploadDrivingLicense(@RequestParam("file") MultipartFile file)
throws Exception { throws Exception {
String contentType = file.getContentType(); //图片文件类型 String contentType = file.getContentType(); //图片文件类型
...@@ -154,16 +163,19 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -154,16 +163,19 @@ public class VehicleController extends BaseController<VehicleBiz> {
@IgnoreUserToken @IgnoreUserToken
@RequestMapping(value = "/download/drivingLicense", method = RequestMethod.GET) //匹配的是href中的download请求 @RequestMapping(value = "/download/drivingLicense", method = RequestMethod.GET) //匹配的是href中的download请求
@ApiOperation(value = "下载驾驶证")
public ResponseEntity<byte[]> downloadDrivingLicense(@RequestParam("realFileRelPath") String realFileRelPath) throws Exception { public ResponseEntity<byte[]> downloadDrivingLicense(@RequestParam("realFileRelPath") String realFileRelPath) throws Exception {
return baseBiz.downloadDrivingLicense(realFileRelPath); return baseBiz.downloadDrivingLicense(realFileRelPath);
} }
@RequestMapping(value = "/bookedInfo/{vehicleId}/{yearMonth}", method = RequestMethod.GET) @RequestMapping(value = "/bookedInfo/{vehicleId}/{yearMonth}", method = RequestMethod.GET)
@ApiOperation(value = "获取车辆预定信息")
public RestResponse<VehicleBookInfo> getBookedInfo(@PathVariable String vehicleId, @PathVariable String yearMonth) { public RestResponse<VehicleBookInfo> getBookedInfo(@PathVariable String vehicleId, @PathVariable String yearMonth) {
return RestResponse.data(baseBiz.getByVehicleIdAndYearMonth(vehicleId, yearMonth)); return RestResponse.data(baseBiz.getByVehicleIdAndYearMonth(vehicleId, yearMonth));
} }
@RequestMapping(value = "/bookedInfo/{vehicleId}", method = RequestMethod.GET) @RequestMapping(value = "/bookedInfo/{vehicleId}", method = RequestMethod.GET)
@ApiOperation(value = "根据车辆Id获取所有的预定信息")
public RestResponse<List<VehicleBookInfo>> getBookedInfo(@PathVariable String vehicleId) { public RestResponse<List<VehicleBookInfo>> getBookedInfo(@PathVariable String vehicleId) {
return RestResponse.data(baseBiz.getByVehicleIdAndYearMonth(vehicleId)); return RestResponse.data(baseBiz.getByVehicleIdAndYearMonth(vehicleId));
} }
...@@ -175,6 +187,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -175,6 +187,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee", method = RequestMethod.POST) @RequestMapping(value = "/book/4employee", method = RequestMethod.POST)
@ApiOperation(value = "申请预定车辆信息")
public RestResponse<Integer> applyVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception { public RestResponse<Integer> applyVehicle(@RequestBody BookVehicleVO bookVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -189,6 +202,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -189,6 +202,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/prove/{bookRecordId}", method = RequestMethod.PUT)
@ApiOperation(value = "预定车辆审核通过")
public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId) throws Exception { public RestResponse<Integer> proveVehicleBooking(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -202,6 +216,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -202,6 +216,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/reject/{bookRecordId}", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/reject/{bookRecordId}", method = RequestMethod.PUT)
@ApiOperation(value = "拒绝预定车辆")
public RestResponse<Integer> rejectVehicleBooking(@PathVariable Long bookRecordId) throws Exception { public RestResponse<Integer> rejectVehicleBooking(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -229,6 +244,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -229,6 +244,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE) @RequestMapping(value = "/unbook/4employee/{bookRecordId}", method = RequestMethod.DELETE)
@ApiOperation(value = "取消预定车辆")
public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId) throws Exception { public RestResponse<Integer> unbookVehicle(@PathVariable Long bookRecordId) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -236,6 +252,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -236,6 +252,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
} }
@RequestMapping(value = "/bookedRecord/{bookEndDate}/{id}", method = RequestMethod.GET) @RequestMapping(value = "/bookedRecord/{bookEndDate}/{id}", method = RequestMethod.GET)
@ApiOperation(value = "获取预定记录")
public RestResponse<QueryVehicleBookRecordVo> getBookedRecord(@PathVariable String bookEndDate, @PathVariable Long id) throws Exception { public RestResponse<QueryVehicleBookRecordVo> getBookedRecord(@PathVariable String bookEndDate, @PathVariable Long id) throws Exception {
try { try {
return RestResponse.codeAndData(RestResponse.SUC_CODE, vehicleBookRecordBiz.getById(id, DateTime.parse(bookEndDate, DEFAULT_FORMATTER))); return RestResponse.codeAndData(RestResponse.SUC_CODE, vehicleBookRecordBiz.getById(id, DateTime.parse(bookEndDate, DEFAULT_FORMATTER)));
...@@ -249,6 +266,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -249,6 +266,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
@RequestMapping(value = "/bookedRecord", method = RequestMethod.GET) @RequestMapping(value = "/bookedRecord", method = RequestMethod.GET)
@ApiOperation(value = "获取多个预定记录")
public RestResponse<PageDataVO<QueryVehicleBookRecordVo>> getBookedRecord(@RequestParam String vehicleBookRecordQueryVoJson) throws Exception { public RestResponse<PageDataVO<QueryVehicleBookRecordVo>> getBookedRecord(@RequestParam String vehicleBookRecordQueryVoJson) throws Exception {
VehicleBookRecordQueryVo vehicleBookRecordQueryVo = null; VehicleBookRecordQueryVo vehicleBookRecordQueryVo = null;
...@@ -270,6 +288,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -270,6 +288,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/lift", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/lift", method = RequestMethod.PUT)
@ApiOperation(value = "提车")
public RestResponse<Integer> liftVehicle(@RequestBody LiftVehicleVo liftVehicleVo) throws Exception { public RestResponse<Integer> liftVehicle(@RequestBody LiftVehicleVo liftVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName (); String userName = BaseContextHandler.getName ();
...@@ -283,6 +302,7 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -283,6 +302,7 @@ public class VehicleController extends BaseController<VehicleBiz> {
* @return * @return
*/ */
@RequestMapping(value = "/book/4employee/ret", method = RequestMethod.PUT) @RequestMapping(value = "/book/4employee/ret", method = RequestMethod.PUT)
@ApiOperation(value = "还车")
public RestResponse<Integer> retVehicle(@RequestBody RetVehicleVo retVehicleVo) throws Exception { public RestResponse<Integer> retVehicle(@RequestBody RetVehicleVo retVehicleVo) throws Exception {
Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID()); Integer operatorId = Integer.parseInt(BaseContextHandler.getUserID());
String userName = BaseContextHandler.getName(); String userName = BaseContextHandler.getName();
...@@ -364,6 +384,25 @@ public class VehicleController extends BaseController<VehicleBiz> { ...@@ -364,6 +384,25 @@ public class VehicleController extends BaseController<VehicleBiz> {
return ObjectRestResponse.succ(bookVehicleVo.getVehicle()); return ObjectRestResponse.succ(bookVehicleVo.getVehicle());
} }
@RequestMapping(value = "/getVehiclePlanList", method = RequestMethod.GET)
@ApiOperation(value = "获取排车信息")
@IgnoreClientToken
public ObjectRestResponse<Map<String, Object>> getVehiclePlanList(VehiclePlanDto vehiclePlanDto) {
//获取统计信息
List<VehicleCountVo> vehicleCountVos = baseBiz.countVehicleByParam(vehiclePlanDto);
//获取警告信息
List<VehicleWarningMsg> vehicleWarningMsgs = vehicleWarningMsgBiz.getAllByParam(vehiclePlanDto);
//获取列表
PageDataVO<VehicleAndModelInfoVo> pageDataVO = baseBiz.getAllVehicle(vehiclePlanDto);
Map<String, Object> map = Maps.newHashMap();
map.put("vehicleCountVos",vehicleCountVos);
map.put("vehicleWarningMsgs",vehicleWarningMsgs);
map.put("vehicleAndModelInfoVo",pageDataVO);
return ObjectRestResponse.succ(map);
}
/** /**
* 保存 * 保存
* *
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
</plugin> </plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" <jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/vehicle?useUnicode=true&amp;characterEncoding=UTF8" connectionURL="jdbc:mysql://10.5.52.3:3306/vehicle?useUnicode=true&amp;characterEncoding=UTF8"
userId="root" userId="root"
password="xx2019fc"> password="sslcloud123*()">
</jdbcConnection> </jdbcConnection>
<javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/> <javaModelGenerator targetPackage="${targetModelPackage}" targetProject="${targetJavaProject}"/>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<!-- </table>--> <!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>--> <!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>--> <!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="vehicle_upkeep_item" domainObjectName="VehicleUpkeepItem"></table> <table tableName="vehicle_book_hour_info" domainObjectName="VehicleBookHourInfo"></table>
<table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table> <!-- <table tableName="vehicle_upkeep_log" domainObjectName="VehicleUpkeepLog"></table>-->
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ No newline at end of file
...@@ -2,6 +2,10 @@ ...@@ -2,6 +2,10 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!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.VehicleBookRecordMapper" > <mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper" >
<resultMap id="getVehicleMap" type="com.xxfc.platform.vehicle.pojo.VehicleRecordInfoVo">
<association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectById" />
</resultMap>
<update id="changeRecordStatus" parameterType="java.util.Map"> <update id="changeRecordStatus" parameterType="java.util.Map">
update vehicle_book_record set update vehicle_book_record set
<if test="reviewerApply != null "> <if test="reviewerApply != null ">
...@@ -87,7 +91,7 @@ ...@@ -87,7 +91,7 @@
<insert id="insertHis" parameterType="java.util.Map"> <insert id="insertHis" parameterType="java.util.Map">
insert into ${tbName} ( insert into ${tbName} (
`id`, `id`,
`vehicle`, `vehicle_id`,
`status`, `status`,
`book_type`, `book_type`,
`book_user`, `book_user`,
...@@ -119,7 +123,7 @@ ...@@ -119,7 +123,7 @@
) )
values( values(
#{id}, #{id},
#{vehicle}, #{vehicleId},
#{status}, #{status},
#{bookType}, #{bookType},
#{bookUser}, #{bookUser},
...@@ -154,7 +158,7 @@ ...@@ -154,7 +158,7 @@
<select id="getByPage4Month" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord"> <select id="getByPage4Month" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord">
select select
`id`, `id`,
`vehicle`, `vehicle_id`,
`status`, `status`,
`book_type`, `book_type`,
`book_user`, `book_user`,
...@@ -196,7 +200,7 @@ ...@@ -196,7 +200,7 @@
<select id="getByPage" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo"> <select id="getByPage" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.pojo.QueryVehicleBookRecordVo">
select select
vbr.`id`, vbr.`id`,
vbr.`vehicle`, vbr.`vehicle_id`,
vbr.`status`, vbr.`status`,
vbr.`book_type`, vbr.`book_type`,
vbr.`book_user`, vbr.`book_user`,
...@@ -236,11 +240,11 @@ ...@@ -236,11 +240,11 @@
vbf.booked_date as bookedDate vbf.booked_date as bookedDate
from from
${tbName} vbr left join ${tbName} vbr left join
vehicle v on vbr.vehicle = v.id left join vehicle v on vbr.vehicle_id = v.id left join
branch_company bc on bc.id = v.subordinate_branch left join branch_company bc on bc.id = v.subordinate_branch left join
branch_company bcl on bcl.id = vbr.lift_company left join branch_company bcl on bcl.id = vbr.lift_company left join
branch_company bcr on bcr.id = vbr.ret_company left join branch_company bcr on bcr.id = vbr.ret_company left join
vehicle_book_info vbf on vbf.vehicle = vbr.vehicle and vbf.year_month = #{selectedMonth} vehicle_book_info vbf on vbf.vehicle = vbr.vehicle_id and vbf.year_month = #{selectedMonth}
where where
1=1 1=1
<if test="liftCompany !=null"> <if test="liftCompany !=null">
...@@ -273,7 +277,7 @@ ...@@ -273,7 +277,7 @@
<select id="getById" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord" > <select id="getById" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord" >
select select
vbr.`id`, vbr.`id`,
vbr.`vehicle`, vbr.`vehicle_id`,
vbr.`status`, vbr.`status`,
vbr.`book_type`, vbr.`book_type`,
vbr.`book_user`, vbr.`book_user`,
...@@ -308,13 +312,71 @@ ...@@ -308,13 +312,71 @@
where id = #{id} where id = #{id}
</select> </select>
<select id="getByVehicleId" parameterType="java.lang.String" resultType="com.xxfc.platform.vehicle.entity.VehicleBookRecord" >
select
vbr.`id`,
vbr.`vehicle_id`,
vbr.`status`,
vbr.`book_type`,
vbr.`book_user`,
vbr.`book_user_name`,
vbr.`contact_info`,
vbr.`book_start_date`,
vbr.`book_end_date`,
vbr.`lift_location`,
vbr.`lift_addr`,
vbr.`remark`,
vbr.`create_time`,
vbr.`update_time`,
vbr.`destination`,
vbr.`reviewer_apply`,
vbr.`reviewer_name_apply`,
vbr.`reviewer_return`,
vbr.`reviewer_name_return`,
vbr.`reviewer_cancel`,
vbr.`reviewer_name_cancel`,
vbr.`actual_start_date`,
vbr.`actual_end_date`,
vbr.`reviewer_lift`,
vbr.`reviewer_name_lift`,
vbr.lift_company,
vbr.lift_remark,
vbr.ret_company,
vbr.mileage_lift,
vbr.mileage_ret,
vbr.have_violation,
vbr.ret_remark
from vehicle_book_record vbr
where vehicle_id = #{vehicleId}
</select>
<select id="getByParam" parameterType="java.util.Map" resultMap="getVehicleMap">
select v1.* from vehicle_book_record v1
left join vehicle v2 on v2.id = v1.vehicle_id
<where>
<if test="startTime != null">
and v1.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v2.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v2.status = #{status}
</if>
<if test="subordinateBranch != null">
and v2.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v2.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
order By v1.create_time DESC
</select>
<insert id="createTbIfNotExists" parameterType="java.lang.String"> <insert id="createTbIfNotExists" parameterType="java.lang.String">
CREATE TABLE IF NOT EXISTS ${_parameter} ( CREATE TABLE IF NOT EXISTS ${_parameter} (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`vehicle` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '车辆id', `vehicle_id` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '车辆id',
`status` int(255) NULL DEFAULT NULL COMMENT '申请状态:1-申请中 2-已通过 3-已归还 4-拒绝 5-逾期归还 6-已取消', `status` int(255) NULL DEFAULT NULL COMMENT '申请状态:1-申请中 2-已通过 3-已归还 4-拒绝 5-逾期归还 6-已取消',
`book_type` int(11) NOT NULL COMMENT '预定类型,1-用户租赁、2-内部员工申请 3-维修', `book_type` int(11) NOT NULL COMMENT '预定类型,1-用户租赁、2-内部员工申请 3-维修',
`book_user` int(11) NOT NULL COMMENT '预定用户id', `book_user` int(11) NOT NULL COMMENT '预定用户id',
...@@ -346,7 +408,7 @@ ...@@ -346,7 +408,7 @@
`mileage_ret` int(10) NULL DEFAULT NULL COMMENT '还车里程数', `mileage_ret` int(10) NULL DEFAULT NULL COMMENT '还车里程数',
`have_violation` tinyint(4) NULL DEFAULT NULL COMMENT '是否违章', `have_violation` tinyint(4) NULL DEFAULT NULL COMMENT '是否违章',
PRIMARY KEY (`id`) USING BTREE, PRIMARY KEY (`id`) USING BTREE,
INDEX `i_vehicle`(`vehicle`) USING BTREE, INDEX `i_vehicle`(`vehicle_id`) USING BTREE,
INDEX `i_book_user`(`book_user`) USING BTREE, INDEX `i_book_user`(`book_user`) USING BTREE,
INDEX `i_book_end_date`(`book_end_date`) USING BTREE COMMENT '迁移至历史表时查询用到该索引(暂时)' INDEX `i_book_end_date`(`book_end_date`) USING BTREE COMMENT '迁移至历史表时查询用到该索引(暂时)'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '汽车预定记录历史表,按年分表' ROW_FORMAT = Dynamic; ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '汽车预定记录历史表,按年分表' ROW_FORMAT = Dynamic;
......
...@@ -3,15 +3,23 @@ ...@@ -3,15 +3,23 @@
<mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleMapper"> <mapper namespace="com.xxfc.platform.vehicle.mapper.VehicleMapper">
<resultMap id="searchUsableModelMap" type="com.xxfc.platform.vehicle.pojo.UsableVehicleModelVO"> <resultMap id="searchUsableModelMap" type="com.xxfc.platform.vehicle.pojo.UsableVehicleModelVO">
<!-- <collection column="company_id" property="id" ofType="com.xxfc.platform.vehicle.entity.BranchCompany" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" />--> <!-- <collection column="company_id" property="id" ofType="com.xxfc.platform.vehicle.entity.BranchCompany" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" />-->
<!-- <result column="company_id" property="companyId" jdbcType="VARCHAR" javaType="java.lang.Integer"/>--> <!-- <result column="company_id" property="companyId" jdbcType="VARCHAR" javaType="java.lang.Integer"/>-->
<!-- <result column="model_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>--> <!-- <result column="model_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<!-- <result column="vehicle_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>--> <!-- <result column="vehicle_id" property="modelId" jdbcType="INTEGER" javaType="java.lang.Integer"/>-->
<association property="company" column="company_id" select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey" /> <association property="company" column="company_id"
<association property="vehicleModel" column="model_id" select="com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey" /> select="com.xxfc.platform.vehicle.mapper.BranchCompanyMapper.selectByPrimaryKey"/>
<!-- <association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectByPrimaryKey" />--> <association property="vehicleModel" column="model_id"
select="com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"/>
<!-- <association property="vehicle" column="vehicle_id" select="com.xxfc.platform.vehicle.mapper.VehicleMapper.selectByPrimaryKey" />-->
</resultMap> </resultMap>
<resultMap id="searchModel" type="com.xxfc.platform.vehicle.pojo.VehicleAndModelInfoVo">
<association property="vehicleModel" column="model_id"
select="com.xxfc.platform.vehicle.mapper.VehicleModelMapper.selectByPrimaryKey"/>
<association property="vehicleBookRecord" column="id" select="com.xxfc.platform.vehicle.mapper.VehicleBookRecordMapper.getByVehicleId" />
</resultMap>
<update id="updateStatusById" parameterType="java.util.Map"> <update id="updateStatusById" parameterType="java.util.Map">
update vehicle set status = #{status} where id in update vehicle set status = #{status} where id in
<foreach collection="idList" index="i" item="item" separator="," open="(" close=")"> <foreach collection="idList" index="i" item="item" separator="," open="(" close=")">
...@@ -237,6 +245,12 @@ ...@@ -237,6 +245,12 @@
where number_plate = #{numberPlate} where number_plate = #{numberPlate}
</select> </select>
<select id="selectById" resultMap="searchModel">
select * from vehicle
where id = #{id}
order By create_time DESC
</select>
<update id="updateStatusByIdAndStatus"> <update id="updateStatusByIdAndStatus">
update vehicle update vehicle
set status = #{status} set status = #{status}
...@@ -255,7 +269,8 @@ ...@@ -255,7 +269,8 @@
<include refid="searchUsableSql"/> <include refid="searchUsableSql"/>
GROUP BY model_id, company_id<if test="lon != null and lat != null">, distance</if> GROUP BY model_id, company_id
<if test="lon != null and lat != null">, distance</if>
<!-- 循环 相同父级 数据做并集, 不同父级做或集 --> <!-- 循环 相同父级 数据做并集, 不同父级做或集 -->
<if test=" catas != null "> <if test=" catas != null ">
...@@ -294,6 +309,131 @@ ...@@ -294,6 +309,131 @@
distance asc distance asc
</if> </if>
</select> </select>
<select id="getAllVehicle" parameterType="java.util.Map" resultMap="searchModel">
select *
from vehicle v1
<where>
<if test="startTime != null">
and v1.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v1.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v1.status = #{status}
</if>
<if test="subordinateBranch != null">
and v1.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
</select>
<select id="countVehicleByParam" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto"
resultType="com.xxfc.platform.vehicle.pojo.VehicleCountVo">
SELECT count(*) total ,
CASE
WHEN travel_status = 1 THEN
'1'
WHEN travel_status = 2 THEN
'2'
WHEN travel_status = 3 THEN
'3'
WHEN travel_status = 4 THEN
'4'
ELSE
'-1'
END travel_status,
CASE
WHEN travel_status = 1 THEN
'出行中'
WHEN travel_status = 2 THEN
'预约中'
WHEN travel_status = 3 THEN
'空闲中'
WHEN travel_status = 4 THEN
'保养中'
ELSE
'不可用'
END detail
from vehicle v1
<where>
<if test="startTime != null">
and v1.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v1.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v1.status = #{status}
</if>
<if test="subordinateBranch != null">
and v1.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v1.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
GROUP BY travel_status
union all
SELECT count(*) total, '0' travel_status, '总数' detail from vehicle v2
<where>
<if test="startTime != null">
and v2.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v2.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v2.status = #{status}
</if>
<if test="subordinateBranch != null">
and v2.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v2.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
union all
SELECT count(*) total,
CASE
WHEN status = 1 THEN
'5'
WHEN status = 2 THEN
'6'
ELSE
'7'
END travel_status,
CASE
WHEN status = 1 THEN
'正常运行'
WHEN status = 2 THEN
'维修'
ELSE
'报废'
END travel_status
FROM vehicle v3
<where>
<if test="startTime != null">
and v3.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v3.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v3.status = #{status}
</if>
<if test="subordinateBranch != null">
and v3.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v3.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
GROUP BY status
</select>
<sql id="searchUsableSql"> <sql id="searchUsableSql">
from vehicle v from vehicle v
...@@ -302,7 +442,7 @@ ...@@ -302,7 +442,7 @@
vehicle_book_info vbi on v.`id` = vbi.vehicle vehicle_book_info vbi on v.`id` = vbi.vehicle
</if> </if>
left join vehicle_model vm on v.model_id = vm.id left join vehicle_model vm on v.model_id = vm.id
left join branch_company bc on v.park_branch_company_id = bc.id left join branch_company bc on v.park_branch_company_id = bc.id
<if test=" catas != null "> <if test=" catas != null ">
left join vehicle_cata vc on vm.id = vc.vehicle_model_id left join vehicle_cata vc on vm.id = vc.vehicle_model_id
</if> </if>
...@@ -312,7 +452,8 @@ ...@@ -312,7 +452,8 @@
<foreach collection="yearMonthAndParam" index="yearMonth" item="andOperation"> <foreach collection="yearMonthAndParam" index="yearMonth" item="andOperation">
and and
( (vbi.`year_month` = #{yearMonth} or vbi.`year_month` is null) and ( (vbi.`year_month` = #{yearMonth} or vbi.`year_month` is null) and
ifnull(vbi.`booked_date`,0) &amp; #{andOperation.andOperationFactor} = #{andOperation.andOperationRs} ifnull(vbi.`booked_date`,0) &amp; #{andOperation.andOperationFactor} =
#{andOperation.andOperationRs}
) )
</foreach> </foreach>
</if> </if>
......
...@@ -20,8 +20,35 @@ ...@@ -20,8 +20,35 @@
</select> </select>
<select id="getMsgByVehicle" parameterType="String" resultType="com.xxfc.platform.vehicle.entity.VehicleWarningMsg" > <select id="getMsgByVehicle" parameterType="java.util.Map" resultType="com.xxfc.platform.vehicle.entity.VehicleWarningMsg" >
select id, type, status, msg, rule_id, msg_key, vehicle_id, create_time, update_time, remark from vehicle_warning_msg where vehicle_id = #{_parameter} select id, type, status, msg, rule_id, msg_key, vehicle_id, create_time, update_time, remark from vehicle_warning_msg
where vehicle_id = #{_parameter}
</select>
<select id="getAllByparam" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto" resultType="com.xxfc.platform.vehicle.entity.VehicleWarningMsg" >
select w.*
from vehicle_warning_msg w
left join vehicle v on w.vehicle_id = v.id
<where>
<if test="vehicleId != null">
and w.vehicle_id = #{vehicleId}
</if>
<if test="startTime != null">
and w.create_time between #{startTime} and #{endTime}
</if>
<if test="numberPlate != null">
and v.number_plate = #{numberPlate}
</if>
<if test="status != null">
and v.status = #{status}
</if>
<if test="subordinateBranch != null">
and v.subordinate_branch = #{subordinateBranch}
</if>
<if test="parkBranchCompanyId != null">
and v.park_branch_company_id = #{parkBranchCompanyId}
</if>
</where>
</select> </select>
......
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