UserArchivesServiceImpl.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. package com.goafanti.customer.service.impl;
  2. import com.goafanti.common.dao.UserArchivesMapper;
  3. import com.goafanti.common.dao.UserLimitCheckMapper;
  4. import com.goafanti.common.dao.UserMapper;
  5. import com.goafanti.common.dao.UserMidMapper;
  6. import com.goafanti.common.model.*;
  7. import com.goafanti.core.mybatis.BaseMybatisDao;
  8. import com.goafanti.core.mybatis.page.Pagination;
  9. import com.goafanti.core.shiro.token.TokenManager;
  10. import com.goafanti.customer.bo.InputSelectUserArchives;
  11. import com.goafanti.customer.bo.UserArchivesDetails;
  12. import com.goafanti.customer.service.CustomerService;
  13. import com.goafanti.customer.service.UserArchivesService;
  14. import org.springframework.beans.BeanUtils;
  15. import org.springframework.stereotype.Service;
  16. import javax.annotation.Resource;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.Map;
  20. import java.util.stream.Collectors;
  21. /**
  22. * 客户档案表(UserArchives)表服务实现类
  23. *
  24. * @author makejava
  25. * @since 2024-07-12 11:52:01
  26. */
  27. @Service("userArchivesService")
  28. public class UserArchivesServiceImpl extends BaseMybatisDao< UserArchivesMapper> implements UserArchivesService {
  29. @Resource
  30. private UserArchivesMapper userArchivesMapper;
  31. @Resource
  32. private CustomerService customerService;
  33. @Resource
  34. private UserMapper userMapper;
  35. @Resource
  36. private UserMidMapper userMidMapper;
  37. @Resource
  38. private UserLimitCheckMapper userLimitCheckMapper;
  39. @Override
  40. public Pagination<UserArchives> list(UserArchives userArchives, Integer pageNo, Integer pageSize) {
  41. Map<String, Object> params = new HashMap<>();
  42. params.put("in",userArchives);
  43. return (Pagination<UserArchives>) findPage("findUserArchivesList",
  44. "findUserArchivesCount", params, pageNo, pageSize);
  45. }
  46. @Override
  47. public UserArchives queryByUid(String id) {
  48. UserArchives userArchives =userArchivesMapper.queryByUid(id);
  49. if (userArchives==null)userArchives =new UserArchives();
  50. return userArchives;
  51. }
  52. @Override
  53. public Object queryByUidAll(String id) {
  54. UserArchivesDetails user = customerService.selectUserByUid(id);
  55. User u = userMapper.selectByPrimaryKey(id);
  56. if (u.getAid().equals(TokenManager.getAdminId())){
  57. user.setMyUser(1);
  58. }else {
  59. user.setMyUser(0);
  60. }
  61. user.setSignBills(u.getSignBills());
  62. UserArchives userArchives = queryByUid(id);
  63. List<OrganizationContactBook> customerContacts = userMapper.findCustomerContacts(id, TokenManager.getAdminId());
  64. if (!customerContacts.isEmpty()){
  65. List<OrganizationContactBook> collect = customerContacts.stream()
  66. .filter(e -> e.getMajor() == 1).collect(Collectors.toList());
  67. for (OrganizationContactBook ob : collect) {
  68. ob.setName("***");
  69. ob.setMobile("***");
  70. }
  71. user.setContactList(collect);
  72. }
  73. BeanUtils.copyProperties(userArchives, user);
  74. return user;
  75. }
  76. @Override
  77. public boolean checkPermission(String id) {
  78. User user = userMapper.selectByPrimaryKey(id);
  79. if (user.getAid().equals(TokenManager.getAdminId())){
  80. return false;
  81. }
  82. UserLimitCheck userLimitCheck = userLimitCheckMapper.selectByUid(id);
  83. //如果没有和大于时间则不能查看
  84. if (userLimitCheck==null||System.currentTimeMillis()>userLimitCheck.getCheckTime().getTime()) {
  85. return true;
  86. }
  87. return false;
  88. }
  89. /**
  90. * 通过ID查询单条数据
  91. *
  92. * @param id 主键
  93. * @return 实例对象
  94. */
  95. @Override
  96. public UserArchives queryById(Integer id) {
  97. return this.userArchivesMapper.queryById(id);
  98. }
  99. /**
  100. * 新增数据
  101. *
  102. * @param userArchives 实例对象
  103. * @return 实例对象
  104. */
  105. @Override
  106. public UserArchives insert(UserArchives userArchives) {
  107. UserArchives query = userArchivesMapper.queryByUid(userArchives.getUid());
  108. if (query != null){
  109. userArchives.setId(query.getId());
  110. return update(userArchives,null);
  111. }else {
  112. if (userArchives.getAppearancePatentCount()!=null||
  113. userArchives.getInventionPatentCount()!=null||
  114. userArchives.getUtilityModelCount() !=null||
  115. userArchives.getSoftwareWorksCount()!=null||
  116. userArchives.getOtherCount()!=null
  117. ){
  118. int count = getCount(userArchives);
  119. userArchives.setPatentCount(count);
  120. }
  121. if(userArchives.getPatentCount()==null)userArchives.setPatentCount(0);
  122. this.userArchivesMapper.insert(userArchives);
  123. }
  124. return userArchives;
  125. }
  126. /**
  127. * 修改数据
  128. *
  129. * @param userArchives 实例对象
  130. * @return 实例对象
  131. */
  132. @Override
  133. public UserArchives update(UserArchives userArchives,Integer channelType) {
  134. if (userArchives.getAppearancePatentCount()!=null||
  135. userArchives.getInventionPatentCount()!=null||
  136. userArchives.getUtilityModelCount() !=null||
  137. userArchives.getSoftwareWorksCount()!=null||
  138. userArchives.getOtherCount()!=null
  139. ){
  140. int count = getCount(userArchives);
  141. userArchives.setPatentCount(count);
  142. }
  143. if (channelType!=null){
  144. String uid=null;
  145. if (userArchives.getUid()==null){
  146. UserArchives useData = this.queryById(userArchives.getId());
  147. uid=useData.getUid();
  148. }else {
  149. uid=userArchives.getUid();
  150. }
  151. userMidMapper.updateByUid(new UserMid(uid,channelType));
  152. }
  153. if(userArchives.getId()==null){
  154. return insert(userArchives);
  155. }else {
  156. this.userArchivesMapper.update(userArchives);
  157. return this.queryById(userArchives.getId());
  158. }
  159. }
  160. /**
  161. * 计算专利总数,必须5个都传,不然会导致计算漏掉
  162. * @param userArchives 用户档案参数
  163. * @return count
  164. */
  165. private int getCount(UserArchives userArchives) {
  166. int count = 0;
  167. if (userArchives.getAppearancePatentCount()!=null){
  168. count+= userArchives.getAppearancePatentCount();
  169. }
  170. if (userArchives.getInventionPatentCount()!=null){
  171. count+= userArchives.getInventionPatentCount();
  172. }
  173. if (userArchives.getUtilityModelCount() !=null){
  174. count+= userArchives.getUtilityModelCount();
  175. }
  176. if (userArchives.getSoftwareWorksCount() !=null){
  177. count+= userArchives.getSoftwareWorksCount();
  178. }
  179. if (userArchives.getOtherCount()!=null){
  180. count+= userArchives.getOtherCount();
  181. }
  182. return count;
  183. }
  184. /**
  185. * 通过主键删除数据
  186. *
  187. * @param id 主键
  188. * @return 是否成功
  189. */
  190. @Override
  191. public boolean deleteById(Integer id) {
  192. return this.userArchivesMapper.deleteById(id) > 0;
  193. }
  194. @Override
  195. public Object selectUserArchives(InputSelectUserArchives in) {
  196. Map<String, Object> params = new HashMap<>();
  197. if (in.getNewChannel() != null)params.put("newChannel", in.getNewChannel());
  198. if (in.getShareType() != null)params.put("shareType", in.getShareType());
  199. if (in.getChannelType() != null){
  200. String[] split = in.getChannelType().split(",");
  201. params.put("channelType", split);
  202. }
  203. if (in.getName() != null)params.put("name", in.getName());
  204. if (in.getAid() != null)params.put("aid", in.getAid());
  205. if (in.getBusinessScope() != null)params.put("businessScope", in.getBusinessScope());
  206. if (in.getIndustry() != null){
  207. String[] split = in.getIndustry().split(",");
  208. params.put("industry", split);
  209. }
  210. return findPage("selectUserArchivesList",
  211. "selectUserArchivesCount", params, in.getPageNo(), in.getPageSize());
  212. }
  213. }