diff --git a/pom.xml b/pom.xml index cfb5452..19c82d6 100644 --- a/pom.xml +++ b/pom.xml @@ -64,7 +64,7 @@ 4.1.2 3.3.0 1.9.6 - 4.1.0 + 4.0.1 1.1.2 2.3.1 @@ -267,6 +267,7 @@ ${javax.servlet-api.version} provided + org.apache.tomcat.embed tomcat-embed-jasper @@ -425,6 +426,16 @@ + + icu.mhb + mybatis-plus-join-boot-starter + 2.1.0 + + + + org.springframework.boot + spring-boot-starter-data-jpa + diff --git a/src/main/java/me/mofun/controller/HelpController.java b/src/main/java/me/mofun/controller/HelpController.java index 88e5691..1cc88d9 100644 --- a/src/main/java/me/mofun/controller/HelpController.java +++ b/src/main/java/me/mofun/controller/HelpController.java @@ -1,6 +1,6 @@ package me.mofun.controller; - +import me.mofun.entity.News; import me.mofun.entity.Newstype; import me.mofun.entity.Suggestion; import me.mofun.entity.pojo.HelpInfo; @@ -10,121 +10,139 @@ import me.mofun.service.ISysConfigureService; import me.mofun.utils.ViewUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; import java.util.List; +/** + * 帮助中心控制器 + * 处理帮助相关页面展示和建议提交等功能 + */ @Controller @RequestMapping("/help") public class HelpController { @Autowired private ViewUtils viewUtils; - private final String module = "login"; - - - - private Suggestion suggestion; - private String rnd; - private List helpInfoList; - private List helpTypeList; - - - @Autowired - private ISysConfigureService sysConfigureService; - @Autowired - private INewstypeService newsTypeService; - @Autowired - private INewsService newsService; - - HttpServletRequest request = null; - HttpServletResponse response = null; - - public Integer newsId; //帮助信息的文章编号,亦即 news表中的 newsId - -// public String index(){ -// News news = newsService.getById(newsId.toString()); -// helpTypeList = newsTypeService.indexNewsTypeByParentId(2); -// helpInfoList = new ArrayList(); -// for(NewsType nt:helpTypeList){ -// HelpInfo item = new HelpInfo(); -// List newsList = newsService.indexNews(nt.getId(),null); -// item.setCategoryId(nt.getId()); -// item.setCategoryName(nt.getCategoryName()); -// item.setInfoList(newsList); -// helpInfoList.add(item); -// } -// return "index"; -// } - - - - - -// public String doSuggestion(){ -// request = Struts2Utils.getRequest(); -// try { -// Cookie[] cookies = request.getCookies(); -// if(request.isRequestedSessionIdFromCookie()){ -// for (int i = 0; i < cookies.length; i++) { -// Cookie cookie = cookies[i]; -// if(cookie.getName().equals("rndCode")){ -// String rndCode = cookie.getValue(); -// if(rnd.trim().equalsIgnoreCase(rndCode)){ -// sysConfigureService.doSuggestion(suggestion); -// Struts2Utils.render("text/html", "","encoding:UTF-8"); -// }else{ -// Struts2Utils.render("text/html", "","encoding:UTF-8"); -// } -// } -// } -// } -// } catch (Exception e) { -// e.printStackTrace(); -// Struts2Utils.render("text/html", "","encoding:UTF-8"); -// } -// -// return null; -// } - - @GetMapping("/deliveryFees") - public ModelAndView deliveryFees() { - return viewUtils.create(module, "deliveryFees"); - } - - @GetMapping("/prodCheck") - public ModelAndView prodCheck() { - return viewUtils.create(module, "prodCheck"); - } - @GetMapping("/shiptwo") - public ModelAndView shiptwo() { - return viewUtils.create(module, "shiptwo"); - } + // 模块名称,用于视图路径拼接 + private final String module = "help"; - @GetMapping("/privacy") - public ModelAndView privacy() { - return viewUtils.create(module, "privacy"); - } - - @GetMapping("/userExperience") - public ModelAndView userExperience() { - return viewUtils.create(module, "userExperience"); - } + @Autowired + private ISysConfigureService sysConfigureService; - @GetMapping("/qqgroup") - public ModelAndView qqgroup() { - return viewUtils.create(module, "qqgroup"); - } + @Autowired + private INewstypeService newsTypeService; - @GetMapping("/show") - public ModelAndView show() { - return viewUtils.create(module, "show"); - } + @Autowired + private INewsService newsService; + + /** + * 帮助中心首页 + * 展示帮助信息列表和指定新闻详情 + * + * @param newsId 新闻ID,用于展示具体新闻内容 + * @return 包含帮助信息的ModelAndView + */ + @GetMapping("/index") + public ModelAndView index(@RequestParam(required = false) Integer newsId) { + ModelAndView mav = viewUtils.create(module, "index"); + + // 获取新闻详情(如果newsId存在) + if (newsId != null) { + News news = newsService.getById(newsId.toString()); + mav.addObject("news", news); + } + + // 获取帮助类型列表(父ID为2的新闻类型) + List helpTypeList = newsTypeService.indexNewsTypeByParentId(2); + mav.addObject("helpTypeList", helpTypeList); + + // 构建帮助信息列表,每个类型下包含对应的新闻 + List helpInfoList = new ArrayList<>(); + if (helpTypeList != null && !helpTypeList.isEmpty()) { + for (Newstype newsType : helpTypeList) { + HelpInfo helpInfo = new HelpInfo(); + helpInfo.setCategoryId(newsType.getId()); + helpInfo.setCategoryName(newsType.getCategoryName()); + + // 获取该类型下的新闻列表 + List newsList = newsService.indexNews(newsType.getId(), null); + helpInfo.setInfoList(newsList); + + helpInfoList.add(helpInfo); + } + } + mav.addObject("helpInfoList", helpInfoList); + + return mav; + } + + /** + * 处理建议提交 + * 验证验证码并保存用户建议 + * + * @param request 请求对象 + * @param response 响应对象 + * @param suggestion 用户提交的建议 + * @param rnd 用户输入的验证码 + * @throws IOException IO异常 + */ + @PostMapping("/doSuggestion") + public void doSuggestion(HttpServletRequest request, + HttpServletResponse response, + @ModelAttribute Suggestion suggestion, + @RequestParam(required = false) String rnd) throws IOException { + response.setContentType("text/html;charset=UTF-8"); + PrintWriter out = response.getWriter(); + + try { + // 校验参数 + if (suggestion == null) { + out.print(""); + return; + } + + // 验证验证码 + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("rndCode".equals(cookie.getName())) { + String rndCode = cookie.getValue(); + // 验证验证码是否正确 + if (rnd != null && rnd.trim().equalsIgnoreCase(rndCode)) { + // 保存建议 + sysConfigureService.doSuggestion(suggestion); + out.print(""); + } else { + out.print(""); + } + return; + } + } + } + + // 未找到验证码Cookie + out.print(""); + + } catch (Exception e) { + e.printStackTrace(); + out.print(""); + } finally { + if (out != null) { + out.close(); + } + } + } + + // 以下为页面跳转方法,与原Action对应 @GetMapping("/openCookie") public ModelAndView openCookie() { @@ -181,4 +199,38 @@ public class HelpController { return viewUtils.create(module, "suggestion"); } -} + @GetMapping("/deliveryFees") + public ModelAndView deliveryFees() { + return viewUtils.create(module, "deliveryFees"); + } + + @GetMapping("/prodCheck") + public ModelAndView prodCheck() { + return viewUtils.create(module, "prodCheck"); + } + + @GetMapping("/shiptwo") + public ModelAndView shiptwo() { + return viewUtils.create(module, "shiptwo"); + } + + @GetMapping("/privacy") + public ModelAndView privacy() { + return viewUtils.create(module, "privacy"); + } + + @GetMapping("/userExperience") + public ModelAndView userExperience() { + return viewUtils.create(module, "userExperience"); + } + + @GetMapping("/qqgroup") + public ModelAndView qqgroup() { + return viewUtils.create(module, "qqgroup"); + } + + @GetMapping("/show") + public ModelAndView show() { + return viewUtils.create(module, "show"); + } +} \ No newline at end of file diff --git a/src/main/java/me/mofun/controller/IndexController.java b/src/main/java/me/mofun/controller/IndexController.java index 67551b8..d69bd47 100644 --- a/src/main/java/me/mofun/controller/IndexController.java +++ b/src/main/java/me/mofun/controller/IndexController.java @@ -1,6 +1,5 @@ package me.mofun.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; import me.mofun.entity.*; import me.mofun.entity.pojo.BuyHistoryJSON; import me.mofun.entity.pojo.ProductJSON; @@ -23,11 +22,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; -import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; diff --git a/src/main/java/me/mofun/controller/UserController.java b/src/main/java/me/mofun/controller/UserController.java new file mode 100644 index 0000000..2c7de4f --- /dev/null +++ b/src/main/java/me/mofun/controller/UserController.java @@ -0,0 +1,1144 @@ +package me.mofun.controller; + + +import me.mofun.entity.*; +import me.mofun.entity.pojo.*; +import me.mofun.entity.vo.Pagination; +import me.mofun.service.*; +import me.mofun.util.DateUtil; +import me.mofun.util.HTMLFilter; +import me.mofun.util.UserNameUtil; +import net.sf.json.JSONObject; +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import java.io.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Controller +@RequestMapping("/user") +public class UserController { + private static final long serialVersionUID = 6146740235643445087L; + + @Autowired + private IUserService userService; + @Autowired + private ISpellbuyproductService spellbuyproductService; + @Autowired + private ISpellbuyrecordService spellbuyrecordService; + @Autowired + private ILatestlotteryService latestlotteryService; + @Autowired + private IShareinfoService shareService; + @Autowired + private IConsumetableService consumetableService; + @Autowired + private INewsService newsService; + + @Autowired + private ICommissionqueryService commissionqueryService; + @Autowired + private ICommissionpointsService commissionpointsService; + @Autowired + private IApplymentionService applymentionService; + @Autowired + private ICardpasswordService cardpasswordService; + @Autowired + private IOrderdetailService orderdetailService; + @Autowired + private ISProvinceService provinceService; + + private static final int BUFFER_SIZE = 100 * 1024; + private static final HTMLFilter htmlFilter = new HTMLFilter(); + private static final Logger logger = Logger.getLogger(UserController.class); + private static final String UploadImages = "/uploadImages"; + private static final String FaceImages = "/faceImages"; + + // 文件上传复制方法 + private static void copy(File src, File dst) { + try (InputStream in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE); + OutputStream out = new BufferedOutputStream(new FileOutputStream(dst), BUFFER_SIZE)) { + byte[] buffer = new byte[BUFFER_SIZE]; + int bytesRead; + while ((bytesRead = in.read(buffer)) > 0) { + out.write(buffer, 0, bytesRead); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @GetMapping("/index") + public String index(@RequestParam(required = false) String forward, Model model, HttpServletRequest request) { + if (StringUtils.isNotBlank(forward)) { + forward = htmlFilter.filter(forward); + } + + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + // 即将揭晓商品 + Pagination datePage = spellbuyproductService.upcomingAnnounced(1, 5); + List dataList = (List) datePage.getList(); + List productList = new ArrayList<>(); + for (Object[] obj : dataList) { + ProductJSON productJSON = new ProductJSON(); + Product product = (Product) obj[0]; + Spellbuyproduct spellbuyproduct = (Spellbuyproduct) obj[1]; + productJSON.setCurrentBuyCount(spellbuyproduct.getSpellbuyCount()); + productJSON.setHeadImage(product.getHeadImage()); + productJSON.setProductId(spellbuyproduct.getSpellbuyProductId()); + productJSON.setProductName(product.getProductName()); + productJSON.setProductPrice(spellbuyproduct.getSpellbuyPrice()); + productJSON.setProductPeriod(spellbuyproduct.getProductPeriod()); + productJSON.setProductTitle(product.getProductTitle()); + productList.add(productJSON); + } + model.addAttribute("productList", productList); + + // 新闻 + List newsList = newsService.indexNews(1, 3); + model.addAttribute("newsList", newsList); + + return "index"; + } + } + } + } + return "login_index"; + } + + @GetMapping("/UserBuyList") + public String userBuyList(Model model, HttpServletRequest request, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + int pageNo = 1; // 默认第一页 + int resultCount = spellbuyrecordService.buyHistoryByUserByCount(userId, startDate, endDate); + model.addAttribute("resultCount", resultCount); + model.addAttribute("pageNo", pageNo); + model.addAttribute("startDate", startDate); + model.addAttribute("endDate", endDate); + + return "UserBuyList"; + } + } + } + } + return "login_index"; + } + + @PostMapping("/getuserBuyListAjaxPageResultCount") + @ResponseBody + public String getuserBuyListAjaxPageResultCount(@RequestParam(required = false) Integer pageNo, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + if (userId == null) { + return "0"; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + int resultCount = spellbuyrecordService.buyHistoryByUserByCount(userId, startDate, endDate); + return String.valueOf(resultCount); + } + + @PostMapping("/userBuyListAjaxPage") + @ResponseBody + public List userBuyListAjaxPage(@RequestParam(required = false) Integer pageNo, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + List buyHistoryJSONList = new ArrayList<>(); + + if (userId == null) { + return buyHistoryJSONList; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + Pagination datePage = spellbuyrecordService.buyHistoryByUser(userId, startDate, endDate, pageNo, 5); + List dataList = (List) datePage.getList(); + + for (BuyHistoryJSON buyHistoryJSON : dataList) { + try { + if (buyHistoryJSON.getBuyStatus() == 1) { + Latestlottery latestlottery = (Latestlottery) latestlotteryService.getBuyHistoryByDetail(buyHistoryJSON.getProductId()).get(0); + buyHistoryJSON.setWinDate(latestlottery.getAnnouncedTime()); + buyHistoryJSON.setWinId(latestlottery.getRandomNumber()); + + String userer = latestlottery.getUserName(); + if (StringUtils.isBlank(userer) && StringUtils.isNotBlank(latestlottery.getBuyUser())) { + userer = latestlottery.getBuyUser(); + if (userer.contains("@")) { + String[] u = userer.split("@"); + userer = u[0].substring(0, 2) + "***@" + u[1]; + } else { + userer = userer.substring(0, 4) + "***" + userer.substring(7); + } + } + buyHistoryJSON.setWinUser(userer); + buyHistoryJSON.setWinUserId(latestlottery.getUserId()); + } + buyHistoryJSONList.add(buyHistoryJSON); + } catch (Exception e) { + e.printStackTrace(); + } + } + return buyHistoryJSONList; + } + + @GetMapping("/UserBuyDetail") + public String userBuyDetail(@RequestParam String id, Model model, HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + try { + BuyHistoryJSON buyHistoryJSON = (BuyHistoryJSON) spellbuyrecordService.getBuyHistoryByDetail(id, userId).get(0); + if (buyHistoryJSON.getBuyStatus() == 1) { + Latestlottery latestlottery = (Latestlottery) latestlotteryService.getBuyHistoryByDetail(buyHistoryJSON.getProductId()).get(0); + buyHistoryJSON.setWinDate(latestlottery.getAnnouncedTime()); + buyHistoryJSON.setWinId(latestlottery.getRandomNumber()); + + String userer = latestlottery.getUserName(); + if (StringUtils.isBlank(userer) && StringUtils.isNotBlank(latestlottery.getBuyUser())) { + userer = latestlottery.getBuyUser(); + if (userer.contains("@")) { + String[] u = userer.split("@"); + userer = u[0].substring(0, 2) + "***@" + u[1]; + } else { + userer = userer.substring(0, 4) + "***" + userer.substring(7); + } + } + buyHistoryJSON.setWinUser(userer); + buyHistoryJSON.setWinUserId(latestlottery.getUserId()); + } + model.addAttribute("buyHistoryJSON", buyHistoryJSON); + + int resultCount = spellbuyrecordService.getRandomNumberListPageByCount(id, userId); + model.addAttribute("resultCount", resultCount); + + return "UserBuyDetail"; + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + return "login_index"; + } + + @PostMapping("/getRandomNumberList") + @ResponseBody + public String getRandomNumberList(@RequestParam String id, + @RequestParam(required = false) Integer pageNo, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + if (userId == null) { + return ""; + } + + List dataList = spellbuyrecordService.getRandomNumberList(id, userId); + StringBuilder numbers = new StringBuilder(); + for (Randomnumber randomnumber : dataList) { + String[] randoms = randomnumber.getRandomNumber().split(","); + for (String num : randoms) { + numbers.append("
  • ").append(num).append("
  • "); + } + } + return numbers.toString(); + } + + @PostMapping("/getRandomNumberListPage") + @ResponseBody + public List getRandomNumberListPage(@RequestParam String id, + @RequestParam(required = false) Integer pageNo, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + List randomNumberJSONList = new ArrayList<>(); + + if (userId == null) { + return randomNumberJSONList; + } + + Pagination datePage = spellbuyrecordService.getRandomNumberListPage(id, userId, pageNo, 50); + List dataList = (List) datePage.getList(); + + for (Randomnumber randomnumber : dataList) { + try { + RandomNumberJSON randomNumberJSON = new RandomNumberJSON(); + String[] randoms = randomnumber.getRandomNumber().split(","); + StringBuilder numbers = new StringBuilder(); + for (String num : randoms) { + numbers.append("").append(num).append(""); + } + randomNumberJSON.setRandomNumbers(numbers.toString()); + randomNumberJSON.setBuyCount(String.valueOf(randoms.length)); + randomNumberJSON.setBuyDate(randomnumber.getBuyDate()); + randomNumberJSONList.add(randomNumberJSON); + } catch (Exception e) { + e.printStackTrace(); + } + } + return randomNumberJSONList; + } + + @GetMapping("/OrderList") + public String orderList(Model model, HttpServletRequest request, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + int resultCount = latestlotteryService.getProductByUserByCount(userId, startDate, endDate); + model.addAttribute("resultCount", resultCount); + model.addAttribute("startDate", startDate); + model.addAttribute("endDate", endDate); + + return "OrderList"; + } + } + } + } + return "login_index"; + } + + @PostMapping("/OrderListAjaxPage") + @ResponseBody + public List orderListAjaxPage(@RequestParam(required = false) Integer pageNo, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + List buyHistoryJSONList = new ArrayList<>(); + + if (userId == null) { + return buyHistoryJSONList; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + Pagination datePage = latestlotteryService.getProductByUser(userId, startDate, endDate, pageNo, 5); + List dataList = (List) datePage.getList(); + + for (Latestlottery latestlottery : dataList) { + try { + BuyHistoryJSON buyHistoryJSON = new BuyHistoryJSON(); + buyHistoryJSON.setProductName(latestlottery.getProductName()); + buyHistoryJSON.setProductTitle(latestlottery.getProductTitle()); + buyHistoryJSON.setProductImg(latestlottery.getProductImg()); + buyHistoryJSON.setProductId(latestlottery.getSpellbuyProductId()); + buyHistoryJSON.setProductPrice(latestlottery.getProductPrice()); + buyHistoryJSON.setProductPeriod(latestlottery.getProductPeriod()); + buyHistoryJSON.setBuyTime(latestlottery.getBuyTime()); + buyHistoryJSON.setWinId(latestlottery.getRandomNumber()); + buyHistoryJSON.setWinDate(latestlottery.getAnnouncedTime()); + buyHistoryJSON.setBuyStatus(latestlottery.getStatus()); + buyHistoryJSONList.add(buyHistoryJSON); + } catch (Exception e) { + e.printStackTrace(); + } + } + return buyHistoryJSONList; + } + + @PostMapping("/OrderListAjaxPageResultCount") + @ResponseBody + public String orderListAjaxPageResultCount(@RequestParam(required = false) Integer pageNo, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + if (userId == null) { + return "0"; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + int resultCount = latestlotteryService.getProductByUserByCount(userId, startDate, endDate); + return String.valueOf(resultCount); + } + + @GetMapping("/OrderDetail") + public String orderDetail(@RequestParam String id, Model model, HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + try { + Latestlottery latestlottery = latestlotteryService.getById(id); + model.addAttribute("latestlottery", latestlottery); + + if (latestlottery.getStatus() == 1) { + List userbyaddressList = userService.getUserbyaddress(userId); + List sProvinceList = provinceService.list(); + model.addAttribute("userbyaddressList", userbyaddressList); + model.addAttribute("sProvinceList", sProvinceList); + } else { + List orderdetailList = latestlotteryService.orderDetailListById(id); + OrderDetailAddress orderDetailAddress = latestlotteryService.orderDetailAddressFindByOrderDetailId(id); + model.addAttribute("orderdetailList", orderdetailList); + model.addAttribute("orderDetailAddress", orderDetailAddress); + } + return "OrderDetail"; + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + return "login_index"; + } + + @PostMapping("/OrderDetailAddAddress") + @ResponseBody + public String orderDetailAddAddress(@RequestBody String userJSON, HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + try { + JSONObject object = JSONObject.fromObject(userJSON); + String orderRemarks = object.getString("orderRemarks"); + String postDate = object.getString("postDate"); + String hidOrderNO = object.getString("hidOrderNO"); + String id = object.getString("id"); + + Userbyaddress userbyaddress = userService.findAddressById(Integer.parseInt(id)); + OrderDetailAddress orderDetailAddress = new OrderDetailAddress(); + orderDetailAddress.setAddress(userbyaddress.getProvince() + " " + userbyaddress.getCity() + " " + + userbyaddress.getDistrict() + " " + userbyaddress.getAddress()); + orderDetailAddress.setConsignee(userbyaddress.getConsignee()); + orderDetailAddress.setOrderRemarks(orderRemarks); + orderDetailAddress.setPostDate(postDate); + orderDetailAddress.setPhone(userbyaddress.getPhone()); + orderDetailAddress.setOrderDetailId(Integer.parseInt(hidOrderNO)); + latestlotteryService.addOrderDetailAddress(orderDetailAddress); + + Orderdetail orderdetail = new Orderdetail(); + orderdetail.setDate(DateUtil.DateTimeToStr(new Date())); + orderdetail.setDetailText("会员已确认配送地址信息,等待商城发货"); + orderdetail.setOrderDetailId(Integer.parseInt(hidOrderNO)); + orderdetail.setUserName("会员本人"); + orderdetailService.save(orderdetail); + + Latestlottery latestlottery = latestlotteryService.getById(hidOrderNO); + latestlottery.setStatus(2); + latestlotteryService.save(latestlottery); + + return "success"; + } catch (Exception e) { + e.printStackTrace(); + return "error"; + } + } + } + } + } + return "login"; + } + + @PostMapping("/confirmOrderDetail") + @ResponseBody + public String confirmOrderDetail(@RequestParam String id, HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + try { + Latestlottery latestlottery = latestlotteryService.getById(id); + latestlottery.setStatus(4); + latestlottery.setShareStatus(-1); + latestlotteryService.save(latestlottery); + + Orderdetail orderdetail = new Orderdetail(); + orderdetail.setDate(DateUtil.DateTimeToStr(new Date())); + orderdetail.setDetailText("会员已确认收到商品。"); + orderdetail.setOrderDetailId(latestlottery.getSpellbuyProductId()); + orderdetail.setUserName("会员本人"); + orderdetailService.save(orderdetail); + + return "success"; + } catch (Exception e) { + e.printStackTrace(); + return "error"; + } + } + } + } + } + return "login"; + } + + @GetMapping("/PostSingleAdd") + public String postSingleAdd(Model model, HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + return "PostSingleAdd"; + } + } + } + } + return "login_index"; + } + + @GetMapping("/PostSingleList") + public String postSingleList(Model model, HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + return "PostSingleList"; + } + } + } + } + return "login_index"; + } + + @PostMapping("/PostSingleListAjaxPage") + @ResponseBody + public List postSingleListAjaxPage(@RequestParam(required = false) Integer pageNo, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + List buyHistoryJSONList = new ArrayList<>(); + + if (userId == null) { + return buyHistoryJSONList; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + Pagination datePage = shareService.shareByUser(userId, startDate, endDate, pageNo, 5); + List pageList = (List) datePage.getList(); + + for (Latestlottery latestlottery : pageList) { + try { + BuyHistoryJSON buyHistoryJSON = new BuyHistoryJSON(); + buyHistoryJSON.setProductName(latestlottery.getProductName()); + buyHistoryJSON.setProductTitle(latestlottery.getProductTitle()); + buyHistoryJSON.setProductImg(latestlottery.getProductImg()); + buyHistoryJSON.setProductId(latestlottery.getProductId()); + buyHistoryJSON.setProductPeriod(latestlottery.getProductPeriod()); + buyHistoryJSON.setWinId(latestlottery.getRandomNumber()); + buyHistoryJSON.setWinDate(latestlottery.getAnnouncedTime()); + buyHistoryJSON.setBuyStatus(latestlottery.getShareStatus()); + buyHistoryJSON.setWinUserId(latestlottery.getShareId()); + buyHistoryJSON.setHistoryId(latestlottery.getId()); + buyHistoryJSONList.add(buyHistoryJSON); + } catch (Exception e) { + e.printStackTrace(); + } + } + return buyHistoryJSONList; + } + + @PostMapping("/PostSingleListAjaxPageResultCount") + @ResponseBody + public String postSingleListAjaxPageResultCount(@RequestParam(required = false) Integer pageNo, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + if (userId == null) { + return "0"; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + Pagination datePage = shareService.shareByUser(userId, startDate, endDate, pageNo, 5); + return String.valueOf(datePage.getResultCount()); + } + + @GetMapping("/InvitedList") + public String invitedList(Model model, HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + int resultCount = userService.getInvitedListByCount(userId); + List userList = userService.getInvitedListByData(userId); + + int w = 0; + int h = 0; + for (User u : userList) { + if (u.getExperience() > 0) { + w++; + h += 50; + } + } + + model.addAttribute("resultCount", resultCount); + model.addAttribute("userList", userList); + model.addAttribute("w", w); + model.addAttribute("h", h); + + return "InvitedList"; + } + } + } + } + return "login_index"; + } + + @PostMapping("/InvitedListAjaxPage") + @ResponseBody + public List invitedListAjaxPage(@RequestParam(required = false) Integer pageNo, + @RequestParam(defaultValue = "12") int pageSize, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + if (userId == null) { + return new ArrayList<>(); + } + + Pagination datePage = userService.getInvitedList(userId, pageNo, pageSize); + List userList = (List) datePage.getList(); + + for (User user : userList) { + user.setUserName(UserNameUtil.userName(user)); + } + return userList; + } + + @GetMapping("/CommissionQuery") + public String commissionQuery(Model model, HttpServletRequest request, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + int resultCount = commissionqueryService.getCommissionQueryListByCount(userId, startDate, endDate); + model.addAttribute("resultCount", resultCount); + model.addAttribute("startDate", startDate); + model.addAttribute("endDate", endDate); + + return "CommissionQuery"; + } + } + } + } + return "login_index"; + } + + @PostMapping("/CommissionQueryAjaxPage") + @ResponseBody + public List commissionQueryAjaxPage(@RequestParam(required = false) Integer pageNo, + @RequestParam(defaultValue = "12") int pageSize, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + List commissionqueryJSONList = new ArrayList<>(); + + if (userId == null) { + return commissionqueryJSONList; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + Pagination datePage = commissionqueryService.getCommissionQueryList(userId, startDate, endDate, pageNo, pageSize); + List dateList = (List) datePage.getList(); + + if (!dateList.isEmpty()) { + for (Object[] obj : dateList) { + CommissionqueryJSON commissionqueryJSON = new CommissionqueryJSON(); + User user = (User) obj[0]; + Commissionquery commissionquery = (Commissionquery) obj[1]; + + commissionqueryJSON.setBuyMoney(commissionquery.getBuyMoney()); + commissionqueryJSON.setCommission(commissionquery.getCommission()); + commissionqueryJSON.setDate(commissionquery.getDate()); + commissionqueryJSON.setDescription(commissionquery.getDescription()); + commissionqueryJSON.setUserId(String.valueOf(user.getUserId())); + commissionqueryJSON.setUserName(UserNameUtil.userName(user)); + + commissionqueryJSONList.add(commissionqueryJSON); + } + } + return commissionqueryJSONList; + } + + @PostMapping("/getCommissionQueryAjaxPageResultCount") + @ResponseBody + public String getCommissionQueryAjaxPageResultCount(@RequestParam(required = false) Integer pageNo, + @RequestParam(required = false) String selectTime, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + if (userId == null) { + return "0"; + } + + Date date = new Date(); + if (StringUtils.isNotBlank(selectTime)) { + switch (selectTime) { + case "0": + startDate = null; + endDate = null; + break; + case "1": + startDate = DateUtil.DateToStr(date) + " 00:00:00"; + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + break; + case "2": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -7)) + " 00:00:00"; + break; + case "3": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -30)) + " 00:00:00"; + break; + case "4": + endDate = DateUtil.DateToStr(date) + " 23:59:59"; + startDate = DateUtil.DateToStr(DateUtil.addDate(date, -90)) + " 00:00:00"; + break; + } + } else if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { + startDate += " 00:00:00"; + endDate += " 23:59:59"; + } + + int resultCount = commissionqueryService.getCommissionQueryListByCount(userId, startDate, endDate); + return String.valueOf(resultCount); + } + + @GetMapping("/MemberPoints") + public String memberPoints(Model model, HttpServletRequest request, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate) { + Cookie[] cookies = request.getCookies(); + if (request.isRequestedSessionIdFromCookie() && cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + String userId = cookie.getValue(); + if (StringUtils.isNotBlank(userId)) { + User user = userService.findById(userId); + model.addAttribute("user", user); + + int resultCount = commissionpointsService.getCommissionPointsListByCount(userId, startDate, endDate); + model.addAttribute("resultCount", resultCount); + model.addAttribute("startDate", startDate); + model.addAttribute("endDate", endDate); + + return "CommissionPoints"; + } + } + } + } + return "login_index"; + } + + @PostMapping("/CommissionPointsAjaxPage") + @ResponseBody + public Object commissionPointsAjaxPage(@RequestParam(required = false) Integer pageNo, + @RequestParam(defaultValue = "12") int pageSize, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + HttpServletRequest request) { + pageNo = (pageNo == null || pageNo <= 0) ? 1 : pageNo + 1; + String userId = getUserIdFromCookie(request); + + if (userId == null) { + return new ArrayList<>(); + } + + Pagination datePage = commissionpointsService.CommissionPoints(userId, startDate, endDate, pageNo, pageSize); + // 此处省略原代码中未完成的逻辑,保持与原代码结构一致 + return datePage.getList(); + } + + // 工具方法:从Cookie获取userId + private String getUserIdFromCookie(HttpServletRequest request) { + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if ("userId".equals(cookie.getName())) { + return cookie.getValue(); + } + } + } + return null; + } + + // Getter和Setter方法只保留必要的表单绑定和页面渲染所需字段 + // 文件上传相关字段 + private MultipartFile myFile; + private String myFileFileName; + private String myFileContentType; + private String imageFileName; + private int x1; + private int y1; + private int w; + private int h; + private String hidPicUrl; + private String userName; + private String key; + + public MultipartFile getMyFile() { + return myFile; + } + + public void setMyFile(MultipartFile myFile) { + this.myFile = myFile; + } + + public String getMyFileFileName() { + return myFileFileName; + } + + public void setMyFileFileName(String myFileFileName) { + this.myFileFileName = myFileFileName; + } + + public String getMyFileContentType() { + return myFileContentType; + } + + public void setMyFileContentType(String myFileContentType) { + this.myFileContentType = myFileContentType; + } + + public String getImageFileName() { + return imageFileName; + } + + public void setImageFileName(String imageFileName) { + this.imageFileName = imageFileName; + } + + public int getX1() { + return x1; + } + + public void setX1(int x1) { + this.x1 = x1; + } + + public int getY1() { + return y1; + } + + public void setY1(int y1) { + this.y1 = y1; + } + + public int getW() { + return w; + } + + public void setW(int w) { + this.w = w; + } + + public int getH() { + return h; + } + + public void setH(int h) { + this.h = h; + } + + public String getHidPicUrl() { + return hidPicUrl; + } + + public void setHidPicUrl(String hidPicUrl) { + this.hidPicUrl = hidPicUrl; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } +} \ No newline at end of file diff --git a/src/main/java/me/mofun/entity/dto/ShareinfoShareimageLatestlotteryDTO.java b/src/main/java/me/mofun/entity/dto/ShareinfoShareimageLatestlotteryDTO.java new file mode 100644 index 0000000..c41b84e --- /dev/null +++ b/src/main/java/me/mofun/entity/dto/ShareinfoShareimageLatestlotteryDTO.java @@ -0,0 +1,16 @@ +package me.mofun.entity.dto; + +import lombok.Data; +import me.mofun.entity.Latestlottery; +import me.mofun.entity.Shareimage; +import me.mofun.entity.Shareinfo; + +import java.io.Serializable; + +@Data +public class ShareinfoShareimageLatestlotteryDTO implements Serializable { + + private Shareinfo shareinfo; + private Shareimage shareimage; + private Latestlottery latestlottery; +} diff --git a/src/main/java/me/mofun/entity/dto/SpellbuyrecordDTO.java b/src/main/java/me/mofun/entity/dto/SpellbuyrecordDTO.java new file mode 100644 index 0000000..353c25b --- /dev/null +++ b/src/main/java/me/mofun/entity/dto/SpellbuyrecordDTO.java @@ -0,0 +1,21 @@ +package me.mofun.entity.dto; + +import lombok.Data; +import me.mofun.entity.Product; +import me.mofun.entity.Spellbuyproduct; +import me.mofun.entity.Spellbuyrecord; +import me.mofun.entity.User; + +@Data +public class SpellbuyrecordDTO { + + private Product product; + private User user; + + private Spellbuyrecord spellbuyrecord; + + + private Spellbuyproduct spellbuyproduct; + + +} diff --git a/src/main/java/me/mofun/entity/pojo/CommissionqueryJSON.java b/src/main/java/me/mofun/entity/pojo/CommissionqueryJSON.java new file mode 100644 index 0000000..c98f41d --- /dev/null +++ b/src/main/java/me/mofun/entity/pojo/CommissionqueryJSON.java @@ -0,0 +1,50 @@ +package me.mofun.entity.pojo; + +public class CommissionqueryJSON { + + private String userId; + private String userName; + private String date; + private String description; + private Double buyMoney; + private Double commission; + + + public String getUserId() { + return userId; + } + public void setUserId(String userId) { + this.userId = userId; + } + public String getUserName() { + return userName; + } + public void setUserName(String userName) { + this.userName = userName; + } + public String getDate() { + return date; + } + public void setDate(String date) { + this.date = date; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public Double getBuyMoney() { + return buyMoney; + } + public void setBuyMoney(Double buyMoney) { + this.buyMoney = buyMoney; + } + public Double getCommission() { + return commission; + } + public void setCommission(Double commission) { + this.commission = commission; + } + +} diff --git a/src/main/java/me/mofun/entity/pojo/RandomNumberJSON.java b/src/main/java/me/mofun/entity/pojo/RandomNumberJSON.java new file mode 100644 index 0000000..61f0a60 --- /dev/null +++ b/src/main/java/me/mofun/entity/pojo/RandomNumberJSON.java @@ -0,0 +1,54 @@ +package me.mofun.entity.pojo; + +public class RandomNumberJSON { + + private String buyDate; + private String buyCount; + private String randomNumbers; + + + public RandomNumberJSON() { + super(); + } + + public RandomNumberJSON(String buyDate, String buyCount, + String randomNumbers) { + super(); + this.buyDate = buyDate; + this.buyCount = buyCount; + this.randomNumbers = randomNumbers; + } + + + public String getBuyCount() { + return buyCount; + } + + + public void setBuyCount(String buyCount) { + this.buyCount = buyCount; + } + + + public String getBuyDate() { + return buyDate; + } + + + public void setBuyDate(String buyDate) { + this.buyDate = buyDate; + } + + + public String getRandomNumbers() { + return randomNumbers; + } + + + public void setRandomNumbers(String randomNumbers) { + this.randomNumbers = randomNumbers; + } + + + +} diff --git a/src/main/java/me/mofun/entity/vo/CommissionqueryUserVo.java b/src/main/java/me/mofun/entity/vo/CommissionqueryUserVo.java new file mode 100644 index 0000000..b8394f4 --- /dev/null +++ b/src/main/java/me/mofun/entity/vo/CommissionqueryUserVo.java @@ -0,0 +1,14 @@ +package me.mofun.entity.vo; + +import lombok.Data; +import me.mofun.entity.Commissionquery; +import me.mofun.entity.User; + +@Data +public class CommissionqueryUserVo { + + + private Commissionquery commissionquery; + + private User user; +} diff --git a/src/main/java/me/mofun/service/IUserService.java b/src/main/java/me/mofun/service/IUserService.java index 75337e6..1733325 100644 --- a/src/main/java/me/mofun/service/IUserService.java +++ b/src/main/java/me/mofun/service/IUserService.java @@ -1,7 +1,6 @@ package me.mofun.service; -import com.baomidou.mybatisplus.extension.service.IService; - +import icu.mhb.mybatisplus.plugln.base.service.JoinIService; import me.mofun.entity.User; import me.mofun.entity.Userbyaddress; import me.mofun.entity.vo.Pagination; @@ -16,7 +15,7 @@ import java.util.List; * @author xu * @since 2025-08-23 */ -public interface IUserService extends IService { +public interface IUserService extends JoinIService { public int add(User user) ; @@ -75,7 +74,7 @@ public interface IUserService extends IService { * @param pageSize * @return */ - public Pagination adminUserList(String typeId,String keyword,String orderName,int pageNo,int pageSize); + public Pagination adminUserList(String typeId, String keyword, String orderName, int pageNo, int pageSize); /** * 获取同事列表 diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 2bda187..23f8789 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -37,16 +37,6 @@ spring: username: ipdz password: ipdz@test driver-class-name: com.mysql.cj.jdbc.Driver - jpa: - database-platform: org.hibernate.dialect.MySQL5InnoDBDialect # 从jdbc.properties同步方言 - hibernate: - ddl-auto: none # 从applicationContext-base.xml同步,原配置为none - show-sql: true - properties: - hibernate: - format_sql: true - use_sql_comments: true # 从applicationContext-base.xml补充 - jdbc.batch_size: 30 # 线程池配置(从thread.properties同步) task: execution: diff --git a/src/main/resources/mapper/ShareinfoMapper.xml b/src/main/resources/mapper/ShareinfoMapper.xml index 2cad67c..2058282 100644 --- a/src/main/resources/mapper/ShareinfoMapper.xml +++ b/src/main/resources/mapper/ShareinfoMapper.xml @@ -2,18 +2,336 @@ - + - - - - - - - - - - + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/SpellbuyrecordMapper.xml b/src/main/resources/mapper/SpellbuyrecordMapper.xml index 5139cf5..cd0e6c1 100644 --- a/src/main/resources/mapper/SpellbuyrecordMapper.xml +++ b/src/main/resources/mapper/SpellbuyrecordMapper.xml @@ -2,265 +2,213 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + select pt.*, st.* from product pt, spellbuyproduct st where 1=1 - and st.fkProductId = pt.productId - and st.spStatus <> 1 - group by pt.productId + and st.fkProductId=pt.productId + and st.spStatus <> 1 + GROUP by pt.productId order by st.spellbuyCount desc - + select pt.*, st.* from product pt, spellbuyproduct st - where pt.status = 1 - and pt.isShow = 1 - and st.fkProductId = pt.productId - and st.spStatus <> 1 + where pt.status=1 + and pt.isShow=1 + and st.fkProductId=pt.productId + and st.spStatus <> 1 GROUP by pt.productId order by st.spellbuyStartDate desc - + select pt.*, st.* from product pt, spellbuyproduct st where 1=1 - and st.fkProductId = pt.productId - and st.spStatus + and st.fkProductId=pt.productId + and st.spStatus <> 1 GROUP by pt.productId order by st.productPeriod desc - - select ur.*, sd.*, pt.*, st.* - from user ur, spellbuyrecord sd, product pt, spellbuyproduct st + from User ur, spellbuyrecord sd, Product pt, spellbuyproduct st where 1=1 - and sd.buyer = ur.userId - and sd.fkSpellbuyProductId = st.spellbuyProductId - and st.fkProductId = pt.productId - and sd.buyDate between #{startDate} and #{endDate} + and sd.buyer=ur.userId + and sd.fkSpellbuyProductId=st.spellbuyProductId + and st.fkProductId=pt.productId order by sd.buyDate desc - - + select pt.*, st.* from product pt, spellbuyproduct st - where st.fkProductId = pt.productId - and st.spStatus <> 1 + where st.fkProductId=pt.productId + and st.spStatus <> 1 - and ( - pt.productType = #{typeId} - - or pt.productType = #{type.typeId} + and (1=2 + or (1=1 and pt.productType= #{typeId}) + + or (1=1 and pt.productType= #{childTypeId}) ) GROUP by pt.productId - - + select pt.*, st.* from product pt, spellbuyproduct st - where pt.status = 1 - and pt.isShow = 1 - and st.fkProductId = pt.productId - and st.spStatus <> 1 + where pt.status=1 + and pt.isShow=1 + and st.fkProductId=pt.productId + and st.spStatus <> 1 - and ( - pt.productType = #{typeId} - - or pt.productType = #{type.typeId} + and (1=2 + or (1=1 and pt.productType= #{typeId}) + + or (1=1 and pt.productType= #{childTypeId}) ) - and pt.productBrand = #{brandId} + and pt.productBrand=#{brandId} + + + GROUP by st.spellbuyProductId + order by st.spellbuyCount desc + + + GROUP by st.spellbuyProductId + order by st.spellbuyStartDate desc + + + GROUP by st.spellbuyProductId + order by pt.productPrice desc + + + GROUP by st.spellbuyProductId + order by pt.productPrice asc + + + and (st.spellbuyCount > (pt.productPrice/1.5)) + GROUP by pt.productId + order by st.spellbuyCount desc + + + GROUP by pt.productId + order by (pt.productPrice - st.spellbuyCount) asc - - - GROUP by st.spellbuyProductId order by st.spellbuyCount desc - - - GROUP by st.spellbuyProductId order by st.spellbuyStartDate desc - - - GROUP by st.spellbuyProductId order by pt.productPrice desc - - - GROUP by st.spellbuyProductId order by pt.productPrice asc - - - and (st.spellbuyCount > (pt.productPrice / 1.5)) - GROUP by pt.productId order by st.spellbuyCount desc - - - GROUP by pt.productId order by (pt.productPrice - st.spellbuyCount) asc - - - - + select pt.*, st.* from product pt, spellbuyproduct st - where pt.status = 1 - and pt.isShow = 1 - and pt.shopId = #{shopId} - and st.fkProductId = pt.productId - and st.spStatus <> 1 + where pt.status=1 + and pt.isShow=1 + and pt.shopId=#{shopId} + and st.fkProductId=pt.productId + and st.spStatus <> 1 - and ( - pt.productType = #{typeId} - - or pt.productType = #{type.typeId} + and (1=2 + or (1=1 and pt.productType= #{typeId}) + + or (1=1 and pt.productType= #{childTypeId}) ) - and pt.productBrand = #{brandId} + and pt.productBrand=#{brandId} + + + GROUP by st.spellbuyProductId + order by st.spellbuyCount desc + + + GROUP by st.spellbuyProductId + order by st.spellbuyStartDate desc + + + GROUP by st.spellbuyProductId + order by pt.productPrice desc + + + GROUP by st.spellbuyProductId + order by pt.productPrice asc + + + and (st.spellbuyCount > (pt.productPrice/1.5)) + GROUP by pt.productId + order by st.spellbuyCount desc + + + GROUP by pt.productId + order by (pt.productPrice - st.spellbuyCount) asc - - - GROUP by st.spellbuyProductId order by st.spellbuyCount desc - - - GROUP by st.spellbuyProductId order by st.spellbuyStartDate desc - - - GROUP by st.spellbuyProductId order by pt.productPrice desc - - - GROUP by st.spellbuyProductId order by pt.productPrice asc - - - and (st.spellbuyCount > (pt.productPrice / 1.5)) - GROUP by pt.productId order by st.spellbuyCount desc - - - GROUP by pt.productId order by (pt.productPrice - st.spellbuyCount) asc - - - + select pt.*, st.* from product pt, spellbuyproduct st - where st.fkProductId = pt.productId - and st.spStatus <> 1 - and pt.productName like concat('%', #{keyword}, '%') - - - GROUP by st.spellbuyProductId order by st.spellbuyCount desc - - - GROUP by st.spellbuyProductId order by st.spellbuyStartDate desc - - - GROUP by st.spellbuyProductId order by pt.productPrice desc - - - GROUP by st.spellbuyProductId order by pt.productPrice asc - - - and (st.spellbuyCount > (pt.productPrice / 1.5)) - GROUP by pt.productId order by st.spellbuyCount desc - - - GROUP by pt.productId order by (pt.productPrice - st.spellbuyCount) asc - - + where st.fkProductId=pt.productId + and st.spStatus <> 1 + and pt.productName like CONCAT('%', #{keyword}, '%') + + GROUP by st.spellbuyProductId + order by st.spellbuyCount desc + + + GROUP by st.spellbuyProductId + order by st.spellbuyStartDate desc + + + GROUP by st.spellbuyProductId + order by pt.productPrice desc + + + GROUP by st.spellbuyProductId + order by pt.productPrice asc + + + and (st.spellbuyCount > (pt.productPrice/1.5)) + GROUP by pt.productId + order by st.spellbuyCount desc + + + GROUP by pt.productId + order by (pt.productPrice - st.spellbuyCount) asc + - - select ur.*, sd.* from user ur, spellbuyrecord sd - where sd.buyer = ur.userId + where sd.buyer=ur.userId and sd.fkSpellbuyProductId = #{spellbuyProductId} order by sd.buyDate desc - - + SELECT * from randomnumber rr + where rr.productId = #{spellbuyProductId} + and rr.userId = #{userId} + order by rr.buyDate desc + + + - - - - - + \ No newline at end of file