WeFissionController.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. package com.linkwechat.controller;
  2. import com.linkwechat.common.core.controller.BaseController;
  3. import com.linkwechat.common.core.domain.AjaxResult;
  4. import com.linkwechat.common.core.page.TableDataInfo;
  5. import com.linkwechat.common.exception.wecom.WeComException;
  6. import com.linkwechat.common.utils.SecurityUtils;
  7. import com.linkwechat.common.utils.ServletUtils;
  8. import com.linkwechat.common.utils.poi.LwExcelUtil;
  9. import com.linkwechat.domain.fission.WeFission;
  10. import com.linkwechat.domain.fission.vo.*;
  11. import com.linkwechat.service.IWeFissionService;
  12. import com.linkwechat.service.IWeMaterialService;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.util.Arrays;
  16. import java.util.List;
  17. /**
  18. * 裂变相关
  19. */
  20. @RestController
  21. @RequestMapping("/fission")
  22. public class WeFissionController extends BaseController {
  23. @Autowired
  24. IWeFissionService iWeFissionService;
  25. @Autowired
  26. IWeMaterialService iWeMaterialService;
  27. /**
  28. * 获取裂变列表
  29. * @param weFission
  30. * @return
  31. */
  32. @GetMapping("/list")
  33. public TableDataInfo<List<WeFission>> list(WeFission weFission){
  34. startPage();
  35. return getDataTable(
  36. iWeFissionService.findWeFissions(weFission)
  37. );
  38. }
  39. /**
  40. * 创建裂变
  41. * @param weFission
  42. * @return
  43. */
  44. @PostMapping("/add")
  45. public AjaxResult add(@RequestBody WeFission weFission){
  46. return AjaxResult.success(iWeFissionService.buildWeFission2(weFission));
  47. }
  48. /**
  49. * 更新裂变
  50. * @param weFission
  51. * @return
  52. */
  53. @PutMapping("/update")
  54. public AjaxResult update(@RequestBody WeFission weFission){
  55. // iWeFissionService.updateById(weFission);
  56. if(weFission.getId()==null){
  57. throw new WeComException("唯一主键不可为空!");
  58. }
  59. return AjaxResult.success(iWeFissionService.buildWeFission2(weFission));
  60. }
  61. /**
  62. * 获取任务信息
  63. * @param id
  64. * @return
  65. */
  66. @GetMapping("/getWeFissionDetail/{id}")
  67. public AjaxResult<WeFission> getWeFissionDetail(@PathVariable Long id){
  68. WeFission weFission = iWeFissionService.getById(id);
  69. if(null != weFission){
  70. weFission.setWematerial(
  71. iWeMaterialService.getById(weFission.getPosterId())
  72. );
  73. }
  74. return AjaxResult.success(
  75. weFission
  76. );
  77. }
  78. /**
  79. * 通过id批量删除裂变
  80. *
  81. * @param ids id列表
  82. * @return 结果
  83. */
  84. @DeleteMapping(path = "/{ids}")
  85. public AjaxResult batchDeleteFission(@PathVariable("ids") Long[] ids) {
  86. iWeFissionService.removeByIds(Arrays.asList(ids));
  87. return AjaxResult.success();
  88. }
  89. /*****************************************
  90. ***************统计相关*******************
  91. ****************************************/
  92. /**
  93. * 裂变头部汇总统计
  94. * @param fissionId
  95. * @return
  96. */
  97. @GetMapping("/findWeFissionTab/{fissionId}")
  98. public AjaxResult<WeFissionTabVo> findWeFissionTab(@PathVariable Long fissionId){
  99. return AjaxResult.success(
  100. iWeFissionService.findWeFissionTab(fissionId)
  101. );
  102. }
  103. /**
  104. * 数据趋势
  105. * @param weFission
  106. * @return
  107. */
  108. @GetMapping("/findWeFissionTrend")
  109. public AjaxResult<List<WeFissionTrendVo>> findWeFissionTrend(WeFission weFission){
  110. startPage();
  111. return AjaxResult.success(
  112. iWeFissionService.findWeFissionTrend(weFission)
  113. );
  114. }
  115. /**
  116. * 数据报表
  117. * @param weFission
  118. * @return
  119. */
  120. @GetMapping("/findWeFissionDataReport")
  121. public TableDataInfo<List<WeFissionDataReportVo>> findWeFissionDataReport(WeFission weFission){
  122. startPage();
  123. return getDataTable(
  124. iWeFissionService.findWeFissionDataReport(weFission)
  125. );
  126. }
  127. /**
  128. * 导出数据报表
  129. * @return
  130. */
  131. @GetMapping("/exportWeFissionDataReport")
  132. public void exportWeFissionDataReport(){
  133. LwExcelUtil.exprotForWeb(
  134. ServletUtils.getResponse(), WeFissionDataReportVo.class, iWeFissionService.findWeFissionDataReport(new WeFission()),"数据报表"
  135. );
  136. }
  137. /**
  138. * 裂变明细(群裂变)
  139. * @param fissionId
  140. * @param customerName 客户名
  141. * @param weUserId 员工id
  142. * @param chatId 群id
  143. * @return
  144. */
  145. @GetMapping("/findWeGroupFissionDetail")
  146. public TableDataInfo<List<WeGroupFissionDetailVo>> findWeGroupFissionDetail(String fissionId,String customerName, String weUserId,String chatId){
  147. startPage();
  148. return getDataTable(
  149. iWeFissionService.findWeGroupFissionDetail(fissionId,customerName,weUserId,chatId)
  150. );
  151. }
  152. /**
  153. * 裂变明细(任务宝)
  154. * @param fissionId
  155. * @param customerName 客户名
  156. * @param weUserId 员工id
  157. * @return
  158. */
  159. @GetMapping("/findWeTaskFissionDetail")
  160. public TableDataInfo<List<WeTaskFissionDetailVo>> findWeTaskFissionDetail(String fissionId,String customerName, String weUserId){
  161. startPage();
  162. // 空的,代表不是员工邀请的,而是直接进入活动链接的
  163. return getDataTable(
  164. iWeFissionService.findWeTaskFissionDetail(fissionId,customerName,weUserId)
  165. );
  166. }
  167. /**
  168. * 导出群裂变明细(群裂变)
  169. * @return
  170. */
  171. @GetMapping("/exportWeGroupFissionDetail")
  172. public void exportWeGroupFissionDetail(String fissionId){
  173. LwExcelUtil.exprotForWeb(
  174. ServletUtils.getResponse(), WeGroupFissionDetailVo.class, iWeFissionService.findWeGroupFissionDetail(fissionId,null,null,null),"群裂变明细"
  175. );
  176. }
  177. /**
  178. * 导出群裂变明细(任务宝)
  179. * @return
  180. */
  181. @GetMapping("/exportWeTaskFissionDetail")
  182. public void exportWeTaskFissionDetail(String fissionId){
  183. LwExcelUtil.exprotForWeb(
  184. ServletUtils.getResponse(), WeTaskFissionDetailVo.class, iWeFissionService.findWeTaskFissionDetail(fissionId,null,null),"任务宝明细"
  185. );
  186. }
  187. /**
  188. * 裂变明细sub
  189. * @param fissionInviterRecordId
  190. * @return
  191. */
  192. @GetMapping("/findWeFissionDetailSub")
  193. public TableDataInfo<List<WeFissionDetailSubVo>> findWeFissionDetailSub(Long fissionInviterRecordId){
  194. startPage();
  195. return getDataTable(
  196. iWeFissionService.findWeFissionDetailSub(fissionInviterRecordId)
  197. );
  198. }
  199. }