BusinessProjectServiceImpl.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. package com.goafanti.business.service.impl;
  2. import com.goafanti.app.bo.ProjectBo;
  3. import com.goafanti.app.bo.ProjectDetailBo;
  4. import com.goafanti.business.bo.BusinessProjectBo;
  5. import com.goafanti.business.bo.ProjectSizeBo;
  6. import com.goafanti.business.service.BusinessProjectService;
  7. import com.goafanti.common.dao.BusinessCategoryMapper;
  8. import com.goafanti.common.dao.BusinessProjectMapper;
  9. import com.goafanti.common.dao.BusinessProjectModelMapper;
  10. import com.goafanti.common.dao.ProjectInterestMapper;
  11. import com.goafanti.common.model.BusinessCategory;
  12. import com.goafanti.common.model.BusinessProject;
  13. import com.goafanti.common.model.BusinessProjectModel;
  14. import com.goafanti.common.utils.StringUtils;
  15. import com.goafanti.core.mybatis.BaseMybatisDao;
  16. import com.goafanti.core.mybatis.page.Pagination;
  17. import com.goafanti.core.shiro.token.TokenManager;
  18. import com.goafanti.order.enums.ProjectType;
  19. import org.springframework.beans.BeanUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import java.math.BigDecimal;
  23. import java.util.*;
  24. @Service
  25. public class BusinessProjectServiceImpl extends BaseMybatisDao<BusinessProjectMapper> implements BusinessProjectService {
  26. @Autowired
  27. BusinessProjectMapper businessProjectMapper;
  28. @Autowired
  29. BusinessCategoryMapper businessVarietiesMapper;
  30. @Autowired
  31. BusinessProjectModelMapper projectSizeMapper;
  32. @Autowired
  33. ProjectInterestMapper projectInterestMapper;
  34. @Override
  35. public int insert(String bname, String cid, String country, String province, String city, String district,String boutique) {
  36. BusinessProject bp=new BusinessProject();
  37. bp.setId(UUID.randomUUID().toString());
  38. bp.setBname(bname);
  39. bp.setCid(cid);
  40. bp.setCountry(country);
  41. bp.setType(0);
  42. if (1!=Integer.valueOf(country)) {
  43. bp.setProvince(province);
  44. bp.setCity(city);
  45. bp.setDistrict(district);
  46. }
  47. bp.setDeleteSign(0);
  48. //bp.setCreateId("f31c0d1a-05bc-4f5c-b4a8-95f983d24131");
  49. if (StringUtils.isNotBlank(TokenManager.getAdminId())) {
  50. bp.setCreateId(TokenManager.getAdminId());
  51. }
  52. bp.setCreateTime(new Date());
  53. bp.setStatus("0");
  54. bp.setBoutique(Integer.valueOf(boutique));
  55. bp.setFirstPayment(new BigDecimal("0"));
  56. return businessProjectMapper.insert(bp);
  57. }
  58. @SuppressWarnings("unchecked")
  59. @Override
  60. public Pagination<BusinessProjectBo> listProject(String bname, String cid, String country,String province,String city,String district, String activityFlag,
  61. String status,Integer type,Integer restrictStatus, Integer pNo, Integer pSize) {
  62. if (pNo == null || pNo < 0)pNo = 1;
  63. if (pSize == null || pSize < 0 )pSize = 10;
  64. Pagination<BusinessProjectBo> pt=(Pagination<BusinessProjectBo>)findPage("findProjectListByPage", "findProjectListCount",
  65. disposeParams(bname, cid, country, province, city, district, activityFlag,
  66. status,type,restrictStatus),pNo,pSize);
  67. return pt;
  68. }
  69. private Map<String, Object> disposeParams(String bname, String cid, String country,String province,String city,String district, String activityFlag,
  70. String status,Integer type,Integer restrictStatus) {
  71. Map<String, Object> params = new HashMap<>();
  72. if (StringUtils.isNotBlank(bname)) {
  73. params.put("bname", bname);
  74. }
  75. if (StringUtils.isNotBlank(cid)) {
  76. params.put("cid", cid);
  77. }
  78. if (StringUtils.isNotBlank(country)) {
  79. params.put("country", country);
  80. }
  81. if (StringUtils.isNotBlank(province)) {
  82. params.put("province", province);
  83. }
  84. if (StringUtils.isNotBlank(city)) {
  85. params.put("city", city);
  86. }
  87. if (StringUtils.isNotBlank(district)) {
  88. params.put("district", district);
  89. }
  90. if (StringUtils.isNotBlank(activityFlag)) {
  91. params.put("activityFlag", activityFlag);
  92. }
  93. if (StringUtils.isNotBlank(status)) {
  94. params.put("status", status);
  95. }
  96. if (type!=null ) {
  97. params.put("type", type);
  98. }
  99. if (restrictStatus!=null ) {
  100. params.put("restrictStatus", restrictStatus);
  101. }
  102. return params;
  103. }
  104. @Override
  105. public int getBnamecount(String bname) {
  106. return businessProjectMapper.getBnamecount(bname);
  107. }
  108. @Override
  109. public int deleteProject(String id) {
  110. BusinessProject bp=businessProjectMapper.queryById(id);
  111. if (bp.getDeleteSign()==0) {
  112. bp.setDeleteSign(1);
  113. }else {
  114. bp.setDeleteSign(0);
  115. }
  116. return businessProjectMapper.update(bp);
  117. }
  118. @Override
  119. public int updateStopProject(String id) {
  120. BusinessProject bp=businessProjectMapper.queryById(id);
  121. if (Integer.valueOf(bp.getStatus())==0) {
  122. bp.setStatus("1");
  123. }else {
  124. bp.setStatus("0");
  125. }
  126. return businessProjectMapper.update(bp);
  127. }
  128. @Override
  129. public BusinessProjectBo orgProjects(String id) {
  130. BusinessProject bp=businessProjectMapper.queryById(id);
  131. BusinessProjectBo bpo=new BusinessProjectBo();
  132. BeanUtils.copyProperties(bp,bpo);
  133. String cname=getAllCname(bpo.getCid());
  134. String createId=bpo.getCreateId();
  135. bpo.setCreateName(businessProjectMapper.getCreateName(createId));
  136. bpo.setCname(cname);
  137. return bpo;
  138. }
  139. @Override
  140. public ProjectDetailBo orgProject(String id) {
  141. ProjectDetailBo pd=businessProjectMapper.selectAppProjectDetail(id);
  142. int i=projectInterestMapper.checkUidAndDid(id,TokenManager.getUserId());
  143. if (TokenManager.isLogin()&&i>0) {
  144. pd.setInterest("1");
  145. }else {
  146. pd.setInterest("0");
  147. }
  148. pd.setProjectSize(projectSizeMapper.selectPidList(id));
  149. return pd;
  150. }
  151. @Override
  152. public List<Map<String, Object>> getAllCnames(Integer flag) {
  153. if (flag==null)flag=0;
  154. List<Map<String, Object>> list=new ArrayList<Map<String, Object>>();
  155. List<String> listcid=businessVarietiesMapper.getListId();
  156. for (String s : listcid) {
  157. Map<String, Object> map=new HashMap<>();
  158. String cname=getAllCname(s);
  159. map.put("id", s);
  160. map.put("cname", cname);
  161. map.put("typeList",selectProjectAndTypeById(s));
  162. if (flag==1) {
  163. if (StringUtils.isBlank(cname)) {
  164. map.put("cname", "平台超级业务品类");
  165. }
  166. list.add(map);
  167. }else {
  168. if (StringUtils.isNotBlank(cname)) {
  169. list.add(map);
  170. }
  171. }
  172. }
  173. return list;
  174. }
  175. /**
  176. * 递归获取上级来获取全路径
  177. * @param s ID
  178. * @return 路径
  179. */
  180. private String getAllCname(String s) {
  181. String cid=businessVarietiesMapper.getThisCid(s);
  182. String cname=businessVarietiesMapper.getThisCname(cid);
  183. BusinessCategory bv=businessVarietiesMapper.selectByPrimaryKey(s);
  184. String sid="";
  185. if(bv!=null&&null!=bv.getSuperId())sid=bv.getSuperId();
  186. if(null==cid)return "";
  187. if (cid.length()>4) {
  188. if(bv.getSuperId().equals(bv.getId())){
  189. return "";
  190. }
  191. String w=getAllCname(sid)+"-"+cname;
  192. return w;
  193. }else{
  194. return cid.length()>3?cname:"";
  195. }
  196. }
  197. @Override
  198. public int updateProject(BusinessProject s) {
  199. BusinessProject bp=businessProjectMapper.queryById(s.getId());
  200. BeanUtils.copyProperties(s, bp);
  201. return businessProjectMapper.update(bp);
  202. }
  203. @Override
  204. public int addProjectSize(BusinessProjectModel ps) {
  205. ps.setId(UUID.randomUUID().toString());
  206. if (StringUtils.isNotBlank(TokenManager.getAdminId())) {
  207. ps.setCreateId(TokenManager.getAdminId());
  208. }
  209. //ps.setCreateId("f31c0d1a-05bc-4f5c-b4a8-95f983d24131");
  210. ps.setCreateTime(new Date());
  211. ps.setStatus(0);
  212. return projectSizeMapper.insert(ps);
  213. }
  214. @Override
  215. public int updateOrgProjectSize(BusinessProjectModel ps) {
  216. BusinessProjectModel psz=projectSizeMapper.selectByPrimaryKey(ps.getId());
  217. projectSizeConfiguration(ps, psz);
  218. return projectSizeMapper.updateByPrimaryKeySelective(psz);
  219. }
  220. private void projectSizeConfiguration(BusinessProjectModel ps, BusinessProjectModel psz) {
  221. if (StringUtils.isNotBlank(ps.getPid())) {
  222. psz.setId(ps.getPid());
  223. }
  224. if (StringUtils.isNotBlank(ps.getPname())) {
  225. psz.setPname(ps.getPname());
  226. }
  227. if (null!=ps.getPrice()) {
  228. psz.setPrice(ps.getPrice());
  229. }
  230. if (null!=(ps.getOffset())) {
  231. psz.setOffset(ps.getOffset());
  232. }
  233. if (null!=(ps.getActivityFlag())) {
  234. psz.setActivityFlag(ps.getActivityFlag());
  235. }
  236. if (null!=(ps.getMemberPrice())) {
  237. psz.setMemberPrice(ps.getMemberPrice());
  238. }
  239. if (null!=(ps.getActivityPrice())) {
  240. psz.setActivityPrice(ps.getActivityPrice());
  241. }
  242. if (null!=(ps.getStatus())) {
  243. psz.setStatus(ps.getStatus());
  244. }
  245. psz.setUpdateTime(new Date());
  246. }
  247. @SuppressWarnings("unchecked")
  248. @Override
  249. public Pagination<ProjectSizeBo> listProjectSize(String pid,Integer pNo,Integer pSize) {
  250. if (pNo == null || pNo < 0) {
  251. pNo = 1;
  252. }
  253. if (pSize == null || pSize < 0 || pSize > 10) {
  254. pSize = 10;
  255. }
  256. Map<String, Object>map=new HashMap<>();
  257. map.put("pid", pid);
  258. Pagination<ProjectSizeBo> pt=(Pagination<ProjectSizeBo>)findPage("findProjectSizeListByPage", "findProjectSizeListCount",
  259. map,pNo,pSize);
  260. return pt;
  261. }
  262. @Override
  263. public ProjectSizeBo getProjectSize(String id) {
  264. return projectSizeMapper.selectByBusinessId(id);
  265. }
  266. @Override
  267. public int deleteProjectSize(String id) {
  268. return projectSizeMapper.deleteByPrimaryKey(id);
  269. }
  270. @Override
  271. public int updateSotpProjectSize(String id) {
  272. BusinessProjectModel ps=projectSizeMapper.selectByPrimaryKey(id);
  273. int i=ps.getStatus();
  274. if (i==0) {
  275. ps.setStatus(1);
  276. }else {
  277. ps.setStatus(0);
  278. }
  279. return projectSizeMapper.updateByPrimaryKey(ps);
  280. }
  281. @Override
  282. public boolean WhetherRepeat(BusinessProjectModel ps) {
  283. List<ProjectSizeBo> list=projectSizeMapper.getgetPnamecount(ps.getPname());
  284. for (ProjectSizeBo p : list) {
  285. if (p.getPid().equals(ps.getPid())) {
  286. return true;
  287. }
  288. }
  289. return false;
  290. }
  291. @Override
  292. public boolean judgeStatus(BusinessProjectModel ps) {
  293. BusinessProject bp=businessProjectMapper.queryById(ps.getPid());
  294. if (Integer.valueOf(bp.getStatus())==1) {
  295. return true;
  296. }else {
  297. return false;
  298. }
  299. }
  300. @Override
  301. public boolean judgeBeing(BusinessProject s) {
  302. BusinessProject bp=businessProjectMapper.queryById(s.getId());
  303. BusinessProject bp1=businessProjectMapper.selectByPrimaryBname(s.getBname());
  304. if (null==bp||null==bp1||bp.getId().equals(bp1.getId())) {
  305. return false;
  306. }else {
  307. return true;
  308. }
  309. }
  310. @SuppressWarnings("unchecked")
  311. @Override
  312. public Pagination<ProjectBo> getBusinessProject(String id,Integer pNo,Integer pSize) {
  313. if (pNo == null || pNo <= 0) {
  314. pNo = 1;
  315. }
  316. if (pSize == null || pSize < 0 || pSize > 10) {
  317. pSize = 10;
  318. }
  319. Map<String, Object> params = new HashMap<>();
  320. if (StringUtils.isNotBlank(id)) {
  321. params.put("id", id);
  322. }
  323. Pagination<ProjectBo> data = (Pagination<ProjectBo>)findPage("getBusinessProject", "getBusinessProjectCount",
  324. params,pNo,pSize);
  325. return data;
  326. }
  327. @SuppressWarnings("unchecked")
  328. @Override
  329. public Pagination<ProjectBo> recommendProjectList(Integer pNo, Integer pSize) {
  330. if (pNo == null || pNo <= 0) {
  331. pNo = 1;
  332. }
  333. if (pSize == null || pSize < 0 || pSize > 10) {
  334. pSize = 10;
  335. }
  336. Map<String, Object> params = new HashMap<>();
  337. return (Pagination<ProjectBo>)findPage("findRecommendProjectListByPage", "findRecommendProjectListCount",
  338. params,pNo,pSize);
  339. }
  340. @Override
  341. public boolean checkProject(String id) {
  342. if (businessProjectMapper.checkProject(id)>0) {
  343. return true;
  344. }
  345. return false;
  346. }
  347. @SuppressWarnings("unchecked")
  348. @Override
  349. public Pagination<ProjectBo> portalRecommendList(Integer pNo, Integer pSize) {
  350. Map<String, Object> params = new HashMap<>();
  351. return (Pagination<ProjectBo>)findPage("findRecommendProjectListByPage", "findRecommendProjectListCount",
  352. params,pNo,pSize);
  353. }
  354. @SuppressWarnings("unchecked")
  355. @Override
  356. public Pagination<ProjectBo> portalBusinessProject(String id, Integer pNo, Integer pSize) {
  357. Map<String, Object> params = new HashMap<>();
  358. if (StringUtils.isNotBlank(id)) {
  359. params.put("id", id);
  360. }
  361. Pagination<ProjectBo> data = (Pagination<ProjectBo>)findPage("getBusinessProject", "getBusinessProjectCount",
  362. params,pNo,pSize);
  363. return data;
  364. }
  365. @Override
  366. public ProjectDetailBo ProjectDetail(String id) {
  367. ProjectDetailBo pd=businessProjectMapper.selectAppProjectDetail(id);
  368. if (StringUtils.isNotBlank(TokenManager.getUserId())&&projectInterestMapper.checkUidAndDid(id,TokenManager.getUserId())>0) {
  369. pd.setInterest("1");
  370. }else {
  371. pd.setInterest("0");
  372. }
  373. pd.setProjectSize(projectSizeMapper.selectPidList(id));
  374. return pd;
  375. }
  376. @Override
  377. public List<BusinessProjectBo> selectBusinessProjectByName(String businessName,String cname) {
  378. return businessProjectMapper.selectBusinessProjectByName(businessName,cname);
  379. }
  380. @Override
  381. public List<BusinessCategory> selectBusinessProjectCatalog() {
  382. return businessProjectMapper.selectBusinessProjectCatalog();
  383. }
  384. public List<Map> selectProjectAndTypeById(String id) {
  385. List<Map> list=businessProjectMapper.selectProjectAndTypeAll();
  386. for (Map map : list) {
  387. if (id.equals(map.get("id"))){
  388. List<Map> typeList=new ArrayList<>();
  389. String groupCount= (String) map.get("groupCount");
  390. if (groupCount!=null){
  391. String[] ss=groupCount.split(",");
  392. Map<String, String> typeBo = new HashMap<>();
  393. typeBo.put("id",null);
  394. typeBo.put("name", "全部");
  395. typeList.add(typeBo);
  396. if (ss.length>0){
  397. for (String s : ss) {
  398. Map<String, String> types = new HashMap<>();
  399. types.put("id",s);
  400. types.put("name", ProjectType.getValueByCode(Integer.valueOf(s)));
  401. typeList.add(types);
  402. }
  403. }
  404. return typeList;
  405. }
  406. }
  407. }
  408. return new ArrayList<>();
  409. }
  410. }