From b9da231fdac062e40fdf8d3a76af174f33c7048b Mon Sep 17 00:00:00 2001 From: zcxee <495141071@qq.com> Date: Sat, 19 Aug 2023 00:39:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=98=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 ++++ .../jwl/driver/server/config/CorsConfig.java | 3 +- .../driver/server/config/WechatPayConfig.java | 21 +++++++++++ .../controller/TdQuestionController.java | 24 +++++++++++++ .../controller/WechatPayController.java | 31 ++++++++++++++++ .../driver/server/dto/QuestionQueryDto.java | 6 ++++ .../jwl/driver/server/dto/WechatPayDto.java | 14 ++++++++ .../jwl/driver/server/entity/TdQuestion.java | 16 +++++++++ .../server/mapper/TdQuestionMapper.java | 2 ++ .../server/service/ITdQuestionService.java | 7 ++++ .../service/impl/TdQuestionServiceImpl.java | 5 +++ .../com/jwl/driver/server/util/SmsUtil.java | 4 +++ .../jwl/driver/server/util/WechatPayUtil.java | 7 ++++ .../com/jwl/driver/server/vo/QusetionVo.java | 21 +++++++++++ src/main/resources/application.yml | 12 +++++++ .../resources/mapper/TdQuestionMapper.xml | 36 +++++++++++++++++-- .../resources/wechatPay/apiclient_cert.pem | 25 +++++++++++++ .../resources/wechatPay/apiclient_key.pem | 28 +++++++++++++++ 18 files changed, 266 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/jwl/driver/server/config/WechatPayConfig.java create mode 100644 src/main/java/com/jwl/driver/server/controller/WechatPayController.java create mode 100644 src/main/java/com/jwl/driver/server/dto/WechatPayDto.java create mode 100644 src/main/java/com/jwl/driver/server/util/WechatPayUtil.java create mode 100644 src/main/resources/wechatPay/apiclient_cert.pem create mode 100644 src/main/resources/wechatPay/apiclient_key.pem diff --git a/pom.xml b/pom.xml index d9dd63a..b4f1f7d 100644 --- a/pom.xml +++ b/pom.xml @@ -145,6 +145,13 @@ + + + com.github.wechatpay-apiv3 + wechatpay-java + 0.2.11 + + diff --git a/src/main/java/com/jwl/driver/server/config/CorsConfig.java b/src/main/java/com/jwl/driver/server/config/CorsConfig.java index 9ffdd7d..1ce9bd7 100644 --- a/src/main/java/com/jwl/driver/server/config/CorsConfig.java +++ b/src/main/java/com/jwl/driver/server/config/CorsConfig.java @@ -28,7 +28,8 @@ public class CorsConfig implements WebMvcConfigurer { registry.addInterceptor(authInterceptor).addPathPatterns("/**").excludePathPatterns("/**/login", "/error", "/webjars/**", - "/doc.html"); + "/doc.html", + "/tdQuestion/duima/*"); } diff --git a/src/main/java/com/jwl/driver/server/config/WechatPayConfig.java b/src/main/java/com/jwl/driver/server/config/WechatPayConfig.java new file mode 100644 index 0000000..c1a05e0 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/config/WechatPayConfig.java @@ -0,0 +1,21 @@ +package com.jwl.driver.server.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@ConfigurationProperties(prefix = "wechatpay") +@Data +@Component +public class WechatPayConfig { + /** 应用ID */ + private String appId; + /** 商户ID */ + private String mchId; + /** 秘钥 */ + private String apiV3Key; + /** 证书序列号 */ + private String mchSerialNo; + /** 证书路径 */ + private String privateKeyPath; +} diff --git a/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java b/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java index dfffa36..ad77d2f 100644 --- a/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java +++ b/src/main/java/com/jwl/driver/server/controller/TdQuestionController.java @@ -6,6 +6,7 @@ import com.jwl.driver.server.dto.QuestionQueryDto; import com.jwl.driver.server.exception.BusinessException; import com.jwl.driver.server.response.BaseResponse; import com.jwl.driver.server.service.ITdQuestionService; +import com.jwl.driver.server.vo.QusetionVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -15,6 +16,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.stereotype.Controller; import java.util.Collections; +import java.util.HashMap; +import java.util.Map; import java.util.Objects; /** @@ -77,4 +80,25 @@ public class TdQuestionController { return BaseResponse.success(tdQuestionService.questionCategory(queryDto)); } + @ApiOperation("对嘛接口-根据查询条件获取题目") + @GetMapping("/duima/list") + public Map listQuestion( QuestionQueryDto queryDto) { + log.info("获取题型======>queryDto:{}", queryDto); + Map result = new HashMap<>(); + result.put("code", 200); + result.put("data", tdQuestionService.queryQuestion(queryDto)); + return result; + } + + @ApiOperation("对嘛接口-修改题库") + @PutMapping("/duima/update") + public Map updateQuestion(@RequestBody QusetionVo qusetionVo) { + log.info("修改题库======>qusetionVo:{}", qusetionVo); + Map result = new HashMap<>(); + result.put("code", 200); + result.put("data", tdQuestionService.updateQuestion(qusetionVo)); + return result; + } + + } diff --git a/src/main/java/com/jwl/driver/server/controller/WechatPayController.java b/src/main/java/com/jwl/driver/server/controller/WechatPayController.java new file mode 100644 index 0000000..4e21ab7 --- /dev/null +++ b/src/main/java/com/jwl/driver/server/controller/WechatPayController.java @@ -0,0 +1,31 @@ +package com.jwl.driver.server.controller; + +import com.jwl.driver.server.dto.WechatPayDto; +import com.jwl.driver.server.response.BaseResponse; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 微信支付 接口 + */ +@RestController +@RequestMapping("/wechat/pay") +public class WechatPayController { + + //生成预支付订单 + @PostMapping("/prepay") + public BaseResponse createPrepay(@RequestBody WechatPayDto payDto){ + //获取openId + + return BaseResponse.success(); + + } + + //支付回调接口 + + //查询订单接口 + + //关闭订单接口 +} diff --git a/src/main/java/com/jwl/driver/server/dto/QuestionQueryDto.java b/src/main/java/com/jwl/driver/server/dto/QuestionQueryDto.java index ab706b6..b8f0c7f 100644 --- a/src/main/java/com/jwl/driver/server/dto/QuestionQueryDto.java +++ b/src/main/java/com/jwl/driver/server/dto/QuestionQueryDto.java @@ -87,4 +87,10 @@ public class QuestionQueryDto implements Serializable { @ApiModelProperty("获取题数") private int Num; + /** + * 题目 + */ + @ApiModelProperty("题目") + private String question; + } diff --git a/src/main/java/com/jwl/driver/server/dto/WechatPayDto.java b/src/main/java/com/jwl/driver/server/dto/WechatPayDto.java new file mode 100644 index 0000000..0eaf28f --- /dev/null +++ b/src/main/java/com/jwl/driver/server/dto/WechatPayDto.java @@ -0,0 +1,14 @@ + +package com.jwl.driver.server.dto; + +import lombok.Data; + +@Data +public class WechatPayDto { + + private Double money;//金额 + + private String code; + + +} diff --git a/src/main/java/com/jwl/driver/server/entity/TdQuestion.java b/src/main/java/com/jwl/driver/server/entity/TdQuestion.java index efe6ea8..b7cc9a0 100644 --- a/src/main/java/com/jwl/driver/server/entity/TdQuestion.java +++ b/src/main/java/com/jwl/driver/server/entity/TdQuestion.java @@ -158,4 +158,20 @@ public class TdQuestion implements Serializable { private String isActive; + /** + * 是否易错 + */ + @TableField("IS_ERROR") + private Integer isError; + /** + * 是否v新规 + */ + @TableField("IS_NEW") + private Integer isNew; + /** + * 考点 + */ + @TableField("EXAM_KEYS") + private String examKeys; + } diff --git a/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java b/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java index b635b74..9f4eb88 100644 --- a/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java +++ b/src/main/java/com/jwl/driver/server/mapper/TdQuestionMapper.java @@ -31,4 +31,6 @@ public interface TdQuestionMapper extends BaseMapper { * @return */ List queryQuestionByRandom(@Param("queryDto") QuestionQueryDto queryDto); + + int updateQuestion(@Param("qusetionVo") QusetionVo qusetionVo); } diff --git a/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java b/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java index 3d58369..af1c64a 100644 --- a/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java +++ b/src/main/java/com/jwl/driver/server/service/ITdQuestionService.java @@ -53,4 +53,11 @@ public interface ITdQuestionService extends IService { * @return */ List questionCategory(QuestionQueryDto queryDto); + + /** + * 修改题库 + * @param qusetionVo + * @return + */ + int updateQuestion(QusetionVo qusetionVo); } diff --git a/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java b/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java index c6db098..45cf998 100644 --- a/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java +++ b/src/main/java/com/jwl/driver/server/service/impl/TdQuestionServiceImpl.java @@ -125,4 +125,9 @@ public class TdQuestionServiceImpl extends ServiceImpl and tq.CHAPTER = #{queryDto.chapter} + + and tq.QUESTION like concat('%' , #{queryDto.question} , '%') + and tq.SUBJECT = #{queryDto.subject} @@ -89,7 +96,11 @@ tq.TYPE, tq.SHOW_ORDER, tq.CAR_TYPE_ID, - tq.IS_ACTIVE + tq.IS_ACTIVE, + tq.IS_VIP, + tq.IS_ERROR, + tq.IS_NEW, + tq.EXAM_KEYS from td_question tq tq.IS_ACTIVE = '0' @@ -105,4 +116,25 @@ order by rand() limit ${queryDto.num}; + + + update td_question + + + IS_VIP = #{qusetionVo.isVip}, + + + IS_ERROR = #{qusetionVo.isError}, + + + IS_NEW = #{qusetionVo.isNew}, + + + EXAM_KEYS = #{qusetionVo.examKeys}, + + + where QUESTION_ID = #{qusetionVo.questionId} + + + diff --git a/src/main/resources/wechatPay/apiclient_cert.pem b/src/main/resources/wechatPay/apiclient_cert.pem new file mode 100644 index 0000000..3c212c2 --- /dev/null +++ b/src/main/resources/wechatPay/apiclient_cert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIUUpdMmd/MUY6i5a0gw3U+OLkkho0wDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMjMwODEzMTQzNDEyWhcNMjgwODExMTQzNDEyWjCBijETMBEGA1UEAwwK +MTY1MDQ3NzY0NjEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTYwNAYDVQQL +DC3lronlvr3ph5HkupTogZTmlofljJbkvKDmkq3mnInpmZDotKPku7vlhazlj7gx +CzAJBgNVBAYMAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAMwEjj4NiNqB0OsccgQG7bHJlBeG0oe/DBrC7//DH+qb +1YtLhTiEiCkggAiEyUKdrrD1FsUzhvT3JwsYdH4irmNoRt6RI8f/3yywQ3jwIK5m +gKtWhoCtKlrIM7b77hUaRmtYkA9dyRNVXdw1dBVAg+e+b1hjYVCMAoa/NDds0sXr +E4F83ySf1lkTJcRhr9pxoPljNtSgHjk/pikN/ha0sMBWPypb7JQUuyYq64hIEEGF +k8wxoMJpVZc96/AJQRXwkTsYfOmgeUSr8uGSFdTXKhMvQTyXoPD63p9cwDFGv+Ds +HM+sPBzcKx3994/JuBUPIhokiRPvlffs5JySWFmU64ECAwEAAaOBuTCBtjAJBgNV +HRMEAjAAMAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0 +cDovL2V2Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIw +RTUwREJDMDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0 +MjJFMTJCMjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUA +A4IBAQA5L05YdcJs6035NDw/ynV5UsRMiexRvSOXV+UY7g2hJ/WaxLb3z6KalBZt +ha42AGzj0QGpqssWzzZXF66UPxdz979ozQlUleR1NgPOEEibE3t0uK8jqaJHX+or +64wA7A99nl1ZjTYSXnXDpO4CoEpFLj43WwNiEYITYx4W/AXyhuT/Xg4mAm/Oy/77 +FrG2KFopJ/xANtclbW25Anej2BnBthPSTF0ylz9IfY3eYO4kSV/o7JSjO3hbaxeD +NIYhji7tjAz7wpXwZYhdPV1ws0ncvazUYS1zdnWAr+IhZcDbU/iXLIGw3zxslPtU +miYEOvG5AD53Rr80o0iT41TSECWO +-----END CERTIFICATE----- diff --git a/src/main/resources/wechatPay/apiclient_key.pem b/src/main/resources/wechatPay/apiclient_key.pem new file mode 100644 index 0000000..5eac1f1 --- /dev/null +++ b/src/main/resources/wechatPay/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDMBI4+DYjagdDr +HHIEBu2xyZQXhtKHvwwawu//wx/qm9WLS4U4hIgpIIAIhMlCna6w9RbFM4b09ycL +GHR+Iq5jaEbekSPH/98ssEN48CCuZoCrVoaArSpayDO2++4VGkZrWJAPXckTVV3c +NXQVQIPnvm9YY2FQjAKGvzQ3bNLF6xOBfN8kn9ZZEyXEYa/acaD5YzbUoB45P6Yp +Df4WtLDAVj8qW+yUFLsmKuuISBBBhZPMMaDCaVWXPevwCUEV8JE7GHzpoHlEq/Lh +khXU1yoTL0E8l6Dw+t6fXMAxRr/g7BzPrDwc3Csd/fePybgVDyIaJIkT75X37OSc +klhZlOuBAgMBAAECggEAOc1wn5QmGgJ9tp8wjoOIBL8f/ipsq5ktTMe+R7B48neE +YRrce87Q5RYYMFGu0/jo7aoC8YxPyEfd//7FwpcA4ZlBuv1ULe4IxRiLhVBDciYI +foLdSMfHIEFopYdrRP9UxEUrS68+sQOWvDVI1lyZAqep1FkT0UZZ0OOLX8itTvVx +6EN67EjpVfg60sQ3IxDc1qmhh/+qKC1XBmnCn73wB/OZ6EtVjmgQEVJFspK9bK7j +J9zHBPTaeyNwC9eKKUeoxiESd5r2sugu8yZ8kvqwhJECa4AgHOZfskxG4YhmhROk +l7aI0Vw/fXngj7hXyMXXHuk7FgkdMpNcVwz2RBR4AQKBgQDmaxiV52tjMp+vqNAi +XjsE/jLAQuOI1Sz9gUoHipT4qdHnPgvtygMjSrVBCb28CE/tyNp3t/DVDuRmg+HE +GGXhfJPA2L6uOelsH7QKyQlWSqcv8BykDPEumwhubjv/bjJw4/HkZOP3LiLSGuzu +K+1dlcww3Fa2bEL62pN6TltdsQKBgQDiqxvG3vVIQo4kckaGNyrPDi55oph8k4H1 +s450YDfEXCy95PXpeltK9gJO/bUDmqcliLDY8PBK7aGcmEdkRcLo6KBpOS0KDRdu +ATadnGn1w+DCtHSmrecZ5J6If+F/9YIPCCQ4gYXsVIniX6xDxhcR/Y6VVP0WwO37 +QwaDzmnO0QKBgAbl6eSC+xoLJ/CwUxrUS1wI6CgNWJZ+G0yzlC3JnlAbdWdA2kaS +J6nk0KxTyFRaw1nRC4lN/m3CdmADTrz6JgKsIhhB5ON+ZFiSUmeIQTlOHtc2jwTy +Rj4o8gWsUyuAdw4eJN27j3+U6AH2QGWY9xA4LdbAoe/wKcksxgGBWwbhAoGBAJSJ +susxAqX2z3U82dBsaIZFcdlN3wWMGJctsoW64/CuwrcySqBVCWxnKH4hLjUNbMlg ++RtBUQaZENYwyGACg0bj4vLxf/1dNORmsSa58IoYcbrGTMdJoO9L7UPgIaMb/L3j +BPFul5eWksEhFx9WuZmVgpGDn1MA3TNR6fwIEThxAoGBAIcHOfiJH3d3q33aODPA +cqZb5RVNc1ZpiXC5yBwsiuTw3TYXuJmcUrRKuStsXXkIr2vyc3x9Af5+vWy7eJw/ ++N+p5zxW9F5QQdEZKt/ALjXEonxkRlebz+GvsWYEP9+Li8DwFM1wlc97kLLt4XJn +EK4LLlyBAz3ZBGm18p7RgnMP +-----END PRIVATE KEY----- -- 2.47.1.windows.2