From 95f9ea7eb339c36cade6c67d0385c49ec2d81477 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Wed, 14 Apr 2021 19:39:45 +0800
Subject: [PATCH] Merge branch 'score_shop' into api_score_meger

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 171 insertions(+), 0 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
new file mode 100644
index 0000000..a8a650d
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxMoneyCardUseAction.java
@@ -0,0 +1,171 @@
+package com.matrix.system.shopXcx.api.action;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.matrix.component.redis.RedisUserLoginUtils;
+import com.matrix.component.wechat.externalInterface.protocol.paramProtocol.BrandWCPayRequestData;
+import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.pojo.BasePageQueryDto;
+import com.matrix.core.tools.LogUtil;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.system.hive.bean.MoneyCardUse;
+import com.matrix.system.hive.bean.MoneyCardUseFlow;
+import com.matrix.system.hive.bean.SysVipInfo;
+import com.matrix.system.hive.dao.MoneyCardUseFlowDao;
+import com.matrix.system.hive.dao.MoneyCardUseV2Dao;
+import com.matrix.system.hive.service.CodeService;
+import com.matrix.system.shopXcx.api.dto.MoneyCardUseFlowDto;
+import com.matrix.system.shopXcx.api.vo.WxMoneyCardUseVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author jyy
+ * @date 2021-04-09
+ **/
+@Api(tags = "会员储值卡")
+@RestController
+@RequestMapping(value = "/wxapi/moneyCardUse")
+public class WxMoneyCardUseAction {
+
+    @Autowired
+    WeixinServiceUtil weixinServiceUtil;
+
+
+    @Autowired
+    private MoneyCardUseV2Dao moneyCardUseV2Dao;
+
+    @Autowired
+    private RedisUserLoginUtils redisUserLoginUtils;
+
+    @Autowired
+    MoneyCardUseFlowDao moneyCardUseFlowDao;
+
+    @Autowired
+    CodeService codeService;
+
+
+
+
+    @ApiOperation(value = "查询会员主卡", notes = "")
+    @GetMapping(value = "/getUserVipCard")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = WxMoneyCardUseVO.class)
+    })
+    public AjaxResult getUserVipCard() {
+        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("vip_id", sysVipInfo.getId());
+        queryWrapper.eq("is_vip_car","Y");
+        MoneyCardUse moneyCardUse = moneyCardUseV2Dao.selectOne(queryWrapper);
+        WxMoneyCardUseVO vo = new WxMoneyCardUseVO();
+        BeanUtils.copyProperties(moneyCardUse, vo);
+        return AjaxResult.buildSuccessInstance(vo);
+    }
+
+
+    @ApiOperation(value = "查询会员储值卡", notes = "")
+    @PostMapping(value = "/getUserMoneyCardUseList")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = WxMoneyCardUseVO.class)
+    })
+    public AjaxResult getUserMoneyCardUseList(@RequestBody @Validated BasePageQueryDto pageDto) {
+        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        QueryWrapper queryWrapper = new QueryWrapper();
+        queryWrapper.eq("vip_id", sysVipInfo.getId());
+        IPage<MoneyCardUse> page = new Page<>(pageDto.getPageNum(), pageDto.getPageSize());
+        IPage pageList = moneyCardUseV2Dao.selectPage(page, queryWrapper);
+        List<WxMoneyCardUseVO> rows = (List<WxMoneyCardUseVO>) pageList.getRecords().stream().map(item -> {
+            WxMoneyCardUseVO vo = new WxMoneyCardUseVO();
+            BeanUtils.copyProperties(item, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        System.out.println(rows.get(0).getId());
+        return AjaxResult.buildSuccessInstance(rows);
+    }
+
+
+
+
+    @ApiOperation(value = "创建储值卡充值预付单", notes = "传入参数 {rechargeAmount:10} 最少充值1元,最多2位小数 ")
+    @PostMapping(value = "/createRechargeOrder")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = AjaxResult.class)
+    })
+    public AjaxResult createRechargeOrder(@RequestBody Map<String, String> param) throws Exception {
+
+        String rechargeAmount = param.get("rechargeAmount");
+        if (StringUtils.isBlank(rechargeAmount)) {
+            return AjaxResult.buildFailInstance("请输入充值金额");
+        }
+        double total = new BigDecimal(rechargeAmount).setScale(2, BigDecimal.ROUND_HALF_DOWN).doubleValue();
+        if (total < 0.02) {
+            return AjaxResult.buildFailInstance("充值金额最底1元");
+        }
+        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
+        moneyCardUseFlow.setVipId(sysVipInfo.getId());
+        moneyCardUseFlow.setPayNo(codeService.get32LenNumberCode());
+        moneyCardUseFlow.setTotal(total);
+        moneyCardUseFlow.setCreateTime(new Date());
+        moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CZ);
+        moneyCardUseFlowDao.insert(moneyCardUseFlow);
+        moneyCardUseFlow.setContent("微信充值");
+        BrandWCPayRequestData payData = weixinServiceUtil.createRechargeOrder("储值卡充值", moneyCardUseFlow.getPayNo(),
+                (int) (moneyCardUseFlow.getTotal() * 100), sysVipInfo.getOpenId(), String.valueOf(moneyCardUseFlow.getId()));
+        AjaxResult result = AjaxResult.buildSuccessInstance(payData);
+        result.putInMap("orderId", moneyCardUseFlow.getId());
+        return result;
+    }
+
+    @ApiOperation(value = "查询充值结果", notes = " ")
+    @GetMapping(value = "/getRechargePayStatus/{orderId}")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = AjaxResult.class)
+    })
+    public AjaxResult getRechargePayStatus(@PathVariable Long orderId) {
+        AjaxResult result =AjaxResult.buildSuccessInstance("查询成功");
+        MoneyCardUseFlow moneyCardUseFlow = moneyCardUseFlowDao.selectById(orderId);
+        if (moneyCardUseFlow.getCarUseId() != null) {
+            result.putInMap("status", "success");
+            result.putInMap("msg", "支付成功");
+        } else {
+            LogUtil.debug("充值等待支付中={}。。。", orderId);
+            PayThreadPool.waitThread(orderId.intValue(), new Object());
+            result = PayThreadPool.getThreadResult(orderId.intValue());
+            LogUtil.debug("充值订单支付完成={}。。。", orderId);
+        }
+        return result;
+    }
+
+
+
+    @ApiOperation(value = "查询会员储值卡充值使用记录", notes = "keywords 传入会员卡ID")
+    @PostMapping(value = "/getRechargeList")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "ok", response = MoneyCardUseFlow.class)
+    })
+    public AjaxResult getRechargeList(@RequestBody @Validated MoneyCardUseFlowDto pageDto) {
+        SysVipInfo sysVipInfo = redisUserLoginUtils.getLoginUser(SysVipInfo.class);
+        pageDto.setCompanyId(sysVipInfo.getCompanyId());
+        List<MoneyCardUseFlow> dataList = moneyCardUseFlowDao.selectForWxInPage(pageDto);
+        return AjaxResult.buildSuccessInstance(dataList);
+    }
+
+
+
+}

--
Gitblit v1.9.1