添加景区账号的登陆功能

添加“上传人脸、现场支付、事后支付、退款、点击购买”操作的数据记录
This commit is contained in:
longbinbin
2024-12-13 11:25:02 +08:00
parent 715c351f5f
commit 6fca6df89f
29 changed files with 344 additions and 45 deletions

View File

@@ -130,7 +130,7 @@ public class AdminUserServiceImpl implements AdminUserService {
}
}
LoginRespVO loginRespVO = new LoginRespVO();
String token = jwtTokenUtil.generateToken(new JwtInfo(login.getStaffName(), login.getStaffId(), roleId, login.getAccount(), login.getAccount(), null));
String token = jwtTokenUtil.generateToken(new JwtInfo(login.getStaffName(), login.getStaffId(), roleId, login.getAccount(), login.getAccount(), null,null));
loginRespVO.setToken(token);
loginRespVO.setName(login.getStaffName());
loginRespVO.setTypeName(login.getTypeName());

View File

@@ -4,9 +4,12 @@ import cn.hutool.core.bean.BeanUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.enums.StatisticEnum;
import com.ycwl.basic.exception.BaseException;
import com.ycwl.basic.mapper.StatisticsMapper;
import com.ycwl.basic.mapper.pc.FaceMapper;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
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;
@@ -40,6 +43,8 @@ public class FaceServiceImpl implements FaceService {
private OssUtil ossUtil;
@Autowired
private TaskFaceService faceService;
@Autowired
private StatisticsMapper statisticsMapper;
@Value("${face.score}")
private float faceScore;
@@ -103,20 +108,20 @@ public class FaceServiceImpl implements FaceService {
// @Transactional(rollbackFor = Exception.class)
public ApiResponse faceUPload(MultipartFile file,Long scenicId) {
//获取用户id
String userId = BaseContextHandler.getUserId();
JwtInfo worker = JwtTokenUtil.getWorker();
Long userId = worker.getUserId();
log.info("当前登录用户信息:{}",worker);
//1、上传人脸照片
String facaeUrl = uploadFileALiOss(file, userId);
// 2、查看人脸是否已上传
FaceRespVO faceRespVO=faceMapper.getByMemberId(Long.parseLong(userId));
FaceRespVO faceRespVO=faceMapper.getByMemberId(userId);
FaceEntity faceEntity = new FaceEntity();
if (faceRespVO==null) {
//新增人脸
faceEntity.setId(SnowFlakeUtil.getLongId());
faceEntity.setMemberId(Long.parseLong(userId));
faceEntity.setMemberId(userId);
faceEntity.setFaceUrl(facaeUrl);
// faceEntity.setScore();
// faceEntity.setMatchSampleIds();
@@ -138,6 +143,12 @@ public class FaceServiceImpl implements FaceService {
throw new BaseException("人脸照片校验失败,请重新上传");
}else {
StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq();
statisticsRecordAddReq.setMemberId(userId);
statisticsRecordAddReq.setType(StatisticEnum.UPLOAD_FACE.code);
statisticsRecordAddReq.setScenicId(scenicId);
statisticsRecordAddReq.setMorphId(faceEntity.getId());
statisticsMapper.addStatisticsRecord(statisticsRecordAddReq);
//校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端
return ApiResponse.success(facaeUrl);
}
@@ -158,7 +169,7 @@ public class FaceServiceImpl implements FaceService {
* @param userId 用户id
* @return 地址
*/
private String uploadFileALiOss(MultipartFile file,String userId) {
private String uploadFileALiOss(MultipartFile file,Long userId) {
if (file.isEmpty()) {
throw new RuntimeException("文件不存在!");
}

View File

@@ -4,17 +4,16 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.constant.NumberConstant;
import com.ycwl.basic.enums.BizCodeEnum;
import com.ycwl.basic.enums.GoodsTypeEnum;
import com.ycwl.basic.enums.OrderStateEnum;
import com.ycwl.basic.enums.SourceTypeNameEnum;
import com.ycwl.basic.enums.*;
import com.ycwl.basic.exception.AppException;
import com.ycwl.basic.mapper.StatisticsMapper;
import com.ycwl.basic.mapper.pc.*;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.goods.GoodsDetailVO;
import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq;
import com.ycwl.basic.model.mobile.order.OrderAppPageReq;
import com.ycwl.basic.model.mobile.order.RefundOrderReq;
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
@@ -70,6 +69,8 @@ public class OrderServiceImpl implements OrderService {
private GoodsService goodsService;
@Autowired
private OrderOperationMapper orderOperationMapper;
@Autowired
private StatisticsMapper statisticsMapper;
@Override
public ApiResponse<PageInfo<OrderRespVO>> pageQuery(OrderReqQuery query) {
@@ -144,10 +145,21 @@ public class OrderServiceImpl implements OrderService {
log.error("订单明细添加失败");
return ApiResponse.fail("订单添加失败");
}
//点击支付按钮统计
OrderRespVO orderRespVO = orderMapper.getById(orderId);
StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq();
statisticsRecordAddReq.setMemberId(orderRespVO.getMemberId());
statisticsRecordAddReq.setType(StatisticEnum.CLICK_ON_PAYMENT.code);
statisticsRecordAddReq.setScenicId(orderRespVO.getScenicId());
statisticsRecordAddReq.setMorphId(orderId);
statisticsMapper.addStatisticsRecord(statisticsRecordAddReq);
//TODO 封装微信支付请求
// WxPayRespVO wxPayRespVO = initiatePayment(order, goodsDetailVO);
// return ApiResponse.success(wxPayRespVO);
return ApiResponse.success(null);
}
}
@@ -196,7 +208,7 @@ public class OrderServiceImpl implements OrderService {
public void updateOrderState(Long orderSn, OrderStateEnum orderStateEnum, String reason) {
OrderUpdateReq orderUpdateReq = new OrderUpdateReq();
orderUpdateReq.setId(orderSn);
if (orderStateEnum.getType() == NumberConstant.ONE) {
if (orderStateEnum.getType() == NumberConstant.ONE) {//退款状态 0未提出,1已通过,2待审核
orderUpdateReq.setRefundStatus(orderStateEnum.getState());
orderUpdateReq.setRefundAt(new Date());
if (orderStateEnum.getState() == OrderStateEnum.PASSED.getState()) {
@@ -204,15 +216,14 @@ public class OrderServiceImpl implements OrderService {
} else if (Objects.nonNull(reason)) {
orderUpdateReq.setRefundReason(reason);
}
} else if (orderStateEnum.getType() == NumberConstant.TWO) {
} else if (orderStateEnum.getType() == NumberConstant.TWO) {//订单状态 0未支付,1已支付,2已退款,9已取消
int state = orderStateEnum.getState();
orderUpdateReq.setPayAt(new Date());
orderUpdateReq.setStatus(orderStateEnum.getState());
if (state == OrderStateEnum.CANCELED.getState()) {
if (state == OrderStateEnum.CANCELED.getState()) {//取消支付
orderUpdateReq.setCancelAt(new Date());
}
//如果订单未支付就把商品状态更改成未购买
if (state != OrderStateEnum.PAID.getState()) {
//如果订单未支付就把商品状态更改成未购买
OrderRespVO orderRespVO = orderMapper.getById(orderSn);
Integer goodsType = orderRespVO.getGoodsType();
List<OrderItemVO> orderItemList = orderRespVO.getOrderItemList();
@@ -230,7 +241,13 @@ public class OrderServiceImpl implements OrderService {
sourceMapper.update(sourceEntity);
}
});
} else if (state == OrderStateEnum.REFUNDED.getState()) {//订单退款成功就把商品状态更改成未购买
} else if (state== OrderStateEnum.PAID.getState()) {//支付成功
orderUpdateReq.setPayAt(new Date());
}else if (state == OrderStateEnum.REFUNDED.getState()) {//退款成功
orderUpdateReq.setRefundAt(new Date());
//订单退款成功就把商品状态更改成未购买
OrderRespVO orderRespVO = orderMapper.getById(orderSn);
Integer goodsType = orderRespVO.getGoodsType();
List<OrderItemVO> orderItemList = orderRespVO.getOrderItemList();