袁野 1 month ago
commit b7c36f63e2
  1. 1
      bweb/src/main/java/com/hfkj/config/AuthConfig.java
  2. 116
      bweb/src/main/java/com/hfkj/controller/cornucopia/CornucopiaController.java
  3. 144
      cweb/src/main/java/com/hfkj/controller/MessageController.java
  4. 9
      cweb/src/main/java/com/hfkj/controller/UserController.java
  5. 153
      cweb/src/main/java/com/hfkj/controller/cornucopia/CornucopiaController.java
  6. 11
      service/src/main/java/com/hfkj/common/utils/DateUtil.java
  7. 33
      service/src/main/java/com/hfkj/dao/BsCornucopiaLotteryRecordMapperExt.java
  8. 125
      service/src/main/java/com/hfkj/dao/BsMessageMapper.java
  9. 36
      service/src/main/java/com/hfkj/dao/BsMessageMapperExt.java
  10. 108
      service/src/main/java/com/hfkj/dao/BsMessageReadMapper.java
  11. 7
      service/src/main/java/com/hfkj/dao/BsMessageReadMapperExt.java
  12. 276
      service/src/main/java/com/hfkj/dao/BsMessageReadSqlProvider.java
  13. 332
      service/src/main/java/com/hfkj/dao/BsMessageSqlProvider.java
  14. 2
      service/src/main/java/com/hfkj/entity/BsCornucopiaLotteryRecord.java
  15. 2
      service/src/main/java/com/hfkj/entity/BsCornucopiaPoolRecord.java
  16. 232
      service/src/main/java/com/hfkj/entity/BsMessage.java
  17. 1003
      service/src/main/java/com/hfkj/entity/BsMessageExample.java
  18. 168
      service/src/main/java/com/hfkj/entity/BsMessageRead.java
  19. 733
      service/src/main/java/com/hfkj/entity/BsMessageReadExample.java
  20. 13
      service/src/main/java/com/hfkj/model/BsCornucopiaPoolModel.java
  21. 13
      service/src/main/java/com/hfkj/model/CornucopiaLotteryRecordModel.java
  22. 17
      service/src/main/java/com/hfkj/model/CornucopiaStatisticsModel.java
  23. 10
      service/src/main/java/com/hfkj/service/cornucopia/BsCornucopiaLotteryRecordService.java
  24. 22
      service/src/main/java/com/hfkj/service/cornucopia/BsCornucopiaPoolService.java
  25. 58
      service/src/main/java/com/hfkj/service/cornucopia/BsCornucopiaUserRecordService.java
  26. 1
      service/src/main/java/com/hfkj/service/cornucopia/Impl/BsCornucopiaConfigServiceImpl.java
  27. 12
      service/src/main/java/com/hfkj/service/cornucopia/Impl/BsCornucopiaLotteryRecordServiceImpl.java
  28. 290
      service/src/main/java/com/hfkj/service/cornucopia/Impl/BsCornucopiaPoolServiceImpl.java
  29. 61
      service/src/main/java/com/hfkj/service/cornucopia/Impl/BsCornucopiaUserRecordServiceImpl.java
  30. 26
      service/src/main/java/com/hfkj/service/message/BsMessageReadService.java
  31. 54
      service/src/main/java/com/hfkj/service/message/BsMessageService.java
  32. 43
      service/src/main/java/com/hfkj/service/message/impl/BsMessageReadServiceImpl.java
  33. 68
      service/src/main/java/com/hfkj/service/message/impl/BsMessageServiceImpl.java
  34. 6
      service/src/main/java/com/hfkj/service/order/OrderBusinessService.java
  35. 44
      service/src/main/java/com/hfkj/sysenum/message/MessageStatusEnum.java
  36. 52
      service/src/main/java/com/hfkj/sysenum/message/MessageTypeEnum.java

@ -88,6 +88,7 @@ public class AuthConfig implements WebMvcConfigurer {
.excludePathPatterns("/**/swagger-ui.html")
.excludePathPatterns("/common/*")
.excludePathPatterns("/secUser/*")
.excludePathPatterns("/cornucopia/*")
;
}

@ -9,14 +9,19 @@ import com.hfkj.common.security.SessionObject;
import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.controller.order.BsOrderController;
import com.hfkj.entity.BsCornucopiaConfig;
import com.hfkj.entity.BsCornucopiaLotteryRecord;
import com.hfkj.entity.BsCornucopiaPool;
import com.hfkj.model.CornucopiaStatisticsModel;
import com.hfkj.model.ResponseData;
import com.hfkj.model.SecUserSessionObject;
import com.hfkj.service.cornucopia.BsCornucopiaConfigService;
import com.hfkj.service.cornucopia.BsCornucopiaLotteryRecordService;
import com.hfkj.service.cornucopia.BsCornucopiaPoolService;
import com.hfkj.service.cornucopia.BsCornucopiaUserRecordService;
import com.hfkj.sysenum.cornucopia.CornucopiaEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -25,9 +30,9 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@Controller
@RequestMapping(value="/cornucopia")
@ -45,6 +50,9 @@ public class CornucopiaController {
@Resource
private BsCornucopiaLotteryRecordService cornucopiaLotteryRecordService;
@Resource
private BsCornucopiaUserRecordService cornucopiaUserRecordService;
@RequestMapping(value="/editCornucopiaConfig",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "编辑聚宝盆开奖配置内容")
@ -98,4 +106,106 @@ public class CornucopiaController {
}
}
@RequestMapping(value="/cornucopiaLottery",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "聚宝盆开奖")
public ResponseData cornucopiaLottery() {
try {
cornucopiaPoolService.cornucopiaLottery();
return ResponseMsgUtil.success("");
} catch (Exception e) {
log.error("error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/lotteryRecordList",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询开奖记录")
public ResponseData lotteryRecordList(
@RequestParam(value = "type" , required = false) Integer type,
@RequestParam(value = "lotteryNo" , required = false) String lotteryNo,
@RequestParam(value = "pageNum" , required = true) Integer pageNum,
@RequestParam(value = "pageSize" , required = true) Integer pageSize) {
try {
Map<String , Object> map = new HashMap<>();
map.put("type", type);
map.put("lotteryNo", lotteryNo);
PageHelper.startPage(pageNum, pageSize);
return ResponseMsgUtil.success(new PageInfo<>(cornucopiaLotteryRecordService.queryAllList(map)));
} catch (Exception e) {
log.error("error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/queryUserRecordList",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询用户收益记录")
public ResponseData queryUserRecordList(
@RequestParam(value = "type" , required = false) Integer type,
@RequestParam(value = "lotteryNo" , required = false) String lotteryNo,
@RequestParam(value = "userName" , required = false) String userName,
@RequestParam(value = "pageNum" , required = true) Integer pageNum,
@RequestParam(value = "pageSize" , required = true) Integer pageSize) {
try {
Map<String , Object> map = new HashMap<>();
map.put("type", type);
map.put("lotteryNo", lotteryNo);
map.put("userName", userName);
PageHelper.startPage(pageNum, pageSize);
return ResponseMsgUtil.success(new PageInfo<>(cornucopiaUserRecordService.queryAllList(map)));
} catch (Exception e) {
log.error("error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/cornucopiaStatistics",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "统计")
public ResponseData cornucopiaStatistics(
@RequestParam(value = "createTimeS" , required = false) Long createTimeS,
@RequestParam(value = "createTimeE" , required = false) Long createTimeE
) {
try {
Map<String , Object> map = new HashMap<>();
map.put("createTimeS", createTimeS);
map.put("createTimeE", createTimeE);
// 查询开奖记录
List<BsCornucopiaLotteryRecord> list = cornucopiaLotteryRecordService.queryAllList(map);
CornucopiaStatisticsModel model = new CornucopiaStatisticsModel();
model.setJadeCornucopia(new BigDecimal(0));
model.setGoldCornucopia(new BigDecimal(0));
model.setUserGoldNum(0L);
model.setUserJadeNum(0L);
for (BsCornucopiaLotteryRecord record : list) {
if (record.getType().equals(CornucopiaEnum.type1.getCode())) {
model.setUserGoldNum(model.getUserGoldNum() + record.getUserNum());
model.setGoldCornucopia(model.getGoldCornucopia().add(record.getGoldCoin()));
}
if (record.getType().equals(CornucopiaEnum.type2.getCode())) {
model.setUserJadeNum(model.getUserJadeNum() + record.getUserNum());
model.setJadeCornucopia(model.getJadeCornucopia().add(record.getGoldCoin()));
}
}
return ResponseMsgUtil.success(model);
} catch (Exception e) {
log.error("error!",e);
return ResponseMsgUtil.exception(e);
}
}
}

@ -0,0 +1,144 @@
package com.hfkj.controller;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode;
import com.hfkj.common.security.UserCenter;
import com.hfkj.common.utils.RedisUtil;
import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.entity.BsMessage;
import com.hfkj.entity.BsMessageRead;
import com.hfkj.entity.CmsContent;
import com.hfkj.model.ResponseData;
import com.hfkj.model.UserSessionObject;
import com.hfkj.service.cms.CmsContentService;
import com.hfkj.service.cms.impl.CmsContentServiceImpl;
import com.hfkj.service.message.BsMessageReadService;
import com.hfkj.service.message.BsMessageService;
import com.hfkj.sysenum.cms.CmsStatusEnum;
import com.hfkj.sysenum.message.MessageStatusEnum;
import com.hfkj.sysenum.message.MessageTypeEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @className: CmsController
* @author: HuRui
* @date: 2024/9/24
**/
@Controller
@RequestMapping(value = "/msg")
@Api(value = "消息")
public class MessageController {
private static Logger log = LoggerFactory.getLogger(MessageController.class);
@Resource
private UserCenter userCenter;
@Resource
private BsMessageService messageService;
@Resource
private BsMessageReadService messageReadService;
@RequestMapping(value="/queryUserList",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询用户消息列表")
public ResponseData queryUserList(@RequestParam(name = "type", required = false) Integer type,
@RequestParam(name = "pageNum", required = true) Integer pageNum,
@RequestParam(name = "pageSize", required = true) Integer pageSize) {
try {
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
Map<String,Object> param = new HashMap<>();
param.put("userId", userSession.getUser().getId());
param.put("status", MessageStatusEnum.status2.getStatus());
param.put("type", type);
PageHelper.startPage(pageNum,pageSize);
return ResponseMsgUtil.success(new PageInfo<>(messageService.getUserMsgList(param)));
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/countUserNoReadMsg",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "统计用户未读消息")
public ResponseData countUserNoReadMsg() {
try {
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
List<Map<String,Object>> mapList = new ArrayList<>();
for (MessageTypeEnum type : MessageTypeEnum.values()) {
Map<String,Object> param = new HashMap<>();
param.put("userId", userSession.getUser().getId());
param.put("status", MessageStatusEnum.status2.getStatus());
param.put("type", type.getType());
param.put("readStatus", 0);
List<Map<String, Object>> list = messageService.getUserMsgList(param);
Map<String,Object> map = new HashMap<>();
map.put("name", type.getName());
map.put("type", type.getType());
map.put("countNum", list.size());
mapList.add(map);
}
return ResponseMsgUtil.success(mapList);
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/read",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "已读")
public ResponseData read(@RequestBody JSONObject body) {
try {
if (body == null || body.getLong("id") == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
// 是否存在记录
BsMessageRead messageRead = messageReadService.getDetail(body.getLong("id"), userSession.getUser().getId());
if (messageRead == null) {
messageRead = new BsMessageRead();
messageRead.setMessageId(body.getLong("id"));
messageRead.setUserId(userSession.getUser().getId());
messageRead.setStatus(1);
messageReadService.editData(messageRead);
}
return ResponseMsgUtil.success("成功");
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/queryDetail",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询消息详情")
public ResponseData queryDetail(@RequestParam(name = "id", required = true) Long id) {
try {
return ResponseMsgUtil.success(messageService.getDetail(id));
} catch (Exception e) {
return ResponseMsgUtil.exception(e);
}
}
}

@ -1,6 +1,7 @@
package com.hfkj.controller;
import com.alibaba.fastjson.JSONObject;
import com.hfkj.common.exception.BaseException;
import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode;
@ -99,6 +100,9 @@ public class UserController {
FileOutputStream out = null;
try {
String fileType = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
if (!fileType.endsWith("jpg") && !fileType.endsWith("png")) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "只能上传jpg或png格式文件");
}
String fileName = System.currentTimeMillis() + "." + fileType;
String childPath = "user-head";
String destDirName = sysConfig.getFileUrl() + File.separator + childPath;
@ -114,7 +118,10 @@ public class UserController {
// 修改用户头像
user.setHeadImg(CommonSysConst.getSysConfig().getDomain()+"/filesystem/"+fileNames.get(0));
userService.updateInfo(user);
return ResponseMsgUtil.success(user.getHeadImg());
} catch (BaseException e) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getErrorMsg());
} catch (Exception e) {
log.error(e.getMessage(), e);
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "上传失败");
@ -126,7 +133,7 @@ public class UserController {
}
}
}
return ResponseMsgUtil.success("上传成功");
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "上传失败");
} catch (Exception e) {
log.error(e.getMessage(), e);

@ -4,27 +4,35 @@ import com.alibaba.fastjson.JSONObject;
import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode;
import com.hfkj.common.security.SessionObject;
import com.hfkj.common.security.UserCenter;
import com.hfkj.common.utils.DateUtil;
import com.hfkj.common.utils.ResponseMsgUtil;
import com.hfkj.entity.BsCornucopiaConfig;
import com.hfkj.entity.BsCornucopiaLotteryRecord;
import com.hfkj.entity.BsCornucopiaPool;
import com.hfkj.entity.BsCornucopiaUserRecord;
import com.hfkj.model.BsCornucopiaPoolModel;
import com.hfkj.model.CornucopiaLotteryRecordModel;
import com.hfkj.model.ResponseData;
import com.hfkj.model.SecUserSessionObject;
import com.hfkj.model.UserSessionObject;
import com.hfkj.service.cornucopia.BsCornucopiaConfigService;
import com.hfkj.service.cornucopia.BsCornucopiaLotteryRecordService;
import com.hfkj.service.cornucopia.BsCornucopiaPoolService;
import com.hfkj.service.cornucopia.BsCornucopiaUserRecordService;
import com.hfkj.sysenum.cornucopia.CornucopiaEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@Controller
@RequestMapping(value="/cornucopia")
@ -42,6 +50,9 @@ public class CornucopiaController {
@Resource
private BsCornucopiaLotteryRecordService cornucopiaLotteryRecordService;
@Resource
private BsCornucopiaUserRecordService cornucopiaUserRecordService;
@Resource
private UserCenter userCenter;
@ -63,12 +74,14 @@ public class CornucopiaController {
@RequestMapping(value="/investmentCornucopia",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "投入聚宝盆")
public ResponseData investmentCornucopia(@RequestBody JSONObject body, HttpServletRequest request) {
public ResponseData investmentCornucopia(@RequestBody JSONObject body) {
try {
SessionObject sessionObject = userCenter.getSessionObject(request);
SecUserSessionObject userModel = (SecUserSessionObject) sessionObject.getObject();
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
if (userSession == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, "");
}
if (body == null||
body.getInteger("type") == null ||
body.getBigDecimal("goldCoin") == null
@ -76,7 +89,7 @@ public class CornucopiaController {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
cornucopiaPoolService.investmentCornucopia(body.getInteger("type") , userModel.getAccount().getId() , userModel.getAccount().getUserName() , body.getBigDecimal("goldCoin"));
cornucopiaPoolService.investmentCornucopia(body.getInteger("type") , userSession.getUser().getId() , userSession.getUser().getName() , body.getBigDecimal("goldCoin"));
return ResponseMsgUtil.success("投入成功");
@ -89,12 +102,14 @@ public class CornucopiaController {
@RequestMapping(value="/recoveryGoldCoin",method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "回收元宝")
public ResponseData recoveryCornucopia(@RequestBody JSONObject body, HttpServletRequest request) {
public ResponseData recoveryGoldCoin(@RequestBody JSONObject body) {
try {
SessionObject sessionObject = userCenter.getSessionObject(request);
SecUserSessionObject userModel = (SecUserSessionObject) sessionObject.getObject();
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
if (userSession == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, "");
}
if (body == null||
body.getInteger("type") == null ||
body.getBigDecimal("goldCoin") == null
@ -102,9 +117,62 @@ public class CornucopiaController {
throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, "");
}
cornucopiaPoolService.investmentCornucopia(body.getInteger("type") , userModel.getAccount().getId() , userModel.getAccount().getUserName() , body.getBigDecimal("goldCoin"));
if (body.getBigDecimal("goldCoin").compareTo(new BigDecimal(0)) < 1) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "元宝不能为0!");
}
return ResponseMsgUtil.success("投入成功");
cornucopiaPoolService.recoveryCornucopia(body.getInteger("type") , userSession.getUser().getId() , userSession.getUser().getName() , body.getBigDecimal("goldCoin"));
return ResponseMsgUtil.success("回收成功");
} catch (Exception e) {
log.error("error!",e);
return ResponseMsgUtil.exception(e);
}
}
@RequestMapping(value="/userInvestmentMsg",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "用户投入元宝信息")
public ResponseData userInvestmentMsg(@RequestParam(value = "type" , required = false) Integer type) {
try {
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
if (userSession == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, "");
}
Map<String , Object> map = new HashMap<>();
map.put("userId" , userSession.getUser().getId());
map.put("type" , type);
List<BsCornucopiaPool> list = cornucopiaPoolService.queryAllList(map);
// 查询聚宝盆配置内容
List<BsCornucopiaConfig> configs = cornucopiaConfigService.queryAllList(new HashMap<>());
configs.stream().sorted(Comparator.comparing(BsCornucopiaConfig::getType)).collect(Collectors.toList());
List<BsCornucopiaPoolModel> poolModels = new ArrayList<>();
for (BsCornucopiaConfig config : configs) {
BsCornucopiaPoolModel poolModel = new BsCornucopiaPoolModel();
poolModel.setCornucopiaName(CornucopiaEnum.getDataByType(config.getType()).getName());
poolModel.setLotteryNo(DateUtil.date2String(new Date() , DateUtil.YMD));
List<BsCornucopiaPool> cornucopiaPoolList = list.stream().filter(s-> s.getType().equals(config.getType())).collect(Collectors.toList());
if (!cornucopiaPoolList.isEmpty()) {
poolModel.setEnterGoldCoin(cornucopiaPoolList.get(0).getGoldCoin());
} else {
poolModel.setEnterGoldCoin(new BigDecimal(0));
}
poolModels.add(poolModel);
}
return ResponseMsgUtil.success(poolModels);
} catch (Exception e) {
log.error("error!",e);
@ -113,4 +181,51 @@ public class CornucopiaController {
}
@RequestMapping(value="/cornucopiaRecord",method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "聚宝记录")
public ResponseData cornucopiaRecord() {
try {
// 用户session
UserSessionObject userSession = userCenter.getSessionModel(UserSessionObject.class);
if (userSession == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.ACCOUNT_LOGIN_NOT, "");
}
// 查询用户开奖记录
List<BsCornucopiaUserRecord> userRecords = cornucopiaUserRecordService.queryAllList(new HashMap<>());
// 查询开奖记录
List<BsCornucopiaLotteryRecord> lotteryRecords = cornucopiaLotteryRecordService.queryAllList(new HashMap<>());
List<CornucopiaLotteryRecordModel> modelList = new ArrayList<>();
CornucopiaLotteryRecordModel model;
for (BsCornucopiaLotteryRecord lotteryRecord : lotteryRecords) {
model = new CornucopiaLotteryRecordModel();
BeanUtils.copyProperties(model, lotteryRecord);
List<BsCornucopiaUserRecord> lotteryRecordList = userRecords.stream().filter(s-> s.getLotteryNo().equals(lotteryRecord.getLotteryNo())).filter(s-> s.getType().equals(lotteryRecord.getType())).collect(Collectors.toList());
model.setUserGoldCoin(lotteryRecordList.get(0).getGoldCoin());
modelList.add(model);
}
Map<String, List<CornucopiaLotteryRecordModel>> collect = modelList.stream().collect(Collectors.groupingBy(CornucopiaLotteryRecordModel::getLotteryNo));
AtomicReference<Integer> i = new AtomicReference<>(1);
List<JSONObject> countRecords = collect.keySet().stream().map(key -> {
JSONObject goodObject = new JSONObject(true);
goodObject.put("name",key.toUpperCase());
goodObject.put("id",i.getAndSet(i.get() + 1));
goodObject.put("list",collect.get(key));
return goodObject;
}).collect(Collectors.toList());
return ResponseMsgUtil.success(countRecords);
} catch (Exception e) {
log.error("error!",e);
return ResponseMsgUtil.exception(e);
}
}
}

@ -39,6 +39,17 @@ public class DateUtil {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.YEAR);
}
public static Integer getThisMonth(){
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.MONTH);
}
public static Integer getThisDay(){
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.DATE);
}
public static String date2String(Date date,String format) throws Exception{
String str = null;
SimpleDateFormat sdf = new SimpleDateFormat(format);

@ -1,7 +1,40 @@
package com.hfkj.dao;
import com.hfkj.entity.BsCornucopiaLotteryRecord;
import com.hfkj.entity.BsCornucopiaLotteryRecordExample;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.type.JdbcType;
import java.util.List;
/**
* mapper扩展类
*/
public interface BsCornucopiaLotteryRecordMapperExt {
@Select(value = {
"<script>",
"select * from bs_cornucopia_lottery_record ",
"where ",
"DATE_FORMAT(create_time,'%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d') and status = 1 " ,
"</script>"
})
@Results({
@Result(column="id", property="id", jdbcType= JdbcType.BIGINT, id=true),
@Result(column="lottery_no", property="lotteryNo", jdbcType=JdbcType.VARCHAR),
@Result(column="lottery_time", property="lotteryTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="type", property="type", jdbcType=JdbcType.INTEGER),
@Result(column="type_name", property="typeName", jdbcType=JdbcType.VARCHAR),
@Result(column="config_msg", property="configMsg", jdbcType=JdbcType.VARCHAR),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
List<BsCornucopiaLotteryRecord> cornucopiaLottery();
}

@ -0,0 +1,125 @@
package com.hfkj.dao;
import com.hfkj.entity.BsMessage;
import com.hfkj.entity.BsMessageExample;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.type.JdbcType;
import org.springframework.stereotype.Repository;
/**
*
* 代码由工具生成,请勿修改!!!
* 如果需要扩展请在其父类进行扩展
*
**/
@Repository
public interface BsMessageMapper extends BsMessageMapperExt {
@SelectProvider(type=BsMessageSqlProvider.class, method="countByExample")
long countByExample(BsMessageExample example);
@DeleteProvider(type=BsMessageSqlProvider.class, method="deleteByExample")
int deleteByExample(BsMessageExample example);
@Delete({
"delete from bs_message",
"where id = #{id,jdbcType=BIGINT}"
})
int deleteByPrimaryKey(Long id);
@Insert({
"insert into bs_message (user_id, `type`, ",
"title, carousel, ",
"content, `status`, ",
"create_time, update_time, ",
"ext_1, ext_2, ext_3)",
"values (#{userId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER}, ",
"#{title,jdbcType=VARCHAR}, #{carousel,jdbcType=VARCHAR}, ",
"#{content,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, ",
"#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
})
@Options(useGeneratedKeys=true,keyProperty="id")
int insert(BsMessage record);
@InsertProvider(type=BsMessageSqlProvider.class, method="insertSelective")
@Options(useGeneratedKeys=true,keyProperty="id")
int insertSelective(BsMessage record);
@SelectProvider(type=BsMessageSqlProvider.class, method="selectByExample")
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT),
@Result(column="type", property="type", jdbcType=JdbcType.INTEGER),
@Result(column="title", property="title", jdbcType=JdbcType.VARCHAR),
@Result(column="carousel", property="carousel", jdbcType=JdbcType.VARCHAR),
@Result(column="content", property="content", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
List<BsMessage> selectByExample(BsMessageExample example);
@Select({
"select",
"id, user_id, `type`, title, carousel, content, `status`, create_time, update_time, ",
"ext_1, ext_2, ext_3",
"from bs_message",
"where id = #{id,jdbcType=BIGINT}"
})
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT),
@Result(column="type", property="type", jdbcType=JdbcType.INTEGER),
@Result(column="title", property="title", jdbcType=JdbcType.VARCHAR),
@Result(column="carousel", property="carousel", jdbcType=JdbcType.VARCHAR),
@Result(column="content", property="content", jdbcType=JdbcType.VARCHAR),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="update_time", property="updateTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
BsMessage selectByPrimaryKey(Long id);
@UpdateProvider(type=BsMessageSqlProvider.class, method="updateByExampleSelective")
int updateByExampleSelective(@Param("record") BsMessage record, @Param("example") BsMessageExample example);
@UpdateProvider(type=BsMessageSqlProvider.class, method="updateByExample")
int updateByExample(@Param("record") BsMessage record, @Param("example") BsMessageExample example);
@UpdateProvider(type=BsMessageSqlProvider.class, method="updateByPrimaryKeySelective")
int updateByPrimaryKeySelective(BsMessage record);
@Update({
"update bs_message",
"set user_id = #{userId,jdbcType=BIGINT},",
"`type` = #{type,jdbcType=INTEGER},",
"title = #{title,jdbcType=VARCHAR},",
"carousel = #{carousel,jdbcType=VARCHAR},",
"content = #{content,jdbcType=VARCHAR},",
"`status` = #{status,jdbcType=INTEGER},",
"create_time = #{createTime,jdbcType=TIMESTAMP},",
"update_time = #{updateTime,jdbcType=TIMESTAMP},",
"ext_1 = #{ext1,jdbcType=VARCHAR},",
"ext_2 = #{ext2,jdbcType=VARCHAR},",
"ext_3 = #{ext3,jdbcType=VARCHAR}",
"where id = #{id,jdbcType=BIGINT}"
})
int updateByPrimaryKey(BsMessage record);
}

@ -0,0 +1,36 @@
package com.hfkj.dao;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* mapper扩展类
*/
public interface BsMessageMapperExt {
@Select("<script>" +
" select * from (" +
" select " +
" a.id," +
" a.user_id userId," +
" a.type," +
" a.title, " +
" a.carousel," +
" a.content," +
" a.create_time createTime," +
" case count(b.id) when 0 then false else true end readStatus" +
" from bs_message a" +
" LEFT JOIN bs_message_read b on b.message_id = a.id and b.user_id = #{param.userId} and b.`status` = 1" +
" where 1 = 1 and a.user_id = #{param.userId} or a.user_id is null" +
" <if test='param.msgStatus != null'> and a.`status` = #{param.msgStatus} </if>" +
" <if test='param.msgStatus != null'> and a.`status` = #{param.msgStatus} </if>" +
" <if test='param.type != null'> and a.type = #{param.type} </if>" +
" GROUP BY a.id" +
" ORDER BY a.create_time desc) a where 1 = 1" +
" <if test='param.readStatus != null'> and a.readStatus = #{param.readStatus} </if>" +
"</script>")
List<Map<String,Object>> queryUserMsgList(@Param("param") Map<String,Object> param);
}

@ -0,0 +1,108 @@
package com.hfkj.dao;
import com.hfkj.entity.BsMessageRead;
import com.hfkj.entity.BsMessageReadExample;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import org.apache.ibatis.annotations.UpdateProvider;
import org.apache.ibatis.type.JdbcType;
import org.springframework.stereotype.Repository;
/**
*
* 代码由工具生成,请勿修改!!!
* 如果需要扩展请在其父类进行扩展
*
**/
@Repository
public interface BsMessageReadMapper extends BsMessageReadMapperExt {
@SelectProvider(type=BsMessageReadSqlProvider.class, method="countByExample")
long countByExample(BsMessageReadExample example);
@DeleteProvider(type=BsMessageReadSqlProvider.class, method="deleteByExample")
int deleteByExample(BsMessageReadExample example);
@Delete({
"delete from bs_message_read",
"where id = #{id,jdbcType=BIGINT}"
})
int deleteByPrimaryKey(Long id);
@Insert({
"insert into bs_message_read (message_id, user_id, ",
"`status`, create_time, ",
"ext_1, ext_2, ext_3)",
"values (#{messageId,jdbcType=BIGINT}, #{userId,jdbcType=BIGINT}, ",
"#{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, ",
"#{ext1,jdbcType=VARCHAR}, #{ext2,jdbcType=VARCHAR}, #{ext3,jdbcType=VARCHAR})"
})
@Options(useGeneratedKeys=true,keyProperty="id")
int insert(BsMessageRead record);
@InsertProvider(type=BsMessageReadSqlProvider.class, method="insertSelective")
@Options(useGeneratedKeys=true,keyProperty="id")
int insertSelective(BsMessageRead record);
@SelectProvider(type=BsMessageReadSqlProvider.class, method="selectByExample")
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="message_id", property="messageId", jdbcType=JdbcType.BIGINT),
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
List<BsMessageRead> selectByExample(BsMessageReadExample example);
@Select({
"select",
"id, message_id, user_id, `status`, create_time, ext_1, ext_2, ext_3",
"from bs_message_read",
"where id = #{id,jdbcType=BIGINT}"
})
@Results({
@Result(column="id", property="id", jdbcType=JdbcType.BIGINT, id=true),
@Result(column="message_id", property="messageId", jdbcType=JdbcType.BIGINT),
@Result(column="user_id", property="userId", jdbcType=JdbcType.BIGINT),
@Result(column="status", property="status", jdbcType=JdbcType.INTEGER),
@Result(column="create_time", property="createTime", jdbcType=JdbcType.TIMESTAMP),
@Result(column="ext_1", property="ext1", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_2", property="ext2", jdbcType=JdbcType.VARCHAR),
@Result(column="ext_3", property="ext3", jdbcType=JdbcType.VARCHAR)
})
BsMessageRead selectByPrimaryKey(Long id);
@UpdateProvider(type=BsMessageReadSqlProvider.class, method="updateByExampleSelective")
int updateByExampleSelective(@Param("record") BsMessageRead record, @Param("example") BsMessageReadExample example);
@UpdateProvider(type=BsMessageReadSqlProvider.class, method="updateByExample")
int updateByExample(@Param("record") BsMessageRead record, @Param("example") BsMessageReadExample example);
@UpdateProvider(type=BsMessageReadSqlProvider.class, method="updateByPrimaryKeySelective")
int updateByPrimaryKeySelective(BsMessageRead record);
@Update({
"update bs_message_read",
"set message_id = #{messageId,jdbcType=BIGINT},",
"user_id = #{userId,jdbcType=BIGINT},",
"`status` = #{status,jdbcType=INTEGER},",
"create_time = #{createTime,jdbcType=TIMESTAMP},",
"ext_1 = #{ext1,jdbcType=VARCHAR},",
"ext_2 = #{ext2,jdbcType=VARCHAR},",
"ext_3 = #{ext3,jdbcType=VARCHAR}",
"where id = #{id,jdbcType=BIGINT}"
})
int updateByPrimaryKey(BsMessageRead record);
}

@ -0,0 +1,7 @@
package com.hfkj.dao;
/**
* mapper扩展类
*/
public interface BsMessageReadMapperExt {
}

@ -0,0 +1,276 @@
package com.hfkj.dao;
import com.hfkj.entity.BsMessageRead;
import com.hfkj.entity.BsMessageReadExample.Criteria;
import com.hfkj.entity.BsMessageReadExample.Criterion;
import com.hfkj.entity.BsMessageReadExample;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.jdbc.SQL;
public class BsMessageReadSqlProvider {
public String countByExample(BsMessageReadExample example) {
SQL sql = new SQL();
sql.SELECT("count(*)").FROM("bs_message_read");
applyWhere(sql, example, false);
return sql.toString();
}
public String deleteByExample(BsMessageReadExample example) {
SQL sql = new SQL();
sql.DELETE_FROM("bs_message_read");
applyWhere(sql, example, false);
return sql.toString();
}
public String insertSelective(BsMessageRead record) {
SQL sql = new SQL();
sql.INSERT_INTO("bs_message_read");
if (record.getMessageId() != null) {
sql.VALUES("message_id", "#{messageId,jdbcType=BIGINT}");
}
if (record.getUserId() != null) {
sql.VALUES("user_id", "#{userId,jdbcType=BIGINT}");
}
if (record.getStatus() != null) {
sql.VALUES("`status`", "#{status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.VALUES("ext_1", "#{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.VALUES("ext_2", "#{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.VALUES("ext_3", "#{ext3,jdbcType=VARCHAR}");
}
return sql.toString();
}
public String selectByExample(BsMessageReadExample example) {
SQL sql = new SQL();
if (example != null && example.isDistinct()) {
sql.SELECT_DISTINCT("id");
} else {
sql.SELECT("id");
}
sql.SELECT("message_id");
sql.SELECT("user_id");
sql.SELECT("`status`");
sql.SELECT("create_time");
sql.SELECT("ext_1");
sql.SELECT("ext_2");
sql.SELECT("ext_3");
sql.FROM("bs_message_read");
applyWhere(sql, example, false);
if (example != null && example.getOrderByClause() != null) {
sql.ORDER_BY(example.getOrderByClause());
}
return sql.toString();
}
public String updateByExampleSelective(Map<String, Object> parameter) {
BsMessageRead record = (BsMessageRead) parameter.get("record");
BsMessageReadExample example = (BsMessageReadExample) parameter.get("example");
SQL sql = new SQL();
sql.UPDATE("bs_message_read");
if (record.getId() != null) {
sql.SET("id = #{record.id,jdbcType=BIGINT}");
}
if (record.getMessageId() != null) {
sql.SET("message_id = #{record.messageId,jdbcType=BIGINT}");
}
if (record.getUserId() != null) {
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
}
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByExample(Map<String, Object> parameter) {
SQL sql = new SQL();
sql.UPDATE("bs_message_read");
sql.SET("id = #{record.id,jdbcType=BIGINT}");
sql.SET("message_id = #{record.messageId,jdbcType=BIGINT}");
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}");
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
BsMessageReadExample example = (BsMessageReadExample) parameter.get("example");
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByPrimaryKeySelective(BsMessageRead record) {
SQL sql = new SQL();
sql.UPDATE("bs_message_read");
if (record.getMessageId() != null) {
sql.SET("message_id = #{messageId,jdbcType=BIGINT}");
}
if (record.getUserId() != null) {
sql.SET("user_id = #{userId,jdbcType=BIGINT}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{ext3,jdbcType=VARCHAR}");
}
sql.WHERE("id = #{id,jdbcType=BIGINT}");
return sql.toString();
}
protected void applyWhere(SQL sql, BsMessageReadExample example, boolean includeExamplePhrase) {
if (example == null) {
return;
}
String parmPhrase1;
String parmPhrase1_th;
String parmPhrase2;
String parmPhrase2_th;
String parmPhrase3;
String parmPhrase3_th;
if (includeExamplePhrase) {
parmPhrase1 = "%s #{example.oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{example.oredCriteria[%d].allCriteria[%d].value} and #{example.oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{example.oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{example.oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{example.oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
} else {
parmPhrase1 = "%s #{oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{oredCriteria[%d].allCriteria[%d].value} and #{oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
}
StringBuilder sb = new StringBuilder();
List<Criteria> oredCriteria = example.getOredCriteria();
boolean firstCriteria = true;
for (int i = 0; i < oredCriteria.size(); i++) {
Criteria criteria = oredCriteria.get(i);
if (criteria.isValid()) {
if (firstCriteria) {
firstCriteria = false;
} else {
sb.append(" or ");
}
sb.append('(');
List<Criterion> criterions = criteria.getAllCriteria();
boolean firstCriterion = true;
for (int j = 0; j < criterions.size(); j++) {
Criterion criterion = criterions.get(j);
if (firstCriterion) {
firstCriterion = false;
} else {
sb.append(" and ");
}
if (criterion.isNoValue()) {
sb.append(criterion.getCondition());
} else if (criterion.isSingleValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase1, criterion.getCondition(), i, j));
} else {
sb.append(String.format(parmPhrase1_th, criterion.getCondition(), i, j,criterion.getTypeHandler()));
}
} else if (criterion.isBetweenValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase2, criterion.getCondition(), i, j, i, j));
} else {
sb.append(String.format(parmPhrase2_th, criterion.getCondition(), i, j, criterion.getTypeHandler(), i, j, criterion.getTypeHandler()));
}
} else if (criterion.isListValue()) {
sb.append(criterion.getCondition());
sb.append(" (");
List<?> listItems = (List<?>) criterion.getValue();
boolean comma = false;
for (int k = 0; k < listItems.size(); k++) {
if (comma) {
sb.append(", ");
} else {
comma = true;
}
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase3, i, j, k));
} else {
sb.append(String.format(parmPhrase3_th, i, j, k, criterion.getTypeHandler()));
}
}
sb.append(')');
}
}
sb.append(')');
}
}
if (sb.length() > 0) {
sql.WHERE(sb.toString());
}
}
}

@ -0,0 +1,332 @@
package com.hfkj.dao;
import com.hfkj.entity.BsMessage;
import com.hfkj.entity.BsMessageExample.Criteria;
import com.hfkj.entity.BsMessageExample.Criterion;
import com.hfkj.entity.BsMessageExample;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.jdbc.SQL;
public class BsMessageSqlProvider {
public String countByExample(BsMessageExample example) {
SQL sql = new SQL();
sql.SELECT("count(*)").FROM("bs_message");
applyWhere(sql, example, false);
return sql.toString();
}
public String deleteByExample(BsMessageExample example) {
SQL sql = new SQL();
sql.DELETE_FROM("bs_message");
applyWhere(sql, example, false);
return sql.toString();
}
public String insertSelective(BsMessage record) {
SQL sql = new SQL();
sql.INSERT_INTO("bs_message");
if (record.getUserId() != null) {
sql.VALUES("user_id", "#{userId,jdbcType=BIGINT}");
}
if (record.getType() != null) {
sql.VALUES("`type`", "#{type,jdbcType=INTEGER}");
}
if (record.getTitle() != null) {
sql.VALUES("title", "#{title,jdbcType=VARCHAR}");
}
if (record.getCarousel() != null) {
sql.VALUES("carousel", "#{carousel,jdbcType=VARCHAR}");
}
if (record.getContent() != null) {
sql.VALUES("content", "#{content,jdbcType=VARCHAR}");
}
if (record.getStatus() != null) {
sql.VALUES("`status`", "#{status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.VALUES("create_time", "#{createTime,jdbcType=TIMESTAMP}");
}
if (record.getUpdateTime() != null) {
sql.VALUES("update_time", "#{updateTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.VALUES("ext_1", "#{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.VALUES("ext_2", "#{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.VALUES("ext_3", "#{ext3,jdbcType=VARCHAR}");
}
return sql.toString();
}
public String selectByExample(BsMessageExample example) {
SQL sql = new SQL();
if (example != null && example.isDistinct()) {
sql.SELECT_DISTINCT("id");
} else {
sql.SELECT("id");
}
sql.SELECT("user_id");
sql.SELECT("`type`");
sql.SELECT("title");
sql.SELECT("carousel");
sql.SELECT("content");
sql.SELECT("`status`");
sql.SELECT("create_time");
sql.SELECT("update_time");
sql.SELECT("ext_1");
sql.SELECT("ext_2");
sql.SELECT("ext_3");
sql.FROM("bs_message");
applyWhere(sql, example, false);
if (example != null && example.getOrderByClause() != null) {
sql.ORDER_BY(example.getOrderByClause());
}
return sql.toString();
}
public String updateByExampleSelective(Map<String, Object> parameter) {
BsMessage record = (BsMessage) parameter.get("record");
BsMessageExample example = (BsMessageExample) parameter.get("example");
SQL sql = new SQL();
sql.UPDATE("bs_message");
if (record.getId() != null) {
sql.SET("id = #{record.id,jdbcType=BIGINT}");
}
if (record.getUserId() != null) {
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}");
}
if (record.getType() != null) {
sql.SET("`type` = #{record.type,jdbcType=INTEGER}");
}
if (record.getTitle() != null) {
sql.SET("title = #{record.title,jdbcType=VARCHAR}");
}
if (record.getCarousel() != null) {
sql.SET("carousel = #{record.carousel,jdbcType=VARCHAR}");
}
if (record.getContent() != null) {
sql.SET("content = #{record.content,jdbcType=VARCHAR}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
}
if (record.getUpdateTime() != null) {
sql.SET("update_time = #{record.updateTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
}
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByExample(Map<String, Object> parameter) {
SQL sql = new SQL();
sql.UPDATE("bs_message");
sql.SET("id = #{record.id,jdbcType=BIGINT}");
sql.SET("user_id = #{record.userId,jdbcType=BIGINT}");
sql.SET("`type` = #{record.type,jdbcType=INTEGER}");
sql.SET("title = #{record.title,jdbcType=VARCHAR}");
sql.SET("carousel = #{record.carousel,jdbcType=VARCHAR}");
sql.SET("content = #{record.content,jdbcType=VARCHAR}");
sql.SET("`status` = #{record.status,jdbcType=INTEGER}");
sql.SET("create_time = #{record.createTime,jdbcType=TIMESTAMP}");
sql.SET("update_time = #{record.updateTime,jdbcType=TIMESTAMP}");
sql.SET("ext_1 = #{record.ext1,jdbcType=VARCHAR}");
sql.SET("ext_2 = #{record.ext2,jdbcType=VARCHAR}");
sql.SET("ext_3 = #{record.ext3,jdbcType=VARCHAR}");
BsMessageExample example = (BsMessageExample) parameter.get("example");
applyWhere(sql, example, true);
return sql.toString();
}
public String updateByPrimaryKeySelective(BsMessage record) {
SQL sql = new SQL();
sql.UPDATE("bs_message");
if (record.getUserId() != null) {
sql.SET("user_id = #{userId,jdbcType=BIGINT}");
}
if (record.getType() != null) {
sql.SET("`type` = #{type,jdbcType=INTEGER}");
}
if (record.getTitle() != null) {
sql.SET("title = #{title,jdbcType=VARCHAR}");
}
if (record.getCarousel() != null) {
sql.SET("carousel = #{carousel,jdbcType=VARCHAR}");
}
if (record.getContent() != null) {
sql.SET("content = #{content,jdbcType=VARCHAR}");
}
if (record.getStatus() != null) {
sql.SET("`status` = #{status,jdbcType=INTEGER}");
}
if (record.getCreateTime() != null) {
sql.SET("create_time = #{createTime,jdbcType=TIMESTAMP}");
}
if (record.getUpdateTime() != null) {
sql.SET("update_time = #{updateTime,jdbcType=TIMESTAMP}");
}
if (record.getExt1() != null) {
sql.SET("ext_1 = #{ext1,jdbcType=VARCHAR}");
}
if (record.getExt2() != null) {
sql.SET("ext_2 = #{ext2,jdbcType=VARCHAR}");
}
if (record.getExt3() != null) {
sql.SET("ext_3 = #{ext3,jdbcType=VARCHAR}");
}
sql.WHERE("id = #{id,jdbcType=BIGINT}");
return sql.toString();
}
protected void applyWhere(SQL sql, BsMessageExample example, boolean includeExamplePhrase) {
if (example == null) {
return;
}
String parmPhrase1;
String parmPhrase1_th;
String parmPhrase2;
String parmPhrase2_th;
String parmPhrase3;
String parmPhrase3_th;
if (includeExamplePhrase) {
parmPhrase1 = "%s #{example.oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{example.oredCriteria[%d].allCriteria[%d].value} and #{example.oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{example.oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{example.oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{example.oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{example.oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
} else {
parmPhrase1 = "%s #{oredCriteria[%d].allCriteria[%d].value}";
parmPhrase1_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s}";
parmPhrase2 = "%s #{oredCriteria[%d].allCriteria[%d].value} and #{oredCriteria[%d].criteria[%d].secondValue}";
parmPhrase2_th = "%s #{oredCriteria[%d].allCriteria[%d].value,typeHandler=%s} and #{oredCriteria[%d].criteria[%d].secondValue,typeHandler=%s}";
parmPhrase3 = "#{oredCriteria[%d].allCriteria[%d].value[%d]}";
parmPhrase3_th = "#{oredCriteria[%d].allCriteria[%d].value[%d],typeHandler=%s}";
}
StringBuilder sb = new StringBuilder();
List<Criteria> oredCriteria = example.getOredCriteria();
boolean firstCriteria = true;
for (int i = 0; i < oredCriteria.size(); i++) {
Criteria criteria = oredCriteria.get(i);
if (criteria.isValid()) {
if (firstCriteria) {
firstCriteria = false;
} else {
sb.append(" or ");
}
sb.append('(');
List<Criterion> criterions = criteria.getAllCriteria();
boolean firstCriterion = true;
for (int j = 0; j < criterions.size(); j++) {
Criterion criterion = criterions.get(j);
if (firstCriterion) {
firstCriterion = false;
} else {
sb.append(" and ");
}
if (criterion.isNoValue()) {
sb.append(criterion.getCondition());
} else if (criterion.isSingleValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase1, criterion.getCondition(), i, j));
} else {
sb.append(String.format(parmPhrase1_th, criterion.getCondition(), i, j,criterion.getTypeHandler()));
}
} else if (criterion.isBetweenValue()) {
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase2, criterion.getCondition(), i, j, i, j));
} else {
sb.append(String.format(parmPhrase2_th, criterion.getCondition(), i, j, criterion.getTypeHandler(), i, j, criterion.getTypeHandler()));
}
} else if (criterion.isListValue()) {
sb.append(criterion.getCondition());
sb.append(" (");
List<?> listItems = (List<?>) criterion.getValue();
boolean comma = false;
for (int k = 0; k < listItems.size(); k++) {
if (comma) {
sb.append(", ");
} else {
comma = true;
}
if (criterion.getTypeHandler() == null) {
sb.append(String.format(parmPhrase3, i, j, k));
} else {
sb.append(String.format(parmPhrase3_th, i, j, k, criterion.getTypeHandler()));
}
}
sb.append(')');
}
}
sb.append(')');
}
}
if (sb.length() > 0) {
sql.WHERE(sb.toString());
}
}
}

@ -13,7 +13,7 @@ import java.util.Date;
* 代码由工具生成
*
**/
public class BsCornucopiaLotteryRecord implements Serializable {
public class BsCornucopiaLotteryRecord implements Serializable {
/**
* 主键
*/

@ -50,7 +50,7 @@ public class BsCornucopiaPoolRecord implements Serializable {
private Date updateTime;
/**
* 状态 1:投入 0:取出
* 状态 1:投入 2:取出
*/
private Integer status;

@ -0,0 +1,232 @@
package com.hfkj.entity;
import java.io.Serializable;
import java.util.Date;
/**
* bs_message
* @author
*/
/**
*
* 代码由工具生成
*
**/
public class BsMessage implements Serializable {
/**
* 主键
*/
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 类型 数据字典MESSAGE_TYPE
*/
private Integer type;
/**
* 标题
*/
private String title;
/**
* 轮播
*/
private String carousel;
/**
* 内容
*/
private String content;
/**
* 状态 0删除 1编辑中 2已发布
*/
private Integer status;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
private String ext1;
private String ext2;
private String ext3;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCarousel() {
return carousel;
}
public void setCarousel(String carousel) {
this.carousel = carousel;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getExt1() {
return ext1;
}
public void setExt1(String ext1) {
this.ext1 = ext1;
}
public String getExt2() {
return ext2;
}
public void setExt2(String ext2) {
this.ext2 = ext2;
}
public String getExt3() {
return ext3;
}
public void setExt3(String ext3) {
this.ext3 = ext3;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
BsMessage other = (BsMessage) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
&& (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
&& (this.getTitle() == null ? other.getTitle() == null : this.getTitle().equals(other.getTitle()))
&& (this.getCarousel() == null ? other.getCarousel() == null : this.getCarousel().equals(other.getCarousel()))
&& (this.getContent() == null ? other.getContent() == null : this.getContent().equals(other.getContent()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
&& (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1()))
&& (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2()))
&& (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
result = prime * result + ((getTitle() == null) ? 0 : getTitle().hashCode());
result = prime * result + ((getCarousel() == null) ? 0 : getCarousel().hashCode());
result = prime * result + ((getContent() == null) ? 0 : getContent().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode());
result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode());
result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", userId=").append(userId);
sb.append(", type=").append(type);
sb.append(", title=").append(title);
sb.append(", carousel=").append(carousel);
sb.append(", content=").append(content);
sb.append(", status=").append(status);
sb.append(", createTime=").append(createTime);
sb.append(", updateTime=").append(updateTime);
sb.append(", ext1=").append(ext1);
sb.append(", ext2=").append(ext2);
sb.append(", ext3=").append(ext3);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,168 @@
package com.hfkj.entity;
import java.io.Serializable;
import java.util.Date;
/**
* bs_message_read
* @author
*/
/**
*
* 代码由工具生成
*
**/
public class BsMessageRead implements Serializable {
/**
* 主键
*/
private Long id;
/**
* 消息id
*/
private Long messageId;
/**
* 用户id
*/
private Long userId;
/**
* 状态 0删除 1正常
*/
private Integer status;
/**
* 创建时间
*/
private Date createTime;
private String ext1;
private String ext2;
private String ext3;
private static final long serialVersionUID = 1L;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getMessageId() {
return messageId;
}
public void setMessageId(Long messageId) {
this.messageId = messageId;
}
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getExt1() {
return ext1;
}
public void setExt1(String ext1) {
this.ext1 = ext1;
}
public String getExt2() {
return ext2;
}
public void setExt2(String ext2) {
this.ext2 = ext2;
}
public String getExt3() {
return ext3;
}
public void setExt3(String ext3) {
this.ext3 = ext3;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
BsMessageRead other = (BsMessageRead) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getMessageId() == null ? other.getMessageId() == null : this.getMessageId().equals(other.getMessageId()))
&& (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
&& (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
&& (this.getExt1() == null ? other.getExt1() == null : this.getExt1().equals(other.getExt1()))
&& (this.getExt2() == null ? other.getExt2() == null : this.getExt2().equals(other.getExt2()))
&& (this.getExt3() == null ? other.getExt3() == null : this.getExt3().equals(other.getExt3()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getMessageId() == null) ? 0 : getMessageId().hashCode());
result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
result = prime * result + ((getExt1() == null) ? 0 : getExt1().hashCode());
result = prime * result + ((getExt2() == null) ? 0 : getExt2().hashCode());
result = prime * result + ((getExt3() == null) ? 0 : getExt3().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", messageId=").append(messageId);
sb.append(", userId=").append(userId);
sb.append(", status=").append(status);
sb.append(", createTime=").append(createTime);
sb.append(", ext1=").append(ext1);
sb.append(", ext2=").append(ext2);
sb.append(", ext3=").append(ext3);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}

@ -0,0 +1,733 @@
package com.hfkj.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class BsMessageReadExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
private Integer limit;
private Long offset;
public BsMessageReadExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public Integer getLimit() {
return limit;
}
public void setOffset(Long offset) {
this.offset = offset;
}
public Long getOffset() {
return offset;
}
protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}
public boolean isValid() {
return criteria.size() > 0;
}
public List<Criterion> getAllCriteria() {
return criteria;
}
public List<Criterion> getCriteria() {
return criteria;
}
protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}
protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}
protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}
public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andMessageIdIsNull() {
addCriterion("message_id is null");
return (Criteria) this;
}
public Criteria andMessageIdIsNotNull() {
addCriterion("message_id is not null");
return (Criteria) this;
}
public Criteria andMessageIdEqualTo(Long value) {
addCriterion("message_id =", value, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdNotEqualTo(Long value) {
addCriterion("message_id <>", value, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdGreaterThan(Long value) {
addCriterion("message_id >", value, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdGreaterThanOrEqualTo(Long value) {
addCriterion("message_id >=", value, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdLessThan(Long value) {
addCriterion("message_id <", value, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdLessThanOrEqualTo(Long value) {
addCriterion("message_id <=", value, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdIn(List<Long> values) {
addCriterion("message_id in", values, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdNotIn(List<Long> values) {
addCriterion("message_id not in", values, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdBetween(Long value1, Long value2) {
addCriterion("message_id between", value1, value2, "messageId");
return (Criteria) this;
}
public Criteria andMessageIdNotBetween(Long value1, Long value2) {
addCriterion("message_id not between", value1, value2, "messageId");
return (Criteria) this;
}
public Criteria andUserIdIsNull() {
addCriterion("user_id is null");
return (Criteria) this;
}
public Criteria andUserIdIsNotNull() {
addCriterion("user_id is not null");
return (Criteria) this;
}
public Criteria andUserIdEqualTo(Long value) {
addCriterion("user_id =", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotEqualTo(Long value) {
addCriterion("user_id <>", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdGreaterThan(Long value) {
addCriterion("user_id >", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
addCriterion("user_id >=", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdLessThan(Long value) {
addCriterion("user_id <", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdLessThanOrEqualTo(Long value) {
addCriterion("user_id <=", value, "userId");
return (Criteria) this;
}
public Criteria andUserIdIn(List<Long> values) {
addCriterion("user_id in", values, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotIn(List<Long> values) {
addCriterion("user_id not in", values, "userId");
return (Criteria) this;
}
public Criteria andUserIdBetween(Long value1, Long value2) {
addCriterion("user_id between", value1, value2, "userId");
return (Criteria) this;
}
public Criteria andUserIdNotBetween(Long value1, Long value2) {
addCriterion("user_id not between", value1, value2, "userId");
return (Criteria) this;
}
public Criteria andStatusIsNull() {
addCriterion("`status` is null");
return (Criteria) this;
}
public Criteria andStatusIsNotNull() {
addCriterion("`status` is not null");
return (Criteria) this;
}
public Criteria andStatusEqualTo(Integer value) {
addCriterion("`status` =", value, "status");
return (Criteria) this;
}
public Criteria andStatusNotEqualTo(Integer value) {
addCriterion("`status` <>", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThan(Integer value) {
addCriterion("`status` >", value, "status");
return (Criteria) this;
}
public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
addCriterion("`status` >=", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThan(Integer value) {
addCriterion("`status` <", value, "status");
return (Criteria) this;
}
public Criteria andStatusLessThanOrEqualTo(Integer value) {
addCriterion("`status` <=", value, "status");
return (Criteria) this;
}
public Criteria andStatusIn(List<Integer> values) {
addCriterion("`status` in", values, "status");
return (Criteria) this;
}
public Criteria andStatusNotIn(List<Integer> values) {
addCriterion("`status` not in", values, "status");
return (Criteria) this;
}
public Criteria andStatusBetween(Integer value1, Integer value2) {
addCriterion("`status` between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andStatusNotBetween(Integer value1, Integer value2) {
addCriterion("`status` not between", value1, value2, "status");
return (Criteria) this;
}
public Criteria andCreateTimeIsNull() {
addCriterion("create_time is null");
return (Criteria) this;
}
public Criteria andCreateTimeIsNotNull() {
addCriterion("create_time is not null");
return (Criteria) this;
}
public Criteria andCreateTimeEqualTo(Date value) {
addCriterion("create_time =", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotEqualTo(Date value) {
addCriterion("create_time <>", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThan(Date value) {
addCriterion("create_time >", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
addCriterion("create_time >=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThan(Date value) {
addCriterion("create_time <", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
addCriterion("create_time <=", value, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeIn(List<Date> values) {
addCriterion("create_time in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotIn(List<Date> values) {
addCriterion("create_time not in", values, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeBetween(Date value1, Date value2) {
addCriterion("create_time between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
addCriterion("create_time not between", value1, value2, "createTime");
return (Criteria) this;
}
public Criteria andExt1IsNull() {
addCriterion("ext_1 is null");
return (Criteria) this;
}
public Criteria andExt1IsNotNull() {
addCriterion("ext_1 is not null");
return (Criteria) this;
}
public Criteria andExt1EqualTo(String value) {
addCriterion("ext_1 =", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotEqualTo(String value) {
addCriterion("ext_1 <>", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThan(String value) {
addCriterion("ext_1 >", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThanOrEqualTo(String value) {
addCriterion("ext_1 >=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThan(String value) {
addCriterion("ext_1 <", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThanOrEqualTo(String value) {
addCriterion("ext_1 <=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1Like(String value) {
addCriterion("ext_1 like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotLike(String value) {
addCriterion("ext_1 not like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1In(List<String> values) {
addCriterion("ext_1 in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotIn(List<String> values) {
addCriterion("ext_1 not in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1Between(String value1, String value2) {
addCriterion("ext_1 between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotBetween(String value1, String value2) {
addCriterion("ext_1 not between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt2IsNull() {
addCriterion("ext_2 is null");
return (Criteria) this;
}
public Criteria andExt2IsNotNull() {
addCriterion("ext_2 is not null");
return (Criteria) this;
}
public Criteria andExt2EqualTo(String value) {
addCriterion("ext_2 =", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotEqualTo(String value) {
addCriterion("ext_2 <>", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThan(String value) {
addCriterion("ext_2 >", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThanOrEqualTo(String value) {
addCriterion("ext_2 >=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThan(String value) {
addCriterion("ext_2 <", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThanOrEqualTo(String value) {
addCriterion("ext_2 <=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2Like(String value) {
addCriterion("ext_2 like", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotLike(String value) {
addCriterion("ext_2 not like", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2In(List<String> values) {
addCriterion("ext_2 in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotIn(List<String> values) {
addCriterion("ext_2 not in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2Between(String value1, String value2) {
addCriterion("ext_2 between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotBetween(String value1, String value2) {
addCriterion("ext_2 not between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt3IsNull() {
addCriterion("ext_3 is null");
return (Criteria) this;
}
public Criteria andExt3IsNotNull() {
addCriterion("ext_3 is not null");
return (Criteria) this;
}
public Criteria andExt3EqualTo(String value) {
addCriterion("ext_3 =", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotEqualTo(String value) {
addCriterion("ext_3 <>", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThan(String value) {
addCriterion("ext_3 >", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThanOrEqualTo(String value) {
addCriterion("ext_3 >=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThan(String value) {
addCriterion("ext_3 <", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThanOrEqualTo(String value) {
addCriterion("ext_3 <=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3Like(String value) {
addCriterion("ext_3 like", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotLike(String value) {
addCriterion("ext_3 not like", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3In(List<String> values) {
addCriterion("ext_3 in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotIn(List<String> values) {
addCriterion("ext_3 not in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3Between(String value1, String value2) {
addCriterion("ext_3 between", value1, value2, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotBetween(String value1, String value2) {
addCriterion("ext_3 not between", value1, value2, "ext3");
return (Criteria) this;
}
}
/**
*/
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
public static class Criterion {
private String condition;
private Object value;
private Object secondValue;
private boolean noValue;
private boolean singleValue;
private boolean betweenValue;
private boolean listValue;
private String typeHandler;
public String getCondition() {
return condition;
}
public Object getValue() {
return value;
}
public Object getSecondValue() {
return secondValue;
}
public boolean isNoValue() {
return noValue;
}
public boolean isSingleValue() {
return singleValue;
}
public boolean isBetweenValue() {
return betweenValue;
}
public boolean isListValue() {
return listValue;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}

@ -0,0 +1,13 @@
package com.hfkj.model;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class BsCornucopiaPoolModel {
String cornucopiaName;
BigDecimal enterGoldCoin;
String lotteryNo;
String img;
}

@ -0,0 +1,13 @@
package com.hfkj.model;
import com.hfkj.entity.BsCornucopiaLotteryRecord;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CornucopiaLotteryRecordModel extends BsCornucopiaLotteryRecord {
// 用户元宝
BigDecimal userGoldCoin;
}

@ -0,0 +1,17 @@
package com.hfkj.model;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class CornucopiaStatisticsModel {
// 用户数量
Long userGoldNum;
// 玉聚宝盆用户数量
Long userJadeNum;
// 金聚宝盆投入数量
BigDecimal goldCornucopia;
// 玉聚宝盆投入数量
BigDecimal jadeCornucopia;
}

@ -54,4 +54,14 @@ public interface BsCornucopiaLotteryRecordService {
* @Date: 2024/9/27 上午11:42
*/
List<BsCornucopiaLotteryRecord> queryAllList(Map<String , Object> map);
/**
* @MethodName cornucopiaLottery
* @Description:
* @param
* @return: java.util.List<com.hfkj.entity.BsCornucopiaLotteryRecord>
* @Author: Sum1Dream
* @Date: 2024/10/8 下午2:35
*/
List<BsCornucopiaLotteryRecord> cornucopiaLottery();
}

@ -80,6 +80,17 @@ public interface BsCornucopiaPoolService {
*/
void investmentCornucopia(Integer type , Long userId , String userName , BigDecimal goldCoin) throws Exception;
/**
* @MethodName recoveryCornucopia
* @Description: 回收元宝
* @param type
* @param userId
* @param userName
* @param goldCoin
* @Author: Sum1Dream
* @Date: 2024/9/27 下午4:46
*/
void recoveryCornucopia(Integer type , Long userId , String userName , BigDecimal goldCoin) throws Exception;
/**
* @MethodName create
* @Description: 创建
@ -98,4 +109,15 @@ public interface BsCornucopiaPoolService {
* @Date: 2024/9/27 上午11:42
*/
List<BsCornucopiaPoolRecord> queryAllListRecord(Map<String , Object> map);
/**
* @MethodName cornucopiaLottery
* @Description: 聚宝盆开奖
* @param
* @Author: Sum1Dream
* @Date: 2024/10/8 下午2:16
*/
void cornucopiaLottery() throws Exception;
}

@ -0,0 +1,58 @@
package com.hfkj.service.cornucopia;
import com.hfkj.entity.BsCornucopiaUserRecord;
import java.util.List;
import java.util.Map;
public interface BsCornucopiaUserRecordService {
/**
* @MethodName create
* @Description: 创建
* @param cornucopiaUserRecord
* @Author: Sum1Dream
* @Date: 2024/7/4 下午2:30
*/
void create(BsCornucopiaUserRecord cornucopiaUserRecord);
/**
* @MethodName delete
* @Description: 删除
* @param id
* @param fullDelete
* @Author: Sum1Dream
* @Date: 2024/7/4 下午2:30
*/
void delete(Long id , Boolean fullDelete);
/**
* @MethodName queryDetail
* @Description:查询详情
* @param id
* @return: com.hfkj.entity.BsCornucopiaUserRecord
* @Author: Sum1Dream
* @Date: 2024/7/4 下午2:30
*/
BsCornucopiaUserRecord queryDetail(Long id);
/**
* @MethodName queryDetail
* @Description:
* @param type
* @return: com.hfkj.entity.BsCornucopiaUserRecord
* @Author: Sum1Dream
* @Date: 2024/9/27 下午2:28
*/
BsCornucopiaUserRecord queryDetail(Integer type);
/**
* @MethodName queryAllList
* @Description: map
* @param
* @return: java.util.List<com.hfkj.entity.BsCornucopiaUserRecord>
* @Author: Sum1Dream
* @Date: 2024/9/27 上午11:42
*/
List<BsCornucopiaUserRecord> queryAllList(Map<String , Object> map);
}

@ -78,6 +78,7 @@ public class BsCornucopiaConfigServiceImpl implements BsCornucopiaConfigService
if (MapUtils.getString(map, "name") != null) {
criteria.andNameLike("%" + MapUtils.getString(map, "name") + "%");
}
criteria.andStatusNotEqualTo(0);
return bsCornucopiaConfigMapper.selectByExample(example);
}

@ -56,7 +56,12 @@ public class BsCornucopiaLotteryRecordServiceImpl implements BsCornucopiaLottery
if (MapUtils.getInteger(map, "type") != null) {
criteria.andTypeEqualTo(MapUtils.getInteger(map, "type"));
}
if (MapUtils.getLong(map, "createTimeS") != null) {
criteria.andCreateTimeGreaterThanOrEqualTo(new Date(MapUtils.getLong(map, "createTimeS")));
}
if (MapUtils.getLong(map, "createTimeE") != null) {
criteria.andCreateTimeLessThan(new Date(MapUtils.getLong(map, "createTimeE")));
}
if (MapUtils.getString(map, "lotteryNo") != null) {
criteria.andLotteryNoLike("%" + MapUtils.getString(map, "lotteryNo") + "%");
}
@ -64,4 +69,9 @@ public class BsCornucopiaLotteryRecordServiceImpl implements BsCornucopiaLottery
return bsCornucopiaLotteryRecordMapper.selectByExample(example);
}
@Override
public List<BsCornucopiaLotteryRecord> cornucopiaLottery() {
return bsCornucopiaLotteryRecordMapper.cornucopiaLottery();
}
}

@ -4,10 +4,14 @@ import com.hfkj.common.exception.BaseException;
import com.hfkj.common.exception.ErrorCode;
import com.hfkj.common.exception.ErrorHelp;
import com.hfkj.common.exception.SysCode;
import com.hfkj.common.utils.DateUtil;
import com.hfkj.dao.BsCornucopiaPoolMapper;
import com.hfkj.dao.BsCornucopiaPoolRecordMapper;
import com.hfkj.entity.*;
import com.hfkj.service.cornucopia.BsCornucopiaConfigService;
import com.hfkj.service.cornucopia.BsCornucopiaLotteryRecordService;
import com.hfkj.service.cornucopia.BsCornucopiaPoolService;
import com.hfkj.service.cornucopia.BsCornucopiaUserRecordService;
import com.hfkj.service.user.BsUserAccountService;
import com.hfkj.sysenum.cornucopia.CornucopiaEnum;
import com.hfkj.sysenum.user.UserAccountRecordSourceTypeEnum;
@ -23,6 +27,7 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service("bsCornucopiaPoolService")
public class BsCornucopiaPoolServiceImpl implements BsCornucopiaPoolService {
@ -37,6 +42,15 @@ public class BsCornucopiaPoolServiceImpl implements BsCornucopiaPoolService {
@Resource
private BsUserAccountService userAccountService;
@Resource
private BsCornucopiaConfigService cornucopiaConfigService;
@Resource
private BsCornucopiaLotteryRecordService cornucopiaLotteryRecordService;
@Resource
private BsCornucopiaUserRecordService cornucopiaUserRecordService;
@Resource
private RedisTemplate<String,Object> redisTemplate;
private final String LOCK_KEY = "POOL_TRADE_LOCK_";
@ -103,6 +117,12 @@ public class BsCornucopiaPoolServiceImpl implements BsCornucopiaPoolService {
if (MapUtils.getLong(map, "userId") != null) {
criteria.andUserIdEqualTo(MapUtils.getLong(map, "userId"));
}
if (MapUtils.getLong(map, "createTimeS") != null) {
criteria.andCreateTimeGreaterThanOrEqualTo(new Date(MapUtils.getLong(map, "createTimeS")));
}
if (MapUtils.getLong(map, "createTimeE") != null) {
criteria.andCreateTimeLessThan(new Date(MapUtils.getLong(map, "createTimeE")));
}
if (MapUtils.getInteger(map, "status") != null) {
criteria.andStatusEqualTo(MapUtils.getInteger(map, "status"));
}
@ -184,6 +204,68 @@ public class BsCornucopiaPoolServiceImpl implements BsCornucopiaPoolService {
}
}
@Override
@Transactional(propagation= Propagation.REQUIRED,rollbackFor= {RuntimeException.class})
public void recoveryCornucopia(Integer type, Long userId, String userName, BigDecimal goldCoin) throws Exception {
// 锁编号
String lockKey = LOCK_KEY+userId;
// 获取锁
Boolean lock = redisTemplate.opsForValue().setIfAbsent(lockKey, "");
if (Boolean.TRUE.equals(lock)) {
try {
// 获取锁成功
// 锁超时时间 10秒
redisTemplate.expire(lockKey, 10, TimeUnit.SECONDS);
// 插入投入记录
BsCornucopiaPoolRecord record = new BsCornucopiaPoolRecord();
record.setUserId(userId);
record.setType(type);
record.setGoldCoin(goldCoin);
record.setStatus(2);
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
record.setUserName(userName);
create(record);
// 查询投入
BsCornucopiaPool cornucopiaPool = queryDetail(userId , type);
if (cornucopiaPool == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "您还没有参加活动哟!");
}
if (cornucopiaPool.getGoldCoin().compareTo(goldCoin) < 0) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "元宝不够哟!");
}
// 扣除
cornucopiaPool.setGoldCoin(cornucopiaPool.getGoldCoin().subtract(goldCoin));
cornucopiaPool.setUpdateTime(new Date());
edit(cornucopiaPool);
// 充值记录
Map<String, Object> userRechargeParam = new HashMap<>();
userRechargeParam.put("sourceId", record.getId());
userRechargeParam.put("sourceOrderNo", "");
userRechargeParam.put("sourceContent", userName + "回收" + CornucopiaEnum.getDataByType(type).getName() + goldCoin);
// 用户账户充值
userAccountService.recharge(userId,goldCoin, UserAccountRecordSourceTypeEnum.type3, userRechargeParam);
} catch (BaseException e) {
// 释放锁
redisTemplate.delete(lockKey);
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, e.getErrorMsg());
} catch (Exception e) {
// 释放锁
redisTemplate.delete(lockKey);
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "啊偶~交易出现未知问题!请稍后重试");
}
} else {
Thread.sleep(100);
recoveryCornucopia(type , userId , userName ,goldCoin);
}
}
@Override
public void create(BsCornucopiaPoolRecord cornucopiaPoolRecord) {
cornucopiaPoolRecordMapper.insert(cornucopiaPoolRecord);
@ -204,9 +286,217 @@ public class BsCornucopiaPoolServiceImpl implements BsCornucopiaPoolService {
if (MapUtils.getLong(map, "userId") != null) {
criteria.andUserIdEqualTo(MapUtils.getLong(map, "userId"));
}
if (MapUtils.getLong(map, "createTimeS") != null) {
criteria.andCreateTimeGreaterThanOrEqualTo(new Date(MapUtils.getLong(map, "createTimeS")));
}
if (MapUtils.getLong(map, "createTimeE") != null) {
criteria.andCreateTimeLessThan(new Date(MapUtils.getLong(map, "createTimeE")));
}
if (MapUtils.getInteger(map, "status") != null) {
criteria.andStatusEqualTo(MapUtils.getInteger(map, "status"));
} else {
criteria.andStatusNotEqualTo(0);
}
return cornucopiaPoolRecordMapper.selectByExample(example);
}
@Override
public void cornucopiaLottery() throws Exception {
// 查询聚宝盆配置参数
List<BsCornucopiaConfig> cornucopiaConfigList = cornucopiaConfigService.queryAllList(new HashMap<>());
if (cornucopiaConfigList.isEmpty()) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "啊偶~没有配置参数!");
}
// 判断是否当天已经开奖
List<BsCornucopiaLotteryRecord> lotteryRecord = cornucopiaLotteryRecordService.cornucopiaLottery();
if (!lotteryRecord.isEmpty()) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "当期已开奖!");
}
String lotteryNo = DateUtil.date2String(new Date() , DateUtil.YMD);
Date LotteryTime = new Date();
// 查询投入玩家
List<BsCornucopiaPool> cornucopiaPoolList = queryAllList(new HashMap<>());
if (lotteryRecord.isEmpty()) {
// 获取时间
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) -1);
calendar.set(Calendar.HOUR_OF_DAY, 7);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
Long time = calendar.getTime().getTime();
// 查询用户开奖周期元宝记录
Map<String , Object> map = new HashMap<>();
map.put("createTimeE" , time);
List<BsCornucopiaPoolRecord> beforePoolRecordList = queryAllListRecord(map);
// 查询用户开奖周期之后的元宝记录
Map<String , Object> mapS = new HashMap<>();
mapS.put("createTimeS" , time);
List<BsCornucopiaPoolRecord> afterPoolRecordList = queryAllListRecord(mapS);
// 定义开奖期数记录
BsCornucopiaLotteryRecord cornucopiaLotteryRecord;
// 定义用户元宝收益记录
BsCornucopiaUserRecord userRecord;
// 记录金玉聚宝盆总投入
BigDecimal goldIncomeAll = BigDecimal.ZERO;
BigDecimal jadeIncomeAll = BigDecimal.ZERO;
Integer userGoldNum = 0;
Integer userJadeNum = 0;
if (!beforePoolRecordList.isEmpty()) {
for (BsCornucopiaPool cornucopiaPool : cornucopiaPoolList) {
// 查询用户开奖周期内金聚宝盆投入元宝
BigDecimal enterBeforeGoldPrice = beforePoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(1))
.filter(s->s.getType().equals(1))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 查询用户开奖周期内金聚宝盆投出元宝
BigDecimal outBeforeGoldPrice = beforePoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(2))
.filter(s->s.getType().equals(1))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 查询用户开奖周期后金聚宝盆投入元宝
BigDecimal enterAfterGoldPrice = afterPoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(1))
.filter(s->s.getType().equals(1))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 查询用户开奖周期后金聚宝盆投出元宝
BigDecimal outAfterGoldPrice = afterPoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(2))
.filter(s->s.getType().equals(1))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 查询用户开奖周期内玉聚宝盆投入元宝
BigDecimal enterBeforeJadePrice = beforePoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(1))
.filter(s->s.getType().equals(2))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 查询用户开奖周期内玉聚宝盆投出元宝
BigDecimal outBeforeJadePrice = beforePoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(2))
.filter(s->s.getType().equals(2))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 查询用户开奖周期后玉聚宝盆投入元宝
BigDecimal enterAfterJadePrice = afterPoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(1))
.filter(s->s.getType().equals(2))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 查询用户开奖周期后玉聚宝盆投出元宝
BigDecimal outAfterJadePrice = afterPoolRecordList.stream()
.filter(s->s.getUserId().equals(cornucopiaPool.getUserId()))
.filter(s->s.getStatus().equals(2))
.filter(s->s.getType().equals(2))
.map(BsCornucopiaPoolRecord::getGoldCoin).reduce(BigDecimal.ZERO, BigDecimal::add);
// 计算金聚宝盆实际收益
// 计算金聚宝盆开奖周期内的剩余元宝
BigDecimal gold = enterBeforeGoldPrice.subtract(outBeforeGoldPrice);
// 计算金聚宝盆开奖周期之后的剩余元宝
BigDecimal goldAfter = enterAfterGoldPrice.subtract(outAfterGoldPrice);
if (goldAfter.compareTo(new BigDecimal(0)) < 1) {
gold = gold.add(goldAfter);
}
// 计算玉聚宝盆实际收益
// 计算玉聚宝盆开奖周期内的剩余元宝
BigDecimal jade = enterBeforeJadePrice.subtract(outBeforeJadePrice);
// 计算玉聚宝盆开奖周期之后的剩余元宝
BigDecimal jadeAfter = enterAfterJadePrice.subtract(outAfterJadePrice);
if (jadeAfter.compareTo(new BigDecimal(0)) < 1) {
jade = jade.add(jadeAfter);
}
List<BsCornucopiaConfig> list = cornucopiaConfigList.stream().filter(s->s.getType().equals(cornucopiaPool.getType())).collect(Collectors.toList());
BigDecimal goldCoin = BigDecimal.ZERO;
// 计算金聚宝盆收益
if (cornucopiaPool.getType().equals(1)) {
if (gold.compareTo(new BigDecimal(0)) > 0) {
userGoldNum++;
// 计算总投入
goldIncomeAll = goldIncomeAll.add(gold);
// 实际收益
goldCoin = gold.multiply(list.get(0).getProportion());
}
}
//计算玉聚宝盆收益
if (cornucopiaPool.getType().equals(2)) {
if (jade.compareTo(new BigDecimal(0)) > 0) {
userJadeNum++;
jadeIncomeAll = jadeIncomeAll.add(jade);
goldCoin = jade.multiply(list.get(0).getProportion());
}
}
// 赠送用户收益
userRecord = new BsCornucopiaUserRecord();
userRecord.setCreateTime(new Date());
userRecord.setUpdateTime(new Date());
userRecord.setLotteryTime(LotteryTime);
userRecord.setUserId(cornucopiaPool.getUserId());
userRecord.setUserName(cornucopiaPool.getUserName());
userRecord.setStatus(1);
userRecord.setLotteryNo(lotteryNo);
userRecord.setType(cornucopiaPool.getType());
userRecord.setGoldCoin(goldCoin);
userRecord.setProportion(list.get(0).getProportion());
cornucopiaUserRecordService.create(userRecord);
// 充值记录
Map<String, Object> userRechargeParam = new HashMap<>();
userRechargeParam.put("sourceId", userRecord.getId());
userRechargeParam.put("sourceOrderNo", "");
userRechargeParam.put("sourceContent", cornucopiaPool.getUserName() + CornucopiaEnum.getDataByType(cornucopiaPool.getType()).getName() + "收益" + goldCoin);
// 用户账户充值
userAccountService.recharge(cornucopiaPool.getUserId(),goldCoin, UserAccountRecordSourceTypeEnum.type3, userRechargeParam);
}
for (BsCornucopiaConfig cornucopiaConfig : cornucopiaConfigList) {
cornucopiaLotteryRecord = new BsCornucopiaLotteryRecord();
// 金聚宝盆
if (cornucopiaConfig.getType().equals(1)) {
cornucopiaLotteryRecord.setUserNum(userGoldNum);
cornucopiaLotteryRecord.setGoldCoin(goldIncomeAll);
}
//计算玉聚宝盆收益
if (cornucopiaConfig.getType().equals(2)) {
cornucopiaLotteryRecord.setUserNum(userJadeNum);
cornucopiaLotteryRecord.setGoldCoin(jadeIncomeAll);
}
// 开奖记录
cornucopiaLotteryRecord.setCreateTime(new Date());
cornucopiaLotteryRecord.setUpdateTime(new Date());
cornucopiaLotteryRecord.setLotteryTime(LotteryTime);
cornucopiaLotteryRecord.setLotteryNo(lotteryNo);
cornucopiaLotteryRecord.setType(cornucopiaConfig.getType());
cornucopiaLotteryRecord.setStatus(1);
cornucopiaLotteryRecord.setConfigMsg(cornucopiaConfig.toString());
cornucopiaLotteryRecord.setProportion(cornucopiaConfig.getProportion());
cornucopiaLotteryRecord.setTypeName(CornucopiaEnum.getDataByType(cornucopiaConfig.getType()).getName());
cornucopiaLotteryRecordService.create(cornucopiaLotteryRecord);
}
}
}
}
}

@ -0,0 +1,61 @@
package com.hfkj.service.cornucopia.Impl;
import com.hfkj.dao.BsCornucopiaUserRecordMapper;
import com.hfkj.entity.BsCornucopiaUserRecord;
import com.hfkj.entity.BsCornucopiaUserRecordExample;
import com.hfkj.service.cornucopia.BsCornucopiaUserRecordService;
import org.apache.commons.collections4.MapUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@Service("bsCornucopiaUserRecordService")
public class BsCornucopiaUserRecordServiceImpl implements BsCornucopiaUserRecordService {
@Resource
private BsCornucopiaUserRecordMapper userRecordMapper;
@Override
public void create(BsCornucopiaUserRecord cornucopiaUserRecord) {
userRecordMapper.insert(cornucopiaUserRecord);
}
@Override
public void delete(Long id, Boolean fullDelete) {
}
@Override
public BsCornucopiaUserRecord queryDetail(Long id) {
return null;
}
@Override
public BsCornucopiaUserRecord queryDetail(Integer type) {
return null;
}
@Override
public List<BsCornucopiaUserRecord> queryAllList(Map<String, Object> map) {
BsCornucopiaUserRecordExample example = new BsCornucopiaUserRecordExample();
BsCornucopiaUserRecordExample.Criteria criteria = example.createCriteria();
if (MapUtils.getInteger(map, "type") != null) {
criteria.andTypeEqualTo(MapUtils.getInteger(map, "type"));
}
if (MapUtils.getString(map, "lotteryNo") != null) {
criteria.andLotteryNoLike("%" + MapUtils.getString(map, "lotteryNo") + "%");
}
if (MapUtils.getString(map, "userName") != null) {
criteria.andUserNameLike("%" + MapUtils.getString(map, "userName") + "%");
}
if (MapUtils.getLong(map, "userId") != null) {
criteria.andUserIdEqualTo(MapUtils.getLong(map, "userId"));
}
return userRecordMapper.selectByExample(example);
}
}

@ -0,0 +1,26 @@
package com.hfkj.service.message;
import com.hfkj.entity.BsMessageRead;
/**
* @className: BsMessageReadService
* @author: HuRui
* @date: 2024/10/10
**/
public interface BsMessageReadService {
/**
* 编辑数据
* @param data
*/
void editData(BsMessageRead data);
/**
* 查询详情
* @param msgId
* @param userId
* @return
*/
BsMessageRead getDetail(Long msgId,Long userId);
}

@ -0,0 +1,54 @@
package com.hfkj.service.message;
import com.hfkj.entity.BsMessage;
import com.hfkj.sysenum.message.MessageTypeEnum;
import com.pdd.pop.sdk.message.model.Message;
import java.util.List;
import java.util.Map;
/**
* 消息
* @className: BsMessageService
* @author: HuRui
* @date: 2024/10/10
**/
public interface BsMessageService {
/**
* 编辑数据
* @param data
*/
void editData(BsMessage data);
/**
* 查询详情
* @param id
* @return
*/
BsMessage getDetail(Long id);
/**
* 查询列表
* @param param
* @return
*/
List<BsMessage> getList(Map<String,Object> param);
/**
* 创建用户消息
* @param msgType 消息类型
* @param userId 用户id
* @param title 标题
* @param content 内容
*/
void createUserMsg(MessageTypeEnum msgType,Long userId,String title,String content);
/**
* 查询用户消息列表
* @param param
* @return
*/
List<Map<String,Object>> getUserMsgList(Map<String,Object> param);
}

@ -0,0 +1,43 @@
package com.hfkj.service.message.impl;
import com.hfkj.dao.BsMessageReadMapper;
import com.hfkj.entity.BsMessageRead;
import com.hfkj.entity.BsMessageReadExample;
import com.hfkj.service.message.BsMessageReadService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* @className: BsMessageReadServiceImpl
* @author: HuRui
* @date: 2024/10/10
**/
@Service("messageReadService")
public class BsMessageReadServiceImpl implements BsMessageReadService {
@Resource
private BsMessageReadMapper messageReadMapper;
@Override
public void editData(BsMessageRead data) {
if (data.getId() == null) {
data.setCreateTime(new Date());
messageReadMapper.insert(data);
} else {
messageReadMapper.updateByPrimaryKey(data);
}
}
@Override
public BsMessageRead getDetail(Long msgId, Long userId) {
BsMessageReadExample example = new BsMessageReadExample();
example.createCriteria().andMessageIdEqualTo(msgId).andUserIdEqualTo(userId);
List<BsMessageRead> list = messageReadMapper.selectByExample(example);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
}

@ -0,0 +1,68 @@
package com.hfkj.service.message.impl;
import com.hfkj.dao.BsMessageMapper;
import com.hfkj.entity.BsMessage;
import com.hfkj.entity.BsMessageExample;
import com.hfkj.service.message.BsMessageService;
import com.hfkj.sysenum.message.MessageStatusEnum;
import com.hfkj.sysenum.message.MessageTypeEnum;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @className: BsMessageServiceImpl
* @author: HuRui
* @date: 2024/10/10
**/
@Service("messageService")
public class BsMessageServiceImpl implements BsMessageService {
@Resource
private BsMessageMapper messageMapper;
@Override
public void editData(BsMessage data) {
data.setUpdateTime(new Date());
if (data.getId() == null) {
data.setCreateTime(new Date());
messageMapper.insert(data);
} else {
messageMapper.updateByPrimaryKey(data);
}
}
@Override
public BsMessage getDetail(Long id) {
return messageMapper.selectByPrimaryKey(id);
}
@Override
public List<BsMessage> getList(Map<String, Object> param) {
BsMessageExample example = new BsMessageExample();
example.createCriteria().andStatusNotEqualTo(MessageStatusEnum.status0.getStatus());
example.setOrderByClause("create_time desc");
return messageMapper.selectByExample(example);
}
@Override
public void createUserMsg(MessageTypeEnum msgType, Long userId, String title, String content) {
BsMessage message = new BsMessage();
message.setUserId(userId);
message.setType(msgType.getType());
message.setTitle(title);
message.setContent(content);
message.setStatus(MessageStatusEnum.status2.getStatus());
editData(message);
}
@Override
public List<Map<String, Object>> getUserMsgList(Map<String, Object> param) {
return messageMapper.queryUserMsgList(param);
}
}

@ -32,10 +32,10 @@ public class OrderBusinessService {
public JSONObject taobaoUrl(BsOrder bsOrder) throws Exception{
JSONObject jsonObject = JSONObject.parseObject(bsOrder.getCustomparameters());
JSONObject object = TaoBaoService.createCommand(jsonObject.getString("url"));
if (!jsonObject.getBoolean("success")) {
if (!object.getBoolean("success")) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "请求失败!");
}
return object;
return object.getJSONObject("data");
}
@ -55,12 +55,10 @@ public class OrderBusinessService {
Map<String , Object> mapUser = new HashMap<>();
mapUser.put("uid", bsOrder.getUserId());
mapUser.put("orderNo", bsOrder.getOrderNo());
// 判断是否需要授权
JSONObject object = PddService.authority(mapUser.toString());
boolean generateAuthorityUrl = object.getJSONObject("authorityQueryResponse").getInteger("bind") == 0;
JSONObject o = PddService.promotion(searchId , goodsSign , generateAuthorityUrl , mapUser.toString());
return o.getJSONObject("goodsPromotionUrlGenerateResponse").getJSONArray("goodsPromotionUrlList").getJSONObject(0);

@ -0,0 +1,44 @@
package com.hfkj.sysenum.message;
import lombok.Getter;
import java.util.Objects;
/**
* @className: MessageStatusEnum
* @author: HuRui
* @date: 2024/9/24
**/
@Getter
public enum MessageStatusEnum {
/**
* 删除
*/
status0(0 , "删除"),
/**
* 编辑中
*/
status1(1 , "编辑中"),
/**
* 已发布
*/
status2(2 , "已发布"),
;
private Integer status;
private String name;
MessageStatusEnum(int status , String name) {
this.status = status;
this.name = name;
}
public static MessageStatusEnum getDataByType(Integer status) {
for (MessageStatusEnum ele : values()) {
if(Objects.equals(status,ele.getStatus())) return ele;
}
return null;
}
}

@ -0,0 +1,52 @@
package com.hfkj.sysenum.message;
import lombok.Getter;
import java.util.Objects;
/**
* @className: MessageTypeEnum
* @author: HuRui
* @date: 2024/9/24
**/
@Getter
public enum MessageTypeEnum {
/**
* 官方公告
*/
type1(1 , "官方公告"),
/**
* 订单通知
*/
type2(2 , "订单通知"),
/**
* 好友通知
*/
type3(3 , "好友通知"),
/**
* 合伙人通知
*/
type4(4 , "合伙人通知"),
/**
* 其他消息
*/
type5(5 , "其他消息"),
;
private Integer type;
private String name;
MessageTypeEnum(int type , String name) {
this.type = type;
this.name = name;
}
public static MessageTypeEnum getDataByType(Integer type) {
for (MessageTypeEnum ele : values()) {
if(Objects.equals(type,ele.getType())) return ele;
}
return null;
}
}
Loading…
Cancel
Save