小么熊🐻 преди 2 години
родител
ревизия
31ca45f985
променени са 33 файла, в които са добавени 477 реда и са изтрити 1327 реда
  1. 1 39
      nbjk-admin/src/main/java/com/miaxis/app/controller/order/OrderInfoController.java
  2. 0 75
      nbjk-admin/src/main/java/com/miaxis/app/controller/vip/AppVipCodeController.java
  3. 0 56
      nbjk-admin/src/main/java/com/miaxis/app/controller/vip/RecommendCodeController.java
  4. 151 80
      nbjk-admin/src/main/java/com/miaxis/app/controller/wx/WxController.java
  5. 19 129
      nbjk-admin/src/main/java/com/miaxis/app/controller/wx/WxNotifyController.java
  6. 0 201
      nbjk-admin/src/main/java/com/miaxis/pc/controller/vip/VipCodeController.java
  7. 0 140
      nbjk-admin/src/main/java/com/miaxis/pc/controller/wx/PcWxController.java
  8. 4 5
      nbjk-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java
  9. 6 5
      nbjk-admin/src/main/resources/application-dev.yml
  10. 4 3
      nbjk-admin/src/main/resources/application-prod.yml
  11. 4 3
      nbjk-admin/src/main/resources/application-prodtest.yml
  12. BIN
      nbjk-admin/src/main/resources/wechatpay/apiclient_cert.p12
  13. 20 19
      nbjk-admin/src/main/resources/wechatpay/apiclient_cert.pem
  14. 26 26
      nbjk-admin/src/main/resources/wechatpay/apiclient_key.pem
  15. 27 0
      nbjk-admin/src/test/java/com/miaxis/test/RandomStringGenerator.java
  16. 2 2
      nbjk-common/src/main/java/com/miaxis/common/config/WxPayConfigImpl.java
  17. 4 1
      nbjk-common/src/main/java/com/miaxis/common/config/WxpayConfig.java
  18. 0 6
      nbjk-common/src/main/java/com/miaxis/common/core/domain/entity/SysDictData.java
  19. 1 1
      nbjk-framework/src/main/java/com/miaxis/framework/config/SecurityConfig.java
  20. 115 28
      nbjk-service/src/main/java/com/miaxis/order/domain/OrderInfo.java
  21. 8 5
      nbjk-service/src/main/java/com/miaxis/order/service/IOrderInfoService.java
  22. 22 0
      nbjk-service/src/main/java/com/miaxis/order/service/impl/OrderInfoServiceImpl.java
  23. 0 122
      nbjk-service/src/main/java/com/miaxis/vip/domain/VipCode.java
  24. 0 56
      nbjk-service/src/main/java/com/miaxis/vip/dto/QueryVipCodeListDTO.java
  25. 0 80
      nbjk-service/src/main/java/com/miaxis/vip/dto/VipCodeListVo.java
  26. 0 23
      nbjk-service/src/main/java/com/miaxis/vip/mapper/VipCodeMapper.java
  27. 0 26
      nbjk-service/src/main/java/com/miaxis/vip/service/IVipCodeService.java
  28. 0 48
      nbjk-service/src/main/java/com/miaxis/vip/service/impl/VipCodeServiceImpl.java
  29. 43 54
      nbjk-service/src/main/java/com/miaxis/wx/domain/WxOrder.java
  30. 19 0
      nbjk-service/src/main/java/com/miaxis/wx/dto/WxOrderDTO.java
  31. 0 3
      nbjk-service/src/main/java/com/miaxis/wx/service/IWxOrderService.java
  32. 1 49
      nbjk-service/src/main/java/com/miaxis/wx/service/impl/WxOrderServiceImpl.java
  33. 0 42
      nbjk-service/src/main/resources/mapper/vip/VipCodeMapper.xml

+ 1 - 39
nbjk-admin/src/main/java/com/miaxis/app/controller/order/OrderInfoController.java

@@ -36,7 +36,7 @@ public class OrderInfoController extends BaseController{
     private IOrderInfoService orderInfoService;
 
     /**
-     * 查询ad列表
+     * 查询订单列表
      */
     @GetMapping("/list")
     @ApiOperation("查询订单列表")
@@ -51,45 +51,7 @@ public class OrderInfoController extends BaseController{
         return toResponsePageInfo(list);
     }
 
-    /**
-     *昨日预估收益
-     */
-    @GetMapping("/yesterdayTotal")
-    @ApiOperation("昨日预估收益")
-    public Response<Integer> yesterdayTotal(OrderInfoDto orderInfoDto) {
-        orderInfoDto.setReferralUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        return Response.success(orderInfoService.selectYesterdayTotal(orderInfoDto));
-    }
-
-
-    /**
-     *今日预估收益
-     */
-    @GetMapping("/todayTotal")
-    @ApiOperation("今日预估收益")
-    public Response<Integer> todayTotal(OrderInfoDto orderInfoDto) {
-        orderInfoDto.setReferralUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        return Response.success(orderInfoService.selectTodayTotal(orderInfoDto));
-    }
 
 
-    /**
-     * 总收益
-     */
-    @GetMapping("/total")
-    @ApiOperation("总收益")
-    public Response<Integer> total(OrderInfoDto orderInfoDto) {
-        orderInfoDto.setReferralUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        return Response.success(orderInfoService.selectTotal(orderInfoDto));
-    }
-
-
-    @GetMapping("/selectMonthIncone")
-    @ApiOperation("按年查询每月收入")
-    public ResponsePageInfo<OrderInfoMonthVo> selectMonthIncone(@ModelAttribute OrderInfoMonthDto orderInfoMonthDto){
-        orderInfoMonthDto.setReferralUserId(SecurityUtils.getLoginUser().getStudent().getId());
-        List<OrderInfoMonthVo> list = orderInfoService.selectMonthIncome(orderInfoMonthDto);
-        return toResponsePageInfo(list);
-    }
 
 }

+ 0 - 75
nbjk-admin/src/main/java/com/miaxis/app/controller/vip/AppVipCodeController.java

@@ -1,75 +0,0 @@
-package com.miaxis.app.controller.vip;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.miaxis.common.annotation.Log;
-import com.miaxis.common.constant.Constants;
-import com.miaxis.common.core.controller.BaseController;
-import com.miaxis.common.core.domain.Response;
-import com.miaxis.common.core.domain.entity.UserInfo;
-import com.miaxis.common.enums.BusinessTypeEnum;
-import com.miaxis.common.exception.CustomException;
-import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.common.utils.poi.ExcelUtil;
-import com.miaxis.user.service.IUserInfoService;
-import com.miaxis.vip.domain.VipCode;
-import com.miaxis.vip.service.IVipCodeService;
-import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Random;
-
-/**
- * 【激活码】Controller
- *
- * @author miaxis
- * @date 2021-08-18
- */
-@RestController
-@RequestMapping(Constants.STUDENT_PREFIX+"/vip/code")
-@Api(tags={"【app-激活码】"})
-public class AppVipCodeController extends BaseController{
-    @Autowired
-    private IVipCodeService vipCodeService;
-
-    @Autowired
-    private IUserInfoService userInfoService;
-    @PutMapping
-    @ApiOperation("用户激活码激活")
-    public Response<Integer> edit(String vipCode){
-
-        QueryWrapper<VipCode> queryWrapper = new QueryWrapper<VipCode>();
-        queryWrapper.eq("vip_code", vipCode);
-        VipCode vipCodeEntity = vipCodeService.getOne(queryWrapper);
-        if (vipCodeEntity == null){
-            throw new CustomException("该激活码不存在");
-        }
-        if (vipCodeEntity.getStatus() == 1){
-            throw new CustomException("该激活码已被激活");
-        }
-        if (vipCodeEntity.getStatus() == 2){
-            throw new CustomException("该激活码已作废");
-        }
-
-        UserInfo student = SecurityUtils.getLoginUser().getStudent();
-
-        vipCodeEntity.setStatus(1);
-        vipCodeEntity.setActivationUserId(student.getId());
-        vipCodeEntity.setActivationTime(new Date());
-        vipCodeService.updateById(vipCodeEntity);
-
-
-        UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
-        userInfo.setIsVip(1);
-        userInfoService.updateById(userInfo);
-        return Response.success();
-    }
-
-
-
-}

+ 0 - 56
nbjk-admin/src/main/java/com/miaxis/app/controller/vip/RecommendCodeController.java

@@ -1,56 +0,0 @@
-package com.miaxis.app.controller.vip;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.miaxis.common.constant.Constants;
-import com.miaxis.common.core.controller.BaseController;
-import com.miaxis.common.core.domain.Response;
-import com.miaxis.common.core.domain.entity.UserInfo;
-import com.miaxis.common.exception.CustomException;
-import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.common.utils.StringUtils;
-import com.miaxis.user.service.IUserInfoService;
-import com.miaxis.vip.domain.VipCode;
-import com.miaxis.vip.service.IVipCodeService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Date;
-
-/**
- */
-@RestController
-@RequestMapping(Constants.STUDENT_PREFIX+"/recommend/code")
-@Api(tags={"【app-推荐码】"})
-public class RecommendCodeController extends BaseController{
-
-
-    @Autowired
-    private IUserInfoService userInfoService;
-    @GetMapping
-    @ApiOperation("验证推荐码是否有效")
-    public Response validateRecommendCode(String recommendCode){
-
-        if (StringUtils.isEmpty(recommendCode)){
-            throw new CustomException("推荐码不能为空");
-        }
-        QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<UserInfo>();
-        queryWrapper.eq("recommend_code", recommendCode);
-        UserInfo userInfo = userInfoService.getOne(queryWrapper);
-        if (userInfo == null){
-            throw new CustomException("该推荐码不存在");
-        }
-        //当前学员更新绑定推荐码
-        UserInfo student = SecurityUtils.getLoginUser().getStudent();
-       // student.setBindRecommendCode(recommendCode);
-        userInfoService.updateById(student);
-        return Response.success("验证成功");
-    }
-
-
-
-}

+ 151 - 80
nbjk-admin/src/main/java/com/miaxis/app/controller/wx/WxController.java

@@ -9,6 +9,7 @@ import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysDictData;
 import com.miaxis.common.core.domain.entity.UserInfo;
+import com.miaxis.common.enums.OrderStatusEnum;
 import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.common.utils.uuid.CommonUtils;
@@ -18,6 +19,7 @@ import com.miaxis.system.service.ISysDictDataService;
 import com.miaxis.system.service.ISysDictTypeService;
 import com.miaxis.system.service.ISysUserService;
 import com.miaxis.wx.domain.WxOrder;
+import com.miaxis.wx.dto.WxOrderDTO;
 import com.miaxis.wx.service.IWxOrderService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -69,50 +71,29 @@ public class WxController extends BaseController {
 
 
     @Autowired
-    private ISysUserService sysUserService;
+    private ISysDictDataService dictDataService;
 
-    @Autowired
-    private ISysConfigService sysConfigService;
 
-    @Autowired
-    private ISysDictDataService sysDictDataService;
+    @Value("${xcx.appid}")
+    private String xcxAppid;
+
 
     @Value("${app.appid}")
     private String appid;
-    @Value("${wxpay.notifyUrl}")
-    private  String notifyUrl ;
-
 
 
+    @Value("${wxpay.notifyUrl}")
+    private  String notifyUrl ;
 
 
 
-//    @GetMapping("/order/list")
-//    @ApiOperation("查询订单列表")
-//    @ApiImplicitParams({
-//            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-//            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
-//    })
-//    public ResponsePageInfo<WxOrder> list(@ModelAttribute WxOrderListDTO wxOrderListDTO){
-//
-//        String openid = SecurityUtils.getLoginUser().getStudent().getAppOpenid()();
-//        startPage();
-//        wxOrderListDTO.setOpenid(openid);
-//        List<WxOrder> list = wxOrderService.selectOrderList(wxOrderListDTO);
-//        return toResponsePageInfo(list);
-//    }
 
     /**
-     * 微信支付获取预订单id
+     * APP微信支付获取预订单id
      */
-    @PostMapping(value = "/prepareOrder")
+    @PostMapping(value = "/appPrepareOrder")
     @ApiOperation("app端微信支付下单")
-    public Response<WxParamEntity> getPrepareOrder(@RequestParam @ApiParam(name="dictCode",value="字典编码")Long dictCode) throws Exception{
-
-        //兼容线上,app上线后删除
-//        if (type == null){
-//            type = 1;
-//        }
+    public Response<WxParamEntity> appPrepareOrder(@RequestParam @ApiParam(name="dictCode",value="字典编码")Long dictCode) throws Exception{
         //创建本地微信订单
         WxOrder order = new WxOrder();
         UserInfo student = SecurityUtils.getLoginUser().getStudent();
@@ -121,49 +102,28 @@ public class WxController extends BaseController {
         order.setAppOpenid(student.getAppOpenid());
         order.setUnionId(student.getUnionId());
 
-        SysDictData sysDictData = sysDictDataService.selectDictDataById(dictCode);
-        wxOrderService.createVipOrder(order,sysDictData);
-        wxOrderService.save(order);
-
-        return Response.success(placeWxOrder(order, order.getGoodsName()));
-
+        SysDictData sysDictData = dictDataService.selectDictDataById(dictCode);
+        String[] values = sysDictData.getDictValue().split(",");
+        Double price = Double.parseDouble(values[0])*100;   //订单总额
+        int b =  new Double(price).intValue();
+        order.setTotal(b);
+        order.setOrderStatus(OrderStatusEnum.PROCESSING.getCode());
 
-    }
 
-    private String getKeyByType(Integer type) {
-        if(type == null){
-            throw new CustomException("类型不能为空");
-        }
-        if (type == 1){
-            return "vip_price";
-        }
-        if (type == 2){
-            return "vip_price_recommend";
-        }
-        if (type == 3){
-            return "vip_price_upgrade";
-        }
-        throw new CustomException("类型值有误");
+        wxOrderService.save(order);
+        return Response.success(placeAppWxOrder(order, order.getGoodsName()));
     }
 
 
-//    /**
-//     * 查询是否存在推荐码
-//     */
-//    @GetMapping(value = "/{referralCode}")
-//    @ApiOperation("查询是否存在推荐码")
-//    public Response<Boolean> getInfo(
-//            @ApiParam(name = "referralCode", value = "推荐码", required = true)
-//            @PathVariable("referralCode") String referralCode
-//    ){
-//
-//        return Response.success(sysUserService.selectUserByReferralCode(referralCode)!= null ? true :false);
-//    }
-
-
-    //下单
-    private WxParamEntity placeWxOrder(WxOrder order, String goodsName) throws Exception {
-        HttpPost httpPost = initHttpPost();
+    /**
+     * APP下单
+     * @param order
+     * @param goodsName
+     * @return
+     * @throws Exception
+     */
+    private WxParamEntity placeAppWxOrder(WxOrder order, String goodsName) throws Exception {
+        HttpPost httpPost = initHttpPost(wxpayConfig.getV3url());
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         ObjectMapper objectMapper = new ObjectMapper();
         ObjectNode rootNode = objectMapper.createObjectNode();
@@ -181,12 +141,17 @@ public class WxController extends BaseController {
         if (JSONObject.parseObject(bodyAsString).get("prepay_id") == null){
             throw new CustomException(JSONObject.parseObject(bodyAsString).get("message").toString());
         }
-        return getWxParamJson(bodyAsString,order.getOutTradeNo());
-
+        return getWxAppParamJson(bodyAsString);
     }
 
-    // 生成调用调起微信支付所需参数
-    private WxParamEntity getWxParamJson(String bodyAsString, String orderCode) throws Exception {
+
+    /**
+     * APP支付生成调用调起微信支付所需参数
+     * @param bodyAsString
+     * @return
+     * @throws Exception
+     */
+    private WxParamEntity getWxAppParamJson(String bodyAsString) throws Exception {
         WxParamEntity wxParamEntity = new WxParamEntity();
         wxParamEntity.setAppId(appid);
         wxParamEntity.setPartnerId(wxpayConfig.getMerchantId());
@@ -204,7 +169,6 @@ public class WxController extends BaseController {
         sb.append(nonce_str + "\n");
         sb.append(prepayId+ "\n");
 
-
         File file = new ClassPathResource("wechatpay/apiclient_key.pem").getFile();
         String realPath =file.getAbsolutePath();
         PrivateKey privateKey = CommonUtils.getPrivateKey(realPath);
@@ -219,13 +183,9 @@ public class WxController extends BaseController {
         return wxParamEntity;
     }
 
-    private HttpPost initHttpPost() {
-        HttpPost httpPost = new HttpPost(wxpayConfig.getV3url());
-        httpPost.addHeader("Accept", "application/json");
-        httpPost.addHeader("Content-type","application/json; charset=utf-8");
-        return httpPost;
-    }
-
+    /**
+     * APP支付返回参数
+     */
     @Data
     class  WxParamEntity{
         String appId;
@@ -240,11 +200,122 @@ public class WxController extends BaseController {
 
 
 
+    /**
+     * 微信小程序支付获取预订单id
+     */
+    @PostMapping(value = "/xcxPrepareOrder")
+    @ApiOperation("微信小程序支付下单")
+    public Response<JSONObject> xcxPrepareOrder(@RequestBody WxOrderDTO wxOrderDTO) throws Exception{
+
+        SysDictData sysDictData = dictDataService.selectDictDataById(wxOrderDTO.getDictCode());
+        String[] values = sysDictData.getDictValue().split(",");
+        //创建本地微信订单
+        WxOrder order = new WxOrder();
+        UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
+        String orderCode = getOrderCode(userInfo.getId());
+        order.setOutTradeNo(orderCode);
+        order.setXcxOpenid(userInfo.getXcxOpenid());
+        order.setAppOpenid(userInfo.getAppOpenid());
+        order.setGzhOpenid(userInfo.getGzhOpenid());
+        order.setUnionId(userInfo.getUnionId());
+        order.setPhoneType(wxOrderDTO.getPhoneType()); //手机类型 1:苹果 2:安卓
+        order.setForeType(wxOrderDTO.getForeType()); //前端类型 1:app 2:小程序 3:公众号
+
+        Double price = Double.parseDouble(values[0])*100;   //订单总额
+        int b =  new Double(price).intValue();
+        order.setTotal(b);
+        order.setOrderStatus(OrderStatusEnum.PROCESSING.getCode());
+        wxOrderService.save(order);
+        return Response.success(placeXcxWxOrder(order, sysDictData.getDictLabel()));
+
+
+    }
+
+
+    /**
+     * 微信小程序或公众号内  JSAPI下单
+     * @param order
+     * @param goodsName
+     * @return
+     * @throws Exception
+     */
+    private JSONObject placeXcxWxOrder(WxOrder order, String goodsName) throws Exception {
+        HttpPost httpPost = initHttpPost(wxpayConfig.getV3JsUrl());
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        ObjectMapper objectMapper = new ObjectMapper();
+        ObjectNode rootNode = objectMapper.createObjectNode();
+        rootNode.put("mchid",wxpayConfig.getMerchantId())
+                .put("appid", xcxAppid)
+                .put("description", goodsName)
+                .put("notify_url", notifyUrl)
+                .put("out_trade_no", order.getOutTradeNo());
+        rootNode.putObject("amount").put("total", order.getTotal());
+        rootNode.putObject("payer").put("openid", order.getXcxOpenid());
+        objectMapper.writeValue(bos, rootNode);
+        httpPost.setEntity(new StringEntity(rootNode.toString(), "utf-8"));
+        HttpResponse response = httpClient.execute(httpPost);
+        String bodyAsString = EntityUtils.toString(response.getEntity());
+        if (JSONObject.parseObject(bodyAsString).get("prepay_id") == null){
+            throw new CustomException(JSONObject.parseObject(bodyAsString).get("message").toString());
+        }
+        return getWxParamJson(bodyAsString);
+
+    }
 
 
+    /**
+     * 微信小程序或公众号内  JSAPI下单
+     * 生成调用调起微信支付所需参数
+     * @param bodyAsString
+     * @return
+     * @throws Exception
+     */
+    private JSONObject getWxParamJson(String bodyAsString) throws Exception {
+        String  packageStr = "prepay_id="+JSONObject.parseObject(bodyAsString).get("prepay_id");
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("package",packageStr);
+        String nonce_str = RandomStringUtils.randomAlphanumeric(32);
+        jsonObject.put("nonceStr",nonce_str);
+        long timestamp =  System.currentTimeMillis()/1000;
+        jsonObject.put("timeStamp",String.valueOf(timestamp));
+        jsonObject.put("signType","RSA");
+        StringBuffer sb = new StringBuffer();
+        sb.append(appid + "\n");
+        sb.append(timestamp + "\n");
+        sb.append(nonce_str + "\n");
+        sb.append(packageStr+ "\n");
+        System.out.println(sb);
+
+        File file = new ClassPathResource("wechatpay/apiclient_key.pem").getFile();
+        String realPath =file.getAbsolutePath();
+        PrivateKey privateKey = CommonUtils.getPrivateKey(realPath);
+        // 进行签名服务
+        Signature signature = Signature.getInstance("SHA256withRSA");
+        signature.initSign(privateKey);
+        signature.update(sb.toString().getBytes("UTF-8"));
+        byte[] signedData = signature.sign();
+        String base64Str =  Base64.getEncoder().encodeToString(signedData);
+        jsonObject.put("paySign",base64Str);
+        jsonObject.put("appId",appid);
+        return jsonObject;
+    }
+
 
 
 
 
 
+
+
+
+
+    private HttpPost initHttpPost(String url) {
+        HttpPost httpPost = new HttpPost(url);
+        httpPost.addHeader("Accept", "application/json");
+        httpPost.addHeader("Content-type","application/json; charset=utf-8");
+        return httpPost;
+    }
+
+
+
 }

+ 19 - 129
nbjk-admin/src/main/java/com/miaxis/app/controller/wx/WxNotifyController.java

@@ -2,20 +2,13 @@ package com.miaxis.app.controller.wx;
 
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.miaxis.common.config.WxpayConfig;
 import com.miaxis.common.constant.Constants;
-import com.miaxis.common.core.domain.entity.SysDictData;
-import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.utils.AesUtil;
-import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.system.service.ISysConfigService;
-import com.miaxis.system.service.ISysDictDataService;
+import com.miaxis.order.service.IOrderInfoService;
 import com.miaxis.system.service.ISysDictTypeService;
 import com.miaxis.user.service.IUserInfoService;
-import com.miaxis.vip.domain.VipCode;
-import com.miaxis.vip.service.IVipCodeService;
 import com.miaxis.wx.domain.RefundRecord;
 import com.miaxis.wx.domain.WxOrder;
 import com.miaxis.wx.dto.WxNotifyReturnDTO;
@@ -25,13 +18,10 @@ import com.miaxis.wx.service.IWxOrderService;
 import com.wechat.pay.contrib.apache.httpclient.auth.AutoUpdateCertificatesVerifier;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import lombok.Data;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Base64Utils;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -44,10 +34,6 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.security.*;
 import java.security.cert.X509Certificate;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-import java.util.Random;
 
 @RestController
 @RequiredArgsConstructor
@@ -64,9 +50,6 @@ public class WxNotifyController {
     @Autowired
     private IWxOrderService wxOrderService;
 
-    @Autowired
-    private IVipCodeService vipCodeService;
-
 
     @Autowired
     private IUserInfoService userInfoService;
@@ -81,22 +64,25 @@ public class WxNotifyController {
     @Autowired
     private ISysDictTypeService sysDictTypeService;
 
+
+    @Autowired
+    private IOrderInfoService orderInfoService;
+
     /**
      * 微信支付回调接口
      */
     @PostMapping(value = "/wxpay")
     @ApiOperation("app微信支付回调")
     public WxNotifyReturnDTO wxpayNotify(@RequestBody WxpayNotifyDTO wxpayNotifyDTO, HttpServletRequest request) throws GeneralSecurityException, IOException {
-//        String bodyString = getBodyString(request);
-//        if (!validate(request,bodyString)){
-//            throw new CustomException("签名失败");
-//        }
+        String bodyString = getBodyString(request);
+        if (!validate(request,bodyString)){
+           throw new CustomException("签名失败");
+        }
         String resourceString = getSourString(wxpayNotifyDTO);
         log.info(resourceString);
         JSONObject jsonObject = JSONObject.parseObject(resourceString);
         //将回调数据写入数据库
-        String outTradeNo = writeNotifyDataToDb(jsonObject);
-
+        writeNotifyDataToDb(jsonObject,1);
 
         WxNotifyReturnDTO wxNotifyReturnDTO = new WxNotifyReturnDTO();
         wxNotifyReturnDTO.setCode("SUCCESS");
@@ -104,47 +90,7 @@ public class WxNotifyController {
         return wxNotifyReturnDTO;
     }
 
-//    private void avtivityCode(String outTradeNo, String vipCode) {
-//        WxOrder wxOrder = wxOrderService.getByOutTradeNo(outTradeNo);
-//        if (wxOrder ==  null){
-//            throw new CustomException("改订单不存在");
-//        }
-//        UserInfo userInfo = userInfoService.getOne(new QueryWrapper<UserInfo>().eq("app_openid", wxOrder.getAppOpenid()));
-//        QueryWrapper<VipCode> queryWrapper = new QueryWrapper<VipCode>();
-//        queryWrapper.eq("vip_code", vipCode);
-//        VipCode vipCodeEntity = vipCodeService.getOne(queryWrapper);
-//        if (vipCodeEntity == null){
-//            throw new CustomException("该激活码不存在");
-//        }
-//        if (vipCodeEntity.getStatus() == 1){
-//            throw new CustomException("该激活码已被激活");
-//        }
-//        if (vipCodeEntity.getStatus() == 2){
-//            throw new CustomException("该激活码已作废");
-//        }
-//        vipCodeEntity.setStatus(1);
-//        vipCodeEntity.setActivationUserId(userInfo.getId());
-//        vipCodeEntity.setActivationTime(new Date());
-//        vipCodeService.updateById(vipCodeEntity);
-//
-//
-//        userInfoService.updateById(userInfo);
-//
-//
-//
-//
-//    }
-
-    private String createCode() {
-        VipCode vipCode = new VipCode();
-        String rVipCode = null ;
-        do {
-            rVipCode  = randomVipcode();
-        }while (isRepeat(rVipCode));
-        vipCode.setVipCode(rVipCode);
-        vipCodeService.save(vipCode);
-        return rVipCode;
-    }
+
 
     private String getBodyString(HttpServletRequest request) {
             BufferedReader br = null;
@@ -237,21 +183,20 @@ public class WxNotifyController {
         refundRecord.setUserReceivedAccount(jsonObject.getString("user_received_account"));
         refundRecord.setStatus(jsonObject.getString("refund_status"));
         refundRecordService.updateById(refundRecord);
-
-
     }
 
 
 
-
-
-
-    public String writeNotifyDataToDb(JSONObject jsonObject) {
+    public void writeNotifyDataToDb(JSONObject jsonObject,Integer payType) {
         String outTradeNo = jsonObject.getString("out_trade_no");
         WxOrder wxOrder = wxOrderService.getByOutTradeNo(outTradeNo);
         if (wxOrder == null) {
             throw new CustomException("该订单不存在");
         }
+        if ("SUCCESS".equals(wxOrder.getTradeState())) {
+            log.info("订单号为" + wxOrder.getOutTradeNo() + "的订单已完成操作,无法重复操作!");
+            return;
+        }
         wxOrder.setTransactionId(jsonObject.getString("transaction_id"));
         JSONObject amount = jsonObject.getJSONObject("amount");
         wxOrder.setPayerTotal(amount.getInteger("payer_total"));
@@ -265,45 +210,10 @@ public class WxNotifyController {
         wxOrder.setTradeStateDesc(jsonObject.getString("trade_state_desc"));
         wxOrder.setTradeType(jsonObject.getString("trade_type"));
         wxOrder.setAttach(jsonObject.getString("attach"));
-        JSONObject sceneInfo = jsonObject.getJSONObject("scene_info");
-        if (sceneInfo != null){
-            wxOrder.setDeviceId(sceneInfo.getString("device_id"));
-        }
+        wxOrder.setOrderStatus("2");
 
-        //如果回调是订单状态是SUCCESS的话
-        if ("SUCCESS".equals(wxOrder.getTradeState())){
-            UserInfo userInfo = userInfoService.getOne(new QueryWrapper<UserInfo>().eq("union_id", wxOrder.getUnionId()));
-            //根据下单时候留下的备注信息(vip信息)来更新用户vip信息
-            String s = wxOrder.getOrderDataJson();
-            Integer isVip = Integer.valueOf(s);
-            userInfo.setIsVip(isVip);
-            userInfoService.updateById(userInfo);
-            //充值普通会员 进行分佣
-//            if (isVip == 2){
-//                //根据订单查询推荐主播
-//                UserInfo zhubo = userInfoService.getById(wxOrder.getReferralUserId());
-//                //根据主播查询合伙人
-//               // UserInfo hehuoren = userInfoService.getOne(new QueryWrapper<UserInfo>().eq("union_id",zhubo.getParentUnionId()));
-//                //根据合伙人查询合伙人以及主播的分佣
-//                List<SysDictData> partnerConfigs = sysDictTypeService.selectDictDataByType("partner_config");
-//                Optional<SysDictData> first = partnerConfigs.stream().filter(o -> hehuoren.getUnionId().equals(o.getDictLabel())).findFirst();
-//                String[] partnerConfig = first.get().getDictValue().split(",");
-//                Integer hehuorenPencents = Integer.valueOf(partnerConfig[1]);
-//                Integer zhuboPencents =Integer.valueOf(partnerConfig[2]);
-//                Integer pay = wxOrder.getTotal();
-//                Integer hehuorenFencheng =pay*hehuorenPencents/100;
-//                Integer zhuboFencheng =pay*zhuboPencents/100;
-//                wxOrder.setCommissionPrice(zhuboFencheng);
-////                zhubo.setProfitPrice(zhubo.getProfitPrice()+zhuboFencheng);
-////                hehuoren.setProfitPrice(hehuoren.getProfitPrice()+hehuorenFencheng);
-//                userInfoService.addProfitPrice(zhubo.getId(),zhuboFencheng);
-//                userInfoService.addProfitPrice(hehuoren.getId(),hehuorenFencheng);
-//
-//
-//            }
-            wxOrderService.updateById(wxOrder);
-        }
-        return outTradeNo;
+        orderInfoService.writeVipDataToDb(wxOrder,payType);
+        wxOrderService.updateById(wxOrder);
 
     }
 
@@ -313,26 +223,6 @@ public class WxNotifyController {
         return aesUtil.decryptToString(wxpaySource.getAssociated_data().getBytes(), wxpaySource.getNonce().getBytes(), wxpaySource.getCiphertext());
     }
 
-    private String randomVipcode() {
-        String result = "";
-        Random random = new Random();
-        for(int i =0 ;i <11 ;i ++){
-            result+=random.nextInt(10);
-        }
-        return  result;
-
-
-    }
-    private boolean isRepeat(String rVipCode) {
-        QueryWrapper<VipCode> wrapper = new QueryWrapper<VipCode>();
-        wrapper.eq("vip_code",rVipCode);
-        VipCode one = vipCodeService.getOne(wrapper);
-        return one!= null;
-
-    }
-
-
-
 
 
 

+ 0 - 201
nbjk-admin/src/main/java/com/miaxis/pc/controller/vip/VipCodeController.java

@@ -1,201 +0,0 @@
-package com.miaxis.pc.controller.vip;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.miaxis.common.constant.Constants;
-import java.util.List;
-import java.util.Arrays;
-import java.util.Random;
-
-import com.miaxis.common.core.domain.entity.SysRole;
-import com.miaxis.common.core.domain.entity.SysUser;
-import com.miaxis.common.core.domain.vo.AgentVO;
-import com.miaxis.common.exception.CustomException;
-import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.system.service.ISysRoleService;
-import com.miaxis.system.service.ISysUserService;
-import com.miaxis.vip.dto.QueryVipCodeListDTO;
-import io.swagger.annotations.*;
-import com.miaxis.common.core.domain.Response;
-import org.springframework.http.HttpRequest;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import com.miaxis.common.annotation.Log;
-import com.miaxis.common.core.controller.BaseController;
-import com.miaxis.common.enums.BusinessTypeEnum;
-import com.miaxis.vip.domain.VipCode;
-import com.miaxis.vip.service.IVipCodeService;
-import com.miaxis.common.utils.poi.ExcelUtil;
-import com.miaxis.common.core.page.ResponsePageInfo;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * 【激活码】Controller
- *
- * @author miaxis
- * @date 2021-08-18
- */
-@RestController
-@RequestMapping("/vip/code")
-@Api(tags={"【pc-激活码】"})
-public class VipCodeController extends BaseController{
-    @Autowired
-    private IVipCodeService vipCodeService;
-
-    @Autowired
-    private ISysUserService userService;
-
-    @Autowired
-    private ISysRoleService roleService;
-
-    /**
-     * 查询激活码列表
-     */
-    @PreAuthorize("@ss.hasPermi('vip:code:list')")
-    @GetMapping("/list")
-    @ApiOperation("查询激活码列表")
-        @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
-    })
-    public ResponsePageInfo<VipCode> list(QueryVipCodeListDTO dto){
-        startPage();
-        SysUser user = SecurityUtils.getLoginUser().getUser();
-        dto.setAgentId(user.getUserId()==1l? dto.getAgentId(): user.getUserId());
-        List<VipCode> list = vipCodeService.selectVipCodeList(dto);
-        ResponsePageInfo<VipCode> vipCodeResponsePageInfo = toResponsePageInfo(list);
-        vipCodeResponsePageInfo.setOtherData(userService.getAgentRemainingNumber());
-        return vipCodeResponsePageInfo;
-    }
-
-
-    /**
-     * 查询代理商列表
-     */
-    @PreAuthorize("@ss.hasPermi('vip:code:list')")
-    @GetMapping("/agentList")
-    @ApiOperation("查询代理商列表")
-    public Response<List<AgentVO>> agentList(String agentName){
-        SysRole sysRole = new SysRole();
-        sysRole.setRoleKey("agent");
-        List<SysRole> sysRoles = roleService.selectRoleList(sysRole);
-        Long roleId = sysRoles.get(0).getRoleId();
-        List<AgentVO> sysUsersList =  userService.getAgentList(roleId,agentName);
-        return Response.success(sysUsersList);
-    }
-
-    /**
-     * 导出激活码列表
-     */
-    @PreAuthorize("@ss.hasPermi('vip:code:export')")
-    @Log(title = "激活码", businessType = BusinessTypeEnum.EXPORT)
-    @GetMapping("/export")
-    @ApiOperation("导出激活码列表Excel")
-    public Response<String> export(@ModelAttribute QueryVipCodeListDTO queryVipCodeListDTO){
-        List<VipCode> list = vipCodeService.selectVipCodeList(queryVipCodeListDTO);
-        ExcelUtil<VipCode> util = new ExcelUtil<VipCode>(VipCode.class);
-        return util.exportExcel(list, "code");
-    }
-
-    /**
-     * 获取激活码详细信息
-     */
-    @PreAuthorize("@ss.hasPermi('vip:code:query')")
-    @GetMapping(value = "/{id}")
-    @ApiOperation("获取激活码详细信息")
-    public Response<VipCode> getInfo(
-            @ApiParam(name = "id", value = "激活码参数", required = true)
-            @PathVariable("id") Long id
-    ){
-        return Response.success(vipCodeService.getById(id));
-    }
-
-    /**
-     * 新增激活码
-     */
-    @PreAuthorize("@ss.hasPermi('vip:code:add')")
-    @Log(title = "激活码", businessType = BusinessTypeEnum.INSERT)
-    @PostMapping
-    @ApiOperation("新增激活码")
-    public Response<String> add(){
-        SysUser redisSysUser = SecurityUtils.getLoginUser().getUser();
-        SysUser sysUser  = userService.selectUserById(redisSysUser.getUserId());
-        if (sysUser.getAgentType() == null) {
-            throw new CustomException("用户还未成为会员");
-        }
-        if ( "1".equals(sysUser.getAgentType()) && sysUser.getAgentRemainingNumber() <= 0){
-            throw new CustomException("剩余券码已不足");
-        }
-        if ( "2".equals(sysUser.getAgentType()) && sysUser.getAgentExpireTime().getTime()< System.currentTimeMillis()){
-            throw new CustomException("代理权限已过期");
-        }
-        VipCode vipCode = new VipCode();
-        String rVipCode = null ;
-        do {
-            rVipCode  = randomVipcode();
-        }while (isRepeat(rVipCode));
-        vipCode.setVipCode(rVipCode);
-        vipCode.setAgentId(SecurityUtils.getLoginUser().getUser().getUserId());
-        vipCodeService.save(vipCode);
-        if ( "1".equals(sysUser.getAgentType()) ){
-            userService.updateAgentRemainingNumber(sysUser.getUserId());
-        }
-        return Response.success(rVipCode);
-    }
-
-    private boolean isRepeat(String rVipCode) {
-        QueryWrapper<VipCode> wrapper = new QueryWrapper<VipCode>();
-        wrapper.eq("vip_code",rVipCode);
-        VipCode one = vipCodeService.getOne(wrapper);
-        return one!= null;
-
-    }
-
-    private String randomVipcode() {
-        String result = "";
-        Random random = new Random();
-        for(int i =0 ;i <11 ;i ++){
-            result+=random.nextInt(10);
-        }
-        return  result;
-
-
-    }
-
-    /**
-     * 修改激活码
-     */
-    @PreAuthorize("@ss.hasPermi('vip:code:edit')")
-    @Log(title = "激活码", businessType = BusinessTypeEnum.UPDATE)
-    @PutMapping
-    @ApiOperation("修改激活码")
-    public Response<Integer> edit(@RequestBody VipCode vipCode){
-        return toResponse(vipCodeService.updateById(vipCode) ? 1 : 0);
-    }
-
-    /**
-     * 删除激活码
-     */
-    @PreAuthorize("@ss.hasPermi('vip:code:remove')")
-    @Log(title = "激活码", businessType = BusinessTypeEnum.DELETE)
-	@DeleteMapping("/{ids}")
-    @ApiOperation("删除激活码")
-    public  Response<Integer> remove(
-            @ApiParam(name = "ids", value = "激活码ids参数", required = true)
-            @PathVariable Long[] ids
-    ){
-        return toResponse(vipCodeService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
-    }
-
-
-}

+ 0 - 140
nbjk-admin/src/main/java/com/miaxis/pc/controller/wx/PcWxController.java

@@ -1,140 +0,0 @@
-package com.miaxis.pc.controller.wx;
-
-import com.miaxis.common.annotation.Log;
-import com.miaxis.common.core.controller.BaseController;
-import com.miaxis.common.core.domain.Response;
-import com.miaxis.common.core.domain.entity.SysRole;
-import com.miaxis.common.core.domain.entity.SysUser;
-import com.miaxis.common.core.domain.vo.AgentVO;
-import com.miaxis.common.core.page.ResponsePageInfo;
-import com.miaxis.common.enums.BusinessTypeEnum;
-import com.miaxis.common.enums.OrderStatusEnum;
-import com.miaxis.common.exception.CustomException;
-import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.common.utils.StringUtils;
-import com.miaxis.system.service.ISysRoleService;
-import com.miaxis.system.service.ISysUserService;
-import com.miaxis.wx.domain.WxOrder;
-import com.miaxis.wx.dto.PcWxOrderListDTO;
-import com.miaxis.wx.dto.QuerySchoolOrderListDTO;
-import com.miaxis.wx.dto.WxNotifyReturnDTO;
-import com.miaxis.wx.service.IRefundRecordService;
-import com.miaxis.wx.service.IWxOrderService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-import static com.miaxis.common.utils.OrderCodeFactory.getOrderCode;
-
-/**
- */
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/activities/wx")
-@Api(tags = {"【pc-订单】"})
-@Slf4j
-class PcWxController extends BaseController {
-
-
-
-    @Autowired
-    private IWxOrderService wxOrderService;
-
-    @Autowired
-    private IRefundRecordService refundRecordService;
-
-    @Autowired
-    private ISysUserService userService;
-
-    @Autowired
-    private ISysRoleService roleService;
-
-
-
-
-    @GetMapping("/order/list")
-    @ApiOperation("查询订单列表")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
-    })
-    @PreAuthorize("@ss.hasPermi('activities:order:list')")
-    public ResponsePageInfo<WxOrder> list(@ModelAttribute PcWxOrderListDTO pcWxOrderListDTO){
-        startPage();
-        List<WxOrder> list = wxOrderService.selectPcOrderList(pcWxOrderListDTO);
-        return toResponsePageInfo(list);
-    }
-
-
-
-    /**
-     * 订单退款
-     */
-    @PreAuthorize("@ss.hasPermi('activities:order:refund')")
-    @Log(title = "订单退款", businessType = BusinessTypeEnum.UPDATE)
-    @PutMapping
-    @ApiOperation("订单退款")
-    public Response refund(String outTradeNo) throws Exception {
-        if (StringUtils.isEmpty(outTradeNo)){
-            throw new CustomException("订单号必传");
-        }
-        WxOrder wxOrder = wxOrderService.getByOutTradeNo(outTradeNo);
-        String refundCode = getOrderCode(null);
-        refundRecordService.refund(wxOrder, refundCode, "学车会员退款");
-        return Response.success();
-    }
-
-
-    @GetMapping("/order/school/list")
-    @ApiOperation("查询驾校订单列表")
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "pageNum",value = "当前页码" ,dataType = "int", paramType = "query", required = false),
-            @ApiImplicitParam(name = "pageSize",value = "每页数据量" , dataType = "int", paramType = "query", required = false),
-    })
-    @PreAuthorize("@ss.hasPermi('activities:order:schoolList')")
-    public ResponsePageInfo<WxOrder> schoolList(@ModelAttribute QuerySchoolOrderListDTO dto){
-        startPage();
-        SysUser user = SecurityUtils.getLoginUser().getUser();
-        dto.setReferralUserId(user.getUserId()==1l? dto.getReferralUserId(): user.getUserId());
-        List<WxOrder> list = wxOrderService.QuerySchoolOrderList(dto);
-        return toResponsePageInfo(list);
-    }
-
-
-    /**
-     * 查询驾校列表
-     */
-    @PreAuthorize("@ss.hasPermi('activities:order:schoolList')")
-    @GetMapping("/schoolList")
-    @ApiOperation("查询驾校列表")
-    public Response<List<AgentVO>> agentList(String schoolName){
-        SysRole sysRole = new SysRole();
-        sysRole.setRoleKey("school");
-        List<SysRole> sysRoles = roleService.selectRoleList(sysRole);
-        Long roleId = sysRoles.get(0).getRoleId();
-        List<AgentVO> sysUsersList =  userService.getAgentList(roleId,schoolName);
-        return Response.success(sysUsersList);
-    }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}

+ 4 - 5
nbjk-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java

@@ -230,18 +230,17 @@ public class SysLoginController
         WxUserInfo wxUserInfo = new WxUserInfo();
        // wxUserInfo.setOpenid("ovKTX5-FKLF6_sgTtCIXpG_lz3PY");
 
-        ServletUtils.getRequest().setAttribute("headImage","https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83erGMFzKaOmz6cIaA0J1nicWSlBLdLKY46N5CNCoASiajT7Z3RIfPngPhJsjmqsSjGCFibPU4vCtfz3aw/132");
-        ServletUtils.getRequest().setAttribute("nickName","Althars");
+        ServletUtils.getRequest().setAttribute("headImage","https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83ep9SaeZOHJGiagduLjJziclqJMpkyBW7RTuyLZPbufCiaayMsjKPUdfxd2xQM9gxicRibY6mvakH5fr0JQ/132");
+        ServletUtils.getRequest().setAttribute("nickName","小么熊");
         //ServletUtils.getRequest().setAttribute("third","weixin");
         //ServletUtils.getRequest().setAttribute("openid",wxUserInfo.getOpenid());
-        String token = loginService.login("oqEKX6GxPyBPfRbM-Bk01CGwA0oM",null, StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode());
+        String token = loginService.login("o_cXm6Boi-diVB7oc5pgajA5Y-U0",null, StudentLoginTypeEnum.AUTHORIZATION_CODE_LOGIN.getCode());
         TokenDTO tokenDTO = new TokenDTO();
         tokenDTO.setToken(token);
-
         return Response.success(tokenDTO) ;
+    }
 
 
-    }
 
     @PostMapping("/login/code/ios")
     @ApiOperation("IOS登录")

+ 6 - 5
nbjk-admin/src/main/resources/application-dev.yml

@@ -111,12 +111,13 @@ xcx:
 # 微信支付
 wxpay:
     v3url: https://api.mch.weixin.qq.com/v3/pay/transactions/app
+    v3JsUrl: https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi
     v3urlRefund: https://api.mch.weixin.qq.com/v3/refund/domestic/refunds
-    merchantId: 1611324484
-    serialNumber: 53EBF541F383371B121D7B57B25305FC0BB04F42
-    v3key: 7hM14893GvG3JK05575jk1l6P4tF042B
-    notifyUrl: http://1.15.26.233:8080/nbjk-admin/open-api/wx/notify/wxpay
-    notifyUrlRefund: http://1.15.26.233:8080/nbjk-admin/open-api/wx/notify/refund
+    merchantId: 1639487489
+    serialNumber: 1304D67DC59D94217412C49E20D5B0E00A5A122D
+    v3key: PIQKEpG1FEoBEELgv0GUxkUJKTkc0jGB
+    notifyUrl: http://nbjk-admin.zzxcx.net/prod-api/open-api/wx/notify/wxpay
+    notifyUrlRefund: http://nbjk-admin.zzxcx.net/prod-api/open-api/wx/notify/refund
 
 
 

+ 4 - 3
nbjk-admin/src/main/resources/application-prod.yml

@@ -113,9 +113,10 @@ xcx:
 # 微信支付
 wxpay:
     v3url: https://api.mch.weixin.qq.com/v3/pay/transactions/app
+    v3JsUrl: https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi
     v3urlRefund: https://api.mch.weixin.qq.com/v3/refund/domestic/refunds
-    merchantId: 1611324484
-    serialNumber: 53EBF541F383371B121D7B57B25305FC0BB04F42
-    v3key: 7hM14893GvG3JK05575jk1l6P4tF042B
+    merchantId: 1639487489
+    serialNumber: 1304D67DC59D94217412C49E20D5B0E00A5A122D
+    v3key: PIQKEpG1FEoBEELgv0GUxkUJKTkc0jGB
     notifyUrl: http://nbjk-admin.zzxcx.net/prod-api/open-api/wx/notify/wxpay
     notifyUrlRefund: http://nbjk-admin.zzxcx.net/prod-api/open-api/wx/notify/refund

+ 4 - 3
nbjk-admin/src/main/resources/application-prodtest.yml

@@ -111,9 +111,10 @@ xcx:
 # 微信支付
 wxpay:
     v3url: https://api.mch.weixin.qq.com/v3/pay/transactions/app
+    v3JsUrl: https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi
     v3urlRefund: https://api.mch.weixin.qq.com/v3/refund/domestic/refunds
-    merchantId: 1611324484
-    serialNumber: 53EBF541F383371B121D7B57B25305FC0BB04F42
-    v3key: 7hM14893GvG3JK05575jk1l6P4tF042B
+    merchantId: 1639487489
+    serialNumber: 1304D67DC59D94217412C49E20D5B0E00A5A122D
+    v3key: PIQKEpG1FEoBEELgv0GUxkUJKTkc0jGB
     notifyUrl: http://nbjk-admin.zzxcx.net/prod-api/open-api/wx/notify/wxpay
     notifyUrlRefund: http://nbjk-admin.zzxcx.net/prod-api/open-api/wx/notify/refund

BIN
nbjk-admin/src/main/resources/wechatpay/apiclient_cert.p12


+ 20 - 19
nbjk-admin/src/main/resources/wechatpay/apiclient_cert.pem

@@ -1,24 +1,25 @@
 -----BEGIN CERTIFICATE-----
-MIID8DCCAtigAwIBAgIUU+v1QfODNxsSHXtXslMF/AuwT0IwDQYJKoZIhvcNAQEL
+MIIEKDCCAxCgAwIBAgIUEwTWfcWdlCF0EsSeINWw4ApaEi0wDQYJKoZIhvcNAQEL
 BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
 FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
-Q0EwHhcNMjIwMTI2MDYwNjM0WhcNMjcwMTI1MDYwNjM0WjCBgTETMBEGA1UEAwwK
-MTYxMTMyNDQ4NDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL
-DCTnpo/lu7rkuK3mjK/nvZHnu5znp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYM
+Q0EwHhcNMjMwMzE0MTQzMDE1WhcNMjgwMzEyMTQzMDE1WjCBgTETMBEGA1UEAwwK
+MTYzOTQ4NzQ4OTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL
+DCTljqbpl6jnpZblhL/nvZHnu5znp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYM
 AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAJSCafbJ6jctCm3Wqm7Hp8jPwyxiuLRrB6w+6booqhWjqrTSyH9oWd0a
-vkbqdsKsh4xRkzyGFN1M0axge7BbqZYhEkB/StIsPn/jNcSTwZzqDsyQ1iv2eNrI
-e0/vK+11NJAZC9Bp7ATIacOuxUYRuj2dKoLKivUi55CLUbg3dg6HksyqPuhLyai7
-FR40tqVNeHRcS9YHtsWn8qMMX31K5l8sv1ukVF0KbpOrvaIlD6zWQOcFfV7dGqVy
-GnRfxrC6Oms/yBlKF5Zu5GyA5M7jJa9dqS/CgY/XCgXv/6lAFLLyC2i5Qgv5ICz0
-1aiS0Eix7rrHIij91ZoDChbQiQYH4M8CAwEAAaOBgTB/MAkGA1UdEwQCMAAwCwYD
-VR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0cnVzLmNv
-bS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2QUQzOTc1
-NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEASGhYlRSryI2yC4Cj
-Tc7A9r6qXmCo6fcSzM8mQ0whj8H9QoQc+p3HnX4ZDVFpi9DDc1LgCYmBg06AhNgE
-hrMIEuJ2PMla0c1v9iMsE174+lmAFh2dQ4x7UGHt/ui2FE6WmqaSEs/iLF0o6qU6
-AIXAHo+G+e1mlVbLhxTC6/ntO7v3qka/0Te77vKMaguE5zYWvvSbXB0rgaMnvrQo
-gsvj8i0LIJHljKMUUttjA7vJehiLigr2sMlO6ovcrGdo5wNPg6vMqkSOnBpDf/XP
-C/Vz8KuJIvTtsFjGuJ+iCLCCpxsjF8dArJQrRAp8VC1o/mmRyZns1nVbZrPFHmYv
-TMhTvw==
+AQoCggEBANQcYjmCbzh8ir9Hy/gMNaaQxi+tIxIxF2FXZ9g9F/RSGzRSX58VHBAN
+q326xrExjGnopIei2hSQkIYICbLPdC183Sumt32VBCDmC/byvOceaDIXzi6un5dA
+cYTloP3v9q4sXtPb8Z/C5e5VDhHEkIPEIMcUl8k3Z+ismNsabOUi2cmlpQn5sKXS
+hn5ZdUJ9eFOy8k9x9aA2fMW4ZQO9XClf0XQZvoUlq+oX4MBTjJWh3pvsteOibY9S
+Pl0AEvb/sWd8s63f2ruMhiX3Ai88VHwTzhjv7pBfLohfcQxCkABgqSR1Ktb+QbgT
+qEXM/DsjwY4QUlKksT3rwb8Amg7pzF8CAwEAAaOBuTCBtjAJBgNVHRMEAjAAMAsG
+A1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2Y2Eu
+aXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRC
+MDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJCMjdB
+OUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQAzjUq/
+mLRUe9fYsY0gRCV6cuC3MRYlOZCLd8XDAEOHPO5Nh4QAGrF+odPFbEufUWJXuNaq
+/ZlzEu3FQ2eI+VpZMuYvpRcxkubc9ey9UZJmbGDCq5bxKhFVUcQpNr5dqOyEOgn5
+q9skvYD5AZlSrjr1rVPEw/AaruwAE5xItU/Ic2iHunBO+DvxG7T/oCTSeGtHqivg
+duf3Glc7azIqhrhdlz7utfWm3maGkDKs/oIM6DY6nANozyIzR31WdC0CvA+2WxJE
+TtekftPfy+WI8+XVOBFVzYnurfcUuTyZX6/0ky3xqd4vQjG6fwtorKRcD2Rpx6cS
+9qHY/pR1BFPZCG7U
 -----END CERTIFICATE-----

+ 26 - 26
nbjk-admin/src/main/resources/wechatpay/apiclient_key.pem

@@ -1,28 +1,28 @@
 -----BEGIN PRIVATE KEY-----
-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCUgmn2yeo3LQpt
-1qpux6fIz8MsYri0awesPum6KKoVo6q00sh/aFndGr5G6nbCrIeMUZM8hhTdTNGs
-YHuwW6mWIRJAf0rSLD5/4zXEk8Gc6g7MkNYr9njayHtP7yvtdTSQGQvQaewEyGnD
-rsVGEbo9nSqCyor1IueQi1G4N3YOh5LMqj7oS8mouxUeNLalTXh0XEvWB7bFp/Kj
-DF99SuZfLL9bpFRdCm6Tq72iJQ+s1kDnBX1e3Rqlchp0X8awujprP8gZSheWbuRs
-gOTO4yWvXakvwoGP1woF7/+pQBSy8gtouUIL+SAs9NWoktBIse66xyIo/dWaAwoW
-0IkGB+DPAgMBAAECggEBAIAG1bbtZr7eU2lRcGhEMr8JbSZsjPLsehbhvbjAqbAy
-Ak4UkMhVe3MDRRn5sxwshEZRZO7+YCpPuUozey4UN2S3afa0RhpeDhtOEuI+xuCx
-XsS38ArCVnm176h/dY0mR4QaM3ceeVu+Mn+BwYugaMAJJ8bNOXIO/zY7BN4c4eev
-ZIu0Zz86boDsHR1D9Zmx2SMe7V02ka8GGN/PAd1N47iZdzGUWYrchkg7KFqCn4KF
-HObRmodVf1OuSJyqOomJkU4uaj0UsW/ww7DgVIk898EHmkdulR6DC/45rCKpPd3D
-jQ93SiSb0oPZRyC/Pk/z/DAauet+/SIMT5qbI4XmWhECgYEAw/1OQPIN/XWSzvtT
-sFMCit4GLZll/HeYLj856RWw2/Jqn4/ZlBp0BBmrr1HT3m1TZq1UCjP0OyNYtKGu
-a8inzjYvricplfq9avwc0q1leAwj+sxnevJ6/qs2h6aX1a1uJZVFUNQTyY1oAyR2
-eUBqrNWLAI48CcIiUF0Ug+0vb6MCgYEAwfte16Oj6ZnLNE30xsmXQ80gZ2MHZK1q
-b4NeUBsr8pkRQcG3gbmXzBnX0RmBDyaRp1vyPS3vs/oO5v4GVeoOXjddsMofNUF1
-l7MWzv/fRj8G2FLXGEf5X0GUBZkFbAnQObqaQmFmtMpvBWswEqJMnyL/yRej17XM
-EvwVw1GDLOUCgYEAkkBPCeXXDMGU6QHhRJ3dMtVVlOd4lHqGRFSIGWhHTwpKCIHm
-4j8PPhQN6slMKho491D2epqkcRECW+Ce8O2OUzJaSEIPJU0z1kcGFyyvoHKm0rt/
-qN6Ta8FF8todSaWeoUsPq65miawM5vNpuTeZoxnDHYoGQV3uDzw2V/BByrMCgYA1
-6tCpz2o3++9nUmO+/Tl2NwXStsvPSARVioYkbekBPVp2lImVHSj8KhK6pAQjWe0S
-P5RNPP9rXw3VVrYcGzpzJaB9CzExdEhjKfwk/SnqNIqKhjwTG65Ms8WY6LeBGBkw
-cpV97eTGS54gO3LZOxNhCDFgi5mW04ktnbPO3lE/oQKBgQC3B4ZlyruLELcx0BpU
-FY5t8BendO8J5h62CTvk+dIn+1VrwJw4ucgdw3aoewumhgQR1uxfjLMpx+xkw38v
-eXdYPq89S2NiBHE553GLgG+luBQJOYcLQO69L2VgRGiFuaasZF73NgxTN2jyRKW2
-5LyLH3avp2Q27rBYaL7l/HRMRw==
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDUHGI5gm84fIq/
+R8v4DDWmkMYvrSMSMRdhV2fYPRf0Uhs0Ul+fFRwQDat9usaxMYxp6KSHotoUkJCG
+CAmyz3QtfN0rprd9lQQg5gv28rznHmgyF84urp+XQHGE5aD97/auLF7T2/GfwuXu
+VQ4RxJCDxCDHFJfJN2forJjbGmzlItnJpaUJ+bCl0oZ+WXVCfXhTsvJPcfWgNnzF
+uGUDvVwpX9F0Gb6FJavqF+DAU4yVod6b7LXjom2PUj5dABL2/7FnfLOt39q7jIYl
+9wIvPFR8E84Y7+6QXy6IX3EMQpAAYKkkdSrW/kG4E6hFzPw7I8GOEFJSpLE968G/
+AJoO6cxfAgMBAAECggEAQ1NnEh4Gs4VEfQaLBYbKmL4nSgbItQOECk+2FHr/2Xse
+S3NCCrqml6nfHx9j5eZ2TT+cybi1RAXG+eQfP/R9SdryUOKwJ1pfXxnl/lJ6B1ot
+dIj91u9ylI3N+oLwoOnEAPDwgIq1nSI93XJ97sHXpRth1A8DRskhYEc4lYNDwU7E
+Lsa+bLLg1qEuTQcSohaqrzPr2OYP6JW0DZ9PozaSjWoj516H9wSAjf7ZSx0yW5ZV
+2bIf5q+jMOcI1V3HM3Ya9eT+ggnQurW1Y44SZAgHJNyxtH3Ka8hrJiqBlbc6mAdB
+KsoG6NLink8LAHJOVG0wr5WzDw+Vn1S3wtYCOeqtEQKBgQD8b7fLmBH9AsuVCi4s
+1ng7y2oDLYHDDKnAQoXt9cb1OiLbi4ALEwJH8Cgq1oGR6qUt4UJiv5TyGPLoXN3Y
+1DEIgPtLSJ/D7sIxEkblDAZQeSVGY6htMEyuL4GzBwc5++BpMSQVFujpT+oH2nSM
+IUH3zRD8rMgjtj1CQ3vqomsk8wKBgQDXGu7X/+f6Z8I8no92SUzTgp3Pvap7yslA
+fuwbBR+0o1Kzx4otp7C/lHCLPB7A8NSNrgoGb8rn0611/hVSqO6ge5ZMnoukPph3
+E5ib6v1d3NUyQwHdKZfkdzfg0g0iMRO3X03QrPx36+VI5tZl1BXbBc+HNYte5tTU
+5SkDZ4MF5QKBgQCOg2fJCh5Fr7lNeATfjWktoMZF6wASJOkEwMmpsRLUyTB6r8Pm
+/KFSCbQzkwxtW4JLZ5u58hzdnNYt9pfMXOcdvOuh8es4i2eYmo/pqaM69Vnk5khk
+9FqmD+3yK2qaAqgL2xFa0qdFaLdgHaWkovYCNwR7EfSfrLfi3ARuT6mbnwKBgEux
+qJbN8L4HQSy/x1AinyxW7F2sKpABXiyZ/U/Mz8lrJ7En6JIETog8HhaBA3l1xfZN
+Zi25rTdDH+lDjhFWbRKAKvWvXQhhFpnghXVojdw317YmKkO/XToCUeGFSSXdC0kd
++m4SUY2Jr1emE5Alv8MhGlREHVU5+W8pbPNLu6mZAoGAUJMtVFYZLJT98kh45sLn
+OEJtBF1oPUwrq2cXygP5RdMfn2tF7W9Q0hbEmbY8yXJ2DMyxTMYDKyEFiOQk0z1w
+ucpXy57rlA0w7zHsGgtnnRWzzUhGrTVqyjcPkTaV9qU5q2va1MSMaPVcXFprF6yC
+Wg09WDojuRCVTyXSRwtwZUs=
 -----END PRIVATE KEY-----

+ 27 - 0
nbjk-admin/src/test/java/com/miaxis/test/RandomStringGenerator.java

@@ -0,0 +1,27 @@
+package com.miaxis.test;
+
+import java.security.SecureRandom;
+import java.util.Locale;
+import java.util.Random;
+
+
+public class RandomStringGenerator {
+
+
+    private static final String CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+    private static final Random RANDOM = new SecureRandom();
+
+    public static String generateRandomString(int length) {
+        StringBuilder sb = new StringBuilder(length);
+        for (int i = 0; i < length; i++) {
+            sb.append(CHARACTERS.charAt(RANDOM.nextInt(CHARACTERS.length())));
+        }
+        return sb.toString();
+    }
+
+    public static void main(String[] args) {
+        String randomString = generateRandomString(32);
+        System.out.println(randomString);
+    }
+
+}

+ 2 - 2
nbjk-common/src/main/java/com/miaxis/common/config/WxPayConfigImpl.java

@@ -56,12 +56,12 @@ public class WxPayConfigImpl implements WXPayConfig {
 
     @Override
     public String getMchID() {
-        return "1611324484";
+        return "1639487489";
     }
 
     @Override
     public String getKey() {
-        return "7hM14893GvG3JK05575jk1l6P4tF042B";
+        return "qqwweerrttyyuuiioopp123456789000";
     }
 
     @Override

+ 4 - 1
nbjk-common/src/main/java/com/miaxis/common/config/WxpayConfig.java

@@ -8,8 +8,11 @@ import org.springframework.stereotype.Component;
 @Component
 @ConfigurationProperties(prefix = "wxpay")
 public class WxpayConfig {
-
+    //APP支付下单地址
     private String v3url;
+    //小程序 公众号微信体系内支付下单地址
+    private String v3JsUrl;
+
     //退款
     private String v3urlRefund;
     //退款回调

+ 0 - 6
nbjk-common/src/main/java/com/miaxis/common/core/domain/entity/SysDictData.java

@@ -2,16 +2,10 @@ package com.miaxis.common.core.domain.entity;
 
 import com.miaxis.common.annotation.Excel;
 import com.miaxis.common.annotation.Excel.ColumnType;
-import com.miaxis.common.constant.UserConstants;
 import com.miaxis.common.core.domain.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
 
 /**
  * 字典数据表 sys_dict_data

+ 1 - 1
nbjk-framework/src/main/java/com/miaxis/framework/config/SecurityConfig.java

@@ -104,7 +104,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 // 对于登录login 验证码captchaImage 允许匿名访问
                 .antMatchers("/login", "/login/noCode","/captchaImage","/login/code","/login/gzhcode",
                         "/login/code/test","/login/jscode-test","/login/jscode","/login/code/ios","/login/dycode",
-                        "/login/ttcode","/login/ttcodeTest").anonymous()
+                        "/login/ttcode","/login/ttcodeTest","/login/xcx/test","/login/app/test").anonymous()
                 //.antMatchers("/student/open/**").permitAll()
                 .antMatchers("/student/**").hasRole("STUDENT")
                 .antMatchers(

+ 115 - 28
nbjk-service/src/main/java/com/miaxis/order/domain/OrderInfo.java

@@ -1,6 +1,7 @@
 package com.miaxis.order.domain;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.miaxis.common.annotation.Excel;
@@ -18,58 +19,144 @@ import java.util.Date;
  * @date 2021-08-19
  */
 @Data
-@TableName("v_wx_order")
-@ApiModel(value = "OrderInfo", description = "订单视图")
+@TableName("order_info")
+@ApiModel(value = "OrderInfo", description = "订单信息对象 order_info")
 public class OrderInfo extends BaseBusinessEntity{
     private static final long serialVersionUID = 1L;
 
     /** 主键 */
+    @TableId(value = "id")
     @ApiModelProperty(value = "主键")
     private Long id;
 
-    /** 商品名称 */
-    @Excel(name = "商品名称")
+    /** 商品 */
+    @Excel(name = "商品")
     @TableField("goods_name")
-    @ApiModelProperty(value = "商品名称")
+    @ApiModelProperty(value = "商品")
     private String goodsName;
 
-    /** 订单号 */
-    @Excel(name = "订单号")
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户ID")
+    private Long userId;
+
+    /** 微信开放平台unionid */
+    @Excel(name = "微信开放平台unionid")
+    @TableField("union_id")
+    @ApiModelProperty(value = "微信开放平台unionid")
+    private String unionId;
+
+    /** 手机app_openid */
+    @Excel(name = "手机app_openid")
+    @TableField("app_openid")
+    @ApiModelProperty(value = "手机app_openid")
+    private String appOpenid;
+
+    /** xcx_openid */
+    @Excel(name = "小程序端openid")
+    @TableField("xcx_openid")
+    @ApiModelProperty(value = "小程序端openid")
+    private String xcxOpenid;
+
+    /** gzh_openid */
+    @Excel(name = "公众号openid")
+    @TableField("gzh_openid")
+    @ApiModelProperty(value = "公众号openid")
+    private String gzhOpenid;
+
+    /** 订单编号 */
+    @Excel(name = "订单编号")
     @TableField("out_trade_no")
-    @ApiModelProperty(value = "订单号")
+    @ApiModelProperty(value = "订单号")
     private String outTradeNo;
 
-    /** 退款订单号 */
-    @Excel(name = "退款订单号")
+    /** 退款订单号 */
+    @Excel(name = "退款订单号")
     @TableField("out_refund_no")
-    @ApiModelProperty(value = "退款订单号")
+    @ApiModelProperty(value = "退款订单号")
     private String outRefundNo;
 
-    /** 订单总金额 */
-    @Excel(name = "订单总金额")
+
+    /** 总金额*/
+    @Excel(name = "总金额")
     @TableField("total")
-    @ApiModelProperty(value = "打开类型 1站内打开 2站外打开")
+    @ApiModelProperty(value = "总金额")
     private Integer total;
 
-    /** 交易类型 */
-    @Excel(name = "交易类型")
+    /** 交易状态 1、支付成功2、支付失败*/
+    @Excel(name = "交易状态 1、支付成功2、支付失败")
     @TableField("trade_type")
-    @ApiModelProperty(value = "交易类型")
-    private String tradeType;
-
+    @ApiModelProperty(value = "微信交易状态,枚举值:")
+    private Integer tradeType;
 
-    /** 交易成功时间 */
-    @Excel(name = "交易成功时间")
-    @TableField("success_time")
+    /** 支付完成时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "交易成功时间")
+    @Excel(name = "支付完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @TableField("success_time")
+    @ApiModelProperty(value = "支付完成时间")
     private Date successTime;
 
-    /** 交易成功时间 */
-    @Excel(name = "佣金")
-    @TableField("commission_price")
-    @ApiModelProperty(value = "佣金")
-    private Integer commissionPrice;
+    /** 1:微信 2:支付宝 */
+    @TableField("pay_type")
+    @ApiModelProperty(value = "1:微信 2:支付宝")
+    private Integer payType;
+
+    /** 是否分成 */
+    @Excel(name = "是否分成给驾校 0:不分成  1:分成")
+    @TableField("is_share")
+    @ApiModelProperty(value = "是否分成给驾校 0:不分成  1:分成")
+    private Integer isShare;
+
+    /** 地区编号 */
+    @Excel(name = "地区编号")
+    @TableField("dqbh")
+    @ApiModelProperty(value = "地区编号")
+    private String dqbh;
+
+    /** 地区编号 */
+    @Excel(name = "地区名称")
+    @TableField("dqmc")
+    @ApiModelProperty(value = "地区名称")
+    private String dqmc;
+
+    /** 驾校编号 */
+    @Excel(name = "驾校编号")
+    @TableField("school")
+    @ApiModelProperty(value = "驾校编号")
+    private String school;
+
+    /** 驾校名称 */
+    @Excel(name = "驾校名称")
+    @TableField("school_name")
+    @ApiModelProperty(value = "驾校名称")
+    private String schoolName;
+
+    /** 驾校提成 */
+    @Excel(name = "驾校提成")
+    @TableField("school_commission")
+    @ApiModelProperty(value = "驾校提成")
+    private Integer schoolCommission;
+
+    /** 手机类型 1:苹果 2:安卓 */
+    @Excel(name = "手机类型 1:苹果 2:安卓")
+    @TableField("phone_type")
+    @ApiModelProperty(value = "手机类型 1:苹果 2:安卓")
+    private Integer phoneType;
+
+
+    /** 前端类型 1:app 2:小程序 3:公众号 */
+    @Excel(name = "前端类型")
+    @TableField("fore_type")
+    @ApiModelProperty(value = "前端类型 1:app 2:小程序 3:公众号")
+    private Integer foreType;
+
+
+    /** 退款原因 */
+    @Excel(name = "退款原因")
+    @TableField("refund_reason")
+    @ApiModelProperty(value = "退款原因")
+    private String refundReason;
 
 
 

+ 8 - 5
nbjk-service/src/main/java/com/miaxis/order/service/IOrderInfoService.java

@@ -5,6 +5,7 @@ import com.miaxis.order.domain.OrderInfo;
 import com.miaxis.order.dto.OrderInfoDto;
 import com.miaxis.order.dto.OrderInfoMonthDto;
 import com.miaxis.order.vo.OrderInfoMonthVo;
+import com.miaxis.wx.domain.WxOrder;
 
 import java.util.List;
 
@@ -14,22 +15,24 @@ import java.util.List;
  * @author miaxis
  * @date 2021-08-19
  */
-public interface IOrderInfoService extends IService<OrderInfo>{
+public interface IOrderInfoService extends IService<OrderInfo> {
     /**
      * 查询ad列表
      *
      * @param orderInfoDto orderInfo
      * @return order集合
      */
-    public List<OrderInfo> selectOrderInfoList(OrderInfoDto orderInfoDto);
+    List<OrderInfo> selectOrderInfoList(OrderInfoDto orderInfoDto);
 
-    public Integer selectTotal(OrderInfoDto orderInfoDto);
+    Integer selectTotal(OrderInfoDto orderInfoDto);
 
 
-    public Integer selectYesterdayTotal(OrderInfoDto orderInfoDto);
+    Integer selectYesterdayTotal(OrderInfoDto orderInfoDto);
 
-    public Integer selectTodayTotal(OrderInfoDto orderInfoDto);
+    Integer selectTodayTotal(OrderInfoDto orderInfoDto);
 
 
     List<OrderInfoMonthVo> selectMonthIncome(OrderInfoMonthDto orderInfoMonthDto);
+
+    void writeVipDataToDb(WxOrder wxOrder, int payType);
 }

+ 22 - 0
nbjk-service/src/main/java/com/miaxis/order/service/impl/OrderInfoServiceImpl.java

@@ -8,10 +8,12 @@ import com.miaxis.order.dto.OrderInfoMonthDto;
 import com.miaxis.order.mapper.OrderInfoMapper;
 import com.miaxis.order.service.IOrderInfoService;
 import com.miaxis.order.vo.OrderInfoMonthVo;
+import com.miaxis.wx.domain.WxOrder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheConfig;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -61,6 +63,26 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         return orderInfoMapper.selectMonthIncome(orderInfoMonthDto);
     }
 
+    @Override
+    public void writeVipDataToDb(WxOrder order, int payType) {
+        Date now = new Date();
+        OrderInfo orderInfo = new OrderInfo();
+        orderInfo.setGoodsName(order.getGoodsName());
+        orderInfo.setUserId(order.getUserId());
+        orderInfo.setUnionId(order.getUnionId());
+        orderInfo.setAppOpenid(order.getAppOpenid());
+        orderInfo.setXcxOpenid(order.getXcxOpenid());
+        orderInfo.setGzhOpenid(order.getGzhOpenid());
+        orderInfo.setOutTradeNo(order.getOutTradeNo());
+        orderInfo.setTotal(order.getTotal());
+        orderInfo.setTradeType(1);
+        orderInfo.setSuccessTime(now);
+        orderInfo.setPayType(payType);
+        orderInfo.setForeType(order.getForeType());
+
+        this.save(orderInfo);
+    }
+
 
 }
 

+ 0 - 122
nbjk-service/src/main/java/com/miaxis/vip/domain/VipCode.java

@@ -1,122 +0,0 @@
-package com.miaxis.vip.domain;
-
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.miaxis.common.annotation.Excel;
-import com.miaxis.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.miaxis.common.core.domain.BaseBusinessEntity;
-import lombok.Data;
-/**
- * 激活码对象 vip_code
- *
- * @author miaxis
- * @date 2021-08-18
- */
-@Data
-@TableName("vip_code")
-@ApiModel(value = "VipCode", description = "激活码对象 vip_code")
-public class VipCode extends BaseBusinessEntity{
-    private static final long serialVersionUID = 1L;
-
-    /** id */
-    @TableId(value = "id")
-    @ApiModelProperty(value = "id")
-    private Long id;
-
-    /** 激活码 */
-    @Excel(name = "激活码")
-    @TableField("vip_code")
-    @ApiModelProperty(value = "激活码")
-    private String vipCode;
-
-    /** 激活状态 0-未激活 1-已激活 2-已作废 */
-    @Excel(name = "激活状态 0-未激活 1-已激活 2-已作废")
-    @TableField("status")
-    @ApiModelProperty(value = "激活状态 0-未激活 1-已激活 2-已作废")
-    private Integer status;
-
-    /** 激活时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd")
-    @TableField("activation_time")
-    @ApiModelProperty(value = "激活时间")
-    private Date activationTime;
-
-    /** 激活用户id */
-    @Excel(name = "激活用户id")
-    @TableField("activation_user_id")
-    @ApiModelProperty(value = "激活用户id")
-    private Long activationUserId;
-
-    /** 激活码 */
-    @Excel(name = "代理商id")
-    @TableField("agent_id")
-    @ApiModelProperty(value = "代理商id")
-    private Long agentId;
-
-//    /** 激活码 */
-//    @Excel(name = "代理商名称")
-//    @TableField("agent_name")
-//    @ApiModelProperty(value = "代理商名称")
-//    private String agentName;
-
-
-
-
-    public void setId(Long id){
-        this.id = id;
-    }
-
-    public Long getId(){
-        return id;
-    }
-    public void setVipCode(String vipCode){
-        this.vipCode = vipCode;
-    }
-
-    public String getVipCode(){
-        return vipCode;
-    }
-    public void setStatus(Integer status){
-        this.status = status;
-    }
-
-    public Integer getStatus(){
-        return status;
-    }
-    public void setActivationTime(Date activationTime){
-        this.activationTime = activationTime;
-    }
-
-    public Date getActivationTime(){
-        return activationTime;
-    }
-    public void setActivationUserId(Long activationUserId){
-        this.activationUserId = activationUserId;
-    }
-
-    public Long getActivationUserId(){
-        return activationUserId;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("vipCode", getVipCode())
-            .append("createTime", getCreateTime())
-            .append("updateTime", getUpdateTime())
-            .append("status", getStatus())
-            .append("activationTime", getActivationTime())
-            .append("activationUserId", getActivationUserId())
-            .toString();
-    }
-}

+ 0 - 56
nbjk-service/src/main/java/com/miaxis/vip/dto/QueryVipCodeListDTO.java

@@ -1,56 +0,0 @@
-package com.miaxis.vip.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.miaxis.common.annotation.Excel;
-import com.miaxis.common.core.domain.BaseBusinessEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-import java.util.Date;
-
-/**
- * 激活码对象 vip_code
- *
- * @author miaxis
- * @date 2021-08-18
- */
-@Data
-@TableName("vip_code")
-@ApiModel(value = "VipCode", description = "激活码对象 vip_code")
-public class QueryVipCodeListDTO extends BaseBusinessEntity{
-    private static final long serialVersionUID = 1L;
-
-
-    /** 激活码 */
-    @Excel(name = "激活码")
-    @TableField("vip_code")
-    @ApiModelProperty(value = "激活码")
-    private String vipCode;
-
-    /** 激活状态 0-未激活 1-已激活 2-已作废 */
-    @Excel(name = "激活状态 0-未激活 1-已激活 2-已作废")
-    @TableField("status")
-    @ApiModelProperty(value = "激活状态 0-未激活 1-已激活 2-已作废")
-    private Integer status;
-
-
-    @ApiModelProperty(value = "激活开始时间,格式yyyyMMdd")
-//    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
-    private String startTime;
-
-
-    @ApiModelProperty(value = "激活结束时间,格式yyyyMMdd")
-//    @JsonFormat(pattern="yyyyMMdd",timezone = "GMT+8")
-    private String endTime;
-
-    @ApiModelProperty(value = "代理商id")
-    private Long agentId;
-
-
-}

+ 0 - 80
nbjk-service/src/main/java/com/miaxis/vip/dto/VipCodeListVo.java

@@ -1,80 +0,0 @@
-package com.miaxis.vip.dto;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.miaxis.common.annotation.Excel;
-import com.miaxis.common.core.domain.BaseBusinessEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-import java.util.Date;
-
-/**
- * 激活码对象 vip_code
- *
- * @author miaxis
- * @date 2021-08-18
- */
-@Data
-public class VipCodeListVo {
-    private static final long serialVersionUID = 1L;
-
-    /** id */
-    @TableId(value = "id")
-    @ApiModelProperty(value = "id")
-    private Long id;
-
-    /** 激活码 */
-    @Excel(name = "激活码")
-    @TableField("vip_code")
-    @ApiModelProperty(value = "激活码")
-    private String vipCode;
-
-    /** 激活状态 0-未激活 1-已激活 2-已作废 */
-    @Excel(name = "激活状态 0-未激活 1-已激活 2-已作废")
-    @TableField("status")
-    @ApiModelProperty(value = "激活状态 0-未激活 1-已激活 2-已作废")
-    private Integer status;
-
-    /** 激活时间 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd")
-    @TableField("activation_time")
-    @ApiModelProperty(value = "激活时间")
-    private Date activationTime;
-
-    /** 激活用户id */
-    @Excel(name = "激活用户id")
-    @TableField("activation_user_id")
-    @ApiModelProperty(value = "激活用户id")
-    private Long activationUserId;
-
-    /** 激活码 */
-    @Excel(name = "激活用户名称")
-    @TableField("activation_user_name")
-    @ApiModelProperty(value = "激活用户名称")
-    private String activationUserName;
-
-    /** 激活码 */
-    @Excel(name = "代理商id")
-    @TableField("agent_id")
-    @ApiModelProperty(value = "代理商id")
-    private Long agentId;
-
-    /** 激活码 */
-    @Excel(name = "代理商名称")
-    @TableField("agent_name")
-    @ApiModelProperty(value = "代理商名称")
-    private String agentName;
-
-
-
-
-
-
-}

+ 0 - 23
nbjk-service/src/main/java/com/miaxis/vip/mapper/VipCodeMapper.java

@@ -1,23 +0,0 @@
-package com.miaxis.vip.mapper;
-
-import java.util.List;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.miaxis.vip.domain.VipCode;
-import com.miaxis.vip.dto.QueryVipCodeListDTO;
-
-/**
- * 激活码Mapper接口
- *
- * @author miaxis
- * @date 2021-08-18
- */
-public interface VipCodeMapper extends BaseMapper<VipCode> {
-    /**
-     * 查询激活码列表
-     *
-     * @param vipCode 激活码
-     * @return 激活码集合
-     */
-    public List<VipCode> selectVipCodeList(QueryVipCodeListDTO vipCode);
-
-}

+ 0 - 26
nbjk-service/src/main/java/com/miaxis/vip/service/IVipCodeService.java

@@ -1,26 +0,0 @@
-package com.miaxis.vip.service;
-
-import java.util.List;
-import java.util.Map;
-
-import com.miaxis.vip.domain.VipCode;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.miaxis.vip.dto.QueryVipCodeListDTO;
-
-/**
- * 激活码Service接口
- *
- * @author miaxis
- * @date 2021-08-18
- */
-public interface IVipCodeService extends IService<VipCode>{
-    /**
-     * 查询激活码列表
-     *
-     * @param vipCode 激活码
-     * @return 激活码集合
-     */
-    public List<VipCode> selectVipCodeList(QueryVipCodeListDTO vipCode);
-
-
-}

+ 0 - 48
nbjk-service/src/main/java/com/miaxis/vip/service/impl/VipCodeServiceImpl.java

@@ -1,48 +0,0 @@
-package com.miaxis.vip.service.impl;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.miaxis.common.utils.DateUtils;
-import com.miaxis.common.utils.SecurityUtils;
-import com.miaxis.system.service.ISysUserService;
-import com.miaxis.vip.dto.QueryVipCodeListDTO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.apache.commons.lang3.StringUtils;
-import com.miaxis.vip.mapper.VipCodeMapper;
-import com.miaxis.vip.domain.VipCode;
-import com.miaxis.vip.service.IVipCodeService;
-
-/**
- * 激活码Service业务层处理
- *
- * @author miaxis
- * @date 2021-08-18
- */
-@Service
-public class VipCodeServiceImpl extends ServiceImpl<VipCodeMapper, VipCode> implements IVipCodeService {
-    @Autowired
-    private VipCodeMapper vipCodeMapper;
-
-
-    @Autowired
-    private ISysUserService sysUserService;
-
-    /**
-     * 查询激活码列表
-     *
-     * @param vipCode 激活码
-     * @return 激活码
-     */
-    @Override
-    public List<VipCode> selectVipCodeList(QueryVipCodeListDTO vipCode){
-        return vipCodeMapper.selectVipCodeList(vipCode);
-    }
-
-
-}

+ 43 - 54
nbjk-service/src/main/java/com/miaxis/wx/domain/WxOrder.java

@@ -13,8 +13,7 @@ import lombok.Data;
 import java.util.Date;
 
 /**
- * 电影订单对象 film_order
- *
+ * 微信支付预生成订单表
  * @author miaxis
  * @date 2021-05-07
  */
@@ -29,13 +28,43 @@ public class WxOrder extends BaseBusinessEntity {
     @ApiModelProperty(value = "id")
     private Long id;
 
-
     /** 商品名称 */
     @Excel(name = "商品名称")
     @TableField("goods_name")
     @ApiModelProperty(value = "商品名称")
     private String goodsName;
 
+    /** 用户ID */
+    @Excel(name = "用户ID")
+    @TableField("user_id")
+    @ApiModelProperty(value = "用户ID")
+    private Long userId;
+
+    /** 用户union_id */
+    @Excel(name = "union_id")
+    @TableField("union_id")
+    @ApiModelProperty(value = "union_id")
+    private String unionId;
+
+    /** app_openid */
+    @Excel(name = "app_openid")
+    @TableField("app_openid")
+    @ApiModelProperty(value = "app_openid")
+    private String appOpenid;
+
+    /** xcx_openid */
+    @Excel(name = "小程序openid")
+    @TableField("xcx_openid")
+    @ApiModelProperty(value = "用户ID")
+    private String xcxOpenid;
+
+    /** gzh_openid */
+    @Excel(name = "公众号openid")
+    @TableField("gzh_openid")
+    @ApiModelProperty(value = "用户ID")
+    private String gzhOpenid;
+
+
     /** 商户订单号 */
     @Excel(name = "商户订单号")
     @TableField("out_trade_no")
@@ -54,7 +83,6 @@ public class WxOrder extends BaseBusinessEntity {
     @ApiModelProperty(value = "退款原因")
     private String refundReason;
 
-
     /** 微信支付系统生成的订单号 */
     @Excel(name = "微信支付系统生成的订单号")
     @TableField("transaction_id")
@@ -106,35 +134,6 @@ public class WxOrder extends BaseBusinessEntity {
     @ApiModelProperty(value = "支付完成时间")
     private Date successTime;
 
-    /** 微信openid */
-    @Excel(name = "app端openid")
-    @TableField("app_openid")
-    @ApiModelProperty(value = "app端openid")
-    private String appOpenid;
-
-    /** 微信openid */
-    @Excel(name = "小程序端openid")
-    @TableField("xcx_openid")
-    @ApiModelProperty(value = "小程序端openid")
-    private String xcxOpenid;
-
-    /** 用户在直连商户appid下的唯一标识 */
-    @Excel(name = "union_id")
-    @TableField("union_id")
-    @ApiModelProperty(value = "union_id")
-    private String unionId;
-
-    /** 商品名称 */
-    @Excel(name = "商品类型")
-    @TableField("goods_type")
-    @ApiModelProperty(value = "商品类型,具体查看字典定义.")
-    private String goodsType;
-
-    /** 商品名称 */
-    @Excel(name = "商品图片地址")
-    @TableField("goods_picture_url")
-    @ApiModelProperty(value = "商品图片地址")
-    private String goodsPictureUrl;
 
     /** 订单总金额,单位为分。 */
     @Excel(name = "订单总金额,单位为分。")
@@ -160,34 +159,24 @@ public class WxOrder extends BaseBusinessEntity {
     @ApiModelProperty(value = "用户支付币种")
     private String payerCurrency;
 
-    /** 商户端设备号 */
-    @Excel(name = "商户端设备号")
-    @TableField("device_id")
-    @ApiModelProperty(value = "商户端设备号")
-    private String deviceId;
-
-
-    /** 商户端设备号 */
-    @Excel(name = "订单数据详情")
-    @TableField("order_data_json")
-    @ApiModelProperty(value = "订单数据详情")
-    private String orderDataJson;
-
     /** 订单状态 */
     @Excel(name = "订单数据详情")
     @TableField("order_status")
     @ApiModelProperty(value = "订单状态: 1 -进行中 2-购买成功 3-购买失败")
     private String orderStatus;
 
-    /** id */
-    @ApiModelProperty(value = "推荐人id")
-    private Long referralUserId;
+    /** 手机类型 1:苹果 2:安卓 */
+    @Excel(name = "手机类型")
+    @TableField("phone_type")
+    @ApiModelProperty(value = "手机类型 1:苹果 2:安卓")
+    private Integer phoneType;
 
-    /** 订单总金额,单位为分。 */
-    @Excel(name = "佣金金额。")
-    @TableField("commission_price")
-    @ApiModelProperty(value = "佣金金额,单位为分。")
-    private Integer commissionPrice;
+
+    /** 前端类型 1:app 2:小程序 3:公众号 */
+    @Excel(name = "前端类型")
+    @TableField("fore_type")
+    @ApiModelProperty(value = "前端类型 1:app 2:小程序 3:公众号")
+    private Integer foreType;
 
 
 }

+ 19 - 0
nbjk-service/src/main/java/com/miaxis/wx/dto/WxOrderDTO.java

@@ -0,0 +1,19 @@
+package com.miaxis.wx.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class WxOrderDTO {
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "商品字典编码",required = true)
+    private Long dictCode;
+
+    @ApiModelProperty(value = "手机类型 1苹果 2安卓")
+    private Integer phoneType;  // 1苹果 2安卓
+
+    @ApiModelProperty(value = "前端类型 1:app 2:小程序 3:公众号")
+    private Integer foreType;
+}

+ 0 - 3
nbjk-service/src/main/java/com/miaxis/wx/service/IWxOrderService.java

@@ -12,9 +12,6 @@ import java.util.List;
 public interface IWxOrderService extends IService<WxOrder>{
 
 
-
-    void createVipOrder(WxOrder order, SysDictData sysDictData);
-
     WxOrder getByOutTradeNo(String outTradeNo);
 
     List<WxOrder> selectPcOrderList(PcWxOrderListDTO pcWxOrderListDTO);

+ 1 - 49
nbjk-service/src/main/java/com/miaxis/wx/service/impl/WxOrderServiceImpl.java

@@ -62,6 +62,7 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
 
     @Autowired
     private WxpayConfig wxpayConfig;
+
     @Autowired
     private ISysConfigService configService;
 
@@ -74,56 +75,7 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
     private String appid;
 
 
-    @Override
-    public void createVipOrder(WxOrder wxOrder, SysDictData sysDictData) {
-        String price = null ;
-        UserInfo student = SecurityUtils.getLoginUser().getStudent();
-        UserInfo userInfo = userInfoService.getById(student.getId());
-        //兼容线上版本
-        if (sysDictData == null){
-            price = configService.selectConfigByKey("vip_price");
-            wxOrder.setGoodsName("财仝驾考超级vip");
-            //成为高级vip
-            wxOrder.setOrderDataJson("1");
-        }else if ("nbjk_vip".equals(sysDictData.getDictLabel())){
-//            if (userInfo.getBindRecommendCode()!=null){
-//                price = sysDictData.getDictValue().split(",")[0];
-//                //根据绑定的推荐码获取推荐主播
-//                QueryWrapper<UserInfo> queryWrapper = new QueryWrapper<UserInfo>();
-//                queryWrapper.eq("recommend_code",userInfo.getBindRecommendCode());
-//                UserInfo zhubo = userInfoService.getOne(queryWrapper);
-//                wxOrder.setReferralUserId(zhubo.getId());
-//                wxOrder.setGoodsName(sysDictData.getRemark());
-//                //成为普通vip
-//                wxOrder.setOrderDataJson("2");
-//            }else{
-//                throw new CustomException("该学员未绑定推荐码,不能使用此套餐");
-//            }
-        }else if ("nbjk_up_sp_vip".equals(sysDictData.getDictLabel())){
-            if (userInfo.getIsVip()==2){
-                price = sysDictData.getDictValue().split(",")[0];
-                wxOrder.setGoodsName(sysDictData.getRemark());
-                //成为高级vip
-                wxOrder.setOrderDataJson("1");
-            }else {
-                throw new CustomException("该学员还不是普通会员,不能使用升级套餐");
-            }
 
-        }
-        else if ("nbjk_sp_vip".equals(sysDictData.getDictLabel())){
-            price = sysDictData.getDictValue().split(",")[0];
-            wxOrder.setGoodsName(sysDictData.getRemark());
-            //成为高级vip
-            wxOrder.setOrderDataJson("1");
-        }
-
-
-        Double dprice = Double.valueOf(price);
-        Double v =dprice* 100;
-        wxOrder.setTotal(v.intValue());
-        wxOrder.setOrderStatus(OrderStatusEnum.PROCESSING.getCode());
-
-    }
     @Override
     public WxOrder getByOutTradeNo(String outTradeNo) {
         return wxOrderMapper.getByOutTradeNo(outTradeNo);

+ 0 - 42
nbjk-service/src/main/resources/mapper/vip/VipCodeMapper.xml

@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.miaxis.vip.mapper.VipCodeMapper">
-
-    <resultMap type="VipCode" id="VipCodeResult">
-        <result property="id"    column="id"    />
-        <result property="vipCode"    column="vip_code"    />
-        <result property="createTime"    column="create_time"    />
-        <result property="updateTime"    column="update_time"    />
-        <result property="status"    column="status"    />
-        <result property="activationTime"    column="activation_time"    />
-        <result property="activationUserId"    column="activation_user_id"    />
-    </resultMap>
-
-    <sql id="selectVipCodeVo">
-        select t.*,(select nick_name from sys_user where user_id = t.agent_id) as agent_name,
-        (select nick_name from user_info where id = t.activation_user_id) as activation_user_name
-         from vip_code t
-    </sql>
-
-    <select id="selectVipCodeList"  resultType="com.miaxis.vip.dto.VipCodeListVo">
-        <include refid="selectVipCodeVo"/>
-        <where>
-            1=1
-            <if test="vipCode != null  and vipCode != ''"> and vip_code like concat('%', #{vipCode}, '%')</if>
-            <if test="status != null "> and status = #{status}</if>
-            <if test="startTime != null">
-                and DATE_FORMAT(create_time,'%Y-%m-%d')<![CDATA[ >= ]]> #{startTime}
-            </if>
-            <if test="endTime != null">
-                and DATE_FORMAT(create_time,'%Y-%m-%d') <![CDATA[ < ]]> #{endTime}
-            </if>
-            <if test="agentId != null">
-                and agent_id =  #{agentId}
-            </if>
-            order by status,create_time desc
-        </where>
-    </select>
-
-</mapper>