JtBusinessServiceImpl.java 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. package com.goafanti.business.service.impl;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.UUID;
  7. import org.apache.poi.poifs.property.Child;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import com.goafanti.business.bo.JtBusinessCategoryBo;
  11. import com.goafanti.business.bo.JtBusinessCategoryTree;
  12. import com.goafanti.business.service.JtBusinessService;
  13. import com.goafanti.common.dao.JtBusinessCategoryMapper;
  14. import com.goafanti.common.dao.JtBusinessProjectMapper;
  15. import com.goafanti.common.enums.ProjectAuditStatus;
  16. import com.goafanti.common.model.JtBusinessCategory;
  17. import com.goafanti.common.model.JtBusinessProject;
  18. import com.goafanti.common.utils.StringUtils;
  19. import com.goafanti.core.mybatis.BaseMybatisDao;
  20. import com.goafanti.core.mybatis.page.Pagination;
  21. import com.goafanti.core.shiro.token.TokenManager;
  22. import com.goafanti.order.enums.AuditState;
  23. @Service
  24. public class JtBusinessServiceImpl extends BaseMybatisDao<JtBusinessProjectMapper> implements JtBusinessService{
  25. @Autowired
  26. JtBusinessCategoryMapper jtBusinessCategoryMapper;
  27. @Autowired
  28. JtBusinessProjectMapper jtBusinessProjectMapper;
  29. @Override
  30. public JtBusinessCategory getBusinessCategoryByLayerAndName(Integer layer, String name) {
  31. // TODO Auto-generated method stub
  32. return jtBusinessCategoryMapper.getBusinessCategoryByLayerAndName(layer, name);
  33. }
  34. @Override
  35. public List<JtBusinessCategory> getBusinessCategoryBySuperId(String id,Integer size) {
  36. // TODO Auto-generated method stub
  37. return jtBusinessCategoryMapper.getBusinessCategoryBySuperId(id,size);
  38. }
  39. @Override
  40. public List<JtBusinessProject> getBusinessProjectByCategoryId(String id,Integer size,Integer isHot) {
  41. // TODO Auto-generated method stub
  42. return jtBusinessProjectMapper.getBusinessProjectByCategoryId(id,size,isHot);
  43. }
  44. @Override
  45. public JtBusinessProject getBusinessProjectDetail(String id) {
  46. // TODO Auto-generated method stub
  47. return jtBusinessProjectMapper.selectByPrimaryKey(id);
  48. }
  49. @Override
  50. public JtBusinessCategoryTree getCategoryTree(String id) {
  51. // TODO Auto-generated method stub
  52. return jtBusinessCategoryMapper.getCategoryTree(id);
  53. }
  54. public List<JtBusinessCategoryBo>getCategoryBoList(){
  55. return jtBusinessCategoryMapper.getCategoryBoList();
  56. }
  57. @SuppressWarnings("unchecked")
  58. @Override
  59. public Pagination<JtBusinessProject> getProjects(String topId, String secondId, String name, Integer pageSize,
  60. Integer pageNo,Integer privateProject,Integer auditStatus) {
  61. // TODO Auto-generated method stub
  62. if (pageNo == null || pageNo < 0) {
  63. pageNo = 1;
  64. }
  65. if (pageSize == null || pageSize < 0 ) {
  66. pageSize = 10;
  67. }
  68. Map<String, Object> params=disposeParams(topId, secondId, name);
  69. if(auditStatus!=null ) {
  70. params.put("auditStatus", auditStatus);
  71. }
  72. if(privateProject!=null && privateProject ==0)
  73. params.put("ownerId", TokenManager.getUserId());
  74. return (Pagination<JtBusinessProject>)findPage("findJtBusinessProjectByPage","findJtBusinessCountByPage",params,pageNo,pageSize);
  75. }
  76. private Map<String, Object> disposeParams(String topId, String secondId, String name) {
  77. Map<String, Object> params = new HashMap<>();
  78. if (StringUtils.isNotBlank(topId)) {
  79. params.put("topId", topId);
  80. }
  81. if (StringUtils.isNotBlank(secondId)) {
  82. params.put("secondId", secondId);
  83. }
  84. if (StringUtils.isNotBlank(name)) {
  85. params.put("name", name);
  86. }
  87. return params;
  88. }
  89. @Override
  90. public int insertCategory(JtBusinessCategory jtBusinessCategory) {
  91. // TODO Auto-generated method stub
  92. // jtBusinessCategoryMapper.autoIncreaseSort(jtBusinessCategory.getLayer(),jtBusinessCategory.getSort());
  93. if(jtBusinessCategory.getSuperId()!=null && jtBusinessCategory.getLayer().intValue()==1 && jtBusinessCategory.getSuperId().length()>0)return -2;
  94. String number="BC";
  95. if(jtBusinessCategory.getLayer().intValue()==2) {
  96. //2层,先加第一层
  97. //找到当前品类父级品类
  98. JtBusinessCategory sp=jtBusinessCategoryMapper.selectByPrimaryKey(jtBusinessCategory.getSuperId());
  99. if(sp==null || sp.getLayer()!=1) {
  100. //找到的父级品类层数不是1 或者未找到
  101. return -2;
  102. }
  103. //加前层
  104. //父级品类层数为1的情况下 第一层编号为父级sort序号
  105. int size1=sp.getSort();
  106. if(size1>99)return -1;
  107. if(size1<10)number+="0";
  108. number+=size1;
  109. }
  110. //加层
  111. int size2;
  112. //通过父级id获取当前层列表
  113. List<JtBusinessCategory>businessCategories =jtBusinessCategoryMapper.getBusinessCategoryBySuperId(jtBusinessCategory.getSuperId(), null);
  114. //列表为0,当前层编号size2设置为1,大于0 设置为当前最大sort+1
  115. if(businessCategories.size()>0)
  116. size2=businessCategories.get(businessCategories.size()-1).getSort()+1;
  117. else size2=1;
  118. //每层最多99个
  119. if(size2>99)return -1;
  120. //增加0
  121. if(size2<10)number+="0";
  122. //完成编号
  123. number+=size2;
  124. jtBusinessCategory.setNumber(number);
  125. //设置sort序号
  126. jtBusinessCategory.setSort(size2);
  127. jtBusinessCategory.setCreateTime(new Date());
  128. jtBusinessCategory.setId(UUID.randomUUID().toString());
  129. return jtBusinessCategoryMapper.insertSelective(jtBusinessCategory);
  130. }
  131. @Override
  132. public int deleteCategoryById(String id) {
  133. // TODO Auto-generated method stub
  134. //查找品类
  135. JtBusinessCategory sp=jtBusinessCategoryMapper.selectByPrimaryKey(id);
  136. //查找子品类 存在子品类不允许删除
  137. List<JtBusinessCategory> chidren=jtBusinessCategoryMapper.getBusinessCategoryBySuperId(sp.getId(), null);
  138. if(chidren.size()>0) {
  139. return -1;
  140. }
  141. List<JtBusinessProject> childrenProject=jtBusinessProjectMapper.getBusinessProjectByCategoryId(id, 100,null);
  142. if(childrenProject!= null && childrenProject.size()>0) {
  143. return -1;
  144. }
  145. return jtBusinessCategoryMapper.deleteByPrimaryKey(id);
  146. }
  147. @Override
  148. public JtBusinessCategory getCategoryById(String id) {
  149. // TODO Auto-generated method stub
  150. return jtBusinessCategoryMapper.selectByPrimaryKey(id);
  151. }
  152. @Override
  153. public int updateCategory(JtBusinessCategory jtBusinessCategory) {
  154. // TODO Auto-generated method stub
  155. return jtBusinessCategoryMapper.updateByPrimaryKeySelective(jtBusinessCategory);
  156. }
  157. private Map<String, Object> disposeCategoryParams(String name,Integer layer ) {
  158. Map<String, Object> params = new HashMap<>();
  159. if (layer!=null) {
  160. params.put("layer", layer);
  161. }
  162. if (StringUtils.isNotBlank(name)) {
  163. params.put("name", name);
  164. }
  165. return params;
  166. }
  167. @Override
  168. public int insertProject(JtBusinessProject jtBusinessProject) {
  169. // TODO Auto-generated method stub
  170. jtBusinessProject.setCreateTime(new Date());
  171. jtBusinessProject.setId(UUID.randomUUID().toString());
  172. jtBusinessProject.setOwnerId(TokenManager.getUserId());
  173. jtBusinessProject.setAuditStatus(ProjectAuditStatus.CREATE.getCode());
  174. List<JtBusinessProject>projects=jtBusinessProjectMapper.findProjectOrderByNumber();
  175. int cSize = 1;
  176. if(projects!=null && projects.size()>0)
  177. {
  178. String number=projects.get(projects.size()-1).getNumber();
  179. if(number!=null && number.length()==6)
  180. {
  181. String nbString=number.substring(2);
  182. try {
  183. cSize=Integer.parseInt(nbString)+1;}catch (Exception e) {
  184. // TODO: handle exception
  185. return -1;
  186. }
  187. }
  188. else cSize=1;
  189. }
  190. else cSize=1;
  191. String nbString="BP";
  192. String sizeString="000"+cSize;
  193. sizeString=sizeString.substring(sizeString.length()-4);
  194. nbString+=sizeString;
  195. jtBusinessProject.setNumber(nbString);
  196. jtBusinessProjectMapper.insertSelective(jtBusinessProject);
  197. return 1;
  198. }
  199. @Override
  200. public int deleteProjectById(String id) {
  201. // TODO Auto-generated method stub
  202. return jtBusinessProjectMapper.deleteByPrimaryKey(id);
  203. }
  204. @Override
  205. public int updateProject(JtBusinessProject jtBusinessProject) {
  206. // TODO Auto-generated method stub
  207. return jtBusinessProjectMapper.updateByPrimaryKeySelective(jtBusinessProject);
  208. }
  209. @Override
  210. public List<JtBusinessProject> getProjectsLimit(Integer size) {
  211. // TODO Auto-generated method stub
  212. return jtBusinessProjectMapper.findProjectOrderByNumber();
  213. }
  214. @Override
  215. public int deleteByIdAndUid(String id) {
  216. // TODO Auto-generated method stub
  217. if(TokenManager.getUserId()==null)return -1;
  218. return jtBusinessProjectMapper.deleteByIdAndUid(id,TokenManager.getUserId());
  219. }
  220. @SuppressWarnings("unchecked")
  221. @Override
  222. public Pagination<JtBusinessProject> listProjectIInterestedIn(Integer pageNo,Integer pageSize) {
  223. // TODO Auto-generated method stub
  224. if (pageNo == null || pageNo < 0) {
  225. pageNo = 1;
  226. }
  227. if (pageSize == null || pageSize < 0 || pageSize > 10) {
  228. pageSize = 10;
  229. }
  230. Map<String,Object> params=new HashMap<String,Object>();
  231. params.put("uid", TokenManager.getUserId());
  232. return (Pagination<JtBusinessProject>) findPage("findInterestedProjcet", "findInterestedProjcetCount", params, pageNo, pageSize);
  233. }
  234. }