StaffServiceSMOImpl.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. package com.java110.web.smo.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.java110.utils.constant.ServiceConstant;
  4. import com.java110.utils.util.Assert;
  5. import com.java110.utils.util.StringUtil;
  6. import com.java110.core.context.IPageData;
  7. import com.java110.web.core.BaseComponentSMO;
  8. import com.java110.web.smo.IStaffServiceSMO;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.HttpMethod;
  13. import org.springframework.http.HttpStatus;
  14. import org.springframework.http.ResponseEntity;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.web.client.RestTemplate;
  17. /**
  18. * 员工服务类
  19. * Created by Administrator on 2019/4/2.
  20. */
  21. @Service("staffServiceSMOImpl")
  22. public class StaffServiceSMOImpl extends BaseComponentSMO implements IStaffServiceSMO {
  23. private final static Logger logger = LoggerFactory.getLogger(StaffServiceSMOImpl.class);
  24. @Autowired
  25. private RestTemplate restTemplate;
  26. /**
  27. * 添加员工信息
  28. *
  29. * @param pd
  30. * @return
  31. */
  32. @Override
  33. public ResponseEntity<String> saveStaff(IPageData pd) {
  34. logger.debug("保存员工信息入参:{}", pd.toString());
  35. Assert.jsonObjectHaveKey(pd.getReqData(), "username", "请求报文格式错误或未包含用户名信息");
  36. Assert.jsonObjectHaveKey(pd.getReqData(), "email", "请求报文格式错误或未包含邮箱信息");
  37. Assert.jsonObjectHaveKey(pd.getReqData(), "tel", "请求报文格式错误或未包含手机信息");
  38. Assert.jsonObjectHaveKey(pd.getReqData(), "sex", "请求报文格式错误或未包含性别信息");
  39. Assert.jsonObjectHaveKey(pd.getReqData(), "address", "请求报文格式错误或未包含地址信息");
  40. Assert.jsonObjectHaveKey(pd.getReqData(), "orgId", "请求报文格式错误或未包含部门信息");
  41. Assert.jsonObjectHaveKey(pd.getReqData(), "relCd", "请求报文格式错误或未包含员工角色");
  42. ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
  43. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  44. return responseEntity;
  45. }
  46. Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeIdQueryStaffServiceListener", "根据用户ID查询商户ID失败,未包含storeId节点");
  47. String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
  48. String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
  49. JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
  50. reqJson.put("name", reqJson.getString("username"));
  51. reqJson.put("storeId", storeId);
  52. reqJson.put("storeTypeCd", storeTypeCd);
  53. responseEntity = this.callCenterService(restTemplate, pd, reqJson.toJSONString(), ServiceConstant.SERVICE_API_URL + "/api/user.staff.add", HttpMethod.POST);
  54. return responseEntity;
  55. }
  56. /**
  57. * 加载员工数据
  58. *
  59. * @param pd
  60. * @return
  61. */
  62. @Override
  63. public ResponseEntity<String> loadData(IPageData pd) {
  64. Assert.jsonObjectHaveKey(pd.getReqData(), "page", "请求报文中未包含page节点");
  65. Assert.jsonObjectHaveKey(pd.getReqData(), "rows", "请求报文中未包含rows节点");
  66. JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
  67. Assert.isInteger(paramIn.getString("page"), "page不是数字");
  68. Assert.isInteger(paramIn.getString("rows"), "rows不是数字");
  69. int page = Integer.parseInt(paramIn.getString("page"));
  70. int rows = Integer.parseInt(paramIn.getString("rows"));
  71. String staffName = paramIn.getString("staffName");
  72. if (rows > 50) {
  73. return new ResponseEntity<String>("rows 数量不能大于50", HttpStatus.BAD_REQUEST);
  74. }
  75. // page = (page - 1) * rows;
  76. ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
  77. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  78. return responseEntity;
  79. }
  80. Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
  81. String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
  82. //paramIn.put("page", page);
  83. paramIn.put("storeId", storeId);
  84. //if (StringUtil.isEmpty(staffName)) {
  85. responseEntity = this.callCenterService(restTemplate, pd, "",
  86. ServiceConstant.SERVICE_API_URL + "/api/query.staff.infos" + super.mapToUrlParam(paramIn), HttpMethod.GET);
  87. /* } else {
  88. responseEntity = this.callCenterService(restTemplate, pd, "",
  89. ServiceConstant.SERVICE_API_URL + "/api/query.staff.byName?rows=" + rows + "&page=" + page + "&storeId=" + storeId + "&name=" + staffName, HttpMethod.GET);
  90. }*/
  91. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  92. return responseEntity;
  93. }
  94. JSONObject resultObjs = JSONObject.parseObject(responseEntity.getBody().toString());
  95. resultObjs.put("row", rows);
  96. resultObjs.put("page", page);
  97. return responseEntity;
  98. }
  99. /**
  100. * 修改员工信息
  101. *
  102. * @param pd
  103. * @return
  104. */
  105. @Override
  106. public ResponseEntity<String> modifyStaff(IPageData pd) {
  107. ResponseEntity<String> responseEntity = null;
  108. //校验 前台数据
  109. modifyStaffValidate(pd);
  110. JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
  111. paramIn.put("name", paramIn.getString("username"));
  112. //修改用户信息
  113. responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
  114. ServiceConstant.SERVICE_API_URL + "/api/user.staff.modify", HttpMethod.POST);
  115. return responseEntity;
  116. }
  117. /**
  118. * 删除工号
  119. *
  120. * @param pd
  121. * @return
  122. */
  123. @Override
  124. public ResponseEntity<String> delete(IPageData pd) {
  125. ResponseEntity<String> responseEntity = null;
  126. Assert.jsonObjectHaveKey(pd.getReqData(), "userId", "请求报文格式错误或未包含用户ID信息");
  127. Assert.jsonObjectHaveKey(pd.getReqData(), "storeId", "请求报文格式错误或未包含商户ID信息");
  128. JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
  129. JSONObject newParam = new JSONObject();
  130. newParam.put("userId", paramIn.getString("userId"));
  131. newParam.put("storeId", paramIn.getString("storeId"));
  132. //修改用户信息
  133. responseEntity = this.callCenterService(restTemplate, pd, newParam.toJSONString(),
  134. ServiceConstant.SERVICE_API_URL + "/api/user.staff.delete", HttpMethod.POST);
  135. return responseEntity;
  136. }
  137. /**
  138. * 查询 员工没有绑定的权限组
  139. *
  140. * @param pd
  141. * @return
  142. */
  143. @Override
  144. public ResponseEntity<String> listNoAddPrivilegeGroup(IPageData pd) {
  145. ResponseEntity<String> responseEntity = null;
  146. Assert.jsonObjectHaveKey(pd.getReqData(), "userId", "请求报文格式错误或未包含用户ID信息");
  147. JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
  148. responseEntity = super.getStoreInfo(pd, restTemplate);
  149. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  150. return responseEntity;
  151. }
  152. Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
  153. String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
  154. String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
  155. //修改用户信息
  156. responseEntity = this.callCenterService(restTemplate, pd, "",
  157. ServiceConstant.SERVICE_API_URL + "/api/query.privilegeGroup.noAddPrivilegeGroup?userId="
  158. + _paramObj.getString("userId") + "&storeId=" + storeId + "&storeTypeCd=" + storeTypeCd,
  159. HttpMethod.GET);
  160. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  161. return responseEntity;
  162. }
  163. JSONObject outDataObj = JSONObject.parseObject(responseEntity.getBody());
  164. return new ResponseEntity<String>(outDataObj.getJSONArray("privilgeGroups").toJSONString(), HttpStatus.OK);
  165. }
  166. /**
  167. * 查询 员工没有绑定的权限
  168. *
  169. * @param pd
  170. * @return
  171. */
  172. @Override
  173. public ResponseEntity<String> listNoAddPrivilege(IPageData pd) {
  174. ResponseEntity<String> responseEntity = null;
  175. Assert.jsonObjectHaveKey(pd.getReqData(), "userId", "请求报文格式错误或未包含用户ID信息");
  176. JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
  177. responseEntity = super.getStoreInfo(pd, restTemplate);
  178. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  179. return responseEntity;
  180. }
  181. Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
  182. String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
  183. String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
  184. //修改用户信息
  185. responseEntity = this.callCenterService(restTemplate, pd, "",
  186. ServiceConstant.SERVICE_API_URL + "/api/query.privilege.noAddPrivilege?userId="
  187. + _paramObj.getString("userId") + "&storeId=" + storeId + "&storeTypeCd=" + storeTypeCd,
  188. HttpMethod.GET);
  189. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  190. return responseEntity;
  191. }
  192. JSONObject outDataObj = JSONObject.parseObject(responseEntity.getBody());
  193. return new ResponseEntity<String>(outDataObj.getJSONArray("privilges").toJSONString(), HttpStatus.OK);
  194. }
  195. /**
  196. * 添加权限 或权限组
  197. *
  198. * @param pd
  199. * @return
  200. */
  201. @Override
  202. public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(IPageData pd) {
  203. ResponseEntity<String> responseEntity = null;
  204. Assert.jsonObjectHaveKey(pd.getReqData(), "userId", "请求报文格式错误或未包含用户ID信息");
  205. Assert.jsonObjectHaveKey(pd.getReqData(), "pId", "请求报文格式错误或未包含权限ID信息");
  206. Assert.jsonObjectHaveKey(pd.getReqData(), "pFlag", "请求报文格式错误");
  207. JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
  208. responseEntity = super.getStoreInfo(pd, restTemplate);
  209. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  210. return responseEntity;
  211. }
  212. Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
  213. String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
  214. String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
  215. _paramObj.put("storeId", storeId);
  216. _paramObj.put("storeTypeCd", storeTypeCd);
  217. //修改用户信息
  218. responseEntity = this.callCenterService(restTemplate, pd, _paramObj.toJSONString(),
  219. ServiceConstant.SERVICE_API_URL + "/api/add.privilege.userPrivilege",
  220. HttpMethod.POST);
  221. return responseEntity;
  222. }
  223. @Override
  224. public ResponseEntity<String> deleteStaffPrivilege(IPageData pd) {
  225. ResponseEntity<String> responseEntity = null;
  226. Assert.jsonObjectHaveKey(pd.getReqData(), "userId", "请求报文格式错误或未包含用户ID信息");
  227. Assert.jsonObjectHaveKey(pd.getReqData(), "pId", "请求报文格式错误或未包含权限ID信息");
  228. Assert.jsonObjectHaveKey(pd.getReqData(), "pFlag", "请求报文格式错误");
  229. JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
  230. responseEntity = super.getStoreInfo(pd, restTemplate);
  231. if (responseEntity.getStatusCode() != HttpStatus.OK) {
  232. return responseEntity;
  233. }
  234. Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
  235. String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
  236. String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
  237. _paramObj.put("storeId", storeId);
  238. _paramObj.put("storeTypeCd", storeTypeCd);
  239. //修改用户信息
  240. responseEntity = this.callCenterService(restTemplate, pd, _paramObj.toJSONString(),
  241. ServiceConstant.SERVICE_API_URL + "/api/delete.privilege.userPrivilege",
  242. HttpMethod.POST);
  243. return responseEntity;
  244. }
  245. /**
  246. * 修改员工 数据校验
  247. *
  248. * @param pd
  249. */
  250. private void modifyStaffValidate(IPageData pd) {
  251. Assert.jsonObjectHaveKey(pd.getReqData(), "userId", "请求报文格式错误或未包含用户ID信息");
  252. Assert.jsonObjectHaveKey(pd.getReqData(), "username", "请求报文格式错误或未包含用户名信息");
  253. Assert.jsonObjectHaveKey(pd.getReqData(), "email", "请求报文格式错误或未包含邮箱信息");
  254. Assert.jsonObjectHaveKey(pd.getReqData(), "tel", "请求报文格式错误或未包含手机信息");
  255. Assert.jsonObjectHaveKey(pd.getReqData(), "sex", "请求报文格式错误或未包含性别信息");
  256. Assert.jsonObjectHaveKey(pd.getReqData(), "address", "请求报文格式错误或未包含地址信息");
  257. }
  258. public RestTemplate getRestTemplate() {
  259. return restTemplate;
  260. }
  261. public void setRestTemplate(RestTemplate restTemplate) {
  262. this.restTemplate = restTemplate;
  263. }
  264. }