新增免费量表量测记录

This commit is contained in:
cjw 2024-10-11 15:39:46 +08:00
parent 128018c9f2
commit 4b747e0e86
4 changed files with 54 additions and 20 deletions

View File

@ -61,14 +61,24 @@ public class WxEvaluationController extends BaseController {
return evaluationService.queryEvaluationRecord(status, pageQuery); return evaluationService.queryEvaluationRecord(status, pageQuery);
} }
/**
* 新增量测记录
*/
@Log(title = "新增量测记录", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/record/create/{scaleId}")
public R<Void> newRecord(@NotNull(message = "主键不能为空") @PathVariable Long scaleId) {
return toAjax(evaluationService.newRecord(scaleId));
}
/** /**
* 量测开始记录 * 量测开始记录
*/ */
@Log(title = "量测开始记录", businessType = BusinessType.INSERT) @Log(title = "量测开始记录", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping("/record/{id}") @PostMapping("/record/{id}")
public R<Void> addRecord(@NotNull(message = "主键不能为空") @PathVariable Long id) { public R<Void> checkRecord(@NotNull(message = "主键不能为空") @PathVariable Long id) {
return toAjax(evaluationService.newRecord(id)); return toAjax(evaluationService.checkRecord(id));
} }
/** /**

View File

@ -20,5 +20,8 @@ public interface IEvaluationService {
Boolean newRecord(Long recordId); Boolean newRecord(Long recordId);
Boolean checkRecord(Long recordId);
Map<String,Object> submitAnswer(SubmitAnswerBo bo); Map<String,Object> submitAnswer(SubmitAnswerBo bo);
} }

View File

@ -12,6 +12,7 @@ import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.scale.constant.*; import org.dromara.scale.constant.*;
import org.dromara.scale.domain.*; import org.dromara.scale.domain.*;
import org.dromara.scale.domain.bo.SubmitAnswerBo; import org.dromara.scale.domain.bo.SubmitAnswerBo;
@ -101,12 +102,31 @@ public class EvaluationServiceImpl implements IEvaluationService {
} }
@Override @Override
public Boolean newRecord(Long recordId) { public Boolean newRecord(Long scaleId) {
LoginUser loginUser = getLoginUser(); Long userId = LoginHelper.getUserId();
String userType = loginUser.getUserType(); SysScale sysScale = scaleMapper.selectById(scaleId);
// if (!UserType.STUDENT.getName().equals(userType)) { if (StatusEnum.DISABLED.getValue().equals(sysScale.getFreeFlag())) {
// throw new ServiceException("只有学生账户才能测评"); throw new ServiceException("此量表为收费量表");
// } }
Long l = recordMapper.selectCount(new LambdaQueryWrapper<SysEvaluationRecord>()
.eq(SysEvaluationRecord::getScaleId, scaleId)
.eq(SysEvaluationRecord::getUserId, userId)
.eq(SysEvaluationRecord::getStatus, 0));
if (l > 0) {
throw new ServiceException("此免费量表有未测评记录,请测评后再申请新的测评");
}
//初始量测记录
SysEvaluationRecord record = new SysEvaluationRecord();
record.setUserId(userId);
record.setScaleId(scaleId);
record.setStatus(0);
record.setCreateBy(userId);
record.setUpdateBy(userId);
return recordMapper.insert(record) > 0;
}
@Override
public Boolean checkRecord(Long recordId) {
SysEvaluationRecord evaluationRecord = recordMapper.selectById(recordId); SysEvaluationRecord evaluationRecord = recordMapper.selectById(recordId);
if (evaluationRecord == null) { if (evaluationRecord == null) {
throw new ServiceException("未查询到需要测试的记录,请联系管理员"); throw new ServiceException("未查询到需要测试的记录,请联系管理员");
@ -119,7 +139,7 @@ public class EvaluationServiceImpl implements IEvaluationService {
} }
SysEvaluationRecord update = new SysEvaluationRecord(); SysEvaluationRecord update = new SysEvaluationRecord();
update.setRecordId(recordId); update.setRecordId(recordId);
update.setStatus(StatusEnum.DISABLED.getValue()); //update.setStatus(StatusEnum.DISABLED.getValue());
update.setCreateTime(new Date()); update.setCreateTime(new Date());
return recordMapper.updateById(update) > 0; return recordMapper.updateById(update) > 0;
} }

View File

@ -104,24 +104,24 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService {
Long userId = LoginHelper.getUserId(); Long userId = LoginHelper.getUserId();
SysScaleOrder add = MapstructUtils.convert(bo, SysScaleOrder.class); SysScaleOrder add = MapstructUtils.convert(bo, SysScaleOrder.class);
Long scaleId = add.getScaleId(); Long scaleId = add.getScaleId();
SysScale sysScale = sysScaleMapper.selectById(scaleId);
BigDecimal price = sysScale.getPrice();
add.setActualPrice(price);
add.setOrderPrice(price);
add.setUseStatus(StatusEnum.DISABLED.getValue());
add.setOrderStatus(StatusEnum.DISABLED.getValue());
validEntityBeforeSave(add);
baseMapper.insert(add);
//初始量测记录 //初始量测记录
SysEvaluationRecord record = new SysEvaluationRecord(); SysEvaluationRecord record = new SysEvaluationRecord();
record.setUserId(userId); record.setUserId(userId);
//个人测评订单号就是批次号
record.setBatchNo(add.getId());
record.setScaleId(scaleId); record.setScaleId(scaleId);
record.setStatus(-1); record.setStatus(-1);
record.setCreateBy(userId); record.setCreateBy(userId);
record.setUpdateBy(userId); record.setUpdateBy(userId);
recordMapper.insert(record); recordMapper.insert(record);
//初始订单
SysScale sysScale = sysScaleMapper.selectById(scaleId);
BigDecimal price = sysScale.getPrice();
add.setActualPrice(price);
add.setOrderPrice(price);
add.setRecordId(record.getRecordId());
add.setUseStatus(StatusEnum.DISABLED.getValue());
add.setOrderStatus(StatusEnum.DISABLED.getValue());
validEntityBeforeSave(add);
baseMapper.insert(add);
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest(); WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setBody("墨者科技-量表支付"); orderRequest.setBody("墨者科技-量表支付");
orderRequest.setOutTradeNo(add.getId().toString()); orderRequest.setOutTradeNo(add.getId().toString());
@ -151,8 +151,9 @@ public class SysScaleOrderServiceImpl implements ISysScaleOrderService {
//初始量测记录 //初始量测记录
SysEvaluationRecord record = new SysEvaluationRecord(); SysEvaluationRecord record = new SysEvaluationRecord();
record.setRecordId(recordId); record.setRecordId(recordId);
//个人测评订单号就是批次号
record.setStatus(0); record.setStatus(0);
//个人测评订单号就是批次号
record.setBatchNo(id);
record.setUpdateBy(userId); record.setUpdateBy(userId);
boolean recordFlag = recordMapper.updateById(record) > 0; boolean recordFlag = recordMapper.updateById(record) > 0;
//更新订单状态 //更新订单状态