package com.caimei.modules.user.web; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.caimei.modules.product.entity.CmDistributionProduct; import com.caimei.modules.user.entity.CmReportingClub; import com.caimei.modules.user.entity.CmReportingMember; import com.caimei.modules.user.service.CmReportingClubService; import com.caimei.utils.StringUtils; import com.google.common.collect.Maps; import com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.web.BaseController; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * 机构报备Controller * * @author Kaick * @date 2023-09-20 */ @Controller @RequestMapping("${adminPath}/user/reporting") public class CmReportingClubController extends BaseController { @Resource private CmReportingClubService cmReportingClubService; @ModelAttribute public CmReportingClub get(@RequestParam(required = false) String id) { CmReportingClub entity = null; if (StringUtils.isNotBlank(id)) { entity = cmReportingClubService.get(id); } if (entity == null) { entity = new CmReportingClub(); } return entity; } @RequestMapping(value = {"list", ""}) public String list(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = cmReportingClubService.findPage(new Page(request, response), cmReportingClub); page.getList().forEach(s -> { s.distributionCount(cmReportingClubService.getCmReportingMemberCount(new CmReportingMember() .clubReportingId(Integer.valueOf(s.id())) .auditStatus("not in=2") )); }); model.addAttribute("cmReportingClub", cmReportingClub); model.addAttribute("page", page); return "modules/user/cmReportingClubList"; } /** * 功能描述: 分销报备佣金明细列表 * * @param cmReportingClub * @param request * @param response * @param model * @return [cmReportingClub, request, response, model] * @auther: Kaick * @date: 2023/10/12 17:19 */ @RequestMapping(value = {"settleList"}) public String settleList(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) { cmReportingClub.lockStatus(1).orderStatus(1); Page page = cmReportingClubService.findPage(new Page(request, response), cmReportingClub); model.addAttribute("cmReportingClub", cmReportingClub); model.addAttribute("page", page); return "modules/user/cmReportingClubSettleList"; } /** * 功能描述: 分销订单佣金明细列表 * * @param cmReportingClub * @param request * @param response * @param model * @return [cmReportingClub, request, response, model] * @auther: Kaick * @date: 2023/10/12 17:19 */ @RequestMapping(value = {"settleClubList"}) public String settleClubList(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) { cmReportingClub.lockStatus(1).orderStatus(1); Page page = cmReportingClubService.getCmReportingClubPage(new Page(request, response), cmReportingClub); model.addAttribute("cmReportingClub", cmReportingClub); model.addAttribute("page", page); return "modules/user/cmDistributionMemberSettleList"; } @RequestMapping(value = {"memberlist"}) public String memberlist(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = cmReportingClubService.findMemberPage(new Page(request, response), cmReportingMember); model.addAttribute("cmReportingMember", cmReportingMember); model.addAttribute("page", page); return "modules/user/cmReportingMemberList"; } @RequestMapping(value = {"memberSettleList"}) public String memberSettlelist(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) { Page page = cmReportingClubService.findMemberPage(new Page(request, response), cmReportingMember); model.addAttribute("cmReportingMember", cmReportingMember); model.addAttribute("page", page); return "modules/user/cmReportingMemberSettleList"; } @RequestMapping(value = {"form"}) public String form(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) { cmReportingClub.distributionCount(cmReportingClubService.getCmReportingMemberCount(new CmReportingMember() .clubReportingId(Integer.valueOf(cmReportingClub.id())) .auditStatus("not in=2") )); model.addAttribute("cmReportingClub", cmReportingClub); return "modules/user/cmReportingClubFrom"; } @RequestMapping(value = {"settleForm"}) public String settleForm(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) { model.addAttribute("cmReportingClub", cmReportingClub); return "modules/user/cmReportingClubSettleFrom"; } @RequestMapping(value = {"settleClubFrom"}) public String settleClubFrom(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) { cmReportingClub=cmReportingClubService.getByCmReportingClub(new CmReportingClub().id(cmReportingClub.id())); model.addAttribute("cmReportingClub", cmReportingClub); return "modules/user/cmDistributionMemberSettleFrom"; } @RequestMapping(value = {"memberForm"}) public String memberForm(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) { if(null!=cmReportingMember.getAuditStatus()){ model.addAttribute("auditType",1); } CmReportingMember byCmReportingMember = cmReportingClubService.getByCmReportingMember(cmReportingMember); model.addAttribute("cmReportingMember",byCmReportingMember); return "modules/user/cmReportingMemberFrom"; } @RequestMapping(value = {"memberSettleForm"}) public String memberSettleForm(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) { CmReportingMember byCmReportingMember = cmReportingClubService.getByCmReportingMember(cmReportingMember); model.addAttribute("cmReportingMember",byCmReportingMember); return "modules/user/cmReportingMemberSettleFrom"; } @RequestMapping(value = {"memberAudit"}) public String memberAudit(CmReportingMember cmReportingMember, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response, Model model) { cmReportingClubService.updateCmReportingMember(new CmReportingMember() .id(cmReportingMember.id()) .auditStatus(cmReportingMember.auditStatus()) .auditBy(cmReportingMember.auditBy()) .auditText(cmReportingMember.auditText()) .auditTime(new Date()) ); addMessage(redirectAttributes, "审核成功"); return "redirect:" + Global.getAdminPath() + "/user/reporting/memberlist?clubReportingId=" + cmReportingMember.clubReportingId(); } @RequestMapping(value = {"settleStatus"}) public String settleStatus(CmReportingMember cmReportingMember, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response, Model model) { cmReportingClubService.updateCmReportingMember(new CmReportingMember() .id(cmReportingMember.id()) .settleStatus(cmReportingMember.settleStatus()) .settleTime(new Date()) ); Integer cmReportingMemberCount = cmReportingClubService.getCmReportingMemberCount(new CmReportingMember() .clubReportingId(cmReportingMember.clubReportingId()) .settleStatus(2) ); Double cmReportingMembercCommissions = cmReportingClubService.getCmReportingMembercCommissions(new CmReportingMember() .clubReportingId(cmReportingMember.clubReportingId())); CmReportingClub cmReportingClub = new CmReportingClub() .id(String.valueOf(cmReportingMember.clubReportingId())) .paidCommission(new BigDecimal(cmReportingMembercCommissions)); if (cmReportingMemberCount == 0) { cmReportingClub.settleStatus(1); } cmReportingClubService.updateCmReportingClub(cmReportingClub); addMessage(redirectAttributes, "结算成功"); return "redirect:" + Global.getAdminPath() + "/user/reporting/memberSettleList?clubReportingId=" + cmReportingMember.clubReportingId(); } @RequestMapping(value = {"splitSettleStatus"}) public String splitSettleStatus(CmReportingClub cmReportingClub, Integer parentId, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response, Model model) { cmReportingClubService.updateCmReportingClub(new CmReportingClub() .id(cmReportingClub.id()) .splitSettleStatus(0) .splitSettleTime(new Date()) ); addMessage(redirectAttributes, "结算成功"); return "redirect:" + Global.getAdminPath() + "/user/reporting/settleClubList?parentIds=" + parentId + "&payWay=" + cmReportingClub.payWay(); } }