预约订单完善;活动增加封面

This commit is contained in:
cjw 2024-08-23 10:20:12 +08:00
parent f19ace48f2
commit 044b24d0ca
12 changed files with 129 additions and 51 deletions

View File

@ -68,9 +68,13 @@ public class InjectionMetaObjectHandler implements MetaObjectHandler {
baseEntity.setUpdateTime(current);
// 获取当前登录用户的ID并填充更新人信息
Long userId = LoginHelper.getUserId();
if (ObjectUtil.isNotNull(userId)) {
baseEntity.setUpdateBy(userId);
if (ObjectUtil.isNull(baseEntity.getUpdateBy())) {
LoginUser loginUser = getLoginUser();
if (ObjectUtil.isNotNull(loginUser)) {
Long userId = loginUser.getUserId();
//更新人
baseEntity.setUpdateBy(userId);
}
}
}
} catch (Exception e) {

View File

@ -1,26 +1,27 @@
package org.dromara.scale.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.scale.domain.vo.ActivityVo;
import org.dromara.scale.domain.bo.ActivityBo;
import org.dromara.scale.service.IActivityService;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.scale.domain.bo.ActivityBo;
import org.dromara.scale.domain.vo.ActivityVo;
import org.dromara.scale.service.IActivityService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 活动
@ -63,8 +64,7 @@ public class ActivityController extends BaseController {
*/
@SaCheckPermission("scale:activity:query")
@GetMapping("/{id}")
public R<ActivityVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
public R<ActivityVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return R.ok(activityService.queryById(id));
}
@ -98,8 +98,7 @@ public class ActivityController extends BaseController {
@SaCheckPermission("scale:activity:remove")
@Log(title = "活动", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
return toAjax(activityService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@ -1,10 +1,12 @@
package org.dromara.scale.controller.wx;
import cn.dev33.satoken.annotation.SaIgnore;
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import lombok.RequiredArgsConstructor;
import org.dromara.scale.service.IReservationOrderService;
import org.dromara.scale.service.ISysScaleOrderService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
@ -19,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController;
* @version V1.0.0
* @date 2024/7/29 14:08
*/
@SaIgnore
@Validated
@RequiredArgsConstructor
@RestController
@ -27,19 +30,23 @@ public class WxPayController {
private final WxPayService payService;
private final ISysScaleOrderService sysScaleOrderService;
private final ISysScaleOrderService scaleOrderService;
private final IReservationOrderService reservationOrderService;
@PostMapping("/notify/order/scale")
public String parseScaleNotifyResult(@RequestBody String xmlData) throws WxPayException {
final WxPayOrderNotifyResult notifyResult = this.payService.parseOrderNotifyResult(xmlData);
// TODO 根据自己业务场景需要构造返回对象
String outTradeNo = notifyResult.getOutTradeNo();
scaleOrderService.processOrder(outTradeNo);
return WxPayNotifyResponse.success("成功");
}
@PostMapping("/notify/order/reservation")
public String parseReservationNotifyResult(@RequestBody String xmlData) throws WxPayException {
final WxPayOrderNotifyResult notifyResult = this.payService.parseOrderNotifyResult(xmlData);
// TODO 根据自己业务场景需要构造返回对象
String outTradeNo = notifyResult.getOutTradeNo();
reservationOrderService.processOrder(outTradeNo);
return WxPayNotifyResponse.success("成功");
}
}

View File

@ -1,13 +1,13 @@
package org.dromara.scale.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial;
import java.util.Date;
/**
* 活动对象 m_activity
@ -24,7 +24,7 @@ public class Activity extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*
*/
@TableId(value = "id")
private Long id;
@ -39,6 +39,8 @@ public class Activity extends BaseEntity {
*/
private String activityDetails;
private Long cover;
/**
* 浏览量
*/

View File

@ -1,15 +1,16 @@
package org.dromara.scale.domain.bo;
import org.dromara.scale.domain.Activity;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.scale.domain.Activity;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 活动业务对象 m_activity
@ -23,7 +24,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
public class ActivityBo extends BaseEntity {
/**
*
*
*/
@NotNull(message = "不能为空", groups = { EditGroup.class })
private Long id;
@ -40,6 +41,8 @@ public class ActivityBo extends BaseEntity {
@NotBlank(message = "活动详情不能为空", groups = { AddGroup.class, EditGroup.class })
private String activityDetails;
private Long cover;
/**
* 浏览量
*/

View File

@ -1,14 +1,13 @@
package org.dromara.scale.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.scale.domain.Activity;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMapping;
import lombok.Data;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.scale.domain.Activity;
import java.io.Serial;
import java.io.Serializable;
@ -31,7 +30,7 @@ public class ActivityVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*
*/
@ExcelProperty(value = "")
private Long id;
@ -48,6 +47,11 @@ public class ActivityVo implements Serializable {
@ExcelProperty(value = "活动详情")
private String activityDetails;
private Long cover;
@Translation(type = TransConstant.OSS_ID_TO_URL)
@AutoMapping(target = "cover")
private Long coverUrl;
/**
* 浏览量
*/

View File

@ -48,4 +48,6 @@ public interface IReservationOrderService {
*/
<T> T insertByBo(ReservationOrderBo bo) throws Exception;
Boolean processOrder(String orderId);
}

View File

@ -49,5 +49,8 @@ public interface ISysScaleOrderService {
<T> T insertByBo(SysScaleOrderBo bo) throws Exception;
Boolean processOrder(String orderId);
}

View File

@ -2,6 +2,8 @@ package org.dromara.scale.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -48,8 +50,12 @@ public class MyServiceImpl implements IMyService {
@Override
public TableDataInfo<SysEvaluationRecordVo> queryEvaluationRecordPageList(PageQuery pageQuery) {
//todo
return null;
Long userId = LoginHelper.getUserId();
LambdaQueryWrapper<SysEvaluationRecord> lqw = Wrappers.lambdaQuery();
lqw.eq(SysEvaluationRecord::getUserId, userId);
lqw.orderByDesc(SysEvaluationRecord::getCreateTime);
Page<SysEvaluationRecordVo> result = evaluationRecordMapper.selectRecordVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@Override

View File

@ -99,7 +99,7 @@ public class ReservationOrderServiceImpl implements IReservationOrderService {
* @return 是否新增成功
*/
@Override
public <T> T insertByBo(ReservationOrderBo bo) throws Exception{
public <T> T insertByBo(ReservationOrderBo bo) throws Exception {
ReservationOrder add = MapstructUtils.convert(bo, ReservationOrder.class);
ReservationTime reservationTime = timeMapper.selectById(add.getTimeId());
Counselor counselor = counselorMapper.selectById(reservationTime.getCounselorId());
@ -114,7 +114,7 @@ public class ReservationOrderServiceImpl implements IReservationOrderService {
bo.setId(add.getId());
}
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setBody("墨者科技-量表支付");
orderRequest.setBody("墨者科技-预约支付");
orderRequest.setOutTradeNo(add.getId().toString());
int totalFee = price.multiply(new BigDecimal(100)).intValue();
orderRequest.setTotalFee(totalFee);
@ -123,8 +123,6 @@ public class ReservationOrderServiceImpl implements IReservationOrderService {
return payService.createOrder(orderRequest);
}
/**
* 保存前的数据校验
*/
@ -132,5 +130,24 @@ public class ReservationOrderServiceImpl implements IReservationOrderService {
//TODO 做一些数据校验,如唯一约束
}
@Override
public Boolean processOrder(String orderId) {
long id = Long.parseLong(orderId);
ReservationOrder reservationOrder = baseMapper.selectById(id);
Long timeId = reservationOrder.getTimeId();
Long userId = reservationOrder.getCreateBy();
//更新预约表
ReservationTime time = new ReservationTime();
time.setId(timeId);
time.setStatus(1);
time.setUpdateBy(userId);
boolean timeFlag = timeMapper.updateById(time) > 0;
//更新订单状态
ReservationOrder order = new ReservationOrder();
order.setId(id);
order.setOrderStatus(1);
order.setUpdateBy(userId);
boolean orderFlag = baseMapper.updateById(order) > 0;
return timeFlag && orderFlag;
}
}

View File

@ -101,9 +101,11 @@ public class ReservationServiceImpl implements IReservationService {
@Override
public Boolean insertIntervene(SysInterveneRecordBo bo) {
//todo 订单状态校验
ReservationOrder orderUpdate = new ReservationOrder();
orderUpdate.setDiagnose(bo.getDiagnose());
orderUpdate.setAnnex(bo.getDiagnoseAnnex());
orderUpdate.setOrderStatus(2);
orderUpdate.setId(bo.getBatchNo());
boolean orderFlag = reservationOrderMapper.updateById(orderUpdate) > 0;
ReservationTime timeUpdate = new ReservationTime();

View File

@ -10,10 +10,12 @@ import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.constant.StatusEnum;
import org.dromara.scale.domain.SysEvaluationRecord;
import org.dromara.scale.domain.SysScale;
import org.dromara.scale.domain.SysScaleOrder;
import org.dromara.scale.domain.bo.SysScaleOrderBo;
import org.dromara.scale.domain.vo.SysScaleOrderVo;
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.mapper.SysScaleOrderMapper;
import org.dromara.scale.service.ISysScaleOrderService;
@ -39,6 +41,9 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService {
private final SysScaleMapper sysScaleMapper;
private final SysEvaluationRecordMapper recordMapper;
/**
* 查询量表订单
*
@ -109,7 +114,7 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService {
bo.setId(add.getId());
}
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setBody("墨者科技-预约支付");
orderRequest.setBody("墨者科技-量表支付");
orderRequest.setOutTradeNo(add.getId().toString());
int totalFee = price.multiply(new BigDecimal(100)).intValue();
orderRequest.setTotalFee(totalFee);
@ -126,4 +131,28 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService {
//TODO 做一些数据校验,如唯一约束
}
@Override
public Boolean processOrder(String orderId) {
long id = Long.parseLong(orderId);
SysScaleOrder scaleOrder = baseMapper.selectById(id);
Long scaleId = scaleOrder.getScaleId();
Long userId = scaleOrder.getCreateBy();
//初始量测记录
SysEvaluationRecord record = new SysEvaluationRecord();
record.setUserId(userId);
//个人测评订单号就是批次号
record.setBatchNo(id);
record.setScaleId(scaleId);
record.setStatus(-1);
record.setCreateBy(userId);
record.setUpdateBy(userId);
boolean recordFlag = recordMapper.insert(record) > 0;
//更新订单状态
SysScaleOrder order = new SysScaleOrder();
order.setId(id);
order.setOrderStatus(1);
order.setUpdateBy(userId);
boolean orderFlag = baseMapper.updateById(order) > 0;
return recordFlag && orderFlag;
}
}