CmReportingClubController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. package com.caimei.modules.user.web;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import com.caimei.modules.product.entity.CmDistributionProduct;
  6. import com.caimei.modules.user.entity.CmReportingClub;
  7. import com.caimei.modules.user.entity.CmReportingMember;
  8. import com.caimei.modules.user.service.CmReportingClubService;
  9. import com.caimei.utils.StringUtils;
  10. import com.google.common.collect.Maps;
  11. import com.thinkgem.jeesite.common.config.Global;
  12. import com.thinkgem.jeesite.common.persistence.Page;
  13. import com.thinkgem.jeesite.common.web.BaseController;
  14. import org.springframework.stereotype.Controller;
  15. import org.springframework.ui.Model;
  16. import org.springframework.web.bind.annotation.*;
  17. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  18. import java.math.BigDecimal;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.Map;
  22. import java.util.stream.Collectors;
  23. /**
  24. * 机构报备Controller
  25. *
  26. * @author Kaick
  27. * @date 2023-09-20
  28. */
  29. @Controller
  30. @RequestMapping("${adminPath}/user/reporting")
  31. public class CmReportingClubController extends BaseController
  32. {
  33. @Resource
  34. private CmReportingClubService cmReportingClubService;
  35. @ModelAttribute
  36. public CmReportingClub get(@RequestParam(required = false) String id) {
  37. CmReportingClub entity = null;
  38. if (StringUtils.isNotBlank(id)) {
  39. entity = cmReportingClubService.get(id);
  40. }
  41. if (entity == null) {
  42. entity = new CmReportingClub();
  43. }
  44. return entity;
  45. }
  46. @RequestMapping(value = {"list", ""})
  47. public String list(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) {
  48. Page<CmReportingClub> page = cmReportingClubService.findPage(new Page<CmReportingClub>(request, response), cmReportingClub);
  49. page.getList().forEach(s -> {
  50. s.distributionCount(cmReportingClubService.getCmReportingMemberCount(new CmReportingMember()
  51. .clubReportingId(Integer.valueOf(s.id()))
  52. .auditStatus("not in=2")
  53. ));
  54. });
  55. model.addAttribute("cmReportingClub", cmReportingClub);
  56. model.addAttribute("page", page);
  57. return "modules/user/cmReportingClubList";
  58. }
  59. /**
  60. * 功能描述: 分销报备佣金明细列表
  61. *
  62. * @param cmReportingClub
  63. * @param request
  64. * @param response
  65. * @param model
  66. * @return [cmReportingClub, request, response, model]
  67. * @auther: Kaick
  68. * @date: 2023/10/12 17:19
  69. */
  70. @RequestMapping(value = {"settleList"})
  71. public String settleList(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) {
  72. cmReportingClub.lockStatus(1).orderStatus(1);
  73. Page<CmReportingClub> page = cmReportingClubService.findPage(new Page<CmReportingClub>(request, response), cmReportingClub);
  74. model.addAttribute("cmReportingClub", cmReportingClub);
  75. model.addAttribute("page", page);
  76. return "modules/user/cmReportingClubSettleList";
  77. }
  78. /**
  79. * 功能描述: 分销订单佣金明细列表
  80. *
  81. * @param cmReportingClub
  82. * @param request
  83. * @param response
  84. * @param model
  85. * @return [cmReportingClub, request, response, model]
  86. * @auther: Kaick
  87. * @date: 2023/10/12 17:19
  88. */
  89. @RequestMapping(value = {"settleClubList"})
  90. public String settleClubList(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) {
  91. cmReportingClub.lockStatus(1).orderStatus(1);
  92. Page<CmReportingClub> page = cmReportingClubService.getCmReportingClubPage(new Page<CmReportingClub>(request, response), cmReportingClub);
  93. model.addAttribute("cmReportingClub", cmReportingClub);
  94. model.addAttribute("page", page);
  95. return "modules/user/cmDistributionMemberSettleList";
  96. }
  97. @RequestMapping(value = {"memberlist"})
  98. public String memberlist(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) {
  99. Page<CmReportingMember> page = cmReportingClubService.findMemberPage(new Page<CmReportingMember>(request, response), cmReportingMember);
  100. model.addAttribute("cmReportingMember", cmReportingMember);
  101. model.addAttribute("page", page);
  102. return "modules/user/cmReportingMemberList";
  103. }
  104. @RequestMapping(value = {"memberSettleList"})
  105. public String memberSettlelist(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) {
  106. Page<CmReportingMember> page = cmReportingClubService.findMemberPage(new Page<CmReportingMember>(request, response), cmReportingMember);
  107. model.addAttribute("cmReportingMember", cmReportingMember);
  108. model.addAttribute("page", page);
  109. return "modules/user/cmReportingMemberSettleList";
  110. }
  111. @RequestMapping(value = {"form"})
  112. public String form(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) {
  113. cmReportingClub.distributionCount(cmReportingClubService.getCmReportingMemberCount(new CmReportingMember()
  114. .clubReportingId(Integer.valueOf(cmReportingClub.id()))
  115. .auditStatus("not in=2")
  116. ));
  117. model.addAttribute("cmReportingClub", cmReportingClub);
  118. return "modules/user/cmReportingClubFrom";
  119. }
  120. @RequestMapping(value = {"settleForm"})
  121. public String settleForm(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) {
  122. model.addAttribute("cmReportingClub", cmReportingClub);
  123. return "modules/user/cmReportingClubSettleFrom";
  124. }
  125. @RequestMapping(value = {"settleClubFrom"})
  126. public String settleClubFrom(CmReportingClub cmReportingClub, HttpServletRequest request, HttpServletResponse response, Model model) {
  127. cmReportingClub=cmReportingClubService.getByCmReportingClub(new CmReportingClub().id(cmReportingClub.id()));
  128. model.addAttribute("cmReportingClub", cmReportingClub);
  129. return "modules/user/cmDistributionMemberSettleFrom";
  130. }
  131. @RequestMapping(value = {"memberForm"})
  132. public String memberForm(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) {
  133. if(null!=cmReportingMember.getAuditStatus()){
  134. model.addAttribute("auditType",1);
  135. }
  136. CmReportingMember byCmReportingMember = cmReportingClubService.getByCmReportingMember(cmReportingMember);
  137. model.addAttribute("cmReportingMember",byCmReportingMember);
  138. return "modules/user/cmReportingMemberFrom";
  139. }
  140. @RequestMapping(value = {"memberSettleForm"})
  141. public String memberSettleForm(CmReportingMember cmReportingMember, HttpServletRequest request, HttpServletResponse response, Model model) {
  142. CmReportingMember byCmReportingMember = cmReportingClubService.getByCmReportingMember(cmReportingMember);
  143. model.addAttribute("cmReportingMember",byCmReportingMember);
  144. return "modules/user/cmReportingMemberSettleFrom";
  145. }
  146. @RequestMapping(value = {"memberAudit"})
  147. public String memberAudit(CmReportingMember cmReportingMember, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response, Model model) {
  148. cmReportingClubService.updateCmReportingMember(new CmReportingMember()
  149. .id(cmReportingMember.id())
  150. .auditStatus(cmReportingMember.auditStatus())
  151. .auditBy(cmReportingMember.auditBy())
  152. .auditText(cmReportingMember.auditText())
  153. .auditTime(new Date())
  154. );
  155. addMessage(redirectAttributes, "审核成功");
  156. return "redirect:" + Global.getAdminPath() + "/user/reporting/memberlist?clubReportingId=" + cmReportingMember.clubReportingId();
  157. }
  158. @RequestMapping(value = {"settleStatus"})
  159. public String settleStatus(CmReportingMember cmReportingMember, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response, Model model) {
  160. cmReportingClubService.updateCmReportingMember(new CmReportingMember()
  161. .id(cmReportingMember.id())
  162. .settleStatus(cmReportingMember.settleStatus())
  163. .settleTime(new Date())
  164. );
  165. Integer cmReportingMemberCount = cmReportingClubService.getCmReportingMemberCount(new CmReportingMember()
  166. .clubReportingId(cmReportingMember.clubReportingId())
  167. .settleStatus(2)
  168. );
  169. Double cmReportingMembercCommissions = cmReportingClubService.getCmReportingMembercCommissions(new CmReportingMember()
  170. .clubReportingId(cmReportingMember.clubReportingId()));
  171. CmReportingClub cmReportingClub = new CmReportingClub()
  172. .id(String.valueOf(cmReportingMember.clubReportingId()))
  173. .paidCommission(new BigDecimal(cmReportingMembercCommissions));
  174. if (cmReportingMemberCount == 0) {
  175. cmReportingClub.settleStatus(1);
  176. }
  177. cmReportingClubService.updateCmReportingClub(cmReportingClub);
  178. addMessage(redirectAttributes, "结算成功");
  179. return "redirect:" + Global.getAdminPath() + "/user/reporting/memberSettleList?clubReportingId=" + cmReportingMember.clubReportingId();
  180. }
  181. @RequestMapping(value = {"splitSettleStatus"})
  182. public String splitSettleStatus(CmReportingClub cmReportingClub, Integer parentId, RedirectAttributes redirectAttributes, HttpServletRequest request, HttpServletResponse response, Model model) {
  183. cmReportingClubService.updateCmReportingClub(new CmReportingClub()
  184. .id(cmReportingClub.id())
  185. .splitSettleStatus(0)
  186. .splitSettleTime(new Date())
  187. );
  188. addMessage(redirectAttributes, "结算成功");
  189. return "redirect:" + Global.getAdminPath() + "/user/reporting/settleClubList?parentIds=" + parentId + "&payWay=" + cmReportingClub.payWay();
  190. }
  191. }