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