From 0dded054a1744e032c30bc5b10fda1f2c94a4099 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 21 Feb 2024 15:20:48 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/mall/entity/CjInfo.java | 2
src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java | 10
src/main/java/cc/mrbird/febs/mall/controller/ApiCjController.java | 5
src/main/java/cc/mrbird/febs/mall/entity/TzInfo.java | 3
src/main/resources/templates/error/404.html | 2
src/main/java/cc/mrbird/febs/mall/dto/ChoujiangInfoDto.java | 14
src/main/resources/application-prod.yml | 16
src/main/java/cc/mrbird/febs/mall/entity/CjItem.java | 2
src/main/resources/templates/febs/views/modules/order/cjList.html | 181 ++++++++++
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 7
src/main/resources/templates/error/403.html | 2
src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html | 126 ------
src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java | 215 +++++++++++
src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java | 3
src/main/java/cc/mrbird/febs/mall/service/CJService.java | 1
src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java | 96 ++++
src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java | 13
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java | 3
src/main/java/cc/mrbird/febs/mall/mapper/CjItemMapper.java | 10
src/main/resources/templates/error/500.html | 2
src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java | 17
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 4
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java | 31 +
src/main/resources/templates/index.html | 2
src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java | 12
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java | 7
src/main/resources/mapper/modules/CjItemMapper.xml | 34 +
src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java | 2
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 24 +
src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html | 14
src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java | 3
src/main/resources/mapper/modules/MallGoodsMapper.xml | 7
src/main/resources/templates/febs/views/modules/goods/tzList.html | 140 +++++++
src/main/java/cc/mrbird/febs/mall/controller/CommonController.java | 3
src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java | 10
src/main/resources/templates/febs/views/layout.html | 2
src/main/resources/templates/febs/views/login.html | 4
37 files changed, 865 insertions(+), 164 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
index 5a05607..6b6f368 100644
--- a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
+++ b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
@@ -63,7 +63,7 @@
log.info("/ /` / / \\ | |\\/| | |_) | | | |_ | | | |_ ");
log.info("\\_\\_, \\_\\_/ |_| | |_| |_|__ |_|__ |_| |_|__ ");
log.info(" ");
- log.info("鸿楼梦 权限系统启动完毕,地址:{}", url);
+ log.info("抽奖 权限系统启动完毕,地址:{}", url);
boolean auto = febsProperties.isAutoOpenBrowser();
if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) {
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java
index 9910b02..282d5c8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsController.java
@@ -11,6 +11,7 @@
import cc.mrbird.febs.mall.dto.UpMallGoodsDto;
import cc.mrbird.febs.mall.entity.MallGoods;
import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.entity.TzInfo;
import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
import cc.mrbird.febs.mall.vo.AdminMallGoodsTreeVo;
@@ -105,6 +106,17 @@
/**
* 商品列表
+ * @param request
+ * @return
+ */
+ @GetMapping("tzList")
+ public FebsResponse getTzList(TzInfo tzInfo, QueryRequest request) {
+ Map<String, Object> data = getDataTable(adminMallGoodsService.getTzListInPage(tzInfo, request));
+ return new FebsResponse().success().data(data);
+ }
+
+ /**
+ * 商品列表
* @param mallGoods
* @param request
* @return
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
index 4c7a4bb..0c2f0c7 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -55,6 +55,19 @@
private final MallMemberMapper mallMemberMapper;
private final MallOrderInfoMapper mallOrderInfoMapper;
+
+ /**
+ * 订单列表
+ *
+ * @param request
+ * @return
+ */
+ @GetMapping("chouJiangList")
+ public FebsResponse chouJiangList(ChoujiangInfoDto choujiangInfoDto, QueryRequest request) {
+ Map<String, Object> data = getDataTable(adminMallOrderService.getChouJiangListInPage(choujiangInfoDto, request));
+ return new FebsResponse().success().data(data);
+ }
+
/**
* 订单列表
*
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiCjController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiCjController.java
index e259567..a2700d2 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiCjController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiCjController.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.mall.controller;
+import cc.mrbird.febs.common.annotation.Limit;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.ApiCreateDto;
import cc.mrbird.febs.mall.dto.KjRecordDto;
@@ -28,6 +29,7 @@
@ApiResponse(code = 200, message = "success", response = ApiKjRecordVo.class)
})
@PostMapping(value = "/kjRecord")
+ @Limit(key = "kjRecord", period = 60, count = 10, name = "列表接口", prefix = "limit")
public FebsResponse kjRecord(@RequestBody KjRecordDto kjRecordDto) {
return cjService.kjRecord(kjRecordDto);
}
@@ -48,12 +50,14 @@
@ApiResponse(code = 200, message = "success", response = ApiTzInfoVo.class)
})
@GetMapping(value = "/tzInfo")
+ @Limit(key = "tzInfo", period = 60, count = 10, name = "首页接口", prefix = "limit")
public FebsResponse tzInfo() {
return cjService.tzInfo();
}
@ApiOperation(value = "马上投注", notes = "马上投注")
@PostMapping(value = "/create")
+ @Limit(key = "create", period = 1, count = 1, name = "投注接口", prefix = "limit")
public FebsResponse create(@RequestBody ApiCreateDto apiCreateDto) {
return cjService.create(apiCreateDto);
}
@@ -63,6 +67,7 @@
@ApiResponse(code = 200, message = "success", response = ApiTzListVo.class)
})
@PostMapping(value = "/tzInfoList")
+ @Limit(key = "tzInfoList", period = 60, count = 10, name = "列表接口", prefix = "limit")
public FebsResponse tzInfoList(@RequestBody KjRecordDto kjRecordDto) {
return cjService.tzInfoList(kjRecordDto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
index 67b86a1..932a834 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.mall.controller;
import cc.mrbird.febs.common.annotation.ControllerEndpoint;
+import cc.mrbird.febs.common.annotation.Limit;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.*;
@@ -42,6 +43,7 @@
@ApiOperation(value = "获取验证码接口", notes = "获取验证码通用接口")
@GetMapping(value = "/verifyCode")
+ @Limit(key = "verifyCode", period = 60, count = 2, name = "验证码接口", prefix = "limit")
public FebsResponse verifyCode(@ApiParam(name = "account", value = "手机号", required = true) @RequestParam(value = "account") String account,
@ApiParam(name = "type", value = "类型1-手机号", required = true) @RequestParam("type") String type) {
log.info("#账号:{}, 类型:{}#", account, type);
@@ -147,6 +149,7 @@
@ApiOperation(value = "验证验证码接口")
@PostMapping(value = "/checkCode")
+ @Limit(key = "verifyCode", period = 60, count = 2, name = "验证码接口", prefix = "limit")
public FebsResponse checkCode(@RequestBody AccountAndCodeDto accountAndCodeDto) {
boolean flag = commonService.verifyCode(accountAndCodeDto.getAccount(), accountAndCodeDto.getCode());
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
index 3119c67..1234f09 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsController.java
@@ -28,6 +28,16 @@
* 商品列表
* @return
*/
+ @GetMapping("tzList")
+ @RequiresPermissions("tzList:view")
+ public String tzList() {
+ return FebsUtil.view("modules/goods/tzList");
+ }
+
+ /**
+ * 商品列表
+ * @return
+ */
@GetMapping("goodsList")
@RequiresPermissions("goodsList:view")
public String goodsList() {
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
index 1d95c61..bd6d194 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallOrderController.java
@@ -32,6 +32,16 @@
* 订单列表
* @return
*/
+ @GetMapping("cjList")
+ @RequiresPermissions("cjList:view")
+ public String cjList() {
+ return FebsUtil.view("modules/order/cjList");
+ }
+
+ /**
+ * 订单列表
+ * @return
+ */
@GetMapping("orderList")
@RequiresPermissions("orderList:view")
public String orderList() {
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ChoujiangInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ChoujiangInfoDto.java
new file mode 100644
index 0000000..4eaef65
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ChoujiangInfoDto.java
@@ -0,0 +1,14 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "MallOrderInfoDto", description = "参数接收类")
+public class ChoujiangInfoDto {
+
+ private String phone;
+ private String kjNo;
+ private String zjState;
+ private String kjState;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/CjInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/CjInfo.java
index ff59c37..9ef506b 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/CjInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/CjInfo.java
@@ -20,4 +20,6 @@
private BigDecimal perkAmount;//中奖总金额
@TableField(exist = false)
private List<CjItem> items;
+ @TableField(exist = false)
+ private String phone;//开奖编号
}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/CjItem.java b/src/main/java/cc/mrbird/febs/mall/entity/CjItem.java
index 24b5870..2c21d8d 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/CjItem.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/CjItem.java
@@ -13,6 +13,8 @@
private Long infoId;//主表ID
private Long memberId;//
private Long tzId;//投注信息ID
+ private String tzCode;//投注号码
+ private BigDecimal tzPercent;//获奖倍率
private Integer type;//投注类型 1-按大小 2-按单双 3-按数字
private BigDecimal amount;//投入金额
private String itemNum;//投注数字
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/TzInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/TzInfo.java
index 7b45594..77f35d9 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/TzInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/TzInfo.java
@@ -1,6 +1,7 @@
package cc.mrbird.febs.mall.entity;
import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -13,4 +14,6 @@
private Integer type;//类型 1-按大小 2-按单双 3-按数字
private String tzCode;//值
private BigDecimal tzPercent;//获奖倍率
+ @TableField(exist = false)
+ private BigDecimal tzAmount;//投入总金额
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/CjItemMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/CjItemMapper.java
index 8066114..fb491a1 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/CjItemMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/CjItemMapper.java
@@ -2,6 +2,16 @@
import cc.mrbird.febs.mall.entity.CjItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.ArrayList;
+import java.util.List;
public interface CjItemMapper extends BaseMapper<CjItem> {
+
+ List<CjItem> selectListByInfoId(@Param("infoId")Long id);
+
+ void updateBatchById(@Param("list")ArrayList<CjItem> cjItemUpdateList);
+
+ List<CjItem> selectSumAmountByInfoId(@Param("list")List<Long> collect);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
index 59206a4..af08f38 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
import cc.mrbird.febs.mall.entity.MallGoods;
import cc.mrbird.febs.mall.entity.MallGoodsComment;
+import cc.mrbird.febs.mall.entity.TzInfo;
import cc.mrbird.febs.mall.vo.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -43,4 +44,6 @@
List<MallGoods> selectOrderGoodsList(@Param("memberId") Long memberId, @Param("date") Date date);
IPage<MallGoodsCommentVo> selectMallGoodsCommentListQueryInPage(Page<MallGoodsCommentVo> page, @Param("record")MallGoodsComment mallGoodsComment);
+
+ IPage<TzInfo> getTzListInPage(Page<TzInfo> page, TzInfo tzInfo);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index 670a51b..fd29fea 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -1,8 +1,10 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.common.enumerates.OrderPayMethodEnum;
+import cc.mrbird.febs.mall.dto.ChoujiangInfoDto;
import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
import cc.mrbird.febs.mall.dto.OrderListDto;
+import cc.mrbird.febs.mall.entity.CjInfo;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.mall.entity.MallOrderItem;
import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
@@ -65,4 +67,6 @@
BigDecimal selectTotalAmountByPayDoneAndDataString(@Param("payResult")int i, @Param("date") Date date);
BigDecimal selectSumAmountByPayMethodAndSomeStatue(@Param("payMethod")String name, @Param("statues") List<Long> values);
+
+ IPage<CjInfo> getChouJiangListInPage(Page<CjInfo> page, @Param("record")ChoujiangInfoDto choujiangInfoDto);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java b/src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java
new file mode 100644
index 0000000..d6007ad
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/AsyncCjService.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.service;
+
+import cc.mrbird.febs.common.entity.FebsConstant;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.mall.dto.ApiCreateDto;
+import cc.mrbird.febs.mall.entity.CjInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.scheduling.annotation.Async;
+
+public interface AsyncCjService extends IService<CjInfo> {
+
+ @Async(FebsConstant.ASYNC_POOL)
+ void openPriceAsync(CjInfo cjInfo, String kjNum,String danshuang,String daXiao);
+
+ @Async(FebsConstant.ASYNC_POOL)
+ void create(ApiCreateDto apiCreateDto);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/CJService.java b/src/main/java/cc/mrbird/febs/mall/service/CJService.java
index a453aa9..35647a8 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/CJService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/CJService.java
@@ -30,4 +30,5 @@
void getNoTimeDelayMsg(String kjNo);
void getOpenPriceMsg(String kjNo, String kjNum);
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
index 4b910ee..661995b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsService.java
@@ -7,6 +7,7 @@
import cc.mrbird.febs.mall.dto.UpMallGoodsDto;
import cc.mrbird.febs.mall.entity.MallGoods;
import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.entity.TzInfo;
import cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo;
import cc.mrbird.febs.mall.vo.AdminMailGoodsUpdateVo;
import cc.mrbird.febs.mall.vo.AdminMallGoodsTreeVo;
@@ -41,4 +42,6 @@
FebsResponse goodsHot(Long id);
FebsResponse goodsNotHot(Long id);
+
+ IPage<TzInfo> getTzListInPage(TzInfo tzInfo, QueryRequest request);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
index 4dc4630..90ca06d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallOrderService.java
@@ -3,6 +3,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.entity.CjInfo;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.mall.entity.MallOrderRefund;
@@ -73,4 +74,6 @@
FebsResponse takeGoods(Long id);
IPage<AdminMallMoneyFlowVo> orderMoneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo);
+
+ IPage<CjInfo> getChouJiangListInPage(ChoujiangInfoDto choujiangInfoDto, QueryRequest request);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
index 0c29ffa..ff19c4e 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsService.java
@@ -2,6 +2,8 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.utils.AppContants;
+import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
@@ -12,6 +14,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,6 +28,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
@Slf4j
@Service
@@ -38,6 +42,9 @@
private final MallGoodsStyleMapper mallGoodsStyleMapper;
private final MallGoodsImagesMapper mallGoodsImagesMapper;
private final MallShoppingCartMapper mallShoppingCartMapper;
+ private final RedisUtils redisUtils;
+ private final CjItemMapper cjItemMapper;
+ private final CjInfoMapper cjInfoMapper;
@Override
public IPage<AdminMallGoodsVo> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
@@ -495,5 +502,29 @@
return new FebsResponse().success();
}
+ @Override
+ public IPage<TzInfo> getTzListInPage(TzInfo tzInfo, QueryRequest request) {
+ Page<TzInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<TzInfo> adminMallGoodsVos = this.baseMapper.getTzListInPage(page, tzInfo);
+ List<TzInfo> records = adminMallGoodsVos.getRecords();
+
+ String kjNo = redisUtils.getString(AppContants.KJ_RECORD_NO);
+ QueryWrapper<CjInfo> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("kj_no",kjNo);
+ List<CjInfo> cjInfos = cjInfoMapper.selectList(objectQueryWrapper);
+ List<Long> collect = cjInfos.stream().map(CjInfo::getId).collect(Collectors.toList());
+ List<CjItem> cjItems = cjItemMapper.selectSumAmountByInfoId(collect);
+ for(TzInfo tzInfo1 : records){
+ List<CjItem> collect1 = cjItems.stream().filter(cjItem -> cjItem.getTzCode().equals(tzInfo1.getTzCode())).collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(collect1)){
+ BigDecimal reduce = collect1.stream().map(CjItem::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ tzInfo1.setTzAmount(reduce);
+ }else{
+ tzInfo1.setTzAmount(BigDecimal.ZERO);
+ }
+ }
+ return adminMallGoodsVos;
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 1e1ee93..735457f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -2,10 +2,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
-import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
-import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
-import cc.mrbird.febs.common.enumerates.GreenScoreEnum;
-import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.*;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.LoginUserUtil;
@@ -476,7 +473,7 @@
} else {
iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType);
}
- mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type);
+ mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeNewEnum.AGENT_BONUS.getValue(), null, type);
return new FebsResponse().success();
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
index 0a1ff03..230ba5d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -471,6 +471,13 @@
}
@Override
+ public IPage<CjInfo> getChouJiangListInPage(ChoujiangInfoDto choujiangInfoDto, QueryRequest request) {
+ Page<CjInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<CjInfo> cjInfoIPage = mallOrderInfoMapper.getChouJiangListInPage(page, choujiangInfoDto);
+ return cjInfoIPage;
+ }
+
+ @Override
public void deliverGoodsByOrderNo(DeliverGoodsDto deliverGoodsDto) {
MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectByOrderNo(deliverGoodsDto.getOrderNo());
if (mallOrderInfo == null) {
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java
new file mode 100644
index 0000000..0b206fe
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AsyncCjServiceImpl.java
@@ -0,0 +1,215 @@
+package cc.mrbird.febs.mall.service.impl;
+
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.MoneyFlowTypeNewEnum;
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.AppContants;
+import cc.mrbird.febs.common.utils.MallUtils;
+import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.mall.dto.ApiCreateDto;
+import cc.mrbird.febs.mall.dto.ApiCreateItemDto;
+import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.*;
+import cc.mrbird.febs.mall.service.AsyncCjService;
+import cc.mrbird.febs.mall.service.IApiMallMemberService;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class AsyncCjServiceImpl extends ServiceImpl<CjInfoMapper, CjInfo> implements AsyncCjService {
+
+ private final RedisUtils redisUtils;
+ private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ private final TzInfoMapper tzInfoMapper;
+ private final MallMemberWalletMapper mallMemberWalletMapper;
+ private final CjInfoMapper cjInfoMapper;
+ private final CjItemMapper cjItemMapper;
+ private final IApiMallMemberService mallMemberService;
+
+ @Override
+ public void openPriceAsync(CjInfo cjInfo, String kjNum,String danshuang,String daXiao) {
+ long l = System.currentTimeMillis();
+
+ List<CjItem> cjItems = cjItemMapper.selectListByInfoId(cjInfo.getId());
+ if(CollUtil.isEmpty(cjItems)){
+ return;
+ }
+ /**
+ * 1-按大小 2-按单双 3-按数字
+ */
+ BigDecimal perkAmountTotal = BigDecimal.ZERO;//中奖总金额
+
+ ArrayList<CjItem> CjItemUpdateList = new ArrayList<>();
+ //按大小
+ List<CjItem> collectDaXiao = cjItems.stream().filter(cjItem -> cjItem.getType() == 1).collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(collectDaXiao)){
+ for(CjItem cjItem : collectDaXiao){
+ String tzCode = cjItem.getTzCode();
+ cjItem.setKjNum(daXiao);
+ BigDecimal perkAmount = BigDecimal.ZERO;
+ if(daXiao.equals(tzCode)){
+ perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN);
+ cjItem.setPerkAmount(perkAmount);
+ }else{
+ cjItem.setPerkAmount(perkAmount);
+ }
+ CjItemUpdateList.add(cjItem);
+ perkAmountTotal = perkAmountTotal.add(perkAmount);
+ }
+ }
+ //按单双
+ List<CjItem> collectDanShuang = cjItems.stream().filter(cjItem -> cjItem.getType() == 2).collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(collectDanShuang)){
+ for(CjItem cjItem : collectDanShuang){
+ String tzCode = cjItem.getTzCode();
+ cjItem.setKjNum(danshuang);
+ BigDecimal perkAmount = BigDecimal.ZERO;
+ if(danshuang.equals(tzCode)){
+ perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN);
+ cjItem.setPerkAmount(perkAmount);
+ }else{
+ cjItem.setPerkAmount(perkAmount);
+ }
+ CjItemUpdateList.add(cjItem);
+ perkAmountTotal = perkAmountTotal.add(perkAmount);
+ }
+ }
+ //按数字
+ List<CjItem> collectNumber = cjItems.stream().filter(cjItem -> cjItem.getType() == 3).collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(collectNumber)){
+ for(CjItem cjItem : collectNumber){
+ String tzCode = cjItem.getTzCode();
+ cjItem.setKjNum(kjNum);
+ BigDecimal perkAmount = BigDecimal.ZERO;
+ if(kjNum.equals(tzCode)){
+ perkAmount = cjItem.getAmount().multiply(cjItem.getTzPercent()).setScale(2, BigDecimal.ROUND_DOWN);
+ cjItem.setPerkAmount(perkAmount);
+ }else{
+ cjItem.setPerkAmount(perkAmount);
+ }
+ CjItemUpdateList.add(cjItem);
+ perkAmountTotal = perkAmountTotal.add(perkAmount);
+ }
+ }
+ cjItemMapper.updateBatchById(CjItemUpdateList);//批量更新
+
+ if(perkAmountTotal.compareTo(BigDecimal.ZERO) > 0){
+ cjInfo.setZjState(1);
+ }else{
+ cjInfo.setZjState(0);
+ }
+ cjInfo.setPerkAmount(perkAmountTotal);
+ cjInfo.setKjNum(kjNum);
+ cjInfo.setKjState(1);
+ cjInfoMapper.updateById(cjInfo);
+ //更新用户余额
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(cjInfo.getMemberId());
+ mallMemberWallet.setBalance(mallMemberWallet.getBalance().add(perkAmountTotal));
+ mallMemberWalletMapper.updateBalanceWithVersion(mallMemberWallet);
+
+ String orderNo = MallUtils.getOrderNum("T");
+ mallMemberService.addMoneyFlow(
+ cjInfo.getMemberId(),
+ perkAmountTotal,
+ MoneyFlowTypeNewEnum.DYNAMIC_ACHIEVE.getValue(),
+ orderNo,
+ MoneyFlowTypeNewEnum.DYNAMIC_ACHIEVE.getDescription(),
+ null,
+ cjInfo.getId(),
+ 2,
+ FlowTypeEnum.BALANCE.getValue());
+
+ log.info("结束:{}", (System.currentTimeMillis() - l));
+ }
+
+ @Override
+ public void create(ApiCreateDto apiCreateDto) {
+ long l = System.currentTimeMillis();
+ Long memberId = 1L;
+ //开启下注
+ DataDictionaryCustom noTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.NO_TIME.getType(),
+ DataDictionaryEnum.NO_TIME.getCode()
+ );
+ if(noTimeDic.getValue().equals(2)){
+ throw new FebsException("请等待下一期");
+ }
+
+ List<ApiCreateItemDto> items = apiCreateDto.getItems();
+ if(CollUtil.isEmpty(items)){
+ throw new FebsException("参数有误,请刷新页面");
+ }
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+ BigDecimal totalAmount = BigDecimal.ZERO;
+ for(ApiCreateItemDto apiCreateItemDto : items){
+ BigDecimal tzAmount = apiCreateItemDto.getTzAmount().setScale(2,BigDecimal.ROUND_DOWN);//投注金额
+ if(BigDecimal.ZERO.compareTo(tzAmount) >= 0){
+ throw new FebsException("金额必须大于0");
+ }
+ totalAmount = totalAmount.add(tzAmount);
+ }
+ if(mallMemberWallet.getBalance().compareTo(totalAmount) < 0){
+ throw new FebsException("余额不足");
+ }
+ //更新用户余额
+ mallMemberWallet.setBalance(mallMemberWallet.getBalance().subtract(totalAmount));
+ mallMemberWalletMapper.updateBalanceWithVersion(mallMemberWallet);
+
+ //新增一条投注主表记录
+ CjInfo cjInfo = new CjInfo();
+ cjInfo.setMemberId(memberId);
+ String kjNo = redisUtils.getString(AppContants.KJ_RECORD_NO);
+ cjInfo.setKjNo(kjNo);
+ cjInfo.setKjState(0);
+ cjInfo.setPerkAmount(BigDecimal.ZERO);
+ cjInfo.setTotalAmount(totalAmount);
+ cjInfoMapper.insert(cjInfo);
+
+ for(ApiCreateItemDto apiCreateItemDto : items){
+ Long id = apiCreateItemDto.getId();//投注ID
+ TzInfo tzInfo = tzInfoMapper.selectById(id);
+ if(ObjectUtil.isEmpty(tzInfo)){
+ throw new FebsException("参数有误,请刷新页面");
+ }
+ BigDecimal tzAmount = apiCreateItemDto.getTzAmount().setScale(2,BigDecimal.ROUND_DOWN);//投注金额
+ CjItem cjItem = new CjItem();
+ cjItem.setInfoId(cjInfo.getId());
+ cjItem.setMemberId(memberId);
+ cjItem.setTzId(id);
+ cjItem.setTzCode(tzInfo.getTzCode());
+ cjItem.setTzPercent(tzInfo.getTzPercent());
+ cjItem.setType(tzInfo.getType());
+ cjItem.setAmount(tzAmount);
+ cjItem.setItemNum(tzInfo.getTzCode());
+ cjItem.setPerkAmount(BigDecimal.ZERO);
+ cjItemMapper.insert(cjItem);
+ }
+
+ String orderNo = MallUtils.getOrderNum("T");
+ mallMemberService.addMoneyFlow(
+ memberId,
+ totalAmount.negate(),
+ MoneyFlowTypeNewEnum.STATIC_BONUS.getValue(),
+ orderNo,
+ MoneyFlowTypeNewEnum.STATIC_BONUS.getDescription(),
+ null,
+ cjInfo.getId(),
+ 2,
+ FlowTypeEnum.BALANCE.getValue());
+
+ log.info("结束:{}", (System.currentTimeMillis() - l));
+ }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java
index 3df8f3b..4b8b87d 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/CJServiceImpl.java
@@ -14,6 +14,7 @@
import cc.mrbird.febs.mall.dto.OpenPrice;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
+import cc.mrbird.febs.mall.service.AsyncCjService;
import cc.mrbird.febs.mall.service.CJService;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.vo.ApiKjInfoVo;
@@ -25,6 +26,7 @@
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -52,6 +54,7 @@
private final CjInfoMapper cjInfoMapper;
private final CjItemMapper cjItemMapper;
private final IApiMallMemberService mallMemberService;
+ private final AsyncCjService asyncCjService;
@Override
public FebsResponse kjRecord(KjRecordDto kjRecordDto) {
@@ -82,7 +85,43 @@
redisUtils.set(AppContants.KJ_RECORD_TIME, kjRecord.getCreatedTime(), 600);
agentProducer.sendChouJiangDelayMsg(kjNo, 10 * 60 * 1000L);
- agentProducer.sendNoTimeDelayMsg(kjNo, 95 * 6 * 1000L);//提前三十秒停止下注
+ agentProducer.sendNoTimeDelayMsg(kjNo, 9 * 60 * 1000L);//提一分钟停止下注
+
+ //todo 测试下注
+ ApiCreateDto apiCreateDto = new ApiCreateDto();
+ List<ApiCreateItemDto> items = new ArrayList<>();
+ ApiCreateItemDto apiCreateItemDto = new ApiCreateItemDto();
+ apiCreateItemDto.setId(1L);
+ apiCreateItemDto.setTzAmount(new BigDecimal("10"));
+ items.add(apiCreateItemDto);
+
+ ApiCreateItemDto apiCreateItemDto2 = new ApiCreateItemDto();
+ apiCreateItemDto2.setId(2L);
+ apiCreateItemDto2.setTzAmount(new BigDecimal("10"));
+ items.add(apiCreateItemDto2);
+
+ ApiCreateItemDto apiCreateItemDto3 = new ApiCreateItemDto();
+ apiCreateItemDto3.setId(3L);
+ apiCreateItemDto3.setTzAmount(new BigDecimal("10"));
+ items.add(apiCreateItemDto3);
+
+ ApiCreateItemDto apiCreateItemDto4 = new ApiCreateItemDto();
+ apiCreateItemDto4.setId(4L);
+ apiCreateItemDto4.setTzAmount(new BigDecimal("10"));
+ items.add(apiCreateItemDto4);
+
+ for(int i = 1;i<5;i++){
+ ApiCreateItemDto apiCreateItemDto5 = new ApiCreateItemDto();
+ int randomInt = RandomUtil.randomInt(1, 25);
+ apiCreateItemDto5.setId(Long.parseLong(String.valueOf(randomInt)));
+ apiCreateItemDto5.setTzAmount(new BigDecimal("10"));
+ items.add(apiCreateItemDto5);
+ apiCreateDto.setItems(items);
+ }
+
+ for(int i = 0;i<=100;i++){
+ asyncCjService.create(apiCreateDto);
+ }
}
@@ -181,8 +220,7 @@
@Override
@Transactional
public FebsResponse create(ApiCreateDto apiCreateDto) {
-// Long memberId = LoginUserUtil.getLoginUser().getId();
- Long memberId = 1L;
+ Long memberId = LoginUserUtil.getLoginUser().getId();
//开启下注
DataDictionaryCustom noTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
DataDictionaryEnum.NO_TIME.getType(),
@@ -208,13 +246,16 @@
if(mallMemberWallet.getBalance().compareTo(totalAmount) < 0){
throw new FebsException("余额不足");
}
+ //更新用户余额
+ mallMemberWallet.setBalance(mallMemberWallet.getBalance().subtract(totalAmount));
+ mallMemberWalletMapper.updateBalanceWithVersion(mallMemberWallet);
+
//新增一条投注主表记录
CjInfo cjInfo = new CjInfo();
cjInfo.setMemberId(memberId);
String kjNo = redisUtils.getString(AppContants.KJ_RECORD_NO);
cjInfo.setKjNo(kjNo);
- cjInfo.setKjState(1);
- cjInfo.setZjState(1);
+ cjInfo.setKjState(0);
cjInfo.setPerkAmount(BigDecimal.ZERO);
cjInfo.setTotalAmount(totalAmount);
cjInfoMapper.insert(cjInfo);
@@ -226,12 +267,12 @@
throw new FebsException("参数有误,请刷新页面");
}
BigDecimal tzAmount = apiCreateItemDto.getTzAmount().setScale(2,BigDecimal.ROUND_DOWN);//投注金额
- totalAmount = totalAmount.add(tzAmount);
-
CjItem cjItem = new CjItem();
cjItem.setInfoId(cjInfo.getId());
cjItem.setMemberId(memberId);
cjItem.setTzId(id);
+ cjItem.setTzCode(tzInfo.getTzCode());
+ cjItem.setTzPercent(tzInfo.getTzPercent());
cjItem.setType(tzInfo.getType());
cjItem.setAmount(tzAmount);
cjItem.setItemNum(tzInfo.getTzCode());
@@ -242,7 +283,7 @@
String orderNo = MallUtils.getOrderNum("T");
mallMemberService.addMoneyFlow(
memberId,
- totalAmount,
+ totalAmount.negate(),
MoneyFlowTypeNewEnum.STATIC_BONUS.getValue(),
orderNo,
MoneyFlowTypeNewEnum.STATIC_BONUS.getDescription(),
@@ -256,8 +297,7 @@
@Override
public FebsResponse tzInfoList(KjRecordDto kjRecordDto) {
-// Long memberId = LoginUserUtil.getLoginUser().getId();
- Long memberId = 1L;
+ Long memberId = LoginUserUtil.getLoginUser().getId();
kjRecordDto.setMemberId(memberId);
IPage<CjInfo> page = new Page<>(kjRecordDto.getPageNum(), kjRecordDto.getPageSize());
IPage<CjInfo> pages = cjInfoMapper.selectTzListByMemberId(page, kjRecordDto);
@@ -278,7 +318,43 @@
@Override
public void getOpenPriceMsg(String kjNo, String kjNum) {
+ QueryWrapper<CjInfo> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("kj_no",kjNo);
+ List<CjInfo> cjInfos = cjInfoMapper.selectList(objectQueryWrapper);
+ if(ObjectUtil.isEmpty(cjInfos)){
+ return;
+ }
+ String danshuang = judgeNumberOne(Integer.parseInt(kjNum));
+ String daXiao = judgeNumberTwo(Integer.parseInt(kjNum));
+ for(CjInfo cjInfo : cjInfos){
+ asyncCjService.openPriceAsync(cjInfo,kjNum,danshuang,daXiao);
+ }
+ }
+ /**
+ * 取模运算符%来判断该数字是否为偶数。如果余数为0,则该数字为偶数,返回"双数";否则,该数字为奇数,返回"单数"
+ * @param num
+ * @return 1-单数 2-双数
+ */
+ public static String judgeNumberOne(int num) {
+ if (num % 2 == 0) {
+ return "双";
+ } else {
+ return "单";
+ }
+ }
+
+ /**
+ * 小于等于12为小 大于12为大
+ * @param num
+ * @return 1-小数 2-大数
+ */
+ public static String judgeNumberTwo(int num) {
+ if (num <= 12) {
+ return "小";
+ } else {
+ return "大";
+ }
}
}
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 7d991e2..a043bdd 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -13,22 +13,22 @@
# 配置默认数据源
primary: base
datasource:
- # 数据源-1,名称为 base
+ # 数据源-1,名称为 base 154.91.195.148
base:
- username: db_mall_hongloumeng
- password: hongloumeng123!@#123
+ username: db_choujiang
+ password: db_choujiang123
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://127.0.0.1:3306/db_mall_hongloumeng?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=GMT%2b8
+ url: jdbc:mysql://127.0.0.1:3306/db_choujiang?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=GMT%2b8
redis:
# Redis数据库索引(默认为 0)
- database: 1
+ database: 3
# Redis服务器地址
host: 127.0.0.1
# Redis服务器连接端口
port: 6379
# Redis 密码
- password: zhongji-mall=-0
+ password: dapp!@#123
lettuce:
pool:
# 连接池中的最小空闲连接
@@ -44,8 +44,8 @@
rabbitmq:
host: 127.0.0.1
port: 5672
- username: zj_mall
- password: zj_mall123
+ username: xc_rabbit
+ password: xuncong123
publisher-confirm-type: correlated
pay:
diff --git a/src/main/resources/mapper/modules/CjItemMapper.xml b/src/main/resources/mapper/modules/CjItemMapper.xml
new file mode 100644
index 0000000..8f17e2a
--- /dev/null
+++ b/src/main/resources/mapper/modules/CjItemMapper.xml
@@ -0,0 +1,34 @@
+<?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="cc.mrbird.febs.mall.mapper.CjItemMapper">
+
+ <select id="selectListByInfoId" resultType="cc.mrbird.febs.mall.entity.CjItem">
+ select *
+ from cj_item a
+ where a.info_id = #{infoId}
+ </select>
+
+ <update id="updateBatchById">
+ <foreach collection="list" item="item" separator=";">
+ update
+ `cj_item`
+ set
+ `kj_num` = #{item.kjNum},
+ `perk_amount` = #{item.perkAmount}
+ where
+ id = #{item.id}
+ </foreach>
+ </update>
+
+
+
+ <select id="selectSumAmountByInfoId" resultType="cc.mrbird.febs.mall.entity.CjItem">
+ select *
+ from cj_item a
+ where a.info_id in
+ <foreach collection = "list" item = "item" separator="," open = "(" close = ")" >
+ #{item}
+ </foreach >
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallGoodsMapper.xml b/src/main/resources/mapper/modules/MallGoodsMapper.xml
index d93f9d7..b4cc944 100644
--- a/src/main/resources/mapper/modules/MallGoodsMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -240,4 +240,11 @@
order by a.created_time desc
</select>
+ <select id="getTzListInPage" resultType="cc.mrbird.febs.mall.entity.TzInfo">
+ select
+ a.*
+ from tz_info a
+ order by a.id asc
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index fb2e09e..1120b05 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -315,4 +315,28 @@
#{item}
</foreach>
</select>
+
+
+ <select id="getChouJiangListInPage" resultType="cc.mrbird.febs.mall.entity.CjInfo">
+ select
+ a.*,
+ c.phone
+ from cj_info a
+ left join mall_member c on a.member_id = c.id
+ <where>
+ <if test="record.phone != null and record.phone != ''">
+ and c.phone=#{record.phone}
+ </if>
+ <if test="record.kjNo != null and record.kjNo != ''">
+ and a.kj_no=#{record.kjNo}
+ </if>
+ <if test="record.kjState != null and record.kjState != ''">
+ and a.kj_state=#{record.kjState}
+ </if>
+ <if test="record.zjState != null and record.zjState != ''">
+ and a.zj_state=#{record.zjState}
+ </if>
+ </where>
+ order by a.created_time desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/error/403.html b/src/main/resources/templates/error/403.html
index c68ad0a..202fb1c 100644
--- a/src/main/resources/templates/error/403.html
+++ b/src/main/resources/templates/error/403.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>抽奖 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/error/404.html b/src/main/resources/templates/error/404.html
index 990d96c..cbda0fd 100644
--- a/src/main/resources/templates/error/404.html
+++ b/src/main/resources/templates/error/404.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>抽奖 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/error/500.html b/src/main/resources/templates/error/500.html
index 23013d2..ea44d4b 100644
--- a/src/main/resources/templates/error/500.html
+++ b/src/main/resources/templates/error/500.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>抽奖 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/febs/views/layout.html b/src/main/resources/templates/febs/views/layout.html
index fac6ea5..bcfe600 100644
--- a/src/main/resources/templates/febs/views/layout.html
+++ b/src/main/resources/templates/febs/views/layout.html
@@ -64,7 +64,7 @@
<div class="layui-side-scroll">
<div class="layui-logo" style="cursor: pointer">
<img data-th-src="@{febs/images/logo.png}">
- <span>鸿楼梦 权限系统</span>
+ <span>抽奖 权限系统</span>
</div>
<script
type="text/html"
diff --git a/src/main/resources/templates/febs/views/login.html b/src/main/resources/templates/febs/views/login.html
index ca000e0..506b929 100644
--- a/src/main/resources/templates/febs/views/login.html
+++ b/src/main/resources/templates/febs/views/login.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>抽奖 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -19,7 +19,7 @@
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc">
- <div class="layui-logo"><span><b>鸿楼梦</b> 权限系统</span></div>
+ <div class="layui-logo"><span><b>抽奖</b> 权限系统</span></div>
</div>
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div">
<div class="layui-form" lay-filter="login-form">
diff --git a/src/main/resources/templates/febs/views/modules/goods/tzList.html b/src/main/resources/templates/febs/views/modules/goods/tzList.html
new file mode 100644
index 0000000..555af92
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/goods/tzList.html
@@ -0,0 +1,140 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-tz" lay-title="投注列表">
+ <div class="layui-row febs-container">
+ <div class="layui-col-md12">
+ <div class="layui-card">
+ <div class="layui-card-body febs-table-full">
+ <form class="layui-form layui-table-form" lay-filter="user-table-form">
+ <div class="layui-row">
+ <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
+ <i class="layui-icon"></i>
+ </div>
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+ <i class="layui-icon"></i>
+ </div>
+ </div>
+ </div>
+ </form>
+ <table lay-filter="tzTable" lay-data="{id: 'tzTable'}"></table>
+ <style type="text/css">
+ .layui-table-cell{
+ text-align:center;
+ height: auto;
+ white-space: nowrap; /*文本不会换行,在同一行显示*/
+ overflow: hidden; /*超出隐藏*/
+ text-overflow: ellipsis; /*省略号显示*/
+ }
+ .layui-table img{
+ max-width:100px
+ }
+ </style>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<!-- 表格操作栏 start -->
+<script type="text/html" id="user-option">
+ <span shiro:lacksPermission="user:view,user:update,user:delete">
+ <span class="layui-badge-dot febs-bg-orange"></span> 无权限
+ </span>
+ <a lay-event="edit" shiro:hasPermission="user:update"><i
+ class="layui-icon febs-edit-area febs-blue"></i></a>
+</script>
+<script type="text/html" id="tzTypeFormat">
+ <div>
+ {{# if (d.type == 1) { }}
+ <span class="layui-badge febs-tag-green">大小</span>
+ {{# } else if (d.type == 2) { }}
+ <span class="layui-badge febs-tag-cyan">单双</span>
+ {{# } else { }}
+ <span class="layui-badge febs-tag-orange">数字</span>
+ {{# } }}
+ </div>
+</script>
+<style>
+ .layui-form-onswitch {
+ background-color: #5FB878 !important;
+ }
+</style>
+<!-- 表格操作栏 end -->
+<script data-th-inline="none" type="text/javascript">
+ // 引入组件并初始化
+ layui.use([ 'jquery', 'form', 'table', 'febs'], function () {
+ var $ = layui.jquery,
+ febs = layui.febs,
+ form = layui.form,
+ table = layui.table,
+ $view = $('#febs-tz'),
+ $query = $view.find('#query'),
+ $reset = $view.find('#reset'),
+ $searchForm = $view.find('form'),
+ $add = $view.find('#add'),
+ sortObject = {field: 'phone', type: null},
+ tableIns;
+
+ form.render();
+ let currPageTz = 1;//首先默认值为1,防止出错
+ //获取当前页
+ currPageTz = $view.find(".layui-laypage-em").next().html();
+
+ // 表格初始化
+ initTable();
+
+ // 初始化表格操作栏各个按钮功能
+ table.on('tool(tzTable)', function (obj) {
+ var data = obj.data,
+ layEvent = obj.event;
+ if (layEvent === 'goodsUpdate') {
+ febs.modal.open('编辑', 'modules/goods/goodsUpdateNew/' + data.id, {
+ btn: ['提交', '取消'],
+ area:['100%','100%'],
+ yes: function (index, layero) {
+ $('#febs-update').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
+ });
+
+ // 查询按钮
+ $query.on('click', function () {
+ var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
+ tableIns.reload({where: params, page: {curr: currPageTz}});
+ });
+
+ // 刷新按钮
+ $reset.on('click', function () {
+ $searchForm[0].reset();
+ sortObject.type = 'null';
+ tableIns.reload({where: getQueryParams(), page: {curr: currPageTz}, initSort: sortObject});
+ });
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'tzTable',
+ url: ctx + 'admin/goods/tzList',
+ cols: [[
+ {templet:"#tzTypeFormat", title: '类型', minWidth: 100,align:'left'},
+ {field: 'tzCode', title: '值', minWidth: 100,align:'left'},
+ {field: 'tzPercent', title: '倍率', minWidth: 100,align:'left'},
+ {field: 'tzAmount', title: '投注总额', minWidth: 100,align:'left'},
+ {title: '操作',
+ templet: function (d) {
+ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="goodsUpdate" shiro:hasPermission="user:update">编辑</button>'
+ },minWidth: 160,align:'center'}
+ ]]
+ });
+ }
+
+ // 获取查询参数
+ function getQueryParams() {
+ return {
+ };
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html
index 0b64db2..cbfc8da 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlow.html
@@ -44,20 +44,6 @@
url: ctx + 'admin/mallMember/moneyFlow?parentId=1',
cols: [[
{field: 'amount', title: '金额', minWidth: 80,align:'center'},
- {field: 'type', title: '流水类型',
- templet: function (d) {
- if (d.type === 1) {
- return '<span>投注</span>'
- } else if (d.type === 2) {
- return '<span>中奖</span>'
- } else if (d.type === 3) {
- return '<span>充值</span>'
- } else if (d.type === 4) {
- return '<span>提现</span>'
- }else{
- return ''
- }
- }, minWidth: 80,align:'center'},
{field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'},
{field: 'description', title: '备注', minWidth: 150,align:'left'},
{field: 'createdTime', title: '时间', minWidth: 150,align:'left'}
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
index 107977e..e5d3fe4 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
@@ -8,18 +8,6 @@
<div class="layui-col-md10">
<div class="layui-form-item">
<div class="layui-inline">
- <label class="layui-form-label">登录账户:</label>
- <div class="layui-input-inline">
- <input type="text" placeholder="登录账户" name="accountLogin" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">名称:</label>
- <div class="layui-input-inline">
- <input type="text" placeholder="名称" name="name" autocomplete="off" class="layui-input">
- </div>
- </div>
- <div class="layui-inline">
<label class="layui-form-label">手机号码:</label>
<div class="layui-input-inline">
<input type="text" placeholder="手机号码" name="phone" autocomplete="off" class="layui-input">
@@ -30,40 +18,10 @@
<div class="layui-input-inline">
<select name="type">
<option value="">请选择</option>
- <option value="1">静态收益</option>
- <option value="2">直推奖</option>
- <option value="8">提现</option>
- <option value="9">转账</option>
- <option value="10">支付</option>
- <option value="11">退款</option>
- <option value="14">签到</option>
- <option value="16">系统拨付</option>
- <option value="19">1星合伙人补贴</option>
- <option value="20">2星合伙人补贴</option>
- <option value="21">3星合伙人补贴</option>
- <option value="22">4星合伙人补贴</option>
- <option value="23">5星合伙人补贴</option>
- <option value="24">6星合伙人补贴</option>
- <option value="25">贡献点</option>
- <option value="26">补贴额度</option>
- <option value="27">团队补贴</option>
- <option value="28">平级奖励补贴</option>
- <option value="29">线下服务中心补贴</option>
- <option value="30">代理商补贴</option>
- </select>
- </div>
- </div>
- <div class="layui-inline">
- <label class="layui-form-label">资金类型:</label>
- <div class="layui-input-inline">
- <select name="flowType">
- <option value="">请选择</option>
- <option value="1">余额</option>
-<!-- <option value="2">赠送积分</option>-->
- <option value="3">现金积分</option>
- <option value="5">贡献点</option>
-<!-- <option value="6">补贴额度</option>-->
-<!-- <option value="4">佣金</option>-->
+ <option value="1">投注</option>
+ <option value="2">中奖</option>
+ <option value="3">充值</option>
+ <option value="4">提现</option>
</select>
</div>
</div>
@@ -130,87 +88,20 @@
id: 'moneyFlowTable',
url: ctx + 'admin/mallMember/getMoneyFlowList',
cols: [[
- {field: 'accountLogin', title: '登录账户', minWidth: 100,align:'left'},
- {field: 'name', title: '名称', minWidth: 100,align:'left'},
{field: 'phone', title: '手机号码', minWidth: 150,align:'left'},
{field: 'amount', title: '金额', minWidth: 150,align:'left'},
- {field: 'fromMemberName', title: '来自', minWidth: 150,align:'left'},
{field: 'type', title: '流水类型',
templet: function (d) {
if (d.type === 1) {
- return '<span>静态收益</span>'
+ return '<span>投注</span>'
} else if (d.type === 2) {
- return '<span>直推奖</span>'
+ return '<span>中奖</span>'
} else if (d.type === 3) {
- return '<span>代理收益</span>'
+ return '<span>充值</span>'
} else if (d.type === 4) {
- return '<span>排名收益</span>'
- }else if (d.type === 5) {
- return '<span>总监收益</span>'
- }else if (d.type === 6) {
- return '<span>社区店补</span>'
- }else if (d.type === 7) {
- return '<span>一代收益</span>'
- }else if (d.type === 8) {
return '<span>提现</span>'
- }else if (d.type === 9) {
- return '<span>转账</span>'
- }else if (d.type === 10) {
- return '<span>支付</span>'
- }else if (d.type === 11) {
- return '<span>退款</span>'
- }else if (d.type === 12) {
- return '<span>佣金转竞猜积分</span>'
- }else if (d.type === 13) {
- return '<span>佣金转余额</span>'
- }else if (d.type === 14) {
- return '<span>签到</span>'
- }else if (d.type === 15) {
- return '<span>感恩奖</span>'
- }else if (d.type === 16) {
- return '<span>系统拨付</span>'
- }else if (d.type === 17) {
- return '<span>抽奖</span>'
- }else if (d.type === 18) {
- return '<span>积分池收益</span>'
- }else if (d.type === 19) {
- return '<span>1星合伙人补贴</span>'
- }else if (d.type === 20) {
- return '<span>2星合伙人补贴</span>'
- }else if (d.type === 21) {
- return '<span>3星合伙人补贴</span>'
- }else if (d.type === 22) {
- return '<span>4星合伙人补贴</span>'
- }else if (d.type === 23) {
- return '<span>5星合伙人补贴</span>'
- }else if (d.type === 24) {
- return '<span>6星合伙人补贴</span>'
- }else if (d.type === 25) {
- return '<span>贡献点</span>'
- }else if (d.type === 26) {
- return '<span>补贴额度</span>'
- }else if (d.type === 27) {
- return '<span>团队补贴</span>'
- }else if (d.type === 28) {
- return '<span>平级奖励补贴</span>'
- }else if (d.type === 29) {
- return '<span>线下服务中心补贴</span>'
- }else if (d.type === 30) {
- return '<span>代理商补贴</span>'
}else{
return ''
- }
- }, minWidth: 80,align:'center'},
- {field: 'flowType', title: '资金类型',
- templet: function (d) {
- if (d.flowType === 1) {
- return '余额';
- } else if(d.flowType === 3) {
- return '现金积分'
- } else if(d.flowType === 5) {
- return '贡献点'
- } else {
- return '-';
}
}, minWidth: 80,align:'center'},
{field: 'orderNo', title: '订单编号', minWidth: 150,align:'left'},
@@ -223,11 +114,8 @@
// 获取查询参数
function getQueryParams() {
return {
- name: $searchForm.find('input[name="name"]').val().trim(),
- accountLogin: $searchForm.find('input[name="accountLogin"]').val().trim(),
phone: $searchForm.find('input[name="phone"]').val().trim(),
type: $searchForm.find("select[name='type']").val(),
- flowType: $searchForm.find("select[name='flowType']").val(),
};
}
diff --git a/src/main/resources/templates/febs/views/modules/order/cjList.html b/src/main/resources/templates/febs/views/modules/order/cjList.html
new file mode 100644
index 0000000..2dc5b4b
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/order/cjList.html
@@ -0,0 +1,181 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-choujiang" lay-title="投注列表">
+ <div class="layui-row febs-container">
+ <div class="layui-col-md12">
+ <div class="layui-card">
+ <div class="layui-card-body febs-table-full">
+ <form class="layui-form layui-table-form" lay-filter="user-table-form">
+ <div class="layui-form-item">
+ <div class="layui-col-md10">
+ <div class="layui-inline">
+ <label class="layui-form-label">账号:</label>
+ <div class="layui-input-inline">
+ <input type="text" placeholder="账号" name="phone" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">期号:</label>
+ <div class="layui-input-inline">
+ <input type="text" placeholder="期号" name="kjNo" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">是否开奖:</label>
+ <div class="layui-input-inline">
+ <select name="kjState">
+ <option value="">请选择</option>
+ <option value="0">未开奖</option>
+ <option value="1">已开奖</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">是否中奖:</label>
+ <div class="layui-input-inline">
+ <select name="zjState">
+ <option value="">请选择</option>
+ <option value="0">未中奖</option>
+ <option value="1">中奖</option>
+ </select>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
+ <i class="layui-icon"></i>
+ </div>
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+ <i class="layui-icon"></i>
+ </div>
+ </div>
+ </div>
+ </form>
+ <table lay-filter="chouJiangTable" lay-data="{id: 'chouJiangTable'}"></table>
+ <style type="text/css">
+ .layui-table-cell{
+ text-align:center;
+ height: auto;
+ white-space: nowrap; /*文本不会换行,在同一行显示*/
+ overflow: hidden; /*超出隐藏*/
+ text-overflow: ellipsis; /*省略号显示*/
+ }
+ .layui-table img{
+ max-width:100px
+ }
+ </style>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script type="text/html" id="user-option">
+ <span shiro:lacksPermission="user:view,user:update,user:delete">
+ <span class="layui-badge-dot febs-bg-orange"></span> 无权限
+ </span>
+ <a lay-event="edit" shiro:hasPermission="user:update"><i
+ class="layui-icon febs-edit-area febs-blue"></i></a>
+</script>
+<script type="text/html" id="tableToolBar">
+ <div class="layui-btn-container">
+ </div>
+</script>
+<!-- 表格操作栏 end -->
+<script data-th-inline="none" type="text/javascript">
+ // 引入组件并初始化
+ layui.use([ 'jquery', 'form', 'table', 'febs', 'upload','laydate'], function () {
+ var $ = layui.jquery,
+ febs = layui.febs,
+ form = layui.form,
+ table = layui.table,
+ upload = layui.upload,
+ $view = $('#febs-choujiang'),
+ $query = $view.find('#query'),
+ $reset = $view.find('#reset'),
+ $searchForm = $view.find('form'),
+ $add = $view.find('#add'),
+ sortObject = {field: 'phone', type: null},
+ laydate = layui.laydate,
+ tableIns;
+
+
+ form.render();
+
+ let currPageCj = 1;//首先默认值为1,防止出错
+ //获取当前页
+ currPageCj = $view.find(".layui-laypage-em").next().html();
+
+ // 表格初始化
+ initTable();
+
+
+ // 初始化表格操作栏各个按钮功能
+ table.on('tool(chouJiangTable)', function (obj) {
+ var data = obj.data,
+ layEvent = obj.event;
+ });
+
+ // 查询按钮
+ $query.on('click', function () {
+ var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
+ tableIns.reload({where: params, page: {curr: currPageCj}});
+ });
+
+ // 刷新按钮
+ $reset.on('click', function () {
+ $searchForm[0].reset();
+ sortObject.type = 'null';
+ tableIns.reload({where: getQueryParams(), page: {curr: currPageCj}, initSort: sortObject});
+ });
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'chouJiangTable',
+ url: ctx + 'admin/order/chouJiangList',
+ defaultToolbar: [],
+ // toolbar: '#tableToolBar',
+ totalRow: true ,// 开启合计行
+ cols: [[
+ {field: 'kjNo', title: '期号', minWidth: 120,align:'left', totalRowText: '合计:'},
+ {field: 'phone', title: '账号', minWidth: 120,align:'left'},
+ {field: 'totalAmount', title: '投注金额', minWidth: 120,align:'left'},
+ {field: 'perkAmount', title: '奖金', minWidth: 120,align:'left'},
+ {field: 'kjState', title: '是否开奖',
+ templet: function (d) {
+ if (d.kjState === 0) {
+ return '<span style="color:blue;">未开奖</span>'
+ } else if (d.kjState === 1) {
+ return '<span style="color:green;">已开奖</span>'
+ }else{
+ return ''
+ }
+ }, minWidth: 120,align:'center'},
+ {field: 'zjState', title: '是否开奖',
+ templet: function (d) {
+ if (d.zjState === 0) {
+ return '<span style="color:green;">未中奖</span>'
+ } else if (d.zjState === 1) {
+ return '<span style="color:red;">中奖</span>'
+ }else{
+ return ''
+ }
+ }, minWidth: 120,align:'center'},
+ {field: 'kjNum', title: '中奖号码', minWidth: 120,align:'left'},
+ {field: 'createdTime', title: '时间', minWidth: 200,align:'left'},
+ ]]
+ });
+ }
+
+ // 获取查询参数
+ function getQueryParams() {
+ return {
+ phone: $searchForm.find('input[name="phone"]').val().trim(),
+ kjNo: $searchForm.find('input[name="kjNo"]').val().trim(),
+ kjState: $searchForm.find("select[name='kjState']").val(),
+ zjState: $searchForm.find("select[name='zjState']").val(),
+ };
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index 0edae19..bc4974c 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -3,7 +3,7 @@
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<meta charset="utf-8">
- <title>鸿楼梦 权限系统</title>
+ <title>抽奖 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
--
Gitblit v1.9.1