租赁系统

This commit is contained in:
yyb
2026-01-05 15:46:59 +08:00
parent 61fa33c27c
commit 5559163b2e
385 changed files with 33178 additions and 0 deletions

View File

@@ -0,0 +1,172 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.Decrypt;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.dto.v2.GoogleInfoDto;
import com.m2pool.lease.service.LeaseUserService;
import com.m2pool.lease.vo.EmailCodeVo;
import com.m2pool.lease.vo.RestPwdVo;
import com.m2pool.lease.vo.UserLoginVo;
import com.m2pool.lease.vo.UserRegisterVo;
import com.m2pool.lease.vo.v2.CloseAccountVo;
import com.m2pool.lease.vo.v2.GoogleBindVo;
import com.m2pool.lease.vo.v2.GoogleCloseVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.Map;
/**
* <p>
* 用户表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "用户授权控制器")
@LoginRequired(value = false)
@RestController
@RequestMapping("/auth")
public class LeaseAuthController {
@Resource
private LeaseUserService leaseUserService;
@Decrypt
@PostMapping("/login")
@ApiOperation(value = "用户登录")
public Result<Map<String, Object>> login(@RequestBody UserLoginVo userLoginVo){
return leaseUserService.login(userLoginVo);
}
@Decrypt
@PostMapping("/register")
@ApiOperation(value = "用户注册")
public Result<String> register(@RequestBody UserRegisterVo userRegisterVo){
return leaseUserService.register(userRegisterVo);
}
@Decrypt
@PostMapping("/updatePassword")
@ApiOperation(value = "登录页面----忘记密码:重置密码")
public Result<String> updatePassword(@RequestBody UserLoginVo userLoginVo){
return leaseUserService.updatePassword(userLoginVo);
}
@Decrypt
@PostMapping("/updatePasswordInCenter")
@ApiOperation(value = "个人中心--修改密码")
public Result<String> updatePasswordInCenter(@RequestBody RestPwdVo restPwdVo){
return leaseUserService.updatePasswordInCenter(restPwdVo);
}
@LoginRequired
@PostMapping("/logout")
@ApiOperation(value = "登出")
public Result<String> logout(){
return leaseUserService.logout();
}
@PostMapping("/sendLoginCode")
@ApiOperation(value = "发送用户登录邮箱验证码")
public Result<String> sendLoginCode(@RequestBody @Valid EmailCodeVo emailCodeVo){
return leaseUserService.sendLoginCode(emailCodeVo);
}
@PostMapping("/sendRegisterCode")
@ApiOperation(value = "发送用户注册邮箱验证码")
public Result<String> sendRegisterCode(@RequestBody @Valid EmailCodeVo emailCodeVo){
return leaseUserService.sendRegisterCode(emailCodeVo);
}
@PostMapping("/sendUpdatePwdCode")
@ApiOperation(value = "发送修改/重置密码验证码")
public Result<String> sendUpdatePwdCode(@RequestBody @Valid EmailCodeVo emailCodeVo){
return leaseUserService.sendUpdatePwdCode(emailCodeVo);
}
@LoginRequired
@PostMapping("/closeAccount")
@ApiOperation(value = "用户注销")
public Result<String> closeAccount(@RequestBody CloseAccountVo closeAccountVo){
return leaseUserService.closeAccount(closeAccountVo);
}
@PostMapping("/sendCloseAccount")
@ApiOperation(value = "发送注销用户邮箱验证码")
public Result<String> sendCloseAccount(@RequestBody @Valid EmailCodeVo emailCodeVo){
return leaseUserService.sendCloseAccount(emailCodeVo);
}
/*-----------------------------谷歌双重验证接口----------------------------*/
@Decrypt
@LoginRequired
@PostMapping("/bindGoogle")
@ApiOperation(value = "绑定谷歌验证码")
public Result<String> bindGoogle(@RequestBody @Valid GoogleBindVo googleBindVo){
return leaseUserService.bindGoogle(googleBindVo);
}
@LoginRequired
@PostMapping("/getBindInfo")
@ApiOperation(value = "获取谷歌验证器安全码和验证码")
public Result<GoogleInfoDto> getBindInfo(){
return leaseUserService.getBindInfo();
}
@LoginRequired
@PostMapping("/sendOpenGoogleCode")
@ApiOperation(value = "开启/绑定谷歌验证器 发送邮箱验证码")
public Result<String> sendOpenGoogleCode(){
return leaseUserService.sendOpenGoogleCode();
}
@LoginRequired
@PostMapping("/sendCloseGoogleCode")
@ApiOperation(value = "关闭谷歌验证器 发送邮箱验证码")
public Result<String> sendCloseGoogleCode(){
return leaseUserService.sendCloseGoogleCode();
}
@LoginRequired
@PostMapping("/closeStepTwo")
@ApiOperation(value = "关闭双重验证")
public Result<String> closeStepTwo(@Valid @RequestBody GoogleCloseVo vo){
return leaseUserService.closeStepTwo(vo);
}
@LoginRequired
@PostMapping("/getGoogleStatus")
@ApiOperation(value = "谷歌验证开启状态",notes = "返回值:谷歌验证状态 0 已绑定,开启 1未绑定 2已绑定关闭")
public Result<Integer> getGoogleStatus(){
return leaseUserService.getGoogleStatus();
}
@LoginRequired
@PostMapping("/openStepTwo")
@ApiOperation(value = "开启双重验证")
public Result<String> openStepTwo(@RequestBody @Valid GoogleCloseVo vo){
return leaseUserService.openStepTwo(vo);
}
/*-----------------------------谷歌双重验证接口----------------------------*/
}

View File

@@ -0,0 +1,87 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.Decrypt;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.OrderInfoDto;
import com.m2pool.lease.dto.PageResult;
import com.m2pool.lease.dto.PaymentRecordDto;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.service.LeaseOrderInfoService;
import com.m2pool.lease.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List;
/**
* <p>
* 订单表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "订单控制器")
@LoginRequired
@RestController
@RequestMapping("/order/info")
public class LeaseOrderInfoController {
@Resource
private LeaseOrderInfoService leaseOrderInfoService;
@ApiOperation("创建订单及订单详情 + 支付订单(返回二维码内容)")
@PostMapping("/addOrders")
@Decrypt
public Result<String> addOrders(@RequestBody OrderAndCodeVo orderAndCodeVo) {
return leaseOrderInfoService.addOrders(orderAndCodeVo);
}
@ApiOperation("订单支付超时--再次购买功能")
@PostMapping("/buyAgain")
@Deprecated
public Result<List<PaymentRecordDto>> buyAgain(@RequestBody List<OrderInfoVo> orderInfoVoList) {
return leaseOrderInfoService.buyAgain(orderInfoVoList);
}
@ApiOperation("查询订单列表(买家)")
@PostMapping("/getOrdersByStatus")
public PageResult<OrderInfoDto> getOrdersByStatus(@RequestBody OrderInfoStateVo orderInfoStateVo) {
return leaseOrderInfoService.getOrdersByStatus(orderInfoStateVo);
}
@ApiOperation("卖家已售出订单列表(卖家)")
@PostMapping("/getOrdersByStatusForSeller")
public PageResult<OrderInfoDto> getOrdersByStatusForSeller(@RequestBody OrderInfoStateVo orderInfoStateVo) {
return leaseOrderInfoService.getOrdersByStatusForSeller(orderInfoStateVo);
}
@ApiOperation("根据订单id查询订单信息")
@PostMapping("/getOrdersByIds")
public Result<OrderInfoDto> getOrdersByIds(@RequestBody OrderVo orderVo) {
return leaseOrderInfoService.getOrdersByIds(orderVo);
}
@ApiOperation("取消订单(如果有支付订单同时取消)")
@PostMapping("/cancelOrder")
public Result<String> cancelOrder(@RequestBody OrderVo orderVo) {
return leaseOrderInfoService.cancelOrder(orderVo);
}
@ApiOperation("生成订单时获取用户选择的支付币种 实时币价")
@PostMapping("/getCoinPrice")
public Result<BigDecimal> getCoinPrice(@RequestBody CoinVo coinVo){
return leaseOrderInfoService.getCoinPrice(coinVo);
}
}

View File

@@ -0,0 +1,78 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.Decrypt;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.PageResult;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.dto.v2.*;
import com.m2pool.lease.service.LeaseOrderInfoService;
import com.m2pool.lease.vo.BaseVo;
import com.m2pool.lease.vo.OrderAndCodeVo;
import com.m2pool.lease.vo.PageVo;
import com.m2pool.lease.vo.v2.CoinAndAlgorithmVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 订单表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "v2版本--订单控制器")
@LoginRequired
@RestController
@RequestMapping("/v2/order/info")
public class LeaseOrderInfoV2Controller {
@Resource
private LeaseOrderInfoService leaseOrderInfoService;
@ApiOperation("算法币种选择框:购物车结算获取选中矿机支持的算法和币种列表")
@PostMapping("/getMachineSupportCoinAndAlgorithm")
public Result<List<CoinAndAlgorithmListDto>> getMachineSupportCoinAndAlgorithm(@RequestBody List<BaseVo> machineIds) {
return leaseOrderInfoService.getMachineSupportCoinAndAlgorithm(machineIds);
}
@ApiOperation("矿池选择框:根据矿机id 获取当前矿机支持的矿池币种信息")
@PostMapping("/getMachineSupportPool")
public Result<List<MiningInfoDto>> getMachineSupportPool(@RequestBody CoinAndAlgorithmVo coinAndAlgorithmVo) {
return leaseOrderInfoService.getMachineSupportPool(coinAndAlgorithmVo);
}
@ApiOperation("创建订单及订单详情 + 支付订单(返回二维码内容)")
@PostMapping("/addOrdersV2")
@Decrypt
public Result<String> addOrdersV2(@RequestBody OrderAndCodeVo orderAndCodeVo) {
return leaseOrderInfoService.addOrdersV2(orderAndCodeVo);
}
@ApiOperation("买家:已购矿机列表")
@PostMapping("/getPurchasedItems")
public PageResult<PurchasedMachineListDto> getPurchasedItems(@RequestBody(required = false) PageVo pageVo) {
if (pageVo == null){
pageVo = new PageVo();
}
return leaseOrderInfoService.getPurchasedItems(pageVo);
}
@ApiOperation("买家:根据id查询已购矿机详情")
@PostMapping("/getPurchasedInfo")
public Result<MiningConfigInfoDto> getPurchasedInfo(@RequestBody BaseVo baseVo) {
return leaseOrderInfoService.getPurchasedInfo(baseVo);
}
}

View File

@@ -0,0 +1,67 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.dto.PaymentCallbackDto;
import com.m2pool.lease.dto.PaymentRecordDto;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.service.LeasePaymentRecordService;
import com.m2pool.lease.vo.CheckPayStatusVo;
import com.m2pool.lease.vo.OrderVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 支付记录表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "支付记录控制器")
@RestController
@RequestMapping("/payment/record")
public class LeasePaymentRecordController {
@Resource
private LeasePaymentRecordService leasePaymentRecordService;
@ApiOperation("根据订单详情信息生成 支付订单 + 根据返回的集合生成多个支付二维码")
@PostMapping("/addPayOrder")
@Deprecated
public Result<List<PaymentRecordDto>> addPayOrder(@RequestBody OrderVo orderVo) {
return leasePaymentRecordService.addPayOrder(orderVo);
}
@ApiOperation("根据订单id找到支付订单")
@PostMapping("/getPayOrderByOrderId")
public Result<List<PaymentRecordDto>> getPayOrderByOrderId(@RequestBody OrderVo orderVo) {
return leasePaymentRecordService.getPayOrderByOrderId(orderVo);
}
@ApiOperation("支付回调结果---根据订单id批量校验本次支付是否成功")
@PostMapping("/paymentCallbackBatch")
@Deprecated
public Result<List<PaymentCallbackDto>> paymentCallbackBatch(@RequestBody List<CheckPayStatusVo> checkPayStatusVoList) {
return leasePaymentRecordService.paymentCallbackBatch(checkPayStatusVoList);
}
@ApiOperation("支付回调结果----根据支付id校验支付是否成功")
@PostMapping("/paymentCallbackByPayId")
@Deprecated
public Result<PaymentCallbackDto> paymentCallbackByPayId(@RequestBody CheckPayStatusVo checkPayStatusVo) {
return leasePaymentRecordService.paymentCallbackByPayId(checkPayStatusVo);
}
}

View File

@@ -0,0 +1,131 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.Decrypt;
import com.m2pool.lease.dto.*;
import com.m2pool.lease.service.LeaseProductService;
import com.m2pool.lease.service.LeaseUserOwnedProductService;
import com.m2pool.lease.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
/**
* <p>
* 商品表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "商品控制器")
@RestController
@RequestMapping("/product")
public class LeaseProductController {
@Autowired
private LeaseProductService leaseProductService;
@Resource
private LeaseUserOwnedProductService leaseUserOwnedProductService;
@ApiOperation("查询商品列表(不包含商品对应的售卖机器详情列表)")
@PostMapping("/getList")
public PageResult<ProductDto> getProductList(@RequestBody(required = false) ProductPageVo productPageVo) {
if (productPageVo == null){
productPageVo = new ProductPageVo();
}
return leaseProductService.getProductList(productPageVo);
}
@ApiOperation("根据商品id查询单个商品详情信息")
@PostMapping("/getMachineInfoById")
public Result<ProductDto> getMachineInfoById(@RequestBody BaseVo baseVo) {
return leaseProductService.getMachineInfoById(baseVo);
}
@ApiOperation("查询单个商品详情(包含商品对应的售卖机器详情列表)")
@PostMapping("/getMachineInfo")
public PageResult<ProductMachineDto> getProductMachineInfo(@RequestBody ProductMachineVo productMachineVo) {
return leaseProductService.getProductMachineInfo(productMachineVo);
}
@ApiOperation("单个商品矿机列表页面---获取支付方式")
@PostMapping("/getPayTypes")
public Result<List<PayConfigDto>> getPayTypes(@RequestBody(required = false) ShopPayTypeVo shopPayTypeVo) {
return leaseProductService.getPayTypes(shopPayTypeVo);
}
@ApiOperation("新增商品(不包含商品对应的售卖机器)")
@PostMapping("/add")
public Result<String> addProduct(@RequestBody ProductURDVo productURDVo) {
return leaseProductService.addProduct(productURDVo);
}
@ApiOperation("编辑商品 + 商品上下架(不包含商品对应的售卖机器)")
@PostMapping("/update")
public Result<String> updateProduct(@RequestBody ProductURDVo productURDVo) {
return leaseProductService.updateProduct(productURDVo);
}
@ApiOperation("删除商品(包含商品对应的售卖机器)")
@PostMapping("/delete")
public Result<String> deleteProduct(@RequestBody BaseVo baseVo) {
return leaseProductService.deleteProduct(baseVo.getId());
}
@ApiOperation("用户查询当前自身已购商品列表")
@PostMapping("/getOwnedList")
public PageResult<UserOwnedProductDto> getOwnedList(@RequestBody(required = false) UserOwnedProductVo userOwnedProductVo) {
if (userOwnedProductVo == null){
userOwnedProductVo = new UserOwnedProductVo();
}
return leaseUserOwnedProductService.getOwnedList(userOwnedProductVo);
}
@ApiOperation("根据id查询当前自身已购商品详情")
@PostMapping("/getOwnedById")
public Result<UserOwnedProductDto> getOwnedById(@RequestBody BaseVo baseVo) {
return leaseUserOwnedProductService.getOwnedById(baseVo);
}
@ApiOperation("查询用户店铺支持的支付方式")
@PostMapping("/getSupportPayType")
public Result<List<PayTypeDto>> getSupportPayType() {
return leaseProductService.getSupportPayType();
}
//TODO 2025-11-21 查询店铺的矿机列表,不存在商品了
@ApiOperation("获取店铺商品列表用于新增绑定店铺钱包")
@PostMapping("/getProductListForShopWalletConfig")
public Result<List<ProductForWalletConfigDto>> getProductListForShopWalletConfig() {
return leaseProductService.getProductListForShopWalletConfig();
}
//TODO 2025-11-21 修改这些矿机的价格,并且绑定新钱包
@ApiOperation("新增绑定店铺钱包并设置店铺下面每个矿机该钱包币种的售价 + 钱包绑定")
@PostMapping("/updateProductListForShopWalletConfig")
@Decrypt
public Result<String> updateProductListForShopWalletConfig(@RequestBody ProductMachineForWalletConfigVo productMachineForWalletConfigVo) {
return leaseProductService.updateProductListForShopWalletConfig(productMachineForWalletConfigVo);
}
}

View File

@@ -0,0 +1,90 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.PageResult;
import com.m2pool.lease.dto.ProductUpdateMachineDto;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.dto.UserMinerDto;
import com.m2pool.lease.service.LeaseProductMachineService;
import com.m2pool.lease.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* <p>
* 商品表对应的物品机器表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "商品矿机控制器(库存控制器)")
@LoginRequired
@RestController
@RequestMapping("/product/machine")
public class LeaseProductMachineController {
@Resource
private LeaseProductMachineService leaseProductMachineService;
@ApiOperation("根据 登录账户 获取挖矿账户及挖矿币种集合----用于用户为商品添加实际出售机器库存")
@PostMapping("/getUserMinersList")
public Result<Map<String, List<UserMinerDto>>> getUserMinersList(@RequestBody UserMinerVo userMinerVo) {
return leaseProductMachineService.getUserMinersList(userMinerVo);
}
@ApiOperation("根据挖矿账户获取对应的 矿机机器编码集合----用于用户为商品添加实际出售机器库存")
@PostMapping("/getUserMachineList")
public Result<List<UserMinerDto>> getUserMachineList(@RequestBody UserMinerVo userMinerVo) {
return leaseProductMachineService.getUserMachineList(userMinerVo);
}
@ApiOperation("根据商品id查询商品矿机列表----用于卖方修改矿机信息")
@PostMapping("/getMachineListForUpdate")
public PageResult<ProductUpdateMachineDto> getMachineListForUpdate(@RequestBody ProductForUpdateMachineVo productForUpdateMachineVo) {
return leaseProductMachineService.getMachineListForUpdate(productForUpdateMachineVo);
}
@ApiOperation("单个新增或批量新增出售机器")
@PostMapping("/addSingleOrBatchMachine")
public Result<String> addSingleOrBatchMachine(@RequestBody ProductMachineParamsVo productMachineParamsVoList) {
return leaseProductMachineService.addSingleOrBatchMachine(productMachineParamsVoList);
}
@ApiOperation("单个/批量 编辑矿机 + 矿机上下架")
@PostMapping("/updateMachine")
public Result<String> updateMachine(@RequestBody List<ProductUpdateMachineVo> productUpdateMachineVoList) {
return leaseProductMachineService.updateMachine(productUpdateMachineVoList);
}
@ApiOperation("根据矿机id 删除商品矿机")
@PostMapping("/delete")
public Result<String> deleteMachine(@RequestBody BaseVo baseVo) {
return leaseProductMachineService.deleteMachine(baseVo);
}
//@ApiOperation("价格计算器---添加机器到商品中时需要给一个价格")
//@PostMapping("/calculatePrice")
//public Result<BigDecimal> calculatePrice(@RequestBody PriceCalculateVo priceCalculateVo) {
// return leaseProductMachineService.calculatePrice(priceCalculateVo);
//}
}

View File

@@ -0,0 +1,112 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.*;
import com.m2pool.lease.dto.v2.MachineInfoDto;
import com.m2pool.lease.dto.v2.SellerMachineInfoDto;
import com.m2pool.lease.dto.v2.ShopInfoDto;
import com.m2pool.lease.service.LeaseMachineService;
import com.m2pool.lease.vo.*;
import com.m2pool.lease.vo.v2.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 商品表对应的物品机器表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "v2版本--矿机控制器类")
@LoginRequired
@RestController
@RequestMapping("/v2/product/machine")
public class LeaseProductMachineV2Controller {
@Resource
private LeaseMachineService leaseMachineService;
@ApiOperation("商城首页---店铺列表")
@LoginRequired(value = false)
@PostMapping("/getShopList")
public PageResult<ShopInfoDto> getShopList(@RequestBody(required = false) ProductPageVo productPageVo) {
if(productPageVo == null){
productPageVo = new ProductPageVo();
}
return leaseMachineService.getShopList(productPageVo);
}
@ApiOperation("商城首页---店铺对应矿机详情列表")
@LoginRequired(value = false)
@PostMapping("/getShopMachineList")
public PageResult<MachineInfoDto> getShopMachineList(@RequestBody ShopMachineVo shopMachineVo) {
return leaseMachineService.getShopMachineList(shopMachineVo);
}
@ApiOperation("卖家页面---矿机列表")
@PostMapping("/getShopMachineListForSeller")
public PageResult<SellerMachineInfoDto> getShopMachineListForSeller(@RequestBody(required = false) SellerMachineVo sellerMachineVo) {
if (sellerMachineVo == null) {
sellerMachineVo = new SellerMachineVo();
}
return leaseMachineService.getShopMachineListForSeller(sellerMachineVo);
}
@ApiOperation("卖家页面---新增ASIC矿机")
@PostMapping("/addAsicMachine")
public Result<String> addAsicMachine(@RequestBody AsicMachineParamsVo asicMachineParamsVo) {
return leaseMachineService.addAsicMachine(asicMachineParamsVo);
}
@ApiOperation("卖家页面---修改ASIC矿机")
@PostMapping("/updateAsicMachine")
public Result<String> updateAsicMachine(@RequestBody AsicMachineParamsVo asicMachineParamsVo) {
return leaseMachineService.updateAsicMachine(asicMachineParamsVo);
}
@ApiOperation("卖家页面--- 批量修改GPU矿机 和 批量上下架")
@PostMapping("/updateGpuMachine")
public Result<String> updateGpuMachine(@RequestBody List<GpuMachineParamsVo> gpuMachineParamsVoList) {
return leaseMachineService.updateGpuMachine(gpuMachineParamsVoList);
}
@ApiOperation("卖家页面---GPU/ASIC矿机上下架")
@PostMapping("/updateMachineState")
public Result<String> updateMachineState(@RequestBody MachineStateVo machineStateVo) {
return leaseMachineService.updateMachineState(machineStateVo);
}
@ApiOperation("卖家页面---根据矿机id删除GPU/ASIC矿机")
@PostMapping("/deleteMachine")
public Result<String> deleteMachine(@RequestBody BaseVo baseVo) {
return leaseMachineService.deleteMachine(baseVo);
}
@ApiOperation("获取租赁系统支持的币种")
@GetMapping("/getSupportCoin")
public Result<List<String>> getSupportCoin() {
return leaseMachineService.getSupportCoin();
}
@ApiOperation("根据币种获取租赁系统支持的算法")
@GetMapping("/getSupportAlgo")
public Result<List<String>> getSupportAlgo(@RequestParam String coin) {
return leaseMachineService.getSupportAlgo(coin);
}
}

View File

@@ -0,0 +1,176 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.*;
import com.m2pool.lease.service.LeaseShopService;
import com.m2pool.lease.vo.BaseVo;
import com.m2pool.lease.vo.ShopConfigVo;
import com.m2pool.lease.vo.ShopVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 店铺表 前端控制器
* </p>
*
* @author yyb
* @since 2025-08-05
*/
@Api(tags = "店铺控制器")
@LoginRequired
@RestController
@RequestMapping("/shop")
public class LeaseShopController {
@Resource
private LeaseShopService leaseShopService;
/**
* 新增店铺
* @param shopVo 店铺信息
* @return 操作结果
*/
@ApiOperation("新增店铺")
@PostMapping("/addShop")
public Result<String> addShop(@RequestBody ShopVo shopVo) {
return leaseShopService.addShop(shopVo);
}
/**
* 修改店铺
* @param shopVo 店铺信息
* @return 操作结果
*/
@ApiOperation("根据店铺id修改店铺")
@PostMapping("/updateShop")
public Result<String> updateShop(@RequestBody ShopVo shopVo) {
return leaseShopService.updateShop(shopVo);
}
/**
* 关闭/打开店铺
* @param baseVo 店铺 ID
* @return 操作结果
*/
@ApiOperation("根据店铺id关闭店铺")
@PostMapping("/closeShop")
public Result<String> closeShop(@RequestBody BaseVo baseVo) {
return leaseShopService.closeShop(baseVo);
}
/**
* 根据用户邮箱查询店铺
* @return 店铺信息
*/
@ApiOperation("根据用户邮箱查询店铺")
@GetMapping("/getShopByUserEmail")
public Result<ShopDto> getShopByUserEmail() {
return leaseShopService.getShopByUserEmail();
}
/**
* 根据店铺id查询店铺
* @param baseVo 店铺 ID
* @return 店铺信息
*/
@ApiOperation("根据店铺id查询店铺")
@PostMapping("/getShopById")
public Result<ShopDto> getShopById(@RequestBody BaseVo baseVo) {
return leaseShopService.getShopById(baseVo);
}
/**
* 删除店铺(逻辑删除)
* @param baseVo 店铺 ID
* @return 操作结果
*/
@ApiOperation("删除店铺")
@PostMapping("/deleteShop")
public Result<String> deleteShop(@RequestBody BaseVo baseVo) {
return leaseShopService.deleteShop(baseVo);
}
@ApiOperation("根据店铺id获取到商品列表")
@PostMapping("/getProductListById")
public Result<List<ShopNameDto>> getProductListById(@RequestBody BaseVo baseVo) {
return leaseShopService.getProductListById(baseVo);
}
/**
* 根据店铺id 查询配置信息列表
* @param baseVo
* @return 操作结果
*/
@ApiOperation("钱包配置----根据店铺id查询收款钱包绑定信息列表")
@PostMapping("/getShopConfig")
public Result<List<ShopConfigDto>> getShopConfig(@RequestBody BaseVo baseVo) {
return leaseShopService.getShopConfig(baseVo);
}
/**
* 新增商铺配置 (新增配置时,如果没有指定商品,就默通用配置)
* @param shopConfigVo 商铺配置信息
* @return 操作结果
*/
@ApiOperation("钱包配置---新增商铺收款钱包绑定配置(弃用,业务移到/product/updateProductListForShopWalletConfig 接口)")
@PostMapping("/addShopConfig")
@Deprecated
public Result<String> addShopConfig(@RequestBody ShopConfigVo shopConfigVo) {
return leaseShopService.addShopConfig(shopConfigVo);
}
/**
* 修改配置
* @param shopConfigVo 商铺配置信息
* @return 操作结果
*/
@ApiOperation("钱包配置----根据配置id 修改商铺收款钱包配置")
@PostMapping("/updateShopConfig")
public Result<String> updateShopConfig(@RequestBody ShopConfigVo shopConfigVo) {
return leaseShopService.updateShopConfig(shopConfigVo);
}
/**
* 删除配置(逻辑删除)
* @param baseVo 配置 ID
* @return 操作结果
*/
@ApiOperation("钱包配置----根据配置id 删除商铺收款钱包配置")
@PostMapping("/deleteShopConfig")
public Result<String> deleteShopConfig(@RequestBody BaseVo baseVo) {
return leaseShopService.deleteShopConfig(baseVo);
}
@ApiOperation("钱包配置(用于充值选择链和币种)----获取链(一级)和币(二级) 下拉列表(获取本系统支持的链和币种)")
@PostMapping("/getChainAndList")
public Result<List<ChainListDto>> getChainAndList(){
return leaseShopService.getChainAndList();
}
@ApiOperation("钱包配置(用于下单选择商家支持的链和币种)----获取链(一级)和币(二级) 下拉列表(获取本商家支持的链和币种)")
@PostMapping("/getChainAndListForSeller")
public Result<List<ChainListDto>> getChainAndListForSeller(@RequestBody BaseVo baseVo){
return leaseShopService.getChainAndListForSeller(baseVo);
}
@ApiOperation("钱包配置(用于修改卖家钱包地址)----获取链(一级)和币(二级) 下拉列表(获取本系统支持的链和币种)")
@PostMapping("/getChainAndCoin")
public Result<ChainListDto> getChainAndCoin(@RequestBody BaseVo baseVo){
return leaseShopService.getChainAndCoin(baseVo);
}
}

View File

@@ -0,0 +1,79 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.Decrypt;
import com.m2pool.lease.annotation.LedgerLog;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.PageResult;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.dto.v2.PayWithdrawSellerRecordDto;
import com.m2pool.lease.dto.v2.ShopWalletInfoDto;
import com.m2pool.lease.service.LeaseShopService;
import com.m2pool.lease.vo.BalanceVo;
import com.m2pool.lease.vo.BaseVo;
import com.m2pool.lease.vo.PageVo;
import com.m2pool.lease.vo.v2.ShopWalletInfoVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 店铺表 前端控制器
* </p>
*
* @author yyb
* @since 2025-08-05
*/
@Api(tags = "v2版本--店铺控制器")
@LoginRequired
@RestController
@RequestMapping("/v2/shop")
public class LeaseShopV2Controller {
@Resource
private LeaseShopService leaseShopService;
/**
* 根据店铺id 查询配置信息列表
* @param baseVo
* @return 操作结果
*/
@ApiOperation("钱包配置----根据店铺id查询收款钱包绑定信息列表")
@PostMapping("/getShopConfigV2")
public Result<List<ShopWalletInfoDto>> getShopConfigV2(@RequestBody BaseVo baseVo) {
return leaseShopService.getShopConfigV2(baseVo);
}
@LedgerLog(value = "卖家钱包--余额提现申请")
@Decrypt
@PostMapping("/withdrawBalanceForSeller")
@ApiOperation(value = "卖家店铺钱包余额提现")
public Result<String> withdrawBalanceForSeller(@RequestBody BalanceVo balanceVo){
return leaseShopService.withdrawBalanceForSeller(balanceVo);
}
@ApiOperation("钱包配置----根据配置id 修改商铺收款钱包配置")
@PostMapping("/updateShopConfigV2")
@Decrypt
public Result<String> updateShopConfigV2(@RequestBody ShopWalletInfoVo shopWalletInfoVo) {
return leaseShopService.updateShopConfigV2(shopWalletInfoVo);
}
@PostMapping("/balanceWithdrawList")
@ApiOperation(value = "卖家:余额提现记录列表")
public PageResult<PayWithdrawSellerRecordDto> balanceWithdrawList(@RequestBody PageVo pageVo){
return leaseShopService.balanceWithdrawList(pageVo);
}
}

View File

@@ -0,0 +1,79 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.PageResult;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.dto.ShopCartDto;
import com.m2pool.lease.service.LeaseShoppingCartService;
import com.m2pool.lease.vo.BaseVo;
import com.m2pool.lease.vo.PageVo;
import com.m2pool.lease.vo.ProductAndMachineVo;
import com.m2pool.lease.vo.ShoppingCartInfoURDVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 购物车表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "购物车表控制器")
@LoginRequired
@RestController
@RequestMapping("/shopping/cart")
public class LeaseShoppingCartController {
@Resource
private LeaseShoppingCartService leaseShoppingCartService;
@ApiOperation("添加商品到购物车(批量+单个)")
@PostMapping("/addGoods")
public Result<String> addGoods(@RequestBody List<ShoppingCartInfoURDVo> shoppingCartInfoURDVoList) {
return leaseShoppingCartService.addGoods(shoppingCartInfoURDVoList);
}
@ApiOperation("查询购物车中商品列表")
@PostMapping("/getGoodsList")
public PageResult<ShopCartDto> getGoodsList(@RequestBody(required = false) PageVo pageVo) {
if (pageVo == null){
pageVo = new PageVo();
}
return leaseShoppingCartService.getGoodsList(pageVo);
}
@ApiOperation("批量删除购物车中商品")
@PostMapping("/deleteBatchGoods")
public Result<String> deleteBatchGoods(@RequestBody List<ProductAndMachineVo> baseVoList) {
return leaseShoppingCartService.deleteBatchGoods(baseVoList);
}
@ApiOperation("删除购物车中商品")
@PostMapping("/deleteGoods")
@Deprecated
public Result<String> deleteGoods(@RequestBody BaseVo baseVo) {
return leaseShoppingCartService.deleteGoods(baseVo);
}
@ApiOperation("批量删除购物车中已下架商品")
@PostMapping("/deleteBatchGoodsForIsDelete")
public Result<String> deleteBatchGoodsForIsDelete() {
return leaseShoppingCartService.deleteBatchGoodsForIsDelete();
}
}

View File

@@ -0,0 +1,75 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.PageResult;
import com.m2pool.lease.dto.Result;
import com.m2pool.lease.dto.ShopCartDto;
import com.m2pool.lease.dto.v2.ShopCartV2Dto;
import com.m2pool.lease.service.LeaseShoppingCartService;
import com.m2pool.lease.vo.BaseVo;
import com.m2pool.lease.vo.PageVo;
import com.m2pool.lease.vo.ProductAndMachineVo;
import com.m2pool.lease.vo.ShoppingCartInfoURDVo;
import com.m2pool.lease.vo.v2.AddGoodsVo;
import com.m2pool.lease.vo.v2.CartInfoVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 购物车表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "v2版本---购物车表控制器")
@LoginRequired
@RestController
@RequestMapping("/v2/shopping/cart")
public class LeaseShoppingCartV2Controller {
@Resource
private LeaseShoppingCartService leaseShoppingCartService;
@ApiOperation("添加商品到购物车(批量+单个)")
@PostMapping("/addGoodsV2")
public Result<String> addGoodsV2(@RequestBody List<AddGoodsVo> addGoodsVoList) {
return leaseShoppingCartService.addGoodsV2(addGoodsVoList);
}
@ApiOperation("查询购物车中商品列表")
@PostMapping("/getGoodsListV2")
public PageResult<ShopCartV2Dto> getGoodsListV2(@RequestBody(required = false) PageVo pageVo) {
if (pageVo == null){
pageVo = new PageVo();
}
return leaseShoppingCartService.getGoodsListV2(pageVo);
}
@ApiOperation("批量删除购物车中商品")
@PostMapping("/deleteBatchGoodsV2")
public Result<String> deleteBatchGoodsV2(@RequestBody List<CartInfoVo> baseVoList) {
return leaseShoppingCartService.deleteBatchGoodsV2(baseVoList);
}
@ApiOperation("批量删除购物车中已下架商品")
@PostMapping("/deleteBatchGoodsForIsDeleteV2")
public Result<String> deleteBatchGoodsForIsDeleteV2() {
return leaseShoppingCartService.deleteBatchGoodsForIsDeleteV2();
}
}

View File

@@ -0,0 +1,116 @@
package com.m2pool.lease.controller;
import com.m2pool.lease.annotation.Decrypt;
import com.m2pool.lease.annotation.LedgerLog;
import com.m2pool.lease.annotation.LoginRequired;
import com.m2pool.lease.dto.*;
import com.m2pool.lease.service.LeaseUserService;
import com.m2pool.lease.vo.BalancePageVo;
import com.m2pool.lease.vo.BalanceVo;
import com.m2pool.lease.vo.ChainAndCoinVo;
import com.m2pool.lease.vo.RecordTypePageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* <p>
* 用户表 前端控制器
* </p>
*
* @author yyb
* @since 2025-07-23
*/
@Api(tags = "用户信息控制器")
@LoginRequired
@RestController
@RequestMapping("/user")
public class LeaseUserController {
@Resource
private LeaseUserService leaseUserService;
@PostMapping("/bindWallet")
@ApiOperation(value = "买家:充值步骤选择链和钱包后自动绑定钱包")
public Result<UserWalletDataDto> bindWallet(@RequestBody ChainAndCoinVo chainAndCoinVo){
return leaseUserService.bindWallet(chainAndCoinVo);
}
@PostMapping("/getWalletInfo")
@ApiOperation(value = "获取用户相关钱包信息")
public Result<List<UserWalletDataDto>> getWalletInfo() {
return leaseUserService.getWalletInfo();
}
@LedgerLog(value = "买家钱包--余额提现申请")
@Decrypt
@PostMapping("/withdrawBalance")
@ApiOperation(value = "申请余额提现")
public Result<String> withdrawBalance(@RequestBody BalanceVo balanceVo){
return leaseUserService.withdrawBalance(balanceVo);
}
@PostMapping("/balanceWithdrawList")
@ApiOperation(value = "买家:余额提现记录列表")
@Deprecated
public PageResult<PayWithdrawMessageDto> balanceWithdrawList(@RequestBody BalancePageVo balancePageVo){
return leaseUserService.balanceWithdrawList(balancePageVo);
}
@PostMapping("/balanceRechargeList")
@ApiOperation(value = "买家:余额充值记录列表")
@Deprecated
public PageResult<PayRechargeMessageDto> balanceRechargeList(@RequestBody BalancePageVo balancePageVo){
return leaseUserService.balanceRechargeList(balancePageVo);
}
@PostMapping("/balancePayList")
@ApiOperation(value = "卖家:钱包交易(收款)记录列表")
public PageResult<PayRecordMessageDto> balancePayList(@RequestBody BalancePageVo balancePageVo){
return leaseUserService.balancePayList(balancePageVo);
}
@PostMapping("/transactionRecord")
@ApiOperation(value = "买家:交易流水(支付,提现,充值)")
public PageResult<TransactionRecordDto> transactionRecord(@RequestBody RecordTypePageVo recordTypePageVo){
return leaseUserService.transactionRecord(recordTypePageVo);
}
@PostMapping("/getRecentlyTransaction")
@ApiOperation(value = "最近5条交易")
public Result<List<RecentlyTransactionDto>> getRecentlyTransaction(){
return leaseUserService.getRecentlyTransaction();
}
@PostMapping("/getCharge")
@ApiOperation(value = "获取系统支持的交易手续费")
@Deprecated
public Result<List<ChargeDto>> getCharge(){
return leaseUserService.getCharge();
}
@GetMapping("/downloadClient")
@ApiOperation(value = "卖家:下载客户端")
public void downloadClient(@RequestParam String userEmail,@RequestParam String type,HttpServletRequest request, HttpServletResponse response){
leaseUserService.downloadClient(userEmail,type,request, response);
}
@GetMapping("/getClientVersion")
@ApiOperation(value = "获取客户端版本号")
public String getClientVersion(){
return leaseUserService.getClientVersion();
}
}