1
0

MkDistHierController.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. package com.kmall.admin.controller.mk;
  2. import java.math.BigDecimal;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import com.google.common.collect.ImmutableBiMap;
  8. import com.kmall.admin.dto.ExpendDistDto;
  9. import com.kmall.admin.entity.mk.MkDistEntity;
  10. import com.kmall.admin.entity.mk.MkDistHierEntity;
  11. import com.kmall.admin.entity.mk.MkDistHierLvlEntity;
  12. import com.kmall.admin.entity.mk.MkDistSellAllocationEntity;
  13. import com.kmall.admin.service.mk.MkDistHierService;
  14. import com.kmall.admin.service.mk.MkDistSellAllocationService;
  15. import com.kmall.admin.service.mk.MkDistService;
  16. import com.kmall.admin.utils.ParamUtils;
  17. import com.kmall.common.utils.*;
  18. import io.swagger.models.auth.In;
  19. import org.apache.shiro.authz.annotation.RequiresPermissions;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.web.bind.annotation.*;
  23. /**
  24. * 分销层级,树状层级,每个子级只有唯一一个父级,一个父级可以多个子级Controller
  25. *
  26. * @author emato
  27. * @email admin@qhdswl.com
  28. * @date 2019-04-09 18:04:46
  29. */
  30. @Controller
  31. @RequestMapping("mkdisthier")
  32. public class MkDistHierController {
  33. @Autowired
  34. private MkDistHierService mkDistHierService;
  35. @Autowired
  36. private MkDistService mkDistService;
  37. @Autowired
  38. private MkDistSellAllocationService mkDistSellAllocationService;
  39. /**
  40. * 查看列表
  41. */
  42. @RequestMapping("/list")
  43. @RequiresPermissions("mkdisthier:list")
  44. @ResponseBody
  45. public R list(@RequestParam Map<String, Object> params) {
  46. ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
  47. String distHierName = (String) params.get("distHierName");
  48. if(org.apache.commons.lang3.StringUtils.isNotEmpty(distHierName)){
  49. try{
  50. distHierName = new String(distHierName.getBytes("iso-8859-1"),"utf-8");
  51. }catch (Exception e){
  52. e.printStackTrace();
  53. }
  54. params.put("distHierName", distHierName);
  55. }
  56. //查询列表数据
  57. Query query = new Query(params);
  58. List<MkDistHierEntity> mkDistHierList = mkDistHierService.queryList(query);
  59. int total = mkDistHierService.queryTotal(query);
  60. PageUtils pageUtil = new PageUtils(mkDistHierList, total, query.getLimit(), query.getPage());
  61. return R.ok().put("page", pageUtil);
  62. }
  63. /**
  64. * 查看信息
  65. */
  66. @RequestMapping("/info/{distHierId}")
  67. @RequiresPermissions("mkdisthier:info")
  68. @ResponseBody
  69. public R info(@PathVariable("distHierId") Integer distHierId) {
  70. MkDistHierEntity mkDistHier = mkDistHierService.queryObject(distHierId);
  71. return R.ok().put("mkDistHier", mkDistHier);
  72. }
  73. /**
  74. * 保存
  75. */
  76. @RequestMapping("/save")
  77. @RequiresPermissions("mkdisthier:save")
  78. @ResponseBody
  79. public R save(@RequestBody MkDistHierEntity mkDistHier) {
  80. Map<String, Object> valideDate = MapBeanUtil.fromObject(mkDistHier);
  81. ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
  82. builder.put("distChnlId", "分销渠道id");
  83. builder.put("pdistId", "上级分销商id");
  84. builder.put("distId", "分销商id");
  85. builder.put("hierLvl", "层级级别");
  86. builder.put("distHierName", "分销商层级名称");
  87. builder.put("supplierId", "所属供货商");
  88. R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
  89. if (Integer.valueOf(r.get("code").toString()) != 0) {
  90. throw new RRException(r.get("msg").toString());
  91. }
  92. mkDistHierService.save(mkDistHier);
  93. return R.ok();
  94. }
  95. /**
  96. * 修改
  97. */
  98. @RequestMapping("/update")
  99. @RequiresPermissions("mkdisthier:update")
  100. @ResponseBody
  101. public R update(@RequestBody MkDistHierEntity mkDistHier) {
  102. Map<String, Object> valideDate = MapBeanUtil.fromObject(mkDistHier);
  103. ImmutableBiMap.Builder builder = new ImmutableBiMap.Builder();
  104. builder.put("distChnlId", "分销渠道id");
  105. builder.put("pdistId", "上级分销商id");
  106. builder.put("distId", "分销商id");
  107. builder.put("hierLvl", "层级级别");
  108. builder.put("distHierName", "分销商层级名称");
  109. builder.put("supplierId", "所属供货商");
  110. R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
  111. if (Integer.valueOf(r.get("code").toString()) != 0) {
  112. throw new RRException(r.get("msg").toString());
  113. }
  114. mkDistHierService.update(mkDistHier);
  115. return R.ok();
  116. }
  117. /**
  118. * 删除
  119. */
  120. @RequestMapping("/delete")
  121. @RequiresPermissions("mkdisthier:delete")
  122. @ResponseBody
  123. public R delete(@RequestBody Integer[]distHierIds) {
  124. mkDistHierService.deleteBatch(distHierIds);
  125. return R.ok();
  126. }
  127. /**
  128. * 查看所有列表
  129. */
  130. @RequestMapping("/queryAll")
  131. @ResponseBody
  132. public R queryAll(@RequestParam Map<String, Object> params) {
  133. ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
  134. List<MkDistHierEntity> list = mkDistHierService.queryList(params);
  135. return R.ok().put("list", list);
  136. }
  137. @RequestMapping("/queryAllConfig")
  138. @ResponseBody
  139. public R queryAllConfig(@RequestParam Map<String, Object> params) {
  140. Map configMap = mkDistHierService.querySysConfigByKey();
  141. String value = MapUtils.getString("value", configMap);
  142. List<MkDistHierLvlEntity> lvlEntitieyList = new ArrayList<>();
  143. Integer hierLvl = Integer.parseInt(value);
  144. for (int i=0;i < hierLvl;i++){
  145. MkDistHierLvlEntity mkDistHierLvlEntity = new MkDistHierLvlEntity();
  146. mkDistHierLvlEntity.setHierLvl(String.valueOf(i+1));
  147. mkDistHierLvlEntity.setHierKey(String.valueOf(i+1));
  148. lvlEntitieyList.add(mkDistHierLvlEntity);
  149. }
  150. return R.ok().put("lvlEntitieyList", lvlEntitieyList);
  151. }
  152. /**
  153. * 查看树
  154. */
  155. @RequestMapping("/queryAll/tree")
  156. @ResponseBody
  157. public R queryAllByTree(@RequestParam Map<String, Object> params) {
  158. ParamUtils.setQueryPowerByRoleType(params, "storeId", "merchSn", "thirdPartyMerchCode");
  159. String distId = (String) params.get("distId");
  160. List<MkDistHierEntity> treeList = new ArrayList<>();
  161. MkDistHierEntity mkDistHierEntity = mkDistHierService.queryObjectByDistMap(params);
  162. if(mkDistHierEntity != null){
  163. String lvl = mkDistHierEntity.getHierLvl();
  164. Integer hierLvl = Integer.parseInt(lvl);
  165. Map<String, Object> distMap = new HashMap<>();
  166. distMap.put("distId", distId);
  167. List<MkDistHierEntity> list = mkDistHierService.queryListByTree(distMap);
  168. treeList.add(list.get(0));
  169. Integer pdistId = 0;
  170. if(list != null && list.size() > 0){
  171. pdistId = list.get(0).getPdistId();
  172. }
  173. for (int i = 0; i< hierLvl-1; i++){
  174. Map<String, Object> lvlMap = new HashMap<>();
  175. lvlMap.put("pdistId", pdistId);
  176. lvlMap.put("hierLvl", hierLvl-1-i);
  177. List<MkDistHierEntity> lvlList = mkDistHierService.queryListByTree(lvlMap);
  178. treeList.add(lvlList.get(0));
  179. pdistId = lvlList.get(0).getPdistId();
  180. }
  181. }
  182. List<ExpendDistDto> expendDistDtoList = new ArrayList<>();
  183. String goodsId = (String) params.get("goodsId");
  184. String storeId = (String) params.get("storeId");
  185. Map<String, Object> allocationMap = new HashMap<>();
  186. allocationMap.put("goodsId", goodsId);
  187. allocationMap.put("storeId", storeId);
  188. String expendDistLines = "";
  189. List<MkDistSellAllocationEntity> allocationEntityList = mkDistSellAllocationService.queryAllocationByMap(allocationMap);
  190. if(allocationEntityList.size() > 0){
  191. expendDistLines = allocationEntityList.get(0).getExpendDistLines();
  192. }
  193. String[] lines = null;
  194. if(StringUtils.isNotEmpty(expendDistLines)){
  195. lines = expendDistLines.split(",");
  196. }
  197. for (int i=0; i < treeList.size(); i++) {
  198. MkDistHierEntity distHier = treeList.get(i);
  199. ExpendDistDto expendDistDto = new ExpendDistDto();
  200. expendDistDto.setExpendDistId(distHier.getDistId());
  201. MkDistEntity mkDistEntity = mkDistService.queryObject(distHier.getDistId());
  202. expendDistDto.setExpendDistName(mkDistEntity.getDistName());
  203. expendDistDto.setExpendDistLvl(distHier.getHierLvl());
  204. if(treeList.size() == lines.length){
  205. expendDistDto.setExpendDistLine(BigDecimal.valueOf(Double.parseDouble(lines[i])));
  206. }
  207. expendDistDtoList.add(expendDistDto);
  208. }
  209. return R.ok().put("list", expendDistDtoList);
  210. }
  211. @RequestMapping("/queryNextLvlByDistId")
  212. @ResponseBody
  213. public R queryNextLvlByDistId(@RequestParam Map<String, Object> params) {
  214. MkDistHierEntity mkDistHierEntity = mkDistHierService.queryObjectByDistMap(params);
  215. List<MkDistHierLvlEntity> lvlEntitieyList = new ArrayList<>();
  216. if (mkDistHierEntity != null) {
  217. String hierLvl = "";
  218. Integer lvl = Integer.parseInt(mkDistHierEntity.getHierLvl());
  219. hierLvl = String.valueOf(lvl);
  220. MkDistHierLvlEntity lvlEntity = new MkDistHierLvlEntity();
  221. lvlEntity.setHierKey(hierLvl);
  222. lvlEntity.setHierLvl(hierLvl);
  223. lvlEntitieyList.add(lvlEntity);
  224. }
  225. return R.ok().put("lvlEntitieyList", lvlEntitieyList);
  226. }
  227. }