package com.uas.sso.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.uas.sso.ResultWrap; import com.uas.sso.common.util.HttpUtil; import com.uas.sso.entity.InvitationRecord; import com.uas.sso.entity.PartnershipRecord; import com.uas.sso.entity.RequestStatus; import com.uas.sso.exception.VisibleError; import com.uas.sso.service.PartnershipService; import com.uas.sso.service.UserspaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 为平台和ERP用户提供公共接口查询当前企业的合作伙伴 * * @author hejq * @time 创建时间:2017年1月17日 */ @RestController @RequestMapping(value = "/api/partners") public class PartnershipManagerController extends BaseController { @Autowired private PartnershipService partnershipService; @Autowired private UserspaceService userSpaceService; /** * 查询发出的申请 * * @param businessCode 申请方营业执照号 * @param statusCode 申请状态 * @param keyword * @param pageNumber * @param pageSize * @return */ @RequestMapping(params = "_operate=getAllRequest") public ModelMap getAllRequest(String businessCode, Integer statusCode, String keyword, @RequestParam(defaultValue = "1") int pageNumber, @RequestParam(defaultValue = "20") int pageSize) { return success(partnershipService.findByBusinessCodeAndStatusCode(businessCode, statusCode, keyword, pageNumber, pageSize)); } // /** // * 过滤掉已存在UU,查询发出的申请(UAS接口) // * // * @param businessCode // * @param statusCode // * @param keyword // * @param pageNumber // * @param pageSize // * @return // */ // @RequestMapping(params = "_operate=getAllRequestFilterByPartnerUUs") // @ResponseBody // public Page getAllRequestFilterByPartnerUUs(String businessCode, Integer statusCode, String keyword, int pageNumber, int pageSize, String partnerUUs) { // List UUs = JSON.parseArray(partnerUUs, Long.class); // if (!CollectionUtils.isEmpty(UUs)) { // 存在需要过滤的UU时 // return partnershipService.findBySpaceUidAndStatusCodeFilterByPartnerUUs(businessCode, statusCode, keyword, UUs, pageNumber, pageSize); // } // return partnershipService.findBySpaceUidAndStatusCode(businessCode, statusCode, keyword, pageNumber, pageSize); // } /** * 从各应用新增一条合作关系 * * @param record * @return */ @RequestMapping(params = "_operate=addPartner", method = RequestMethod.POST) @ResponseBody public ModelMap addPartner(PartnershipRecord record) { try { partnershipService.addPartner(record); return new ModelMap("success", "申请发送成功"); } catch (VisibleError e) { return new ModelMap("error", e.getMessage()); } } /** * b2b因为单据产生新增一条合作关系 * * @param record * @return */ @RequestMapping(params = "_operate=synchronizePartner", method = RequestMethod.POST) @ResponseBody public ModelMap synchronizePartner(PartnershipRecord record) { return partnershipService.synchronizePartner(record); } /** * 拒绝申请 * * @param id * @param reason * @param vendUserTel * @param appId * @return */ @RequestMapping(params = "_operate=rejectRequest") @ResponseBody public ModelMap rejectRequest(Long id, String reason, String vendUserTel, String appId) { return partnershipService.rejectRequest(id, reason, vendUserTel, appId); } /** * 通过申请 * * @param id * @param vendUserTel * @param appId * @return */ @RequestMapping(params = "_operate=acceptRequest") @ResponseBody public ModelMap acceptRequest(Long id, String vendUserTel, String appId) { return partnershipService.acceptRequest(id, vendUserTel, appId); } /** * 通过uu号获取申请状态 * * @param custBusinessCode 申请方营业执照号 * @param vendBusinessCode 被申请方营业执照号 * @return */ @RequestMapping(params = "_operate=getRequestStatus") @ResponseBody public RequestStatus getRequestStatus(String custBusinessCode, String vendBusinessCode) { return partnershipService.getRequestByBusinessCode(custBusinessCode, vendBusinessCode); } /** * 获取收到的待处理的请求的数量 * * @param businessCode * @return */ @RequestMapping(params = "_operate=getRequestTodo") public ModelMap getRequestTodo(String businessCode) { return partnershipService.getRequestTodo(businessCode); } /** * 邀请合作伙伴记录 * * @param jsonStr */ @RequestMapping(params = "_operate=invitation", method = RequestMethod.POST) @ResponseBody public void invite(String jsonStr) { InvitationRecord record = JSONObject.parseObject(jsonStr, InvitationRecord.class); partnershipService.invite(record); } @RequestMapping("/addAll") public ModelMap addPartnership() { String url = "http://10.1.51.50:8080/api/partners"; int pageNumber = 1; int pageSize = 1; com.uas.account.support.Page page = null; do { try { ModelMap data = new ModelMap("_operate", "getAllRequest"); data.put("pageNumber", pageNumber++); data.put("pageSize", pageSize); HttpUtil.ResponseWrap responseWrap = HttpUtil.doGet(url, data); if (responseWrap.isSuccess()) { try { page = JSON.parseObject(responseWrap.getContent(), new TypeReference>() { }); List partnershipRecords = page.getContent(); for (int i = 0; i < partnershipRecords.size(); i++) { try { PartnershipRecord partnershipRecord = partnershipRecords.get(i); partnershipRecord.setVendSpaceUU(userSpaceService.findByBusinessCode(partnershipRecord.getVendBusinessCode()).getSpaceUU()); partnershipRecord.setVendSpaceUU(userSpaceService.findByBusinessCode(partnershipRecord.getCustBusinessCode()).getSpaceUU()); partnershipService.save(partnershipRecord); } catch (Exception e) { e.getStackTrace(); } } } catch (Exception e) { e.getStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } while (page == null || !page.isLast()); return success(); } }