Browse Source

1、支付模块调整

2、兑换码模块调整
master
Aug 1 month ago
parent
commit
a894991de2
17 changed files with 213 additions and 90 deletions
  1. +4
    -2
      han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java
  2. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/controller/AssessmentCodeController.java
  3. +5
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/entity/AssessmentCode.java
  4. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/mapper/AssessmentCodeMapper.java
  5. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/service/IAssessmentCodeService.java
  6. +1
    -1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/service/impl/AssessmentCodeServiceImpl.java
  7. +6
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/vue/AssessmentCodeList.vue
  8. +0
    -15
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/vue/modules/AssessmentCodeForm.vue
  9. +5
    -21
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/vue3/AssessmentCode.data.ts
  10. +12
    -4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/assessmentController/ConfigController.java
  11. +7
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/assessmentController/ExamController.java
  12. +7
    -2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java
  13. +3
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ExamService.java
  14. +81
    -31
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ConfigServiceImpl.java
  15. +70
    -1
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ExamServiceImpl.java
  16. +4
    -4
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ReportServiceImpl.java
  17. +5
    -5
      jeecg-boot-module-system/src/main/resources/pay_weixin.properties

+ 4
- 2
han-hai-module-pay/src/main/java/org/jeecg/modules/pay/MpWxPayService.java View File

@ -99,13 +99,15 @@ public class MpWxPayService {
request.setTotalFee(price); //总金额|分计 request.setTotalFee(price); //总金额|分计
request.setSpbillCreateIp(clientIp); //终端IP request.setSpbillCreateIp(clientIp); //终端IP
// request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径 // request.setNotifyUrl(wxPay.notifyUrl);//设置回调路径
request.setNotifyUrl("https://tai-testapi.sanhemovie.com/massage-api/post/notify");//设置回调路径
request.setNotifyUrl("https://assessment.augcl.com/assessment-admin/assessment/exam/payOrderNotify");//设置回调路径
//request.setNotifyUrl("http://augcl.natapp1.cc/assessment-admin/assessment/exam/payOrderNotify");//设置回调路径
request.setProductId(productId); //商品id request.setProductId(productId); //商品id
request.setOpenid(openId); //JSAPI OPENID request.setOpenid(openId); //JSAPI OPENID
if (dev){ if (dev){
request.setTotalFee(price); request.setTotalFee(price);
// request.setNotifyUrl(wxPay.notifyUrlDev); // request.setNotifyUrl(wxPay.notifyUrlDev);
request.setNotifyUrl("https://tai-testapi.sanhemovie.com/massage-api/post/notify");//设置回调路径
request.setNotifyUrl("https://assessment.augcl.com/assessment-admin/assessment/exam/payOrderNotify");//设置回调路径
//request.setNotifyUrl("http://augcl.natapp1.cc/assessment-admin/assessment/exam/payOrderNotify");//设置回调路径
} }
try { try {
Object order = wxPayService.createOrder(request); Object order = wxPayService.createOrder(request);


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/controller/AssessmentCodeController.java View File

@ -39,7 +39,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
/** /**
* @Description: 兑换码信息表 * @Description: 兑换码信息表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-19
* @Date: 2025-09-29
* @Version: V1.0 * @Version: V1.0
*/ */
@Api(tags="兑换码信息表") @Api(tags="兑换码信息表")


+ 5
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/entity/AssessmentCode.java View File

@ -20,7 +20,7 @@ import lombok.experimental.Accessors;
/** /**
* @Description: 兑换码信息表 * @Description: 兑换码信息表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-19
* @Date: 2025-09-29
* @Version: V1.0 * @Version: V1.0
*/ */
@Data @Data
@ -60,6 +60,10 @@ public class AssessmentCode implements Serializable {
@Dict(dicCode = "is_true") @Dict(dicCode = "is_true")
@ApiModelProperty(value = "是否已使用") @ApiModelProperty(value = "是否已使用")
private java.lang.String isUse; private java.lang.String isUse;
/**使用时间*/
@Excel(name = "使用时间", width = 15)
@ApiModelProperty(value = "使用时间")
private java.util.Date useTime;
/**使用批次号*/ /**使用批次号*/
@Excel(name = "使用批次号", width = 15) @Excel(name = "使用批次号", width = 15)
@ApiModelProperty(value = "使用批次号") @ApiModelProperty(value = "使用批次号")


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/mapper/AssessmentCodeMapper.java View File

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* @Description: 兑换码信息表 * @Description: 兑换码信息表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-19
* @Date: 2025-09-29
* @Version: V1.0 * @Version: V1.0
*/ */
public interface AssessmentCodeMapper extends BaseMapper<AssessmentCode> { public interface AssessmentCodeMapper extends BaseMapper<AssessmentCode> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/service/IAssessmentCodeService.java View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* @Description: 兑换码信息表 * @Description: 兑换码信息表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-19
* @Date: 2025-09-29
* @Version: V1.0 * @Version: V1.0
*/ */
public interface IAssessmentCodeService extends IService<AssessmentCode> { public interface IAssessmentCodeService extends IService<AssessmentCode> {


+ 1
- 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/service/impl/AssessmentCodeServiceImpl.java View File

@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/** /**
* @Description: 兑换码信息表 * @Description: 兑换码信息表
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2025-09-19
* @Date: 2025-09-29
* @Version: V1.0 * @Version: V1.0
*/ */
@Service @Service


+ 6
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/vue/AssessmentCodeList.vue View File

@ -137,6 +137,11 @@
align:"center", align:"center",
dataIndex: 'isUse_dictText' dataIndex: 'isUse_dictText'
}, },
{
title:'使用时间',
align:"center",
dataIndex: 'useTime'
},
{ {
title:'使用批次号', title:'使用批次号',
align:"center", align:"center",
@ -184,6 +189,7 @@
fieldList.push({type:'string',value:'code',text:'兑换码',dictCode:''}) fieldList.push({type:'string',value:'code',text:'兑换码',dictCode:''})
fieldList.push({type:'BigDecimal',value:'discountAmount',text:'抵扣金额',dictCode:''}) fieldList.push({type:'BigDecimal',value:'discountAmount',text:'抵扣金额',dictCode:''})
fieldList.push({type:'string',value:'isUse',text:'是否已使用',dictCode:'is_true'}) fieldList.push({type:'string',value:'isUse',text:'是否已使用',dictCode:'is_true'})
fieldList.push({type:'datetime',value:'useTime',text:'使用时间'})
fieldList.push({type:'string',value:'batchNo',text:'使用批次号',dictCode:''}) fieldList.push({type:'string',value:'batchNo',text:'使用批次号',dictCode:''})
fieldList.push({type:'sel_search',value:'userId',text:'使用用户',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'}) fieldList.push({type:'sel_search',value:'userId',text:'使用用户',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'})
this.superFieldList = fieldList this.superFieldList = fieldList


+ 0
- 15
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/vue/modules/AssessmentCodeForm.vue View File

@ -13,21 +13,6 @@
<a-input-number v-model="model.discountAmount" placeholder="请输入抵扣金额" style="width: 100%" /> <a-input-number v-model="model.discountAmount" placeholder="请输入抵扣金额" style="width: 100%" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24">
<a-form-model-item label="是否已使用" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isUse">
<j-dict-select-tag type="list" v-model="model.isUse" dictCode="is_true" placeholder="请选择是否已使用" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="使用批次号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchNo">
<a-input v-model="model.batchNo" placeholder="请输入使用批次号" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="使用用户" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-search-select-tag v-model="model.userId" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
</a-row> </a-row>
</a-form-model> </a-form-model>
</j-form-container> </j-form-container>


+ 5
- 21
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/assessmentCode/vue3/AssessmentCode.data.ts View File

@ -19,6 +19,11 @@ export const columns: BasicColumn[] = [
align:"center", align:"center",
dataIndex: 'isUse_dictText' dataIndex: 'isUse_dictText'
}, },
{
title: '使用时间',
align:"center",
dataIndex: 'useTime'
},
{ {
title: '使用批次号', title: '使用批次号',
align:"center", align:"center",
@ -45,25 +50,4 @@ export const formSchema: FormSchema[] = [
field: 'discountAmount', field: 'discountAmount',
component: 'InputNumber', component: 'InputNumber',
}, },
{
label: '是否已使用',
field: 'isUse',
component: 'JDictSelectTag',
componentProps:{
dictCode:"is_true"
},
},
{
label: '使用批次号',
field: 'batchNo',
component: 'Input',
},
{
label: '使用用户',
field: 'userId',
component: 'JSearchSelect',
componentProps:{
dict:"han_hai_member,nick_name,id"
},
},
]; ];

+ 12
- 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/assessmentController/ConfigController.java View File

@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
@Api(tags="系统配置-相关接口") @Api(tags="系统配置-相关接口")
@RestController @RestController
@ -25,6 +26,12 @@ public class ConfigController {
private ConfigService configService; private ConfigService configService;
/******************************************************************************************************************/ /******************************************************************************************************************/
@ApiOperation(value="首页-查询banner图列表", notes="type:0-首页")
@RequestMapping(value = "/queryBannerList", method = {RequestMethod.GET})
public Result<?> queryBannerList(AssessmentBanner assessmentBanner, PageBean pageBean){
return configService.queryBannerList(assessmentBanner, pageBean);
}
//查看系统配置列表 //查看系统配置列表
@ApiOperation(value="系统配置-查询系统配置列表", notes="系统配置-查询系统配置列表") @ApiOperation(value="系统配置-查询系统配置列表", notes="系统配置-查询系统配置列表")
@RequestMapping(value = "/queryConfigList", method = {RequestMethod.GET}) @RequestMapping(value = "/queryConfigList", method = {RequestMethod.GET})
@ -39,10 +46,11 @@ public class ConfigController {
return configService.queryConfigByParamCode(paramCode); return configService.queryConfigByParamCode(paramCode);
} }
@ApiOperation(value="首页-查询banner图列表", notes="type:0-首页")
@RequestMapping(value = "/queryBannerList", method = {RequestMethod.GET})
public Result<?> queryBannerList(AssessmentBanner assessmentBanner, PageBean pageBean){
return configService.queryBannerList(assessmentBanner, pageBean);
@ApiOperation(value="系统配置-生成兑换码", notes="系统配置-生成兑换码")
@RequestMapping(value = "/generateCode", method = {RequestMethod.POST})
public Result<?> generateCode(int num, BigDecimal discountAmount){
return configService.generateCode(num, discountAmount);
} }
} }

+ 7
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/assessmentController/ExamController.java View File

@ -59,6 +59,13 @@ public class ExamController {
return examService.queryExamById(token, examId); return examService.queryExamById(token, examId);
} }
//支付-查询兑换码
@ApiOperation(value="支付-查询兑换码", notes="支付-查询兑换码")
@RequestMapping(value = "/queryCodeById", method = {RequestMethod.GET})
public Result<?> queryCodeById(String code){
return examService.queryCodeById(code);
}
//支付-创建订单 //支付-创建订单
@ApiOperation(value="支付-立即支付(创建订单)", notes="支付-立即支付(创建订单)") @ApiOperation(value="支付-立即支付(创建订单)", notes="支付-立即支付(创建订单)")
@RequestMapping(value = "/createOrder", method = {RequestMethod.POST}) @RequestMapping(value = "/createOrder", method = {RequestMethod.POST})


+ 7
- 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ConfigService.java View File

@ -7,15 +7,20 @@ import org.jeecg.modules.assessmentBanner.entity.AssessmentBanner;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import java.math.BigDecimal;
public interface ConfigService { public interface ConfigService {
//首页-查询banner图列表
public Result<?> queryBannerList(AssessmentBanner assessmentBanner, PageBean pageBean);
//查询系统配置列表 //查询系统配置列表
public Result<?> queryConfigList(PageBean pageBean); public Result<?> queryConfigList(PageBean pageBean);
//查询系统配置详情 //查询系统配置详情
public Result<?> queryConfigByParamCode(String paramCode); public Result<?> queryConfigByParamCode(String paramCode);
//首页-查询banner图列表
public Result<?> queryBannerList(AssessmentBanner assessmentBanner, PageBean pageBean);
//系统配置-生成兑换码
public Result<?> generateCode(int num, BigDecimal discountAmount);
} }

+ 3
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/ExamService.java View File

@ -25,6 +25,9 @@ public interface ExamService {
//测评-继续答题 //测评-继续答题
public Result<?> queryExamById(String token, String examId); public Result<?> queryExamById(String token, String examId);
//支付-查询兑换码
public Result<?> queryCodeById(String code);
//支付-创建订单 //支付-创建订单
public Result<?> createOrder(String token, AssessmentPayLog assessmentPayLog); public Result<?> createOrder(String token, AssessmentPayLog assessmentPayLog);


+ 81
- 31
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ConfigServiceImpl.java View File

@ -1,5 +1,6 @@
package org.jeecg.modules.api.service.impl; package org.jeecg.modules.api.service.impl;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -9,11 +10,16 @@ import org.jeecg.modules.api.bean.PageBean;
import org.jeecg.modules.api.service.ConfigService; import org.jeecg.modules.api.service.ConfigService;
import org.jeecg.modules.assessmentBanner.entity.AssessmentBanner; import org.jeecg.modules.assessmentBanner.entity.AssessmentBanner;
import org.jeecg.modules.assessmentBanner.service.IAssessmentBannerService; import org.jeecg.modules.assessmentBanner.service.IAssessmentBannerService;
import org.jeecg.modules.assessmentCode.entity.AssessmentCode;
import org.jeecg.modules.assessmentCode.service.IAssessmentCodeService;
import org.jeecg.modules.assessmentConfig.entity.AssessmentConfig; import org.jeecg.modules.assessmentConfig.entity.AssessmentConfig;
import org.jeecg.modules.assessmentConfig.service.IAssessmentConfigService; import org.jeecg.modules.assessmentConfig.service.IAssessmentConfigService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Service @Service
@Slf4j @Slf4j
@ -26,8 +32,55 @@ public class ConfigServiceImpl implements ConfigService {
//轮播图信息 //轮播图信息
@Resource @Resource
private IAssessmentBannerService assessmentBannerService; private IAssessmentBannerService assessmentBannerService;
//兑换码信息
@Resource
private IAssessmentCodeService assessmentCodeService;
/******************************************************************************************************************/ /******************************************************************************************************************/
//首页-查询banner图列表
@Override
public Result<?> queryBannerList(AssessmentBanner assessmentBanner, PageBean pageBean) {
log.info("开始查询轮播图列表");
//返回信息
String massege = "";
//分页信息
Page<AssessmentBanner> page = null;
//查询信息
LambdaQueryChainWrapper<AssessmentBanner> query = null;
//返回信息
Page<AssessmentBanner> pageList = null;
try{
//分页
page = new Page<AssessmentBanner>(pageBean.getPageNo(), pageBean.getPageSize());
query = assessmentBannerService
.lambdaQuery();
//组装查询条件
if(StringUtils.isNotBlank(assessmentBanner.getTitle())){
//标题
query.like(AssessmentBanner::getTitle, assessmentBanner.getTitle());
}
if(StringUtils.isNotBlank(assessmentBanner.getType())){
//分类
query.eq(AssessmentBanner::getType, assessmentBanner.getType());
}
//按照排序编号升序排列
query.orderByAsc(AssessmentBanner::getOrderNo);
//获取轮播图列表
pageList = query.page(page);
log.info("轮播图列表查询结束");
return Result.OK("轮播图列表", pageList);
}catch (Exception e){
log.info("轮播图列表查询失败");
e.printStackTrace();
return Result.error("轮播图列表查询失败");
}
}
//查询系统配置列表 //查询系统配置列表
@Override @Override
public Result<?> queryConfigList(PageBean pageBean) { public Result<?> queryConfigList(PageBean pageBean) {
@ -85,48 +138,45 @@ public class ConfigServiceImpl implements ConfigService {
} }
} }
//首页-查询banner图列表
//系统配置-生成兑换码
@Override @Override
public Result<?> queryBannerList(AssessmentBanner assessmentBanner, PageBean pageBean) {
log.info("开始查询轮播图列表");
public Result<?> generateCode(int num, BigDecimal discountAmount) {
log.info("开始查询系统配置详情");
//返回信息 //返回信息
String massege = ""; String massege = "";
//分页信息
Page<AssessmentBanner> page = null;
//查询信息
LambdaQueryChainWrapper<AssessmentBanner> query = null;
//返回信息
Page<AssessmentBanner> pageList = null;
try{ try{
//分页
page = new Page<AssessmentBanner>(pageBean.getPageNo(), pageBean.getPageSize());
query = assessmentBannerService
.lambdaQuery();
//组装查询条件
if(StringUtils.isNotBlank(assessmentBanner.getTitle())){
//标题
query.like(AssessmentBanner::getTitle, assessmentBanner.getTitle());
}
if(StringUtils.isNotBlank(assessmentBanner.getType())){
//分类
query.eq(AssessmentBanner::getType, assessmentBanner.getType());
boolean result = false;
if(num > 0){
List<AssessmentCode> assessmentCodeList = new ArrayList<>();
for (int i = 0; i < num; i++) {
AssessmentCode assessmentCode = new AssessmentCode();
String code = "RA" + IdWorker.getIdStr();//生成兑换码
assessmentCode.setCode(code);
assessmentCode.setDiscountAmount(discountAmount);
assessmentCodeList.add(assessmentCode);
}
result = assessmentCodeService.saveBatch(assessmentCodeList);
}else {
return Result.error("请输入生成数量");
} }
//按照排序编号升序排列
query.orderByAsc(AssessmentBanner::getOrderNo);
//获取轮播图列表
pageList = query.page(page);
if(result){
log.info("兑换码生成成功");
return Result.OK("兑换码生成成功");
}else {
log.info("兑换码生成失败");
return Result.OK("兑换码生成失败");
}
log.info("轮播图列表查询结束");
return Result.OK("轮播图列表", pageList);
}catch (Exception e){ }catch (Exception e){
log.info("轮播图列表查询失败");
log.error("兑换码生成失败");
e.printStackTrace(); e.printStackTrace();
return Result.error("轮播图列表查询失败");
return Result.error("兑换码生成失败");
} }
} }
} }

+ 70
- 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ExamServiceImpl.java View File

@ -16,6 +16,8 @@ import org.jeecg.modules.assessmentAnswerLog.entity.AssessmentAnswerLog;
import org.jeecg.modules.assessmentAnswerLog.service.IAssessmentAnswerLogService; import org.jeecg.modules.assessmentAnswerLog.service.IAssessmentAnswerLogService;
import org.jeecg.modules.assessmentCategory.entity.AssessmentCategory; import org.jeecg.modules.assessmentCategory.entity.AssessmentCategory;
import org.jeecg.modules.assessmentCategory.service.IAssessmentCategoryService; import org.jeecg.modules.assessmentCategory.service.IAssessmentCategoryService;
import org.jeecg.modules.assessmentCode.entity.AssessmentCode;
import org.jeecg.modules.assessmentCode.service.IAssessmentCodeService;
import org.jeecg.modules.assessmentConfig.entity.AssessmentConfig; import org.jeecg.modules.assessmentConfig.entity.AssessmentConfig;
import org.jeecg.modules.assessmentExamLog.entity.AssessmentExamLog; import org.jeecg.modules.assessmentExamLog.entity.AssessmentExamLog;
import org.jeecg.modules.assessmentExamLog.service.IAssessmentExamLogService; import org.jeecg.modules.assessmentExamLog.service.IAssessmentExamLogService;
@ -27,6 +29,8 @@ import org.jeecg.modules.assessmentQuestion.entity.AssessmentAnswer;
import org.jeecg.modules.assessmentQuestion.entity.AssessmentQuestion; import org.jeecg.modules.assessmentQuestion.entity.AssessmentQuestion;
import org.jeecg.modules.assessmentQuestion.service.IAssessmentAnswerService; import org.jeecg.modules.assessmentQuestion.service.IAssessmentAnswerService;
import org.jeecg.modules.assessmentQuestion.service.IAssessmentQuestionService; import org.jeecg.modules.assessmentQuestion.service.IAssessmentQuestionService;
import org.jeecg.modules.assessmentReportUser.entity.AssessmentReportUser;
import org.jeecg.modules.assessmentReportUser.service.IAssessmentReportUserService;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember; import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService; import org.jeecg.modules.hanHaiMember.service.IHanHaiMemberService;
import org.jeecg.modules.pay.MpWxPayService; import org.jeecg.modules.pay.MpWxPayService;
@ -66,11 +70,17 @@ public class ExamServiceImpl implements ExamService {
//用户测评答案记录信息 //用户测评答案记录信息
@Resource @Resource
private IAssessmentAnswerLogService assessmentAnswerLogService; private IAssessmentAnswerLogService assessmentAnswerLogService;
//用户测评答案记录信息
//用户测评信息
@Resource
private IAssessmentReportUserService assessmentReportUserService;
//用户测评结果记录信息
@Resource @Resource
private IAssessmentExamReportService assessmentExamReportService; private IAssessmentExamReportService assessmentExamReportService;
//支付记录信息 //支付记录信息
@Resource @Resource
private IAssessmentCodeService assessmentCodeService;
//支付记录信息
@Resource
private IAssessmentPayLogService assessmentPayLogService; private IAssessmentPayLogService assessmentPayLogService;
/******************************************************************************************************************/ /******************************************************************************************************************/
@ -265,6 +275,16 @@ public class ExamServiceImpl implements ExamService {
} }
} }
//剔除已经获取报告的答题
List<String> batchNos = new ArrayList<>();
List<AssessmentReportUser> reportList = assessmentReportUserService.lambdaQuery().eq(AssessmentReportUser::getUserId, hanHaiMember.getId()).list();
for (AssessmentReportUser assessmentReportUser : reportList) {
batchNos.add(assessmentReportUser.getBatchNo());
}
if(batchNos.size() > 0){
query.notIn(AssessmentExamLog::getBatchNo, batchNos);
}
//随机排列 //随机排列
query.orderByDesc(AssessmentExamLog::getCreateTime); query.orderByDesc(AssessmentExamLog::getCreateTime);
@ -349,13 +369,52 @@ public class ExamServiceImpl implements ExamService {
} }
} }
//查询兑换码
@Override
public Result<?> queryCodeById(String code) {
log.info("开始查询兑换码详情");
//返回信息
String massege = "";
try{
AssessmentCode assessmentCode = assessmentCodeService
.lambdaQuery()
.eq(AssessmentCode::getCode, code)
.eq(AssessmentCode::getIsUse, "0")
.one();
if(null == assessmentCode){
return Result.error("兑换码不存在或已被使用");
}
log.info("兑换码详情查询结束");
return Result.OK("兑换码详情", assessmentCode);
}catch (Exception e){
log.error("兑换码详情查询失败");
e.printStackTrace();
return Result.error("兑换码查询失败");
}
}
//支付-创建订单 //支付-创建订单
@Override @Override
public Result<?> createOrder(String token, AssessmentPayLog assessmentPayLog) { public Result<?> createOrder(String token, AssessmentPayLog assessmentPayLog) {
//权限验证 //权限验证
HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);//小程序权限验证 HanHaiMember hanHaiMember = shiroRealm.checkUserTokenIsEffectHanHaiOpenId(token);//小程序权限验证
//HanHaiMember hanHaiMember = hanHaiMemberService.getById(token);
try{ try{
//如果有兑换码判断兑换码是否可用
if(StringUtils.isNotEmpty(assessmentPayLog.getCode())){
AssessmentCode assessmentCode = assessmentCodeService
.lambdaQuery()
.eq(AssessmentCode::getCode, assessmentPayLog.getCode())
.eq(AssessmentCode::getIsUse, "0")
.one();
if(null == assessmentCode){
return Result.error("兑换码不存在或已被使用");
}
}
//订单信息 //订单信息
String payNo = IdWorker.getIdStr();//生成订单号 String payNo = IdWorker.getIdStr();//生成订单号
assessmentPayLog.setId(payNo); assessmentPayLog.setId(payNo);
@ -401,6 +460,16 @@ public class ExamServiceImpl implements ExamService {
assessmentPayLog.setStatus("1");//订单状态 assessmentPayLog.setStatus("1");//订单状态
assessmentPayLog.setPayTime(CommonUtils.getCurrentTime());//订单支付时间 assessmentPayLog.setPayTime(CommonUtils.getCurrentTime());//订单支付时间
assessmentPayLogService.updateById(assessmentPayLog); assessmentPayLogService.updateById(assessmentPayLog);
//修改兑换码信息
if(StringUtils.isNotEmpty(assessmentPayLog.getCode())){
AssessmentCode code = assessmentCodeService.lambdaQuery().eq(AssessmentCode::getCode, assessmentPayLog.getCode()).one();
code.setBatchNo(assessmentPayLog.getBatchNo());
code.setIsUse("1");
code.setUseTime(CommonUtils.getCurrentTime());
code.setUserId(assessmentPayLog.getUserId());
assessmentCodeService.updateById(code);
}
} }
} }


+ 4
- 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/api/service/impl/ReportServiceImpl.java View File

@ -170,10 +170,10 @@ public class ReportServiceImpl implements ReportService {
map.put("pageList", pageList); map.put("pageList", pageList);
//风险等级数量 //风险等级数量
long level0Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "0").count();
long level1Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "1").count();
long level2Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "2").count();
long level3Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "3").count();
long level0Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getBatchNo, batchNo).eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "0").count();
long level1Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getBatchNo, batchNo).eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "1").count();
long level2Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getBatchNo, batchNo).eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "2").count();
long level3Num = assessmentExamReportService.lambdaQuery().eq(AssessmentExamReport::getBatchNo, batchNo).eq(AssessmentExamReport::getUserId, hanHaiMember.getId()).eq(AssessmentExamReport::getLevel, "3").count();
map.put("level0Num", level0Num); map.put("level0Num", level0Num);
map.put("level1Num", level1Num); map.put("level1Num", level1Num);
map.put("level2Num", level2Num); map.put("level2Num", level2Num);


+ 5
- 5
jeecg-boot-module-system/src/main/resources/pay_weixin.properties View File

@ -1,8 +1,8 @@
pay.mchId=1681494138
pay.appId=wx15be4225a7e41a1e
pay.mchId=1728609644
pay.appId=wxb7de5370f825e878
pay.mchKey=0fdb77429ffdf206c151af76a663041c pay.mchKey=0fdb77429ffdf206c151af76a663041c
pay.keyPath=classpath:apiclient_cert.pem
pay.notifyUrl=http://h5.xzaiyp.top/massage-api/post/create
pay.notifyUrlDev=http://h5.xzaiyp.top/massage-api/post/notify
pay.keyPath=
pay.notifyUrl=
pay.notifyUrlDev=

Loading…
Cancel
Save