Commit 20c240f2 authored by 周健威's avatar 周健威

Merge remote-tracking branch 'origin/master'

parents e428cfef 18293d1e
package com.github.wxiaoqi.security.admin.dto; package com.github.wxiaoqi.security.admin.dto;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.io.Serializable;
/** /**
* 用户会员信息 * 用户会员信息
*/ */
...@@ -80,4 +81,6 @@ public class BaseUserMemberVO implements Serializable { ...@@ -80,4 +81,6 @@ public class BaseUserMemberVO implements Serializable {
private Integer discount; private Integer discount;
@Column(name = "member_type")
private Integer memberType;
} }
...@@ -71,4 +71,7 @@ public class UserMemberDTO { ...@@ -71,4 +71,7 @@ public class UserMemberDTO {
@Column(name = "member_name") @Column(name = "member_name")
@ApiModelProperty("会员名") @ApiModelProperty("会员名")
private String memberName; private String memberName;
@Column(name = "member_type")
private Integer memberType;
} }
...@@ -25,6 +25,12 @@ public class UserMemberSaveDTO { ...@@ -25,6 +25,12 @@ public class UserMemberSaveDTO {
@ApiModelProperty(value = "会员等级") @ApiModelProperty(value = "会员等级")
private Integer memberLevel; private Integer memberLevel;
/**
* 会员类型
*/
@ApiModelProperty(value = "会员类型")
private Integer memberType;
/** /**
* 赠送总天数 * 赠送总天数
*/ */
......
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
/** /**
* 用户会员表 * 用户会员表
...@@ -141,4 +144,7 @@ public class BaseUserMember implements Serializable { ...@@ -141,4 +144,7 @@ public class BaseUserMember implements Serializable {
@Column(name = "member_name") @Column(name = "member_name")
private String memberName; private String memberName;
@Column(name = "member_type")
private Integer memberType;
} }
...@@ -85,6 +85,8 @@ public class AppUserDTO { ...@@ -85,6 +85,8 @@ public class AppUserDTO {
private Integer discount; private Integer discount;
private Integer memberLevel = 0; private Integer memberLevel = 0;
private String memberName; private String memberName;
//会员类型
private Integer memberType;
//图标 //图标
private String icon; private String icon;
private String bigIcon; private String bigIcon;
......
...@@ -157,6 +157,11 @@ public class AppUserManageVo { ...@@ -157,6 +157,11 @@ public class AppUserManageVo {
*/ */
private String memberName; private String memberName;
/**
* 会员类型
*/
private String memberType;
/** /**
* 头像 * 头像
*/ */
......
...@@ -5,7 +5,6 @@ import lombok.Builder; ...@@ -5,7 +5,6 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.Table; import javax.persistence.Table;
import java.io.Serializable; import java.io.Serializable;
...@@ -26,6 +25,7 @@ public class BaseUserMemberExportVo implements Serializable { ...@@ -26,6 +25,7 @@ public class BaseUserMemberExportVo implements Serializable {
private String username; private String username;
private String memberName; private String memberName;
private Integer memberLevel; private Integer memberLevel;
private Integer memberType;
private Integer totalNumber; private Integer totalNumber;
private Integer rentFreeDays; private Integer rentFreeDays;
private Integer status; private Integer status;
......
...@@ -3,6 +3,8 @@ package com.github.wxiaoqi.security.admin.vo; ...@@ -3,6 +3,8 @@ package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Column;
/** /**
* 用户会员 * 用户会员
...@@ -113,4 +115,6 @@ public class UserMemberVo { ...@@ -113,4 +115,6 @@ public class UserMemberVo {
@ApiModelProperty("会员名") @ApiModelProperty("会员名")
private String memberName; private String memberName;
@Column(name = "member_type")
private Integer memberType;
} }
...@@ -4,14 +4,17 @@ import com.ace.cache.annotation.Cache; ...@@ -4,14 +4,17 @@ 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.BaseUserMemberVO; import com.github.wxiaoqi.security.admin.dto.BaseUserMemberVO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO; import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.BaseUserMember;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberExport;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper; import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberLevelMapper;
import com.github.wxiaoqi.security.admin.mapper.BaseUserMemberMapper;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; 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 com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil; import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
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 lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
...@@ -19,16 +22,11 @@ import org.apache.commons.collections.CollectionUtils; ...@@ -19,16 +22,11 @@ import org.apache.commons.collections.CollectionUtils;
import org.springframework.aop.framework.AopContext; import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired; 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.mapper.BaseUserMemberMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
...@@ -132,7 +130,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem ...@@ -132,7 +130,7 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount); baseUserMember.setBuyCount(userMemberVo.getBuyCount() + buyCount);
baseUserMember.setTotalNumber(totalNumber); baseUserMember.setTotalNumber(totalNumber);
baseUserMember.setRentFreeDays(freeDays); baseUserMember.setRentFreeDays(freeDays);
baseUserMember.setMemberType(2);
getMyBiz().updateSelectiveById(baseUserMember); getMyBiz().updateSelectiveById(baseUserMember);
} }
AppUserVo userVo = detailBiz.getUserInfoById(userId); AppUserVo userVo = detailBiz.getUserInfoById(userId);
......
...@@ -13,13 +13,11 @@ import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil; ...@@ -13,13 +13,11 @@ import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
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 org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
...@@ -117,6 +115,7 @@ public class PublicController { ...@@ -117,6 +115,7 @@ public class PublicController {
UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid); UserMemberVo memberVo=userMemberBiz.getMemberInfoByUserId(userid);
if(memberVo!=null){ if(memberVo!=null){
BeanUtils.copyProperties(userDTO,memberVo); BeanUtils.copyProperties(userDTO,memberVo);
userDTO.setMemberType(memberVo.getMemberType());
} }
} }
AppUserPosition userPosition=positionBiz.selectById(positionId); AppUserPosition userPosition=positionBiz.selectById(positionId);
......
...@@ -103,7 +103,8 @@ ...@@ -103,7 +103,8 @@
m.rent_free_days AS rentFreeDays, m.rent_free_days AS rentFreeDays,
m.crt_time AS timeOfMembership, m.crt_time AS timeOfMembership,
m.recent_recharge AS recentRecharge, m.recent_recharge AS recentRecharge,
ml. NAME AS memberName, ml.NAME AS memberName,
m.member_type,
aup. NAME AS `positionName`, aup. NAME AS `positionName`,
ul.username AS inviter, ul.username AS inviter,
IFNULL(pd.realname, pd.nickname) AS nameOfSuperior, IFNULL(pd.realname, pd.nickname) AS nameOfSuperior,
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
<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="memberName" column="member_name"/> <result property="memberName" column="member_name"/>
<result property="memberType" column="member_type"/>
</resultMap> </resultMap>
<select id="getInfoByUserId" resultMap="baseUserMemberMap"> <select id="getInfoByUserId" resultMap="baseUserMemberMap">
...@@ -39,7 +40,8 @@ ...@@ -39,7 +40,8 @@
m.valid_time as validTime, m.valid_time as validTime,
m.member_name as memberName, m.member_name as memberName,
m.discount as discount, m.discount as discount,
ml.name as name ml.name as name,
m.member_type as memberType
from from
base_user_member m base_user_member m
left join left join
......
package com.xxfc.platform.activity.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.List;
@Data
@Table(name = "activity_product")
public class ActivityProduct {
/**
* 主键
*/
@Id
private Long id;
/**
* 创建时间
*/
@Column(name = "crt_time")
private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
private Long updTime;
/**
* 活动名称
*/
private String name;
/**
* 活动开始时间
*/
@Column(name = "start_time")
private Long startTime;
/**
* 活动结束时间
*/
@Column(name = "end_time")
private Long endTime;
/**
* 购买数量限制
*/
@Column(name = "num_limit")
private Integer numLimit;
/**
* 领取人数限制
*/
@Column(name = "has_join_num")
private Integer hasJoinNum;
/**
* 当前状态 1--上架 2--下架
*/
private Boolean status;
/**
* 排序
*/
private Boolean sort;
/**
* 活动图片
*/
private String picture;
/**
* 类型 1--优惠券; 2--
*/
private Boolean type;
/**
* 活动时期类型:0-永久,1-有期限
*/
@Column(name = "time_type")
private Boolean timeType;
@Column(name = "is_del")
private Boolean isDel;
/**
* 规格ID
*/
@Column(name = "specs_id")
private Integer specsId;
/**
* 销量
*/
private Integer sales;
/**
* 库存
*/
private Integer stock;
/**
* 详情介绍
*/
private String detail;
/**
* 说明
*/
private String explainInfo;
@Transient
List<ActivityProductSpecs> list;
}
\ No newline at end of file
package com.xxfc.platform.activity.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
@Data
@Table(name = "active_product_specs")
public class ActivityProductSpecs {
/**
* 主键id
*/
@Id
private Long id;
/**
* 商品id
*/
@Column(name = "goods_id")
private Long goodsId;
/**
* 规格编号
*/
private String code;
/**
* 规格图片
*/
@Column(name = "specs_img")
private String specsImg;
/**
* 排序
*/
@Column(name = "specs_seq")
private Integer specsSeq;
/**
* 规格价格
*/
@Column(name = "goods_price")
private BigDecimal goodsPrice;
/**
* 成本价
*/
@Column(name = "specs_cost_price")
private BigDecimal specsCostPrice;
/**
* 创建人ID
*/
@Column(name = "crt_user")
private Long crtUser;
/**
* 创建时间
*/
@Column(name = "crt_time")
private Integer crtTime;
/**
* 更新人id
*/
@Column(name = "upd_user")
private Long updUser;
/**
* 更新时间
*/
@Column(name = "upd_time")
private Integer updTime;
/**
* 是否删除:0-正常;1-删除
*/
@Column(name = "is_del")
private Boolean isDel;
/**
* 销量
*/
private Integer sales;
/**
* 库存
*/
private Integer stock;
/**
* 关联商品ID
*/
@Column(name = "active_id")
private Integer activeId;
/**
* 规格json
*/
@Column(name = "goods_specs")
private String goodsSpecs;
}
\ No newline at end of file
...@@ -4,8 +4,9 @@ import com.github.wxiaoqi.security.admin.dto.UserInfoDTO; ...@@ -4,8 +4,9 @@ import com.github.wxiaoqi.security.admin.dto.UserInfoDTO;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.dto.ActivityListDTO; import com.xxfc.platform.activity.dto.ActivityListDTO;
import com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO; import com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO;
import com.xxfc.platform.activity.entity.ActivityProduct;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import com.xxfc.platform.activity.entity.Coupon; import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.entity.IntegralUserTotal;
import com.xxfc.platform.activity.vo.UserCouponVo; import com.xxfc.platform.activity.vo.UserCouponVo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -13,7 +14,6 @@ import org.springframework.cloud.openfeign.FeignClient; ...@@ -13,7 +14,6 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -86,4 +86,21 @@ public interface ActivityFeign { ...@@ -86,4 +86,21 @@ public interface ActivityFeign {
@ApiOperation("获取所用优惠卷") @ApiOperation("获取所用优惠卷")
@GetMapping("/coupon/couponsBycouponIds") @GetMapping("/coupon/couponsBycouponIds")
List<Coupon> couponsByTickerNoList(@RequestParam(value = "tickerNoList") List<String> tickerNoList); List<Coupon> couponsByTickerNoList(@RequestParam(value = "tickerNoList") List<String> tickerNoList);
@RequestMapping(value = "/user/getCoupon", method = RequestMethod.GET)
public ObjectRestResponse getCoupon(@RequestParam("userId")Integer userId, @RequestParam("couponId")Integer couponId);
@GetMapping(value = "/activity/specs/app/unauth/get")
public ObjectRestResponse<ActivityProductSpecs> get(@RequestParam("id") Long id);
@GetMapping(value = "/activity/product/app/unauth/get")
public ObjectRestResponse<ActivityProduct> getOne(@RequestParam("id")Long id);
@PostMapping(value = "/activity/specs/app/unauth/update")
public ObjectRestResponse update(@RequestBody ActivityProductSpecs activityProductSpecs);
@PostMapping(value = "/activity/product/app/unauth/update")
public ObjectRestResponse updateProduct(@RequestBody ActivityProduct activityProduct);
} }
package com.xxfc.platform.activity.vo;
import com.xxfc.platform.activity.entity.ActivityProduct;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import lombok.Data;
import java.util.List;
@Data
public class ActivityProductVo extends ActivityProduct {
List<ActivityProductSpecs> list;
}
package com.xxfc.platform.activity.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.ActivityProduct;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import com.xxfc.platform.activity.mapper.ActivityProductMapper;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
@Service
@Slf4j
@Api("活动商品")
public class ActivityProductBiz extends BaseBiz<ActivityProductMapper, ActivityProduct> {
@Autowired
ActivityProductSpecsBiz activityProductSpecsBiz;
/**
* 添加活动商品
* @param activityProduct
* @return
*/
public ObjectRestResponse add(ActivityProduct activityProduct) {
if (activityProduct == null) {
return ObjectRestResponse.paramIsEmpty();
}
//新增
if (activityProduct.getId() == null) {
insertSelectiveRe(activityProduct);
} else { //修改
ActivityProduct oldValue = getOne(activityProduct.getId());
BeanUtil.copyProperties(activityProduct, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
updateSelectiveByIdRe(oldValue);
return ObjectRestResponse.succ(oldValue);
}
return ObjectRestResponse.succ(activityProduct);
}
public ActivityProduct getOne(Long id) {
Example example = new Example(ActivityProduct.class);
example.createCriteria().andEqualTo("id", id).andEqualTo("isDel", false);
ActivityProduct activityProduct = mapper.selectOneByExample(example);
if(activityProduct != null) {
List<ActivityProductSpecs> activityProductSpecs = activityProductSpecsBiz.getAllByActiveId(activityProduct.getId());
activityProduct.setList(activityProductSpecs);
}
return activityProduct;
}
public ObjectRestResponse update(ActivityProduct activityProduct) {
if (activityProduct == null || activityProduct.getId() == null) {
return ObjectRestResponse.paramIsEmpty();
}
ActivityProduct oldValue = selectById(activityProduct.getId());
if (oldValue != null) { //增加销量,减少库存
oldValue.setSales(oldValue.getSales() + activityProduct.getSales());
if (oldValue.getStock() > 0 || activityProduct.getSales() < 0) {
oldValue.setStock(oldValue.getStock() - activityProduct.getSales());
updateSelectiveByIdRe(oldValue);
return ObjectRestResponse.succ(oldValue);
} else {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "库存不足");
}
} else {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "商品不存在!");
}
}
public List<ActivityProduct> getAll() {
Example example = new Example(ActivityProduct.class);
example.createCriteria().andEqualTo("status", true).andEqualTo("isDel", false);
List<ActivityProduct> list = mapper.selectByExample(example);
if (list != null && list.size() > 0) {
list.parallelStream().forEach(activityProduct -> {
List<ActivityProductSpecs> activityProductSpecs = activityProductSpecsBiz.getAllByActiveId(activityProduct.getId());
activityProduct.setList(activityProductSpecs);
});
}
return list;
}
}
package com.xxfc.platform.activity.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import com.xxfc.platform.activity.mapper.ActivityProductSpecsMapper;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.ArrayList;
import java.util.List;
@Service
@Slf4j
@Api("活动商品规格")
public class ActivityProductSpecsBiz extends BaseBiz<ActivityProductSpecsMapper, ActivityProductSpecs> {
public ObjectRestResponse add(ActivityProductSpecs activityProductSpecs) {
if (activityProductSpecs == null) {
return ObjectRestResponse.paramIsEmpty();
}
if (activityProductSpecs.getId() == null) {
insertSelectiveRe(activityProductSpecs);
} else {
ActivityProductSpecs oldValue = getOne(activityProductSpecs.getId());
BeanUtil.copyProperties(activityProductSpecs, oldValue, CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true));
updateSelectiveByIdRe(oldValue);
return ObjectRestResponse.succ(oldValue);
}
return ObjectRestResponse.succ(activityProductSpecs);
}
public ActivityProductSpecs getOne(Long id) {
Example example = new Example(ActivityProductSpecs.class);
example.createCriteria().andEqualTo("id", id).andEqualTo("isDel", false);
return mapper.selectOneByExample(example);
}
public List<ActivityProductSpecs> getAllByActiveId(Long activeId) {
if (activeId == null) {
return new ArrayList<>();
}
Example example = new Example(ActivityProductSpecs.class);
example.createCriteria().andEqualTo("goodsId", activeId).andEqualTo("isDel", false);
return mapper.selectByExample(example);
}
public ObjectRestResponse update(ActivityProductSpecs activityProductSpecs) {
if (activityProductSpecs == null || activityProductSpecs.getId() == null) {
return ObjectRestResponse.paramIsEmpty();
}
ActivityProductSpecs oldValue = selectById(activityProductSpecs.getId());
if (oldValue != null) { //增加销量,减少库存
if (oldValue.getStock() > 0 || activityProductSpecs.getSales() < 0) {
oldValue.setSales(oldValue.getSales() + activityProductSpecs.getSales());
oldValue.setStock(oldValue.getStock() - activityProductSpecs.getSales());
updateSelectiveByIdRe(oldValue);
return ObjectRestResponse.succ(oldValue);
} else {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "库存不足");
}
} else {
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "商品不存在!");
}
}
}
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.ActivityProduct;
import tk.mybatis.mapper.common.Mapper;
public interface ActivityProductMapper extends Mapper<ActivityProduct> {
}
\ No newline at end of file
package com.xxfc.platform.activity.mapper;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import tk.mybatis.mapper.common.Mapper;
public interface ActivityProductSpecsMapper extends Mapper<ActivityProductSpecs> {
}
\ No newline at end of file
package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.activity.biz.ActivityProductBiz;
import com.xxfc.platform.activity.entity.ActivityProduct;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/activity/product")
public class ActivityProductController extends BaseController<ActivityProductBiz, ActivityProduct> {
@GetMapping(value = "/app/unauth/getAll")
public ObjectRestResponse getAll() {
return ObjectRestResponse.succ(baseBiz.getAll());
}
@GetMapping(value = "/app/unauth/get")
public ObjectRestResponse<ActivityProduct> getOne(Long id) {
return ObjectRestResponse.succ(baseBiz.getOne(id));
}
@PostMapping(value = "/app/unauth/add")
public ObjectRestResponse add(@RequestBody ActivityProduct activityProduct) {
return baseBiz.add(activityProduct);
}
@PostMapping(value = "/app/unauth/update")
public ObjectRestResponse updateProduct(@RequestBody ActivityProduct activityProduct) {
return baseBiz.update(activityProduct);
}
}
package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.activity.biz.ActivityProductSpecsBiz;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/activity/specs")
public class ActivityProductSpecsController extends BaseController<ActivityProductSpecsBiz, ActivityProductSpecs> {
@PostMapping(value = "/app/unauth/add")
public ObjectRestResponse add(@RequestBody ActivityProductSpecs activityProductSpecs) {
return baseBiz.add(activityProductSpecs);
}
@GetMapping(value = "/app/unauth/get")
public ObjectRestResponse<ActivityProductSpecs> get(Long id) {
return ObjectRestResponse.succ(baseBiz.getOne(id));
}
@GetMapping(value = "/app/unauth/getAllByActivityId")
public ObjectRestResponse getAllByActiveId(Long activityId) {
return ObjectRestResponse.succ(baseBiz.getAllByActiveId(activityId));
}
@PostMapping(value = "/app/unauth/update")
public ObjectRestResponse update(@RequestBody ActivityProductSpecs activityProductSpecs) {
return baseBiz.update(activityProductSpecs);
}
}
...@@ -3,7 +3,6 @@ package com.xxfc.platform.activity.rest; ...@@ -3,7 +3,6 @@ package com.xxfc.platform.activity.rest;
import com.github.wxiaoqi.security.admin.dto.UserInfoDTO; import com.github.wxiaoqi.security.admin.dto.UserInfoDTO;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
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.xxfc.platform.activity.biz.ActivityUserJoinBiz; import com.xxfc.platform.activity.biz.ActivityUserJoinBiz;
import com.xxfc.platform.activity.biz.UserCouponBiz; import com.xxfc.platform.activity.biz.UserCouponBiz;
import com.xxfc.platform.activity.vo.UserCouponVo; import com.xxfc.platform.activity.vo.UserCouponVo;
...@@ -106,6 +105,12 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz> ...@@ -106,6 +105,12 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz>
return joinBiz.receiveCoupn(userId); return joinBiz.receiveCoupn(userId);
} }
@RequestMapping(value = "/getCoupon", method = RequestMethod.GET)
public ObjectRestResponse getCoupon(Integer userId, Integer couponId) {
return ObjectRestResponse.succ(baseBiz.adminUserLedCoupon(userId, couponId));
}
@ApiOperation("检查用户是否可领取") @ApiOperation("检查用户是否可领取")
@RequestMapping(value = "/coupon/check", method = RequestMethod.GET) @RequestMapping(value = "/coupon/check", method = RequestMethod.GET)
public ObjectRestResponse check() { public ObjectRestResponse check() {
......
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
<javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}" <javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
type="XMLMAPPER"/> type="XMLMAPPER"/>
<table tableName="ticket_collection_record" domainObjectName="TicketCollectionRecord"></table> <table tableName="activity_product" domainObjectName="ActivityProduct"></table>
<table tableName="active_product_specs" domainObjectName="ActivityProductSpecs"></table>
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.activity.mapper.ActivityProductMapper" >
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.activity.mapper.ActivityProductSpecsMapper" >
<resultMap id="BaseResultMap" type="com.xxfc.platform.activity.entity.ActivityProductSpecs" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="BIGINT" />
<result column="goods_id" property="goodsId" jdbcType="BIGINT" />
<result column="code" property="code" jdbcType="VARCHAR" />
<result column="specs_img" property="specsImg" jdbcType="VARCHAR" />
<result column="specs_seq" property="specsSeq" jdbcType="INTEGER" />
<result column="goods_price" property="goodsPrice" jdbcType="DECIMAL" />
<result column="specs_cost_price" property="specsCostPrice" jdbcType="DECIMAL" />
<result column="crt_user" property="crtUser" jdbcType="BIGINT" />
<result column="crt_time" property="crtTime" jdbcType="INTEGER" />
<result column="upd_user" property="updUser" jdbcType="BIGINT" />
<result column="upd_time" property="updTime" jdbcType="INTEGER" />
<result column="is_del" property="isDel" jdbcType="BIT" />
<result column="sales" property="sales" jdbcType="INTEGER" />
<result column="stock" property="stock" jdbcType="INTEGER" />
<result column="active_id" property="activeId" jdbcType="INTEGER" />
<result column="goods_specs" property="goodsSpecs" jdbcType="LONGVARCHAR" />
</resultMap>
</mapper>
\ No newline at end of file
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
<dependency> <dependency>
<groupId>com.xuxueli</groupId> <groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId> <artifactId>xxl-job-core</artifactId>
<version>2.0.2</version> <version>2.1.2</version>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -13,6 +13,7 @@ public enum ItemTypeEnum { ...@@ -13,6 +13,7 @@ public enum ItemTypeEnum {
TOUR_INSURE(203, "旅游保险"), TOUR_INSURE(203, "旅游保险"),
MEMBER(301, "会员"), MEMBER(301, "会员"),
ACCOMPANY(104, "随车物品"), ACCOMPANY(104, "随车物品"),
ACTIVITY(401, "活动订单"),
; ;
/** /**
* 编码 * 编码
......
...@@ -7,6 +7,7 @@ public enum OrderTypeEnum { ...@@ -7,6 +7,7 @@ public enum OrderTypeEnum {
RENT_VEHICLE(1, "租车订单"), RENT_VEHICLE(1, "租车订单"),
TOUR(2, "旅游订单"), TOUR(2, "旅游订单"),
MEMBER(3, "会员订单"), MEMBER(3, "会员订单"),
ACTIVITY(4, "活动订单"),
; ;
/** /**
* 编码 * 编码
......
package com.xxfc.platform.order.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
@Table(name = "order_active_detail")
public class OrderActiveDetail {
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键")
private Integer id;
@Column(name = "crt_time")
private Date crtTime;
@Column(name = "upd_time")
private Date updTime;
/**
* 订单ID
*/
@Column(name = "order_id")
private Integer orderId;
/**
* 产品ID
*/
@Column(name = "product_id")
private Long productId;
/**
* 产品规格json
*/
@Column(name = "product_specs")
private String productSpecs;
/**
* 购买数量
*/
private Integer number;
/**
* 规格ID
*/
@Column(name = "specs_id")
private Long specsId;
/**
* 产品名称
*/
@Column(name = "product_name")
private String productName;
/**
* 1、优惠券
*/
private Integer type;
}
\ No newline at end of file
...@@ -41,7 +41,8 @@ public class BgOrderListVo { ...@@ -41,7 +41,8 @@ public class BgOrderListVo {
private Integer vehicleCode; private Integer vehicleCode;
private Integer userId; private Integer userId;
//押金退还状态
private Integer refundStatus;
//员工身份 //员工身份
private String positionName; private String positionName;
} }
package com.xxfc.platform.order.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
@Data
public class OrderActiveDto extends PageParam {
private String phone;
private Integer userId;
private Integer type;
private Integer status;
private String startTime;
private String endTime;
private String no;
}
package com.xxfc.platform.order.pojo.dto;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import lombok.Data;
@Data
public class OrderActivityDto extends OrderActiveDetail {
private Integer page;
private Integer limit;
//商品图片
private String picture;
//商品名称
private String name;
//订单号
private String orderNo;
//开始时间
private Long startTime;
//结束时间
private Long endTime;
//手机号
private String mobile;
private Long userId;
//订单状态
private Integer status;
}
package com.xxfc.platform.order.pojo.order;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.inter.OrderDetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class ActivityOrderBO extends OrderActiveDetail implements OrderDetail {
private BaseOrder order;
private AppUserDTO appUserDTO;
/**
* 促成人联系方式
*/
@ApiModelProperty(value = "促成人联系方式")
String facilitatePhone;
/**
* 下单来源,1--app;2--小程序
*/
private Integer orderOrigin;
/**
* 优惠券*
*/
private List<String> tickerNo;
/**
* 订单子项
*/
List<OrderItem> items;
//商品图片
private String picture;
//商品名称
private String name;
}
...@@ -2,15 +2,12 @@ package com.xxfc.platform.order.pojo.order; ...@@ -2,15 +2,12 @@ package com.xxfc.platform.order.pojo.order;
import com.xxfc.platform.activity.entity.Coupon; import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.order.entity.*; import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.DetailsOfExpenses;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO; import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
import com.xxfc.platform.vehicle.entity.VehicleUserLicense; import com.xxfc.platform.vehicle.entity.VehicleUserLicense;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -23,6 +20,8 @@ public class OrderListVo extends BaseOrder { ...@@ -23,6 +20,8 @@ public class OrderListVo extends BaseOrder {
OrderMemberDetail orderMemberDetail; OrderMemberDetail orderMemberDetail;
OrderActiveDetail orderActiveDetail;
List<VehicleUserLicense> vehicleUserLicenses; List<VehicleUserLicense> vehicleUserLicenses;
private String username; private String username;
......
...@@ -18,7 +18,7 @@ public class OrderPageVO extends BaseOrder { ...@@ -18,7 +18,7 @@ public class OrderPageVO extends BaseOrder {
OrderTourDetail orderTourDetail; OrderTourDetail orderTourDetail;
OrderMemberDetail orderMemberDetail; OrderMemberDetail orderMemberDetail;
OrderActiveDetail orderActiveDetail;
List<VehicleUserLicense> vehicleUserLicenses; List<VehicleUserLicense> vehicleUserLicenses;
//更换还车公司记录 //更换还车公司记录
......
package com.xxfc.platform.order.pojo.vo;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class OrderActivityVo extends OrderActiveDetail {
private Integer userId;
//姓名
private String realName;
//手机号
private String mobile;
//订单号
private String orderNo;
//下单时间
private Date orderTime;
//订单实际金额
private BigDecimal realAmount;
//单价
private BigDecimal goodsAmount;
private String image;
private Integer status;
}
...@@ -69,6 +69,15 @@ public class BackgroundBaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> ...@@ -69,6 +69,15 @@ public class BackgroundBaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder>
dto.setEndTime(new Date().getTime()); dto.setEndTime(new Date().getTime());
} }
} }
if (dto.getStatus()!=null ) {
if (dto.getStatus() == 7) {
dto.setRefundStatus(2);
dto.setStatus(null);
}else if (dto.getStatus() == 8) {
dto.setRefundStatus(3);
dto.setStatus(null);
}
}
Query query = new Query(dto); Query query = new Query(dto);
PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllOrderList(query.getSuper())); PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllOrderList(query.getSuper()));
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
......
...@@ -21,6 +21,7 @@ import com.github.wxiaoqi.security.common.util.Query; ...@@ -21,6 +21,7 @@ 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.collect.Lists; import com.google.common.collect.Lists;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import com.xxfc.platform.activity.entity.Coupon; import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.inner.OrderCalculateBiz; import com.xxfc.platform.order.biz.inner.OrderCalculateBiz;
...@@ -133,6 +134,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -133,6 +134,10 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
@Autowired @Autowired
OrderCalculateBiz orderCalculateBiz; OrderCalculateBiz orderCalculateBiz;
@Autowired
OrderActivityDetailBiz orderActivityDetailBiz;
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
...@@ -691,6 +696,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -691,6 +696,7 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
OrderRentVehicleDetail orvd = new OrderRentVehicleDetail(); OrderRentVehicleDetail orvd = new OrderRentVehicleDetail();
OrderTourDetail otd = new OrderTourDetail(); OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail(); OrderMemberDetail omd = new OrderMemberDetail();
OrderActiveDetail activeDetail = new OrderActiveDetail();
BaseOrder baseOrder = this.selectOne(new BaseOrder() {{ BaseOrder baseOrder = this.selectOne(new BaseOrder() {{
setNo(orderNo); setNo(orderNo);
}}); }});
...@@ -758,6 +764,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements ...@@ -758,6 +764,23 @@ public class BaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements
//站点总人数添加 //站点总人数添加
tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, otd.getTotalNumber()); tourFeign.updateTourGoodPersonNum(otd.getVerificationId(), TourFeign.TOTAL_PERSON, otd.getTotalNumber());
} else if(OrderTypeEnum.ACTIVITY.getCode().equals(baseOrder.getType())) { //活动订单回调
updateOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
activeDetail = orderActivityDetailBiz.getOne(baseOrder.getId());
if (activeDetail != null) {
ActivityProductSpecs activityProductSpecs = activityFeign.get(activeDetail.getSpecsId()).getData();
if (activityProductSpecs != null) {
for (int i =0; i < activeDetail.getNumber(); i++) {
ObjectRestResponse objectRestResponse = activityFeign.getCoupon(baseOrder.getUserId(), activityProductSpecs.getActiveId());
if (objectRestResponse.isRel()) {
log.info("优惠券发送成功:{}, {}, {}", baseOrder.getUserId(), activityProductSpecs.getActiveId(), objectRestResponse.getData());
} else {
log.error("优惠券发送失败:{}, {}", baseOrder.getUserId(), activityProductSpecs.getActiveId());
}
}
}
}
} }
try { try {
......
package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import com.xxfc.platform.order.mapper.OrderActiveDetailMapper;
import com.xxfc.platform.order.pojo.dto.OrderActiveDto;
import com.xxfc.platform.order.pojo.vo.OrderActivityVo;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
@Api("活动订单详情")
public class OrderActivityDetailBiz extends BaseBiz<OrderActiveDetailMapper, OrderActiveDetail> implements UserRestInterface {
@Autowired
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
public ObjectRestResponse getAll(OrderActiveDto dto) {
//判断token是否存在
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.succ(new PageDataVO<>());
}
if (StringUtils.isNotBlank(dto.getPhone())) {
AppUserLogin appUserLogin = userFeign.one(dto.getPhone());
if (appUserLogin != null) {
dto.setUserId(appUserLogin.getId());
}
}
Query query = new Query(dto);
PageDataVO<OrderActivityVo> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllActivityOrder(query.getSuper()));
if (pageDataVO != null && pageDataVO.getData() != null) {
pageDataVO.getData().parallelStream().forEach(orderActivityVo -> {
AppUserDTO appUserVo = userFeign.userDetailById(orderActivityVo.getUserId()).getData();
if (appUserVo != null) {
orderActivityVo.setMobile(appUserVo.getUsername());
orderActivityVo.setRealName(appUserVo.getRealname());
}
});
}
return ObjectRestResponse.succ(pageDataVO);
}
public ObjectRestResponse orderDetail(String no, AppUserDTO appUserDTO) {
if (StringUtils.isBlank(no)) {
return ObjectRestResponse.paramIsEmpty();
}
Map<String, Object> param = new HashMap<>();
param.put("no", no);
param.put("userId", appUserDTO.getUserid());
List<OrderActivityVo> list = mapper.getAllActivityOrder(param);
if (list != null && list.size() > 0) {
return ObjectRestResponse.succ(list.get(0));
}
return ObjectRestResponse.createFailedResult(ResultCode.FAILED_CODE, "订单不存在");
}
public OrderActiveDetail getOne(Integer orderId) {
Example example = new Example(OrderActiveDetail.class);
example.createCriteria().andEqualTo("orderId", orderId);
return mapper.selectOneByExample(example);
}
}
...@@ -3,12 +3,13 @@ package com.xxfc.platform.order.biz.inner; ...@@ -3,12 +3,13 @@ package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign; import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
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.activity.entity.ActivityProduct;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import com.xxfc.platform.activity.feign.ActivityFeign; import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.*; import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.*; import com.xxfc.platform.order.contant.enumerate.*;
...@@ -68,6 +69,9 @@ public class OrderCancelBiz { ...@@ -68,6 +69,9 @@ public class OrderCancelBiz {
@Autowired @Autowired
OrderRentVehicleBiz orderRentVehicleBiz; OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderActivityDetailBiz orderActivityDetailBiz;
@Autowired @Autowired
OrderMsgBiz orderMsgBiz; OrderMsgBiz orderMsgBiz;
...@@ -109,6 +113,9 @@ public class OrderCancelBiz { ...@@ -109,6 +113,9 @@ public class OrderCancelBiz {
cancelAble.put(OrderTypeEnum.MEMBER.getCode(), new LinkedList<Integer>(){{ cancelAble.put(OrderTypeEnum.MEMBER.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode()); add(OrderStatusEnum.ORDER_UNPAY.getCode());
}}); }});
cancelAble.put(OrderTypeEnum.ACTIVITY.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode());
}});
} }
/** /**
...@@ -117,9 +124,11 @@ public class OrderCancelBiz { ...@@ -117,9 +124,11 @@ public class OrderCancelBiz {
*/ */
@Transactional @Transactional
public void cancel(BaseOrder baseOrder, BigDecimal changeViolateAmount) { public void cancel(BaseOrder baseOrder, BigDecimal changeViolateAmount) {
//三类型订单详情
OrderRentVehicleDetail orvd = new OrderRentVehicleDetail(); OrderRentVehicleDetail orvd = new OrderRentVehicleDetail();
OrderTourDetail otd = new OrderTourDetail(); OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail(); OrderMemberDetail omd = new OrderMemberDetail();
OrderActiveDetail orderActiveDetail = new OrderActiveDetail();
if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) { if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) {
BaseOrder updateOrder = new BaseOrder(){{ BaseOrder updateOrder = new BaseOrder(){{
setId(baseOrder.getId()); setId(baseOrder.getId());
...@@ -127,7 +136,7 @@ public class OrderCancelBiz { ...@@ -127,7 +136,7 @@ public class OrderCancelBiz {
setCancelReason(baseOrder.getCancelReason()); setCancelReason(baseOrder.getCancelReason());
setVersion(baseOrder.getVersion()); setVersion(baseOrder.getVersion());
}}; }};
BeanUtils.copyProperties(baseOrderBiz.updateSelectiveByIdReT(updateOrder), baseOrder);; BeanUtils.copyProperties(baseOrderBiz.updateSelectiveByIdReT(updateOrder), baseOrder);
InProgressVO inProgressVO = null; InProgressVO inProgressVO = null;
OrderAccountDetail oad = new OrderAccountDetail(); OrderAccountDetail oad = new OrderAccountDetail();
...@@ -374,6 +383,24 @@ public class OrderCancelBiz { ...@@ -374,6 +383,24 @@ public class OrderCancelBiz {
//增加库存 //增加库存
tourFeign.stock(otd.getSpePriceId(), otd.getTotalNumber(), TourFeign.STOCK_PLUS); tourFeign.stock(otd.getSpePriceId(), otd.getTotalNumber(), TourFeign.STOCK_PLUS);
} else if(OrderTypeEnum.ACTIVITY.getCode().equals(baseOrder.getType())) {//活动订单
orderActiveDetail = orderActivityDetailBiz.getOne(baseOrder.getId());
//增加库存
if(orderActiveDetail != null) {
ActivityProductSpecs activityProductSpecs = activityFeign.get(orderActiveDetail.getSpecsId()).getData();
if (activityProductSpecs != null) {
//修改规格库存
activityProductSpecs.setSales(-orderActiveDetail.getNumber());
activityFeign.update(activityProductSpecs);
//修改商品库存
ActivityProduct activityProduct = new ActivityProduct();
activityProduct.setId(activityProductSpecs.getGoodsId());
activityProduct.setSales(-orderActiveDetail.getNumber());
activityFeign.updateProduct(activityProduct);
}
}
} }
//返还优惠券 //返还优惠券
......
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import com.xxfc.platform.order.pojo.vo.OrderActivityVo;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
public interface OrderActiveDetailMapper extends Mapper<OrderActiveDetail> {
List<OrderActivityVo> getAllActivityOrder(Map<String, Object> param);
}
\ No newline at end of file
...@@ -19,11 +19,11 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO; ...@@ -19,11 +19,11 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.biz.*; import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz; import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.biz.inner.OrderMsgBiz; import com.xxfc.platform.order.biz.inner.OrderMsgBiz;
import com.xxfc.platform.order.contant.enumerate.*; import com.xxfc.platform.order.contant.enumerate.CrosstownTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.*; import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.mqhandler.RabbitProduct; import com.xxfc.platform.order.mqhandler.RabbitProduct;
import com.xxfc.platform.order.pojo.account.OrderAccountDeduction;
import com.xxfc.platform.order.pojo.account.OrderAccountDetail;
import com.xxfc.platform.order.pojo.dto.OrderDTO; import com.xxfc.platform.order.pojo.dto.OrderDTO;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO; import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.order.pojo.order.CancelOrderDTO; import com.xxfc.platform.order.pojo.order.CancelOrderDTO;
...@@ -58,7 +58,6 @@ import java.util.List; ...@@ -58,7 +58,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER; import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
...@@ -347,6 +346,8 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -347,6 +346,8 @@ public class BaseOrderController extends CommonBaseController implements UserRes
private Integer type; private Integer type;
private String phone; private String phone;
//违章押金退还状态
private Integer refundStatus;
/** /**
* 后台搜索条件:真实姓名 * 后台搜索条件:真实姓名
...@@ -365,7 +366,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes ...@@ -365,7 +366,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
*/ */
private String oneNo; private String oneNo;
private Integer status;
//订单用户ID列表 //订单用户ID列表
private List<Integer> userIds; private List<Integer> userIds;
//订单用户大区id列表 //订单用户大区id列表
......
package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.xxfc.platform.order.biz.OrderActivityDetailBiz;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import com.xxfc.platform.order.pojo.dto.OrderActiveDto;
import com.xxfc.platform.order.pojo.dto.OrderActivityDto;
import com.xxfc.platform.order.pojo.order.ActivityOrderBO;
import com.xxfc.platform.order.service.OrderActivityService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping(value = "/order/activity")
public class OrderActivityController extends BaseController<OrderActivityDetailBiz, OrderActiveDetail> {
@Autowired
UserFeign userFeign;
@Autowired
OrderActivityService orderActivityService;
@RequestMapping(value = "add", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "确认活动订单")
public ObjectRestResponse<BaseOrder> add(@RequestBody OrderActivityDto dto, HttpServletRequest request) {
ActivityOrderBO bo = BeanUtil.toBean(dto, ActivityOrderBO.class);
bo.setAppUserDTO(userFeign.userDetailByToken(request.getHeader("Authorization")).getData());
//查询优惠券
orderActivityService.createOrder(bo);
return ObjectRestResponse.succ(bo.getOrder());
}
@GetMapping(value = "/getAll")
public ObjectRestResponse getAll(OrderActiveDto dto) {
return baseBiz.getAll(dto);
}
@GetMapping(value = "/detail")
public ObjectRestResponse orderDetail(String no) {
return baseBiz.orderDetail(no, userFeign.userDetailByToken(request.getHeader("Authorization")).getData());
}
}
package com.xxfc.platform.order.service;
import cn.hutool.core.bean.BeanUtil;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.xxfc.platform.activity.entity.ActivityProduct;
import com.xxfc.platform.activity.entity.ActivityProductSpecs;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.OrderActivityDetailBiz;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.pojo.order.ActivityOrderBO;
import com.xxfc.platform.order.pojo.price.OrderPriceVO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.feign.ThirdFeign;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
@Service
@Slf4j
public class OrderActivityService extends AbstractOrderHandle<OrderActivityDetailBiz, ActivityOrderBO> implements UserRestInterface {
@Autowired
ThirdFeign thirdFeign;
@Autowired
ActivityFeign activityFeign;
private static Long autoCancelTime;
@PostConstruct
public void init() {
this.channel = Coupon.CHANNEL_MEMBER;
this.orderTypeEnum = OrderTypeEnum.ACTIVITY;
}
@Override
public void initDetail(ActivityOrderBO bo) {
super.initDetail(bo);
initDictionary();
}
public void initDictionary() {
dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
this.autoCancelTime = Long.valueOf(dictionaryMap.get(APP_ORDER + "_" + DictionaryKey.ACT_MEMBER).getDetail());
}
@Override
public void handleDetail(ActivityOrderBO bo) {
//设置订单状态为3
bo.getOrder().setStatus(OrderStatusEnum.ORDER_UNPAY.getCode());
bo.getOrder().setName(bo.getProductName());
bo.getOrder().setPicture(bo.getPicture());
super.handleDetail(bo);
ActivityProductSpecs activityProductSpecs = activityFeign.get(bo.getSpecsId()).getData();
if (activityProductSpecs != null) {
bo.getOrder().setGoodsAmount(activityProductSpecs.getGoodsPrice());
//修改规格库存
if (activityProductSpecs.getStock() > 0) {
activityProductSpecs.setSales(bo.getNumber());
activityFeign.update(activityProductSpecs);
//修改商品库存
ActivityProduct activityProduct = new ActivityProduct();
activityProduct.setId(activityProductSpecs.getGoodsId());
activityProduct.setSales(bo.getNumber());
activityFeign.updateProduct(activityProduct);
}
}
//发送定时取消订单(30分钟)
rabbitProduct.sendDelayMessage(bo.getOrder(), autoCancelTime);
}
@Override
public void handleCalculate(ActivityOrderBO bo) {
OrderPriceVO tpv = calculatePrice(bo);
BeanUtil.copyProperties(tpv, bo.getOrder());
BeanUtil.copyProperties(tpv, bo);
}
@Override
public OrderPriceVO calculatePrice(ActivityOrderBO detail) {
BigDecimal orderAmount = BigDecimal.ZERO;
BigDecimal goodsAmount = BigDecimal.ZERO;
BigDecimal realAmount = BigDecimal.ZERO;
BigDecimal couponAmount = BigDecimal.ZERO;
ActivityProductSpecs activityProductSpecs = activityFeign.get(detail.getSpecsId()).getData();
if (activityProductSpecs != null) {
detail.getOrder().setGoodsAmount(activityProductSpecs.getGoodsPrice());
}
//设置Item
OrderItem memberOrderItem = orderItemBiz.initOrderItem(detail.getOrder().getGoodsAmount(), detail.getNumber(), detail.getName(), Integer.parseInt(detail.getProductId() + ""), ItemTypeEnum.ACTIVITY);
detail.setItems(new ArrayList<OrderItem>());
detail.getItems().add(memberOrderItem);
//商品价格
goodsAmount = goodsAmount.add(memberOrderItem.getCalculateAmount(Boolean.TRUE));
//vehicleAmount 优惠券处理
if (null != detail.getTickerNo() && detail.getTickerNo().size() > 0) {
couponAmount = activityFeign.use(detail.getOrder().getUserId(), detail.getTickerNo(), detail.getOrder().getNo(), channel, goodsAmount, ActivityFeign.TYPE_NO_USE);
if (couponAmount.compareTo(BigDecimal.ZERO) > 0) {
detail.getOrder().setCouponTickerNos(detail.getTickerNo().stream().collect(Collectors.joining(",")));
detail.getOrder().setHasDiscount(SYS_TRUE);
memberOrderItem.handleCouponAmount(couponAmount);
}
}
//订单总价格
orderAmount = orderAmount.add(goodsAmount);
//真实价格
realAmount = realAmount.add(orderAmount).subtract(couponAmount);
//生成订单明细
OrderPriceVO opv = new OrderPriceVO();
opv.setOrderAmount(orderAmount);
opv.setGoodsAmount(goodsAmount);
opv.setRealAmount(realAmount);
opv.setCouponAmount(couponAmount);
return opv;
}
}
...@@ -54,7 +54,7 @@ import java.util.List; ...@@ -54,7 +54,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.*; import static com.github.wxiaoqi.security.admin.constant.enumerate.MemberEnum.NONE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE; import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.order.contant.enumerate.ItemTypeEnum.ACCOMPANY; import static com.xxfc.platform.order.contant.enumerate.ItemTypeEnum.ACCOMPANY;
...@@ -88,6 +88,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -88,6 +88,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
@Autowired @Autowired
ActivityFeign activityFeign; ActivityFeign activityFeign;
@PostConstruct @PostConstruct
public void init(){ public void init(){
this.channel = Coupon.CHANNEL_RENT; this.channel = Coupon.CHANNEL_RENT;
...@@ -576,6 +577,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl ...@@ -576,6 +577,10 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
rentVehicleBookDTO.setNumberPlate(numberPlate); rentVehicleBookDTO.setNumberPlate(numberPlate);
rentVehicleBookDTO.setStatus(status); rentVehicleBookDTO.setStatus(status);
rentVehicleBookDTO.setUseType(detail.getUseType()); rentVehicleBookDTO.setUseType(detail.getUseType());
if (detail.getRentFreeDay() > 0) {//使用了免费天数
rentVehicleBookDTO.setMemberUse(detail.getAppUserDTO().getMemberType());
}
if (detail.getAppUserDTO() != null) { if (detail.getAppUserDTO() != null) {
rentVehicleBookDTO.setVehicleUserPhone(detail.getAppUserDTO().getUsername()); rentVehicleBookDTO.setVehicleUserPhone(detail.getAppUserDTO().getUsername());
rentVehicleBookDTO.setVehicleUsername(detail.getAppUserDTO().getRealname()); rentVehicleBookDTO.setVehicleUsername(detail.getAppUserDTO().getRealname());
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</plugin> </plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" <jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://10.5.52.4:3307/xxfc_order?useUnicode=true&amp;characterEncoding=UTF8" connectionURL="jdbc:mysql://10.5.52.3:3306/xxfc_order?useUnicode=true&amp;characterEncoding=UTF8"
userId="root" userId="root"
password="sslcloud123*()"> password="sslcloud123*()">
</jdbcConnection> </jdbcConnection>
...@@ -37,6 +37,6 @@ ...@@ -37,6 +37,6 @@
<!-- </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="deposit_refund_record" domainObjectName="DepositRefundRecord"></table> <table tableName="order_active_detail" domainObjectName="OrderActiveDetail"></table>
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ No newline at end of file
...@@ -43,6 +43,12 @@ ...@@ -43,6 +43,12 @@
select="com.xxfc.platform.order.mapper.OrderMemberDetailMapper.selectByPrimaryKey" select="com.xxfc.platform.order.mapper.OrderMemberDetailMapper.selectByPrimaryKey"
javaType="com.xxfc.platform.order.entity.OrderMemberDetail"></association> javaType="com.xxfc.platform.order.entity.OrderMemberDetail"></association>
</case> </case>
<case value="4" resultType="com.xxfc.platform.order.pojo.order.OrderPageVO">
<association column="detail_id" property="orderActiveDetail"
select="com.xxfc.platform.order.mapper.OrderActiveDetailMapper.selectByPrimaryKey"
javaType="com.xxfc.platform.order.entity.OrderActiveDetail"></association>
</case>
</discriminator> </discriminator>
</resultMap> </resultMap>
...@@ -65,6 +71,12 @@ ...@@ -65,6 +71,12 @@
select="com.xxfc.platform.order.mapper.OrderMemberDetailMapper.selectByPrimaryKey" select="com.xxfc.platform.order.mapper.OrderMemberDetailMapper.selectByPrimaryKey"
javaType="com.xxfc.platform.order.entity.OrderMemberDetail"></association> javaType="com.xxfc.platform.order.entity.OrderMemberDetail"></association>
</case> </case>
<case value="4" resultType="com.xxfc.platform.order.pojo.order.OrderListVo">
<association column="detail_id" property="orderActiveDetail"
select="com.xxfc.platform.order.mapper.OrderActiveDetailMapper.selectByPrimaryKey"
javaType="com.xxfc.platform.order.entity.OrderActiveDetail"></association>
</case>
</discriminator> </discriminator>
</resultMap> </resultMap>
...@@ -252,12 +264,19 @@ ...@@ -252,12 +264,19 @@
<if test="realName != null and realName != ''"> <if test="realName != null and realName != ''">
and username like CONCAT ("%", #{realName}, "%") and username like CONCAT ("%", #{realName}, "%")
</if> </if>
<if test="keywords != null and keywords != ''">
and (telephone like CONCAT ("%", #{keywords}, "%") or username like CONCAT ("%", #{keywords}, "%"))
</if>
<if test="userId != null"> <if test="userId != null">
and userId = #{userId} and userId = #{userId}
</if> </if>
<if test="status != null"> <if test="status != null">
and status = #{status} and status = #{status}
</if> </if>
<if test="refundStatus != null">
and refundStatus = #{refundStatus}
</if>
<if test="type != null"> <if test="type != null">
and type = #{type} and type = #{type}
</if> </if>
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.order.mapper.OrderActiveDetailMapper" >
<select id="getAllActivityOrder" resultType="com.xxfc.platform.order.pojo.vo.OrderActivityVo">
select oad.*, bo.picture as image, bo.no as orderNo,bo.user_id, bo.goods_amount, bo.real_amount, bo.`status`, bo.crt_time as orderTime from order_active_detail oad
LEFT JOIN base_order bo on bo.id = oad.order_id
<where>
<if test="no != null and no != ''">
and bo.no = #{no}
</if>
<if test="userId != null and userId > 0">
and bo.user_id = #{userId}
</if>
<if test="type != null and type > 0">
and oad.type = #{type}
</if>
<if test="startTime != null and endTime != null">
and bo.crt_time between #{startTime} and #{endTime}
</if>
<if test="status != null and status > 0">
and bo.status = #{status}
</if>
</where>
order By bo.crt_time DESC
</select>
</mapper>
\ No newline at end of file
package com.xxfc.platform.vehicle.constant;
import java.util.HashMap;
import java.util.Map;
public enum VehicleMemberType {
ALL(1,"所有会员"),
PAY(2,"兑换会员"),
EXCHANGE(3,"兑换会员"),
NO(4, "禁用会员")
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
private static Map<Integer,String> codeAndDesc = new HashMap<Integer, String>();
//Maps.newHashMap();
static{
for(VehicleMsgType constantType : VehicleMsgType.values()){
codeAndDesc.put(constantType.getCode(),constantType.getDesc());
}
}
VehicleMemberType(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);
}
}
...@@ -195,4 +195,10 @@ public class Vehicle { ...@@ -195,4 +195,10 @@ public class Vehicle {
* 是否删除;0-正常;1-删除 * 是否删除;0-正常;1-删除
*/ */
private Integer isDel; private Integer isDel;
/**
* 是否能用会员:1、所有会员,2、充值会员,3、兑换会员,4、禁用会员
*/
@Column(name = "member_use")
private Integer memberUse;
} }
\ No newline at end of file
...@@ -171,4 +171,7 @@ public class AddOrUpdateVehicleVo { ...@@ -171,4 +171,7 @@ public class AddOrUpdateVehicleVo {
* 电子保单 * 电子保单
*/ */
private String insurancePDF; private String insurancePDF;
//可用会员类型
private Integer memberUse;
} }
\ No newline at end of file
...@@ -104,6 +104,9 @@ public class RentVehicleBookDTO extends PageParam { ...@@ -104,6 +104,9 @@ public class RentVehicleBookDTO extends PageParam {
@ApiModelProperty("扩展结束时间") @ApiModelProperty("扩展结束时间")
String endDateExtend; String endDateExtend;
@ApiModelProperty("会员免费类型")
Integer memberUse;
/** /**
* 用途 1 租车 * 用途 1 租车
*/ */
......
...@@ -181,4 +181,8 @@ public class ResultVehicleVo { ...@@ -181,4 +181,8 @@ public class ResultVehicleVo {
private Date receiveTime; private Date receiveTime;
private Integer modelId; private Integer modelId;
//可用会员类型
private Integer memberUse;
} }
\ No newline at end of file
...@@ -17,6 +17,7 @@ import com.xxfc.platform.vehicle.common.BaseController; ...@@ -17,6 +17,7 @@ import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.RestResponse; import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType; import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus; import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.constant.VehicleMemberType;
import com.xxfc.platform.vehicle.entity.Vehicle; import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord; import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.pojo.*; import com.xxfc.platform.vehicle.pojo.*;
...@@ -188,10 +189,15 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -188,10 +189,15 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
dto.setEndCompanyId(dto.getEndCompanyId()); dto.setEndCompanyId(dto.getEndCompanyId());
//查询可车辆信息 //查询可车辆信息
PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto); PageDataVO<Vehicle> pageDataVO = vehicleBiz.searchUsableVehicle(dto);
if (pageDataVO.getData().size() <= 0) { if (pageDataVO.getData().size() <= 0 && (dto.getMemberUse() == null || dto.getMemberUse().equals(VehicleMemberType.NO.getCode()))) {
throw new BaseException(ResultCode.NOTEXIST_CODE, new HashSet<String>(){{ throw new BaseException(ResultCode.NOTEXIST_CODE, new HashSet<String>(){{
add("可用车辆不存在"); add("可用车辆不存在");
}}); }});
} else if (pageDataVO.getData().size() <= 0 && (dto.getMemberUse() == null ||!dto.getMemberUse().equals(VehicleMemberType.NO.getCode()))) {
throw new BaseException(ResultCode.NOTEXIST_CODE, new HashSet<String>(){{
add("仅剩托管车辆,无法使用免费天数,请关闭会员特权");
}});
} }
bookVehicleId = pageDataVO.getData().get(0).getId(); bookVehicleId = pageDataVO.getData().get(0).getId();
} }
......
...@@ -70,6 +70,7 @@ ...@@ -70,6 +70,7 @@
v.receive_time, v.receive_time,
v.update_time, v.update_time,
v.model_id, v.model_id,
v.member_use,
v.mileage_last_update as mileage, v.mileage_last_update as mileage,
c.val as useTypeName, c.val as useTypeName,
vm.name as vehicleType vm.name as vehicleType
...@@ -913,6 +914,9 @@ ...@@ -913,6 +914,9 @@
<!-- ,ifnull(vbi.booked_date,0) as booked_date--> <!-- ,ifnull(vbi.booked_date,0) as booked_date-->
<!-- </if>--> <!-- </if>-->
<include refid="searchUsableSql"/> <include refid="searchUsableSql"/>
<if test="memberUse != null and memberUse>0">
and (v.member_use = 1 or v.member_use = #{memberUse})
</if>
<if test="lon != null and lat != null"> <if test="lon != null and lat != null">
order by order by
distance asc distance asc
......
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