Commit 8a22a63e authored by unset's avatar unset

新增购物车接口

parent 2675daf6
package com.upyuns.platform.rs.website.dto; package com.upyuns.platform.rs.website.dto;
import lombok.Data;
/** /**
* @ClassName : CartOrderDto * @ClassName : CartOrderDto
* @Description : 购物车订单参数 * @Description : 购物车订单参数
* @Author : jiaoruizhen * @Author : jiaoruizhen
* @Date: 2020-12-04 11:02 * @Date: 2020-12-04 11:02
*/ */
@Data
public class CartOrderDto { public class CartOrderDto {
String ids;
//收货地址信息
String address;
//收货人姓名
String name;
//收货电话
String phone;
//配送方式:1、线上配送,2、快递配送
Integer sendType;
} }
package com.upyuns.platform.rs.website.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @ClassName : OrderInfoDto
* @Description : 添加订单信息
* @Author : jiaoruizhen
* @Date: 2020-12-12 17:09
*/
@Data
public class OrderInfoDto {
//详情ID
Integer detailId;
//1、标准数据,2、影像图库,3、行业应用信息
Integer type;
//数量
Integer number;
//单价
BigDecimal price;
//文件地址
String filePath;
}
...@@ -147,4 +147,18 @@ public class ShoppingCartInfo implements Serializable { ...@@ -147,4 +147,18 @@ public class ShoppingCartInfo implements Serializable {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private BigDecimal totalAmount; private BigDecimal totalAmount;
public static OrderItem convertToOrderItem(ShoppingCartInfo shoppingCartInfo) {
OrderItem orderItem = new OrderItem();
orderItem.setDetailId(shoppingCartInfo.getDetailId());
orderItem.setDetailJson(shoppingCartInfo.getDetailJson());
orderItem.setFilePath(shoppingCartInfo.getFilePath());
orderItem.setItemPic(shoppingCartInfo.getItemPic());
orderItem.setName(shoppingCartInfo.getName());
orderItem.setNumber(shoppingCartInfo.getNumber());
orderItem.setPrice(shoppingCartInfo.getPrice());
orderItem.setTotalAmount(shoppingCartInfo.getTotalAmount());
orderItem.setType(shoppingCartInfo.getType());
return orderItem;
}
} }
...@@ -24,7 +24,7 @@ public class UserAddress implements Serializable { ...@@ -24,7 +24,7 @@ public class UserAddress implements Serializable {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty("订单收获地址id") @ApiModelProperty("订单收获地址id")
private Long id; private Integer id;
/** /**
* 收获人姓名 * 收获人姓名
...@@ -98,4 +98,10 @@ public class UserAddress implements Serializable { ...@@ -98,4 +98,10 @@ public class UserAddress implements Serializable {
* 是否删除: 0、否,1、是 * 是否删除: 0、否,1、是
*/ */
private Integer isDel; private Integer isDel;
/**
* 是否是默认值: 0、否,1、是
*/
private Integer isDefault;
} }
...@@ -113,4 +113,14 @@ public class UserInvoice implements Serializable { ...@@ -113,4 +113,14 @@ public class UserInvoice implements Serializable {
private Integer isDel; private Integer isDel;
/**
* 发票类型: 1、普通发票,2、专票
*/
private Integer type;
/**
* 是否是默认值: 0、否,1、是
*/
private Integer isDefault;
} }
package com.upyuns.platform.rs.website.type;
/**
* @ClassName : OrderTypeEnum
* @Description : 订单类型
* @Author : jiaoruizhen
* @Date: 2020-12-12 16:50
*/
public enum OrderTypeEnum {
STANDARD_DATA(1, "标准数据"),
INDUSTRY_INFO(3, "行业应用"),
IMAGE_STORAGE(2, "影像图库");
private Integer type;
private String msg;
OrderTypeEnum(Integer type, String msg) {
this.type = type;
this.msg = msg;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public static <T extends OrderTypeEnum> String getType(Integer code, Class<T> t) {
for (T item : t.getEnumConstants()) {
if (item.getType().equals(code)) {
return item.getMsg();
}
}
return "";
}
public static OrderTypeEnum getByCode(Integer code) {
for (OrderTypeEnum v : values()) {
if (v.getType() == code) {
return v;
}
}
return null;
}
public static String getProductStatusEnum(Integer code) {
return getType(code, OrderTypeEnum.class);
}
}
...@@ -79,7 +79,7 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> { ...@@ -79,7 +79,7 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> {
*/ */
public OrderInfo getOneByOrderNo(String orderNo) { public OrderInfo getOneByOrderNo(String orderNo) {
Example example = new Example(OrderInfo.class); Example example = new Example(OrderInfo.class);
example.createCriteria().andEqualTo("orderNo", orderNo).andNotEqualTo("status", -1).andEqualTo("status", -2); example.createCriteria().andEqualTo("orderNo", orderNo).andNotEqualTo("status", -1).andNotEqualTo("status", -2);
return mapper.selectOneByExample(example); return mapper.selectOneByExample(example);
} }
...@@ -105,14 +105,12 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> { ...@@ -105,14 +105,12 @@ public class OrderInfoBiz extends BaseBiz<OrderInfoMapper, OrderInfo> {
if (StringUtils.isNotBlank(userOrderDto.getName())) { if (StringUtils.isNotBlank(userOrderDto.getName())) {
orderItemCriteria.andLike("name", "%"+ userOrderDto.getName() +"%"); orderItemCriteria.andLike("name", "%"+ userOrderDto.getName() +"%");
} }
orderInfoCriteria.andNotEqualTo("status", -1); orderInfoCriteria.andNotEqualTo("status", -1);
example.orderBy("updTime").desc(); example.orderBy("updTime").desc();
List<OrderInfo> orderInfoList = mapper.selectByExample(example); List<OrderInfo> orderInfoList = mapper.selectByExample(example);
if (orderInfoList != null) { if (orderInfoList != null) {
} }
return new ArrayList<>(); return new ArrayList<>();
} }
......
...@@ -2,20 +2,24 @@ package com.upyuns.platform.rs.website.biz; ...@@ -2,20 +2,24 @@ package com.upyuns.platform.rs.website.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
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.github.wxiaoqi.security.common.util.process.ResultCode;
import com.upyuns.platform.rs.website.entity.OrderEInvoice; import com.upyuns.platform.rs.website.dto.CartOrderDto;
import com.upyuns.platform.rs.website.entity.OrderInfo; import com.upyuns.platform.rs.website.dto.OrderInfoDto;
import com.upyuns.platform.rs.website.entity.OrderItem; import com.upyuns.platform.rs.website.entity.*;
import com.upyuns.platform.rs.website.type.OrderTypeEnum;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
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.upyuns.platform.rs.website.entity.ShoppingCartInfo;
import com.upyuns.platform.rs.website.mapper.ShoppingCartInfoMapper; import com.upyuns.platform.rs.website.mapper.ShoppingCartInfoMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
...@@ -37,6 +41,18 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -37,6 +41,18 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
@Autowired @Autowired
OrderItemBiz orderItemBiz; OrderItemBiz orderItemBiz;
@Autowired
IndustryApplicationInfoBiz industryApplicationInfoBiz;
@Autowired
ImageImgStorageBiz imageImgStorageBiz;
@Autowired
UserFeign userFeign;
@Autowired
HttpServletRequest request;
/** /**
* 添加购物车 * 添加购物车
* @param shoppingCartInfo * @param shoppingCartInfo
...@@ -68,24 +84,103 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -68,24 +84,103 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
return ObjectRestResponse.succ(mapper.selectByExample(example)); return ObjectRestResponse.succ(mapper.selectByExample(example));
} }
/**
* 前端用户添加购物车
* @param orderInfoDto 商品详情ID
* @return
*/
public ObjectRestResponse addShoppingCart(OrderInfoDto orderInfoDto) {
AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (orderInfoDto.getType() == null || orderInfoDto.getType() == null) {
return ObjectRestResponse.paramIsEmpty();
}
//标准数据
if (OrderTypeEnum.STANDARD_DATA.getType().equals(orderInfoDto.getType())) {
}
//影像图库
if (OrderTypeEnum.IMAGE_STORAGE.getType().equals(orderInfoDto.getType())) {
ImageImgStorage imageImgStorage = imageImgStorageBiz.selectById(orderInfoDto.getDetailId());
if (imageImgStorage != null) {
ShoppingCartInfo shoppingCartInfo = new ShoppingCartInfo();
shoppingCartInfo.setDetailId(imageImgStorage.getId());
shoppingCartInfo.setDetailJson(JSONObject.toJSONString(imageImgStorage));
shoppingCartInfo.setPrice(orderInfoDto.getPrice());
shoppingCartInfo.setFilePath(orderInfoDto.getFilePath());
shoppingCartInfo.setNumber(orderInfoDto.getNumber());
shoppingCartInfo.setItemPic(imageImgStorage.getCoverImg());
shoppingCartInfo.setName(imageImgStorage.getName());
shoppingCartInfo.setTotalAmount(orderInfoDto.getPrice().multiply(new BigDecimal(orderInfoDto.getNumber())));
shoppingCartInfo.setType(orderInfoDto.getType());
//添加用户信息
shoppingCartInfo.setRealName(appUserDTO.getRealname());
shoppingCartInfo.setNickname(appUserDTO.getNickname());
shoppingCartInfo.setHeadImg(appUserDTO.getHeadimgurl());
shoppingCartInfo.setPhone(appUserDTO.getUsername());
shoppingCartInfo.setUserId(appUserDTO.getUserid());
addUpdate(shoppingCartInfo);
} else {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE));
}
}
//行业应用信息
if (OrderTypeEnum.INDUSTRY_INFO.getType().equals(orderInfoDto.getType())) {
IndustryApplicationInfo industryApplicationInfo = industryApplicationInfoBiz.selectById(orderInfoDto.getDetailId());
if (industryApplicationInfo != null) {
ShoppingCartInfo shoppingCartInfo = new ShoppingCartInfo();
shoppingCartInfo.setDetailId(industryApplicationInfo.getId());
shoppingCartInfo.setDetailJson(JSONObject.toJSONString(industryApplicationInfo));
shoppingCartInfo.setPrice(orderInfoDto.getPrice());
shoppingCartInfo.setFilePath(orderInfoDto.getFilePath());
shoppingCartInfo.setNumber(orderInfoDto.getNumber());
shoppingCartInfo.setItemPic(industryApplicationInfo.getCoverImg());
shoppingCartInfo.setName(industryApplicationInfo.getTitle());
shoppingCartInfo.setTotalAmount(orderInfoDto.getPrice().multiply(new BigDecimal(orderInfoDto.getNumber())));
shoppingCartInfo.setType(orderInfoDto.getType());
//添加用户信息
shoppingCartInfo.setRealName(appUserDTO.getRealname());
shoppingCartInfo.setNickname(appUserDTO.getNickname());
shoppingCartInfo.setHeadImg(appUserDTO.getHeadimgurl());
shoppingCartInfo.setPhone(appUserDTO.getUsername());
shoppingCartInfo.setUserId(appUserDTO.getUserid());
addUpdate(shoppingCartInfo);
} else {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE));
}
}
return ObjectRestResponse.succ();
}
/** /**
* 购物车转为订单 * 购物车转为订单
* @param ids * @param cartOrderDto
* @return * @return
*/ */
public ObjectRestResponse convertShopCartToOrderInfo(String ids) { public ObjectRestResponse convertShopCartToOrderInfo(CartOrderDto cartOrderDto) {
if (StringUtils.isBlank(ids)) { AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (cartOrderDto == null || StringUtils.isBlank(cartOrderDto.getIds())) {
return ObjectRestResponse.paramIsEmpty(); return ObjectRestResponse.paramIsEmpty();
} }
String[] cartIds = ids.split(","); String[] cartIds = cartOrderDto.getIds().split(",");
if (cartIds == null || ids.length() <= 0) { if (cartIds == null || cartIds.length <= 0) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE)); return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE));
} }
Example example = new Example(ShoppingCartInfo.class); Example example = new Example(ShoppingCartInfo.class);
example.createCriteria().andIn("cartId", Arrays.asList(cartIds)).andEqualTo("isDel", 0); example.createCriteria().andIn("cartId", Arrays.asList(cartIds)).andEqualTo("isDel", 0);
List<ShoppingCartInfo> cartInfoList = mapper.selectByExample(example); List<ShoppingCartInfo> cartInfoList = mapper.selectByExample(example);
if (cartInfoList != null && cartInfoList.size() > 0) { if (cartInfoList != null && cartInfoList.size() > 0) {
convertToOrderInfo(cartInfoList); convertToOrderInfo(cartInfoList, cartOrderDto, appUserDTO);
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE)); return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE));
...@@ -95,16 +190,32 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping ...@@ -95,16 +190,32 @@ public class ShoppingCartInfoBiz extends BaseBiz<ShoppingCartInfoMapper,Shopping
* 购物车转订单实现 * 购物车转订单实现
* @param cartInfoList * @param cartInfoList
*/ */
private void convertToOrderInfo(List<ShoppingCartInfo> cartInfoList) { private void convertToOrderInfo(List<ShoppingCartInfo> cartInfoList, CartOrderDto cartOrderDto, AppUserDTO appUserDTO) {
List<OrderItem> orderItemList = new ArrayList<>();
//总金额 //总金额
double amount = cartInfoList.parallelStream().mapToDouble(shoppingCartInfo ->shoppingCartInfo.getTotalAmount().doubleValue()).sum(); double amount = cartInfoList.parallelStream().mapToDouble(shoppingCartInfo ->shoppingCartInfo.getTotalAmount().doubleValue()).sum();
//总数量 //总数量
Integer totalNumber = cartInfoList.parallelStream().mapToInt(ShoppingCartInfo::getNumber).sum(); Integer totalNumber = cartInfoList.parallelStream().mapToInt(ShoppingCartInfo::getNumber).sum();
OrderInfo orderInfo = new OrderInfo(); OrderInfo orderInfo = new OrderInfo();
orderInfo.setAmount(new BigDecimal(amount).setScale(2, BigDecimal.ROUND_HALF_UP)); orderInfo.setAmount(new BigDecimal(amount).setScale(2, BigDecimal.ROUND_HALF_UP));
orderInfo.setNumber(totalNumber); orderInfo.setNumber(totalNumber);
orderInfoBiz.generateOrder(orderInfo);
cartInfoList.parallelStream().forEach(shoppingCartInfo -> {
OrderItem orderItem = ShoppingCartInfo.convertToOrderItem(shoppingCartInfo);
orderItem.setOrderId(orderInfo.getOrderId());
orderItemBiz.insertSelectiveRe(orderItem);
});
//收货信息
orderInfo.setReceiveName(cartOrderDto.getName());
orderInfo.setReceivePhone(cartOrderDto.getPhone());
orderInfo.setReceiveAddress(cartOrderDto.getAddress());
//用户信息
orderInfo.setHeadImg(appUserDTO.getHeadimgurl());
orderInfo.setNickname(appUserDTO.getNickname());
orderInfo.setPhone(appUserDTO.getUsername());
orderInfo.setUserId(appUserDTO.getUserid());
orderInfo.setRealName(appUserDTO.getRealname());
orderInfoBiz.updateSelectiveByIdRe(orderInfo);
} }
} }
\ No newline at end of file
...@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
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.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query; import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
...@@ -100,6 +99,45 @@ public class UserAddressBiz extends BaseBiz<UserAddressMapper, UserAddress> { ...@@ -100,6 +99,45 @@ public class UserAddressBiz extends BaseBiz<UserAddressMapper, UserAddress> {
} }
Example example = new Example(UserAddress.class); Example example = new Example(UserAddress.class);
example.createCriteria().andEqualTo("userId", appUserVo.getUserid()).andEqualTo("isDel", 0); example.createCriteria().andEqualTo("userId", appUserVo.getUserid()).andEqualTo("isDel", 0);
example.orderBy("isDefault").desc();
return mapper.selectByExample(example); return mapper.selectByExample(example);
} }
/**
* 设置地址为默认值
* @param id
* @return
*/
public ObjectRestResponse setDefault(Integer id) {
AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (id == null) {
return ObjectRestResponse.paramIsEmpty();
}
UserAddress userAddress = selectById(id);
if (userAddress == null || userAddress.getIsDel() == 1) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE));
}
generateDefault(appUserDTO.getUserid());
userAddress.setIsDefault(1);
updateSelectiveByIdRe(userAddress);
return ObjectRestResponse.succ();
}
private void generateDefault(Integer userId) {
Example example = new Example(UserAddress.class);
example.createCriteria().andEqualTo("userId", userId).andEqualTo("isDel", 0).andEqualTo("isDefault", 1);
List<UserAddress> list = mapper.selectByExample(example);
if (list != null && list.size() > 0) {
list.parallelStream().forEach(userAddress -> {
userAddress.setIsDefault(0);
updateSelectiveByIdRe(userAddress);
});
}
}
} }
\ No newline at end of file
...@@ -2,12 +2,16 @@ package com.upyuns.platform.rs.website.biz; ...@@ -2,12 +2,16 @@ package com.upyuns.platform.rs.website.biz;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
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.Query; 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.github.wxiaoqi.security.common.vo.PageDataVO;
import com.upyuns.platform.rs.website.dto.UserInvoiceDto; import com.upyuns.platform.rs.website.dto.UserInvoiceDto;
import com.upyuns.platform.rs.website.entity.OrderEInvoice; import com.upyuns.platform.rs.website.entity.OrderEInvoice;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.upyuns.platform.rs.website.entity.UserInvoice; import com.upyuns.platform.rs.website.entity.UserInvoice;
...@@ -15,6 +19,9 @@ import com.upyuns.platform.rs.website.mapper.UserInvoiceMapper; ...@@ -15,6 +19,9 @@ import com.upyuns.platform.rs.website.mapper.UserInvoiceMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/** /**
* 用户发票信息 * 用户发票信息
* *
...@@ -25,6 +32,10 @@ import tk.mybatis.mapper.entity.Example; ...@@ -25,6 +32,10 @@ import tk.mybatis.mapper.entity.Example;
@Service @Service
public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> { public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> {
@Autowired
UserFeign userFeign;
@Autowired
HttpServletRequest request;
/** /**
* 添加用户发票 * 添加用户发票
* @param userInvoice * @param userInvoice
...@@ -48,6 +59,34 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> { ...@@ -48,6 +59,34 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
/**
* 添加用户发票
* @param userInvoice
* @return
*/
public ObjectRestResponse userAddUpdate(UserInvoice userInvoice) {
AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (userInvoice == null) {
return ObjectRestResponse.paramIsEmpty();
}
userInvoice.setUserId(appUserDTO.getUserid());
if (userInvoice.getId() == null) {
UserInvoice old = getOneByTax(userInvoice.getTaxCode(), userInvoice.getUserId());
if (old != null) {
userInvoice.setId(old.getId());
updateData(userInvoice);
} else {
insertSelectiveRe(userInvoice);
}
} else {
updateData(userInvoice);
}
return ObjectRestResponse.succ();
}
/** /**
* 查询发票信息 * 查询发票信息
* @param tax * @param tax
...@@ -81,7 +120,7 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> { ...@@ -81,7 +120,7 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> {
criteria.andEqualTo("taxCode", "%" + userInvoiceDto.getTaxCode() + "%"); criteria.andEqualTo("taxCode", "%" + userInvoiceDto.getTaxCode() + "%");
} }
criteria.andEqualTo("isDel", 0); criteria.andEqualTo("isDel", 0);
example.orderBy("updTime").desc(); example.orderBy("isDefault").desc();
Query query = new Query(userInvoiceDto); Query query = new Query(userInvoiceDto);
PageDataVO<UserInvoice> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.selectByExample(example)); PageDataVO<UserInvoice> pageDataVO = PageDataVO.pageInfo(query, () -> mapper.selectByExample(example));
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
...@@ -93,6 +132,11 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> { ...@@ -93,6 +132,11 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> {
* @return * @return
*/ */
public ObjectRestResponse getUserInvoiceInfo(UserInvoiceDto userInvoiceDto) { public ObjectRestResponse getUserInvoiceInfo(UserInvoiceDto userInvoiceDto) {
AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
userInvoiceDto.setUserId(appUserDTO.getUserid());
return getList(userInvoiceDto); return getList(userInvoiceDto);
} }
...@@ -108,4 +152,41 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> { ...@@ -108,4 +152,41 @@ public class UserInvoiceBiz extends BaseBiz<UserInvoiceMapper,UserInvoice> {
return ObjectRestResponse.succ(); return ObjectRestResponse.succ();
} }
/**
* 设置发票为默认值
* @param id
* @return
*/
public ObjectRestResponse setDefault(Integer id) {
AppUserDTO appUserDTO = userFeign.userDetailByToken(request.getHeader("Authorization")).getData();
if (appUserDTO == null) {
return ObjectRestResponse.createFailedResult(ResultCode.RSTOKEN_EXPIRED_CODE, ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
if (id == null) {
return ObjectRestResponse.paramIsEmpty();
}
UserInvoice userInvoice = selectById(id);
if (userInvoice == null || userInvoice.getIsDel() == 1) {
return ObjectRestResponse.createFailedResult(ResultCode.NOTEXIST_CODE, ResultCode.getMsg(ResultCode.NOTEXIST_CODE));
}
generateDefault(appUserDTO.getUserid());
userInvoice.setIsDefault(1);
updateSelectiveByIdRe(userInvoice);
return ObjectRestResponse.succ();
}
private void generateDefault(Integer userId) {
Example example = new Example(UserInvoice.class);
example.createCriteria().andEqualTo("userId", userId).andEqualTo("isDel", 0).andEqualTo("isDefault", 1);
List<UserInvoice> list = mapper.selectByExample(example);
if (list != null && list.size() > 0) {
list.parallelStream().forEach(userInvoice -> {
userInvoice.setIsDefault(0);
updateSelectiveByIdRe(userInvoice);
});
}
}
} }
\ No newline at end of file
...@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.common.rest.BaseController; ...@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.common.rest.BaseController;
import com.upyuns.platform.rs.website.biz.UserAddressBiz; import com.upyuns.platform.rs.website.biz.UserAddressBiz;
import com.upyuns.platform.rs.website.dto.UserAddressDto; import com.upyuns.platform.rs.website.dto.UserAddressDto;
import com.upyuns.platform.rs.website.entity.UserAddress; import com.upyuns.platform.rs.website.entity.UserAddress;
import com.upyuns.platform.rs.website.entity.UserInvoice;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@RestController @RestController
...@@ -21,4 +22,8 @@ public class UserAddressWebController extends BaseController<UserAddressBiz,User ...@@ -21,4 +22,8 @@ public class UserAddressWebController extends BaseController<UserAddressBiz,User
return ObjectRestResponse.succ(baseBiz.getUserAddress()); return ObjectRestResponse.succ(baseBiz.getUserAddress());
} }
@PostMapping(value = "setDefault")
public ObjectRestResponse setDefault(@RequestBody UserAddress userAddress) {
return baseBiz.setDefault(userAddress.getId());
}
} }
\ No newline at end of file
...@@ -20,4 +20,10 @@ public class UserInvoiceWebController extends BaseController<UserInvoiceBiz,User ...@@ -20,4 +20,10 @@ public class UserInvoiceWebController extends BaseController<UserInvoiceBiz,User
public ObjectRestResponse getUserList(UserInvoiceDto userInvoiceDto) { public ObjectRestResponse getUserList(UserInvoiceDto userInvoiceDto) {
return baseBiz.getUserInvoiceInfo(userInvoiceDto); return baseBiz.getUserInvoiceInfo(userInvoiceDto);
} }
@PostMapping(value = "setDefault")
public ObjectRestResponse setDefault(@RequestBody UserInvoice userInvoice) {
return baseBiz.setDefault(userInvoice.getId());
}
} }
\ 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