UserServiceImpl.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. package com.goafanti.user.service.impl;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.annotation.Resource;
  7. import org.springframework.beans.BeanUtils;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.cache.annotation.Cacheable;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import com.goafanti.app.bo.UserBasicInfo;
  14. import com.goafanti.common.constant.AFTConstants;
  15. import com.goafanti.common.dao.JtCollectSearchMapper;
  16. import com.goafanti.common.dao.OrganizationIdentityMapper;
  17. import com.goafanti.common.dao.UserIdentityMapper;
  18. import com.goafanti.common.dao.UserMapper;
  19. import com.goafanti.common.enums.VoucherSourceType;
  20. import com.goafanti.common.model.JtCollectSearch;
  21. import com.goafanti.common.model.JtVoucherDetail;
  22. import com.goafanti.common.model.User;
  23. import com.goafanti.common.utils.InvitationCodeUtils;
  24. import com.goafanti.common.utils.StringUtils;
  25. import com.goafanti.core.mybatis.BaseMybatisDao;
  26. import com.goafanti.core.mybatis.JDBCIdGenerator;
  27. import com.goafanti.core.mybatis.page.Pagination;
  28. import com.goafanti.core.shiro.token.TokenManager;
  29. import com.goafanti.user.bo.OrgUnitNames;
  30. import com.goafanti.user.bo.UserBaseBo;
  31. import com.goafanti.user.bo.UserDownLoadBo;
  32. import com.goafanti.user.bo.UserNames;
  33. import com.goafanti.user.bo.UserPageHomeBo;
  34. import com.goafanti.user.bo.UserPartnerDetailBo;
  35. import com.goafanti.user.service.UserService;
  36. import com.goafanti.voucher.service.VoucherDetailService;
  37. import com.goafanti.voucher.service.VoucherService;
  38. @Service
  39. public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserService {
  40. @Autowired
  41. private UserMapper userMapper;
  42. @Autowired
  43. private OrganizationIdentityMapper organizationIdentityMapper;
  44. @Autowired
  45. private UserIdentityMapper userIdentityMapper;
  46. @Autowired
  47. private JtCollectSearchMapper jtCollectSearchMapper;
  48. @Autowired
  49. private VoucherService voucherService;
  50. @Autowired
  51. private VoucherDetailService voucherDetailService;
  52. @Resource
  53. private JDBCIdGenerator jDBCIdGenerator;
  54. @Value(value="${collect_flag}")
  55. private boolean collectFlag;
  56. @Override
  57. @Transactional
  58. public User insertRegister(User user, String unitName, String userName) {
  59. userMapper.insert(user);
  60. /*if (null != user.getType() && UserType.ORGANIZATION.getCode().equals(user.getType())) {
  61. OrganizationIdentity organizationIdentity = new OrganizationIdentity();
  62. organizationIdentity.setUid(user.getId());
  63. organizationIdentity.setUnitName(StringUtils.isBlank(unitName) ? "" : unitName);
  64. organizationIdentity.setId(UUID.randomUUID().toString());
  65. organizationIdentity.setIdentityType(0);
  66. organizationIdentity.setAuditStatus(0);
  67. organizationIdentity.setProcess(0);
  68. organizationIdentity.setWrongCount(0);
  69. organizationIdentity.setListed(0);
  70. organizationIdentity.setListedType(0);
  71. organizationIdentityMapper.insert(organizationIdentity);
  72. }
  73. if (null != user.getType() && UserType.PERSONAL.getCode().equals(user.getType())) {
  74. UserIdentity ui = new UserIdentity();
  75. ui.setId(UUID.randomUUID().toString());
  76. ui.setUid(user.getId());
  77. ui.setAuditStatus(0);
  78. ui.setProcess(0);
  79. ui.setWrongCount(0);
  80. ui.setUsername(StringUtils.isBlank(userName) ? "" : userName);
  81. userIdentityMapper.insert(ui);
  82. }*/
  83. return user;
  84. }
  85. @Override
  86. public User selectByMobieAndType(String mobile, Integer type) {
  87. return userMapper.selectByMobieAndType(mobile, type);
  88. }
  89. @Override
  90. public User selectByNameAndType(String username, Integer type){
  91. return userMapper.selectByNameAndType(username,type);
  92. }
  93. @Override
  94. public User selectByPrimaryKey(String id) {
  95. return userMapper.selectByPrimaryKey(id);
  96. }
  97. @Override
  98. public int updateByPrimaryKeySelective(User u) {
  99. JtCollectSearch j=new JtCollectSearch();
  100. j.setRowId(u.getId());
  101. j.setTitle(u.getNickname());
  102. if(collectFlag && null != u.getNickname())jtCollectSearchMapper.updateByRowIdSelective(j);//企业暂时不需要修改全局搜索表
  103. return userMapper.updateByPrimaryKeySelective(u);
  104. }
  105. @Override
  106. public User insert(User user) {
  107. userMapper.insert(user);
  108. return user;
  109. }
  110. @Override
  111. public UserPageHomeBo selectUserPageHomeBoByUserId(String uid) {
  112. UserBaseBo baseBo = userMapper.selectUserBaseByUserId(uid);
  113. UserPageHomeBo homeBo = new UserPageHomeBo();
  114. /*homeBo.setPatentNum(patentInfoMapper.findPatentInfoNumByUid(uid));
  115. homeBo.setCopyrightNum(copyrightInfoMapper.findCopyrightInfoNumByUid(uid));
  116. homeBo.setTechProjectNum(techProjectMapper.findTechProjectNumByUid(uid));
  117. homeBo.setIntellectualPropertyNum(orgIntellectualPropertyMapper.findIntellectualPropertyNum(uid));*/
  118. BeanUtils.copyProperties(baseBo, homeBo);
  119. return homeBo;
  120. }
  121. @Override
  122. public UserDownLoadBo selectUserDownLoadBoByUserId(String id) {
  123. return userMapper.selectUserDownLoadBoByUserId(id);
  124. }
  125. @Override
  126. public List<OrgUnitNames> selectDemandUnitNames() {
  127. String aid = TokenManager.getAdminId();
  128. if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
  129. return organizationIdentityMapper.selectManagerUnitNames(aid);
  130. } else {
  131. if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
  132. aid = null;
  133. }
  134. return organizationIdentityMapper.selectAllOrgIndentity(aid);
  135. }
  136. }
  137. @Override
  138. public List<UserNames> selectDemandUserNames() {
  139. String aid = TokenManager.getAdminId();
  140. if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
  141. return userIdentityMapper.selectManagerUserNames(aid);
  142. } else {
  143. if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
  144. aid = null;
  145. }
  146. return userIdentityMapper.selectAllUserNames(aid);
  147. }
  148. }
  149. @Override
  150. public Map<String, String> selectAchievementUserOwner(String name) {
  151. String aid = TokenManager.getAdminId();
  152. if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
  153. return disposeAchievementUserOwner(userIdentityMapper.selectManagerAchievementUserOwner(aid, name));
  154. } else {
  155. if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.TECHBROKER)
  156. || TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
  157. aid = null;
  158. }
  159. return disposeAchievementUserOwner(userIdentityMapper.selectAchievementUserOwner(aid, name));
  160. }
  161. }
  162. public List<OrgUnitNames> selectAchievementOrgOwner(String name) {
  163. String aid = TokenManager.getAdminId();
  164. if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
  165. return organizationIdentityMapper.selectManagerAchievementOrgOwner(aid, name);
  166. } else {
  167. if (TokenManager.hasRole(AFTConstants.SUPERADMIN) || TokenManager.hasRole(AFTConstants.TECHBROKER)
  168. || TokenManager.hasRole(AFTConstants.AUDITORADMIN)) {
  169. aid = null;
  170. }
  171. return organizationIdentityMapper.selectAchievementOrgOwner(aid, name);
  172. }
  173. }
  174. private Map<String, String> disposeAchievementUserOwner(List<UserNames> list) {
  175. Map<String, String> map = new HashMap<>();
  176. if (null != list && list.size() > 0) {
  177. for (UserNames u : list) {
  178. map.put(u.getUid(), u.getUsername() + " " + u.getMobile());
  179. }
  180. }
  181. return map;
  182. }
  183. @Override
  184. public String findUserNameByNameAndMobile(String name, String mobile) {
  185. return userMapper.findUserByNameAndMobile(name, mobile);
  186. }
  187. @Override
  188. public String findOrgNameByNameAndMobile(String name, String mobile) {
  189. return userMapper.findOrgByNameAndMobile(name, mobile);
  190. }
  191. @Override
  192. @Cacheable(value = "UserNumberCache", key = "'UserNumberCache:UID:'+#userId")
  193. public String selectNumberByPrimaryKey(String userId) {
  194. return String.valueOf(userMapper.selectNumberByPrimaryKey(userId));
  195. }
  196. @Override
  197. public UserBasicInfo selectBaseInfo() {
  198. if(TokenManager.getToken() instanceof User)return userMapper.selectBaseInfo(TokenManager.getUserId());
  199. return null;
  200. }
  201. @Override
  202. public List<User> selectUserByRoleName(String roleName){
  203. return userMapper.selectUserByRoleName(roleName);
  204. }
  205. @Override
  206. public User selectByNumber(String easemobName) {
  207. return userMapper.selectByNumber(easemobName);
  208. }
  209. @Override
  210. public UserBaseBo selectUserBase(String userId) {
  211. return userMapper.selectUserBaseByUserId(userId);
  212. }
  213. @Override
  214. public UserPartnerDetailBo findUserPartnerDetail(String uid) {
  215. return userMapper.findUserPartnerDetail(uid);
  216. }
  217. @Override
  218. public List<UserPartnerDetailBo> findUserPartner() {
  219. return userMapper.findUserPartner();
  220. }
  221. @Override
  222. public Integer selectByMobieAndTypeCount(String mobile ) {
  223. return userMapper.selectByMobieAndTypeCount(mobile);
  224. }
  225. @SuppressWarnings("unchecked")
  226. @Override
  227. public Pagination<User> getUserInfo(User user, Integer pageNo, Integer pageSize) {
  228. Map<String,Object> params = new HashMap<String, Object>();
  229. params.put("user", user);
  230. return (Pagination<User>) findPage("getUserInfoList", "getUserInfoCount", params, pageNo, pageSize);
  231. }
  232. @Override
  233. public int getCountByMobile(String id,String mobile,Integer type) {
  234. return userMapper.getCountByMobile(id,mobile,type);
  235. }
  236. @Override
  237. public String updateGetInvitationCode(String uid) {
  238. String str=userMapper.getInvitationCode(uid);
  239. if (str==null) {
  240. str=InvitationCodeUtils.toSerialCode(new Date().getTime());
  241. User u=new User();
  242. u.setId(uid);
  243. u.setToInviteCode(str);
  244. userMapper.updateByPrimaryKeySelective(u);
  245. }
  246. return str;
  247. }
  248. @Override
  249. public void saveVoucher(User us) {
  250. if (StringUtils.isNotBlank(us.getBeInviteCode())) {
  251. List<String> ids=voucherService.getSourceVoucher(VoucherSourceType.BYQGR.getCode());
  252. for (String s : ids) {
  253. JtVoucherDetail j=new JtVoucherDetail();
  254. j.setId(jDBCIdGenerator.generateId().toString());
  255. j.setReceiveTime(new Date());
  256. j.setVoucherId(s);
  257. j.setUseUid(us.getId());
  258. j.setStatus(0);
  259. voucherDetailService.saveVoucherDetail(j);
  260. }
  261. User toUser=userMapper.getToInviteCode(us.getBeInviteCode());
  262. List<String> ids2=voucherService.getSourceVoucher(VoucherSourceType.YQGR.getCode());
  263. for (String string : ids2) {
  264. JtVoucherDetail j=new JtVoucherDetail();
  265. j.setId(jDBCIdGenerator.generateId().toString());
  266. j.setReceiveTime(new Date());
  267. j.setVoucherId(string);
  268. j.setUseUid(toUser.getId());
  269. j.setStatus(0);
  270. voucherDetailService.saveVoucherDetail(j);
  271. }
  272. }
  273. }
  274. }