You've already forked FrameTour-BE
订单类型由订单明细移动至订单本体中
This commit is contained in:
@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@ -23,14 +24,22 @@ AppFaceController {
|
||||
@Autowired
|
||||
private FaceService faceService;
|
||||
|
||||
/**
|
||||
* 1、上传人脸照片
|
||||
* 2、人脸照片有效性校验
|
||||
* 3、校验失败,删除,提示重新上传
|
||||
* 4、校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端
|
||||
* @param file
|
||||
* @param scenicId
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("人脸照片上传")
|
||||
@PostMapping("/faceUPload")
|
||||
public ApiResponse faceUPload(MultipartFile file) {
|
||||
//1、上传人脸照片
|
||||
//2、人脸照片有效性校验
|
||||
//3、校验失败,删除,提示重新上传
|
||||
//4、校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端
|
||||
public ApiResponse faceUPload(@RequestParam("file")MultipartFile file, @RequestParam("scenicId") Long scenicId) {
|
||||
|
||||
return faceService.faceUPload(file);
|
||||
return faceService.faceUPload(file,scenicId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ public class AppOrderController {
|
||||
|
||||
@ApiOperation("用户端订单列表查询")
|
||||
@PostMapping("/page")
|
||||
@IgnoreToken
|
||||
public ApiResponse<PageInfo<OrderAppRespVO>> pageQuery(@RequestBody OrderReqQuery orderReqQuery) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
orderReqQuery.setMemberId(Long.valueOf(userId));
|
||||
@ -38,7 +37,6 @@ public class AppOrderController {
|
||||
|
||||
@ApiOperation("用户端订单详情查询")
|
||||
@GetMapping("getOrderDetails/{id}")
|
||||
@IgnoreToken
|
||||
public ApiResponse<OrderAppRespVO> getOrderDetails(@PathVariable("id") Long id) {
|
||||
return orderService.appDetail(id);
|
||||
}
|
||||
|
@ -21,4 +21,6 @@ public interface FaceMapper {
|
||||
int deleteById(Long id);
|
||||
int deleteByIds(@Param("list") List<Long> ids);
|
||||
int update(FaceEntity face);
|
||||
|
||||
FaceRespVO getByMemberId(String userId);
|
||||
}
|
||||
|
@ -0,0 +1,87 @@
|
||||
package com.ycwl.basic.model.mobile.order;
|
||||
|
||||
import com.ycwl.basic.model.common.BaseQueryParameterReq;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/11/29 16:33
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "移动端订单查询对象")
|
||||
public class OrderAppPageReq extends BaseQueryParameterReq {
|
||||
@ApiModelProperty(value = "用户id",hidden = true)
|
||||
private Long memberId;
|
||||
// /**
|
||||
// * 微信openId
|
||||
// */
|
||||
// @ApiModelProperty("微信openId")
|
||||
// private Long openId;
|
||||
// /**
|
||||
// * 价格
|
||||
// */
|
||||
// @ApiModelProperty("价格")
|
||||
// private BigDecimal price;
|
||||
// /**
|
||||
// * 实际支付价格
|
||||
// */
|
||||
// @ApiModelProperty("实际支付价格")
|
||||
// private BigDecimal payPrice;
|
||||
// /**
|
||||
// * 推客id
|
||||
// */
|
||||
// @ApiModelProperty("推客id")
|
||||
// private Long brokerId;
|
||||
// /**
|
||||
// * 推客优惠码
|
||||
// */
|
||||
// @ApiModelProperty("推客优惠码")
|
||||
// private String promoCode;
|
||||
// /**
|
||||
// * 退款原因
|
||||
// */
|
||||
// @ApiModelProperty("退款原因")
|
||||
// private String refundReason;
|
||||
// /**
|
||||
// * 退款状态,0未提出,1已通过,2待审核
|
||||
// */
|
||||
// @ApiModelProperty("退款状态,0未提出,1已通过,2待审核")
|
||||
// private Integer refundStatus;
|
||||
// /**
|
||||
// * 状态,0未支付,1已支付,2已退款,9已取消
|
||||
// */
|
||||
// @ApiModelProperty("状态,0未支付,1已支付,2已退款,9已取消")
|
||||
// private Integer status;
|
||||
// /**
|
||||
// * 订单创建时间
|
||||
// */
|
||||
// @ApiModelProperty("订单创建时间")
|
||||
// private Date startCreateTime;
|
||||
// private Date endCreateTime;
|
||||
// /**
|
||||
// * 订单支付时间
|
||||
// */
|
||||
// @ApiModelProperty("订单支付时间")
|
||||
// private Date startPayTime;
|
||||
// private Date endPayTime;
|
||||
// /**
|
||||
// * 订单取消时间
|
||||
// */
|
||||
// @ApiModelProperty("订单取消时间")
|
||||
// private Date startCancelTime;
|
||||
// private Date endCancelTime;
|
||||
// /**
|
||||
// * 订单退款时间
|
||||
// */
|
||||
// @ApiModelProperty("订单退款时间")
|
||||
// private Date startRefundTime;
|
||||
// private Date endRefundTime;
|
||||
|
||||
@ApiModelProperty("订单类型 0成片(vlog) 1原片 2照片")
|
||||
private Integer type;
|
||||
}
|
@ -27,6 +27,8 @@ public class OrderAddOrUpdateReq {
|
||||
*/
|
||||
@ApiModelProperty("微信openId")
|
||||
private Long openId;
|
||||
@ApiModelProperty("景区id")
|
||||
private Long scenicId;
|
||||
/**
|
||||
* 价格
|
||||
*/
|
||||
@ -52,6 +54,8 @@ public class OrderAddOrUpdateReq {
|
||||
*/
|
||||
@ApiModelProperty("推客优惠码")
|
||||
private String promoCode;
|
||||
@ApiModelProperty("订单商品类型 1成片,2源素材")
|
||||
private Integer goodsType;
|
||||
/**
|
||||
* 退款原因
|
||||
*/
|
||||
|
@ -17,7 +17,7 @@ import java.util.Date;
|
||||
@Data
|
||||
@ApiModel(value = "订单查询对象")
|
||||
public class OrderReqQuery extends BaseQueryParameterReq {
|
||||
private Long id;
|
||||
// private Long id;
|
||||
private Long memberId;
|
||||
@ApiModelProperty("用户昵称")
|
||||
private String memberNickname;
|
||||
|
@ -83,6 +83,11 @@ public class OrderAppRespVO {
|
||||
private String goodsName;
|
||||
@ApiModelProperty("拍摄时间")
|
||||
private Date shootingTime;
|
||||
/**
|
||||
* 商品类型,0其他,1成片,2原片,3模板成片
|
||||
*/
|
||||
@ApiModelProperty("商品类型,1成片,2源素材")
|
||||
private Integer goodsType;
|
||||
@ApiModelProperty("订单明细")
|
||||
private List<OrderItemVO> orderItemList;
|
||||
}
|
||||
|
@ -19,11 +19,6 @@ public class OrderItemVO {
|
||||
*/
|
||||
@ApiModelProperty("订单id")
|
||||
private Long orderId;
|
||||
/**
|
||||
* 商品类型,0其他,1成片,2原片,3模板成片
|
||||
*/
|
||||
@ApiModelProperty("商品类型,0其他,1成片,2源素材")
|
||||
private Integer goodsType;
|
||||
/**
|
||||
* 商品ID,goods_type=1关联video.id,=2关联source.id,=3关联template.id
|
||||
*/
|
||||
|
@ -53,6 +53,8 @@ public class OrderRespVO {
|
||||
*/
|
||||
@ApiModelProperty("推客优惠码")
|
||||
private String promoCode;
|
||||
@ApiModelProperty("订单商品类型 1成片,2源素材")
|
||||
private Integer goodsType;
|
||||
/**
|
||||
* 退款原因
|
||||
*/
|
||||
|
@ -98,9 +98,9 @@ public class AppMemberServiceImpl implements AppMemberService {
|
||||
List<MemberRespVO> list = memberMapper.list(memberReqQuery);
|
||||
if (list.isEmpty()) {
|
||||
MemberEntity memberEntity = new MemberEntity();
|
||||
BeanCopierUtils.copyProperties(userInfoDTO, memberEntity);
|
||||
memberEntity.setId(SnowFlakeUtil.getLongId());
|
||||
memberEntity.setOpenId(openId.toString());
|
||||
BeanCopierUtils.copyProperties(userInfoDTO, memberEntity);
|
||||
memberMapper.add(memberEntity);
|
||||
BeanCopierUtils.copyProperties(memberEntity, memberRespVO);
|
||||
} else {
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.ycwl.basic.service.impl.pc;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ycwl.basic.constant.BaseContextHandler;
|
||||
@ -9,11 +10,16 @@ import com.ycwl.basic.model.jwt.JwtInfo;
|
||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||
import com.ycwl.basic.model.task.resp.SearchFaceRespVo;
|
||||
import com.ycwl.basic.service.impl.task.TaskFaceServiceImpl;
|
||||
import com.ycwl.basic.service.pc.FaceService;
|
||||
import com.ycwl.basic.service.task.TaskFaceService;
|
||||
import com.ycwl.basic.utils.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -32,6 +38,11 @@ public class FaceServiceImpl implements FaceService {
|
||||
private FaceMapper faceMapper;
|
||||
@Autowired
|
||||
private OssUtil ossUtil;
|
||||
@Autowired
|
||||
private TaskFaceService faceService;
|
||||
|
||||
@Value("${face.score}")
|
||||
private float faceScore;
|
||||
|
||||
@Override
|
||||
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
||||
@ -89,20 +100,21 @@ public class FaceServiceImpl implements FaceService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse faceUPload(MultipartFile file) {
|
||||
//TODO 获取用户信息
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
public ApiResponse faceUPload(MultipartFile file,Long scenicId) {
|
||||
//获取用户id
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
JwtInfo worker = JwtTokenUtil.getWorker();
|
||||
log.info("当前登录用户信息:{}",worker);
|
||||
|
||||
//1、上传人脸照片
|
||||
String facaeUrl = uploadFileALiOss(file, userId);
|
||||
//TODO 2、人脸照片有效性校验
|
||||
Boolean isValid=true;
|
||||
// 2、查看人脸是否已上传
|
||||
FaceRespVO faceRespVO=faceMapper.getByMemberId(userId);
|
||||
|
||||
|
||||
|
||||
if(isValid){
|
||||
//校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端
|
||||
|
||||
FaceEntity faceEntity = new FaceEntity();
|
||||
FaceEntity faceEntity = new FaceEntity();
|
||||
if (faceRespVO==null) {
|
||||
//新增人脸
|
||||
faceEntity.setId(SnowFlakeUtil.getLongId());
|
||||
faceEntity.setMemberId(Long.parseLong(userId));
|
||||
faceEntity.setFaceUrl(facaeUrl);
|
||||
@ -112,14 +124,26 @@ public class FaceServiceImpl implements FaceService {
|
||||
// faceEntity.setMatchResult();
|
||||
//TODO 人脸数据存库
|
||||
faceMapper.add(faceEntity);
|
||||
|
||||
return ApiResponse.success(facaeUrl);
|
||||
}else {
|
||||
//2、更新人脸
|
||||
faceRespVO.setFaceUrl(facaeUrl);
|
||||
BeanUtil.copyProperties(faceRespVO,faceEntity);
|
||||
faceMapper.update(faceEntity);
|
||||
}
|
||||
SearchFaceRespVo faceRespVo = faceService.searchFace(scenicId, faceRespVO.getId());
|
||||
float score = faceRespVo.getScore();
|
||||
if (score<faceScore) {
|
||||
//校验失败,删除,提示重新上传
|
||||
ossUtil.deleteFile(facaeUrl);
|
||||
|
||||
throw new BaseException("人脸照片校验失败,请重新上传");
|
||||
}else {
|
||||
//校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端
|
||||
return ApiResponse.success(facaeUrl);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -207,9 +207,9 @@ public class OrderServiceImpl implements OrderService {
|
||||
//如果订单未支付就把商品状态更改成未购买
|
||||
if (state != OrderStateEnum.PAID.getState()) {
|
||||
OrderRespVO orderRespVO = orderMapper.getById(orderSn);
|
||||
Integer goodsType = orderRespVO.getGoodsType();
|
||||
List<OrderItemVO> orderItemList = orderRespVO.getOrderItemList();
|
||||
orderItemList.forEach(orderItemVO -> {
|
||||
Integer goodsType = orderItemVO.getGoodsType();
|
||||
Long goodsId = orderItemVO.getGoodsId();
|
||||
if (Objects.equals(goodsType, GoodsTypeEnum.VIDEO.code)) {
|
||||
VideoEntity videoEntity = new VideoEntity();
|
||||
@ -225,9 +225,9 @@ public class OrderServiceImpl implements OrderService {
|
||||
});
|
||||
} else if (state == OrderStateEnum.REFUNDED.getState()) {//订单退款成功就把商品状态更改成未购买
|
||||
OrderRespVO orderRespVO = orderMapper.getById(orderSn);
|
||||
Integer goodsType = orderRespVO.getGoodsType();
|
||||
List<OrderItemVO> orderItemList = orderRespVO.getOrderItemList();
|
||||
orderItemList.forEach(orderItemVO -> {
|
||||
Integer goodsType = orderItemVO.getGoodsType();
|
||||
Long goodsId = orderItemVO.getGoodsId();
|
||||
if (Objects.equals(goodsType, GoodsTypeEnum.VIDEO.code)) {
|
||||
VideoEntity videoEntity = new VideoEntity();
|
||||
|
@ -22,5 +22,5 @@ public interface FaceService {
|
||||
ApiResponse<Integer> deleteByIds(List<Long> ids);
|
||||
ApiResponse<Integer> update(FaceEntity face);
|
||||
|
||||
ApiResponse faceUPload(MultipartFile file);
|
||||
ApiResponse faceUPload(MultipartFile file,Long scrnicId);
|
||||
}
|
||||
|
@ -71,11 +71,7 @@ public class JwtTokenUtil {
|
||||
public static JwtInfo getWorker() {
|
||||
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||
HttpServletRequest request = servletRequestAttributes.getRequest();
|
||||
String token = getToken(request);
|
||||
return parsingToken(token);
|
||||
}
|
||||
|
||||
public static String getToken(HttpServletRequest request) {
|
||||
String token = request.getHeader("token");
|
||||
if (StringUtils.isEmpty(token)) {
|
||||
if (request.getCookies() != null) {
|
||||
@ -84,8 +80,13 @@ public class JwtTokenUtil {
|
||||
token = cookie.getValue();
|
||||
}
|
||||
}
|
||||
if(StringUtils.isEmpty(token)){
|
||||
throw new CheckTokenException("用户未登录或登录状态已过期");
|
||||
}
|
||||
}else {
|
||||
throw new CheckTokenException("用户未登录或登录状态已过期");
|
||||
}
|
||||
}
|
||||
return token;
|
||||
return parsingToken(token);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user