Browse Source

修复bug

master
前端-胡立永 3 weeks ago
parent
commit
a89b7651e9
6 changed files with 77 additions and 39 deletions
  1. +29
    -28
      CatmDogd-Mall-Front-test/src/views/marketing/wechatStock/index.vue
  2. +4
    -4
      ruoyi-admin/src/main/resources/application-druid-root.yml
  3. +25
    -6
      ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletExaminationController.java
  4. +1
    -1
      ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IApiMallOrderServiceImpl.java
  5. +14
    -0
      ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java
  6. +4
    -0
      ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/WechatPaymentHistory.java

+ 29
- 28
CatmDogd-Mall-Front-test/src/views/marketing/wechatStock/index.vue View File

@ -30,33 +30,34 @@
</el-form-item> </el-form-item>
<el-form-item label="批次类型" prop="stockType"> <el-form-item label="批次类型" prop="stockType">
<el-select v-model="queryParams.stockType" placeholder="请选择批次类型" clearable size="small"> <el-select v-model="queryParams.stockType" placeholder="请选择批次类型" clearable size="small">
<!-- <el-option label="微信满减券" value="NORMAL" />-->
<!-- <el-option label="微信折扣券" value="DISCOUNT" />-->
<!-- <el-option label="微信换购券" value="EXCHANGE" />-->
<el-option label="微信满减券" value="NORMAL" />
<el-option label="微信折扣券" value="DISCOUNT" />
<el-option label="微信换购券" value="EXCHANGE" />
<el-option label="平台满减券" value="PNORMAL" /> <el-option label="平台满减券" value="PNORMAL" />
<el-option label="平台折扣券" value="PDISCOUNT" /> <el-option label="平台折扣券" value="PDISCOUNT" />
<el-option label="平台体验券" value="PTRAIL" /> <el-option label="平台体验券" value="PTRAIL" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="发送类型" prop="sendType">-->
<!-- <el-select v-model="queryParams.sendType" placeholder="发送类型" clearable size="small">-->
<!-- <el-option label="自动发送" value="AUTO" />-->
<!-- <el-option label="手动发送" value="MANUAL" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="发送类型" prop="sendType">
<el-select v-model="queryParams.sendType" placeholder="发送类型" clearable size="small">
<el-option label="自动发送" value="AUTO" />
<el-option label="手动发送" value="MANUAL" />
<el-option label="新用户领取" value="newUser" />
</el-select>
</el-form-item>
<!-- <el-form-item label="自动触发事件" prop="eventType">-->
<!-- <el-select v-model="queryParams.eventType" placeholder="请选自动触发事件" clearable size="small">-->
<!-- <el-option label="用户注册成功" value="registered_successfully" />-->
<!-- <el-option label="用户下单成功" value="checkout_success " />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="折扣类型" prop="discountType">-->
<!-- <el-select v-model="queryParams.discountType" placeholder="请选择折扣类型" clearable size="small">-->
<!-- <el-option label="按订单折扣" value="BYORDER" />-->
<!-- <el-option label="按服务天数" value="BYSERVICEDAY" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="自动触发事件" prop="eventType">
<el-select v-model="queryParams.eventType" placeholder="请选自动触发事件" clearable size="small">
<el-option label="用户注册成功" value="registered_successfully" />
<el-option label="用户下单成功" value="checkout_success " />
</el-select>
</el-form-item>
<el-form-item label="折扣类型" prop="discountType">
<el-select v-model="queryParams.discountType" placeholder="请选择折扣类型" clearable size="small">
<el-option label="按订单折扣" value="BYORDER" />
<el-option label="按服务天数" value="BYSERVICEDAY" />
</el-select>
</el-form-item>
<el-form-item label="开始时间" prop="availableBeginTime"> <el-form-item label="开始时间" prop="availableBeginTime">
<el-date-picker <el-date-picker
@ -190,7 +191,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
@ -274,12 +275,12 @@
<oss-image-upload v-model="form.couponPoster" :limit="1"></oss-image-upload> <oss-image-upload v-model="form.couponPoster" :limit="1"></oss-image-upload>
</el-form-item> </el-form-item>
<!-- <el-form-item label="折扣类型" prop="discountType">-->
<!-- <el-select v-model="form.discountType" placeholder="请选择折扣类型">-->
<!-- <el-option label="按订单折扣" value="BYORDER" />-->
<!-- <el-option label="按服务天数" value="BYSERVICEDAY" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="折扣类型" prop="discountType">
<el-select v-model="form.discountType" placeholder="请选择折扣类型">
<el-option label="按订单折扣" value="BYORDER" />
<el-option label="按服务天数" value="BYSERVICEDAY" />
</el-select>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">


+ 4
- 4
ruoyi-admin/src/main/resources/application-druid-root.yml View File

@ -57,8 +57,8 @@ wechat:
secret: 你的微信服务号密钥 secret: 你的微信服务号密钥
merchantId: 1665639691 merchantId: 1665639691
# privateKeyPath: /data/software/app/key/apiclient_key.pem # privateKeyPath: /data/software/app/key/apiclient_key.pem
privateKeyPath: E:\\file\\2025\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\apiclient_key.pem
# privateKeyPath: E:\\file\\2025\\project\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\apiclient_key.pem
# privateKeyPath: E:\\file\\2025\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\apiclient_key.pem
privateKeyPath: E:\\file\\2025\\project\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\apiclient_key.pem
# privateKeyPath: /root/pem/apiclient_key.pem # privateKeyPath: /root/pem/apiclient_key.pem
# privateKeyPath: F:\\java_work\\team_work_java\\pet-admin-25-01-25\\pet-admin\\ruoyi-admin\\src\\main\\resources\\apiclient_key.pem # privateKeyPath: F:\\java_work\\team_work_java\\pet-admin-25-01-25\\pet-admin\\ruoyi-admin\\src\\main\\resources\\apiclient_key.pem
#privateKeyPath: /Users/daixiande/Work/杂七杂八/1665639691_20240111_cert/apiclient_key.pem #privateKeyPath: /Users/daixiande/Work/杂七杂八/1665639691_20240111_cert/apiclient_key.pem
@ -134,8 +134,8 @@ wechat-admin:
staffAppId: wx01f0f43759922fda staffAppId: wx01f0f43759922fda
staffSecret: b0a5617e6e4c387262a32af2b355c8b6 staffSecret: b0a5617e6e4c387262a32af2b355c8b6
# publicKeyPath: /root/pem/pub_key.pem # publicKeyPath: /root/pem/pub_key.pem
publicKeyPath: E:\\file\\2025\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\pub_key.pem
# publicKeyPath: E:\\file\\2025\\project\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\pub_key.pem
# publicKeyPath: E:\\file\\2025\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\pub_key.pem
publicKeyPath: E:\\file\\2025\\project\\1\pet-admin\\ruoyi-admin\\src\\main\\resources\\pub_key.pem
# publicKeyPath: /data/software/app/key/pub_key.pem # publicKeyPath: /data/software/app/key/pub_key.pem
publicKeyId: PUB_KEY_ID_0116656396912025062400291558001601 publicKeyId: PUB_KEY_ID_0116656396912025062400291558001601
pay: pay:


+ 25
- 6
ruoyi-catdog/src/main/java/com/ruoyi/applet/contoller/ApiAppletExaminationController.java View File

@ -405,23 +405,42 @@ public class ApiAppletExaminationController {
@GetMapping("/retakeExam") @GetMapping("/retakeExam")
public AjaxResult retakeExam(Long userId, Integer type){ public AjaxResult retakeExam(Long userId, Integer type){
if (type == 0){//清除基本考核
List<Long> qid = appletQuestionService.lambdaQuery()
.eq(AppletQuestion::getType, "培训")
.select(AppletQuestion::getId)
.list().stream().map(n -> n.getId())
.collect(Collectors.toList());
if (type == 0){//清除所有
LambdaQueryWrapper<AppletAnswerBase> qw1 = Wrappers.<AppletAnswerBase>lambdaQuery() LambdaQueryWrapper<AppletAnswerBase> qw1 = Wrappers.<AppletAnswerBase>lambdaQuery()
.eq(AppletAnswerBase::getUserId, userId); .eq(AppletAnswerBase::getUserId, userId);
appletAnswerBaseMapper.delete(qw1); appletAnswerBaseMapper.delete(qw1);
}
LambdaQueryWrapper<AppletAnswerTrain> qw2 = Wrappers.<AppletAnswerTrain>lambdaQuery()
.eq(AppletAnswerTrain::getUserId, userId);
LambdaQueryWrapper<AppletAnswerTrain> qw2 = Wrappers.<AppletAnswerTrain>lambdaQuery()
.eq(AppletAnswerTrain::getUserId, userId);
appletAnswerTrainMapper.delete(qw2);
appletAnswerTrainMapper.delete(qw2);
}else if (qid.size() > 0){//清除培训
LambdaQueryWrapper<AppletAnswerBase> qw1 = Wrappers.<AppletAnswerBase>lambdaQuery()
.in(AppletAnswerBase::getQuestionId, qid)
.eq(AppletAnswerBase::getUserId, userId);
appletAnswerBaseMapper.delete(qw1);
LambdaQueryWrapper<AppletAnswerTrain> qw2 = Wrappers.<AppletAnswerTrain>lambdaQuery()
.in(AppletAnswerTrain::getQuestionId, qid)
.eq(AppletAnswerTrain::getUserId, userId);
appletAnswerTrainMapper.delete(qw2);
}
AppletUsersTeacher one = appletUsersTeacherService.lambdaQuery() AppletUsersTeacher one = appletUsersTeacherService.lambdaQuery()
.eq(AppletUsersTeacher::getUserId, userId) .eq(AppletUsersTeacher::getUserId, userId)
.one(); .one();
if (ObjectUtils.isNotEmpty(one)){ if (ObjectUtils.isNotEmpty(one)){
one.setStatus(0L); one.setStatus(0L);
one.setReason(""); one.setReason("");


+ 1
- 1
ruoyi-catdog/src/main/java/com/ruoyi/applet/service/impl/IApiMallOrderServiceImpl.java View File

@ -510,7 +510,7 @@ public class IApiMallOrderServiceImpl implements IApiMallOrderService {
Long payId = IDGenerator.generateId(); Long payId = IDGenerator.generateId();
WechatPaymentHistory wechatPaymentHistory = new WechatPaymentHistory(); WechatPaymentHistory wechatPaymentHistory = new WechatPaymentHistory();
wechatPaymentHistory.setId(payId);
wechatPaymentHistory.setPayId(payId);
wechatPaymentHistory.setOrderId(order.getId()); wechatPaymentHistory.setOrderId(order.getId());
wechatPaymentHistory.setMemberId(req.getMemberId()); wechatPaymentHistory.setMemberId(req.getMemberId());
wechatPaymentHistory.setOpenid(memberWechat.getRoutineOpenid()); wechatPaymentHistory.setOpenid(memberWechat.getRoutineOpenid());


+ 14
- 0
ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@ -1166,6 +1167,14 @@ public class H5OrderService {
paymentWrapper.eq("order_id", messageDTO.getOutTradeNo()); paymentWrapper.eq("order_id", messageDTO.getOutTradeNo());
paymentWrapper.eq("op_type", Constants.PaymentOpType.PAY); paymentWrapper.eq("op_type", Constants.PaymentOpType.PAY);
WechatPaymentHistory paymentHistory = wechatPaymentHistoryMapper.selectOne(paymentWrapper); WechatPaymentHistory paymentHistory = wechatPaymentHistoryMapper.selectOne(paymentWrapper);
if(paymentHistory == null){
LambdaQueryWrapper<WechatPaymentHistory> qw = new LambdaQueryWrapper<>();
paymentHistory = wechatPaymentHistoryMapper.selectOne(qw
.eq(WechatPaymentHistory::getPayId, messageDTO.getOutTradeNo())
.eq(WechatPaymentHistory::getOpType, Constants.PaymentOpType.PAY));
}
if (paymentHistory.getPaymentStatus() != Constants.PaymentStatus.INCOMPLETE) { if (paymentHistory.getPaymentStatus() != Constants.PaymentStatus.INCOMPLETE) {
log.info("【订单支付回调】支付订单不是未支付状态,不再处理" + "orderId" + paymentHistory.getOrderId() + "status" + paymentHistory.getPaymentStatus()); log.info("【订单支付回调】支付订单不是未支付状态,不再处理" + "orderId" + paymentHistory.getOrderId() + "status" + paymentHistory.getPaymentStatus());
throw new RuntimeException(); throw new RuntimeException();
@ -1200,6 +1209,11 @@ public class H5OrderService {
.set("payment_status", Constants.PaymentStatus.COMPLETE).set("update_time", optDate); .set("payment_status", Constants.PaymentStatus.COMPLETE).set("update_time", optDate);
wechatPaymentHistoryMapper.update(null, paymentHistoryUpdateWrapper); wechatPaymentHistoryMapper.update(null, paymentHistoryUpdateWrapper);
LambdaUpdateWrapper<WechatPaymentHistory> qw = new LambdaUpdateWrapper<>();
wechatPaymentHistoryMapper.update(null, qw
.eq(WechatPaymentHistory::getPayId, messageDTO.getOutTradeNo())
.set(WechatPaymentHistory::getPaymentStatus, Constants.PaymentStatus.COMPLETE)
.set(WechatPaymentHistory::getUpdateTime, optDate));
}catch (Exception e){ }catch (Exception e){
log.error("订单支付回调异常",e); log.error("订单支付回调异常",e);


+ 4
- 0
ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/WechatPaymentHistory.java View File

@ -45,6 +45,10 @@ public class WechatPaymentHistory extends BaseAudit {
@Excel(name = "订单号 支付时是payId 其他为orderId") @Excel(name = "订单号 支付时是payId 其他为orderId")
private Long orderId; private Long orderId;
@ApiModelProperty("订单号 支付时是payId")
@Excel(name = "订单号 支付时是payId")
private Long payId;
@ApiModelProperty("金额,单位分") @ApiModelProperty("金额,单位分")
@Excel(name = "金额,单位分") @Excel(name = "金额,单位分")
private BigDecimal money; private BigDecimal money;


Loading…
Cancel
Save