Commit 80be8357 authored by jiaorz's avatar jiaorz

Merge branch 'master-order' into dev

# Conflicts:
#	xx-order/xx-order-server/src/main/resources/builder/generatorConfig.xml
parents 8d876040 edd98c49
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 explain;
@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;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.activity.dto.ActivityListDTO;
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.IntegralUserTotal;
import com.xxfc.platform.activity.vo.UserCouponVo;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
......@@ -13,7 +14,6 @@ import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -86,4 +86,11 @@ public interface ActivityFeign {
@ApiOperation("获取所用优惠卷")
@GetMapping("/coupon/couponsBycouponIds")
List<Coupon> couponsByTickerNoList(@RequestParam(value = "tickerNoList") List<String> tickerNoList);
@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);
}
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.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);
List<ActivityProductSpecs> activityProductSpecs = activityProductSpecsBiz.getAllByActiveId(activityProduct.getId());
activityProduct.setList(activityProductSpecs);
return activityProduct;
}
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.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);
}
}
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);
}
}
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));
}
}
......@@ -26,6 +26,8 @@
<javaClientGenerator targetPackage="${targetMapperPackage}" targetProject="${targetJavaProject}"
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>
</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" >
<resultMap id="BaseResultMap" type="com.xxfc.platform.activity.entity.ActivityProduct" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="INTEGER" />
<result column="crt_time" property="crtTime" jdbcType="BIGINT" />
<result column="upd_time" property="updTime" jdbcType="BIGINT" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="start_time" property="startTime" jdbcType="BIGINT" />
<result column="end_time" property="endTime" jdbcType="BIGINT" />
<result column="num_limit" property="numLimit" jdbcType="INTEGER" />
<result column="has_join_num" property="hasJoinNum" jdbcType="INTEGER" />
<result column="status" property="status" jdbcType="BIT" />
<result column="sort" property="sort" jdbcType="BIT" />
<result column="picture" property="picture" jdbcType="VARCHAR" />
<result column="type" property="type" jdbcType="BIT" />
<result column="time_type" property="timeType" jdbcType="BIT" />
<result column="is_del" property="isDel" jdbcType="BIT" />
<result column="specs_id" property="specsId" jdbcType="INTEGER" />
<result column="sales" property="sales" jdbcType="INTEGER" />
<result column="stock" property="stock" jdbcType="INTEGER" />
<result column="detail" property="detail" jdbcType="LONGVARCHAR" />
<result column="explain" property="explain" jdbcType="LONGVARCHAR" />
</resultMap>
</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
......@@ -13,6 +13,7 @@ public enum ItemTypeEnum {
TOUR_INSURE(203, "旅游保险"),
MEMBER(301, "会员"),
ACCOMPANY(104, "随车物品"),
ACTIVITY(401, "活动订单"),
;
/**
* 编码
......
......@@ -7,6 +7,7 @@ public enum OrderTypeEnum {
RENT_VEHICLE(1, "租车订单"),
TOUR(2, "旅游订单"),
MEMBER(3, "会员订单"),
ACTIVITY(4, "活动订单"),
;
/**
* 编码
......
package com.xxfc.platform.order.entity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
@Data
@Table(name = "order_active_detail")
public class OrderActiveDetail {
@Id
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
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;
}
package com.xxfc.platform.order.pojo.vo;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OrderActivityVo extends OrderActiveDetail {
private Integer userId;
//姓名
private String realName;
//手机号
private String mobile;
//订单号
private String orderNo;
//下单时间
private Long orderTime;
//订单实际金额
private BigDecimal realAmount;
//单价
private BigDecimal goodsAmount;
}
package com.xxfc.platform.order.biz;
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.vo.PageDataVO;
import com.xxfc.platform.order.entity.OrderActiveDetail;
import com.xxfc.platform.order.mapper.OrderActiveDetailMapper;
import com.xxfc.platform.order.pojo.vo.OrderActivityVo;
import com.xxfc.platform.order.rest.BaseOrderController;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
@Slf4j
@Api("活动订单详情")
public class OrderActivityDetailBiz extends BaseBiz<OrderActiveDetailMapper, OrderActiveDetail> implements UserRestInterface {
@Autowired
UserFeign userFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
public ObjectRestResponse getAll(BaseOrderController.QueryOrderList dto) {
//判断token是否存在
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.succ(new PageDataVO<>());
}
if (dto.getStartTime() != null) {
if (dto.getEndTime() == null) {
dto.setEndTime(new Date().getTime());
}
}
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);
}
}
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
......@@ -398,7 +398,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
*/
private String oneNo;
private Integer status;
//订单用户ID列表
private List<Integer> userIds;
//订单用户大区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.context.BaseContextHandler;
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.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.*;
@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) {
ActivityOrderBO bo = BeanUtil.toBean(dto, ActivityOrderBO.class);
bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData());
//查询优惠券
orderActivityService.createOrder(bo);
return ObjectRestResponse.succ(bo.getOrder());
}
@GetMapping(value = "/getAll")
public ObjectRestResponse getAll(BaseOrderController.QueryOrderList dto) {
return baseBiz.getAll(dto);
}
}
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.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.getName());
bo.getOrder().setPicture(bo.getPicture());
super.handleDetail(bo);
//发送定时取消订单(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;
}
}
......@@ -15,7 +15,7 @@
</plugin>
<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"
password="sslcloud123*()">
</jdbcConnection>
......@@ -37,6 +37,6 @@
<!-- </table>-->
<!-- <table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>-->
<!-- <table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>-->
<table tableName="order_e_invoice" domainObjectName="OrderInvoice"></table>
<table tableName="order_active_detail" domainObjectName="OrderActiveDetail"></table>
</context>
</generatorConfiguration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xxfc.platform.order.mapper.OrderActiveDetailMapper" >
<select id="getAllActivityOrder" resultType="com.xxfc.platform.order.pojo.vo.OrderActivityVo">
select oad.*, 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="orderNo != null and orderNo != ''">
and bo.no = #{orderNo}
</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 unix_timestamp(bo.crt_time) between #{startTime} and #{endTime}
</if>
<if test="status != null and status > 0">
and bo.status = #{status}
</if>
order By bo.crt_time DESC
</where>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment