KuaishouItemCollectSamplesServiceImpl.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. package com.ruixuan.isc.service.impl;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.google.gson.Gson;
  5. import com.kuaidi100.sdk.api.Subscribe;
  6. import com.kuaidi100.sdk.contant.ApiInfoConstant;
  7. import com.kuaidi100.sdk.contant.CompanyConstant;
  8. import com.kuaidi100.sdk.core.IBaseClient;
  9. import com.kuaidi100.sdk.pojo.HttpResult;
  10. import com.kuaidi100.sdk.request.SubscribeParam;
  11. import com.kuaidi100.sdk.request.SubscribeParameters;
  12. import com.kuaidi100.sdk.request.SubscribeReq;
  13. import com.ruixuan.common.utils.Check;
  14. import com.ruixuan.common.utils.DateUtils;
  15. import com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress;
  16. import com.ruixuan.isc.entity.KuaishouItemCollectSampleLog;
  17. import com.ruixuan.isc.entity.KuaishouItemCollectSamples;
  18. import com.ruixuan.isc.mapper.KuaishouItemCollectSamplesMapper;
  19. import com.ruixuan.isc.service.IKuaishouItemCollectSamplesService;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22. import javax.security.auth.callback.CallbackHandler;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.List;
  26. import java.util.Map;
  27. /**
  28. * 【请填写功能名称】Service业务层处理
  29. *
  30. * @author ruoyi
  31. * @date 2023-02-08
  32. */
  33. @Service
  34. public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemCollectSamplesService {
  35. @Autowired
  36. private KuaishouItemCollectSamplesMapper kuaishouItemCollectSamplesMapper;
  37. /**
  38. * 查询【请填写功能名称】
  39. *
  40. * @param id 【请填写功能名称】主键
  41. * @return 【请填写功能名称】
  42. */
  43. @Override
  44. public KuaishouItemCollectSamples selectKuaishouItemCollectSamplesById(Long id) {
  45. return kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesById(id);
  46. }
  47. /**
  48. * 查询【请填写功能名称】列表
  49. *
  50. * @param requestMap 【请填写功能名称】
  51. * @return 【请填写功能名称】
  52. */
  53. @Override
  54. public List<KuaishouItemCollectSamples> selectKuaishouItemCollectSamplesList(Map<String, Object> requestMap) {
  55. return kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesList(requestMap);
  56. }
  57. /**
  58. * 新增【请填写功能名称】
  59. *
  60. * @param kuaishouItemCollectSamples 【请填写功能名称】
  61. * @return 结果
  62. */
  63. @Override
  64. public int insertKuaishouItemCollectSamples(KuaishouItemCollectSamples kuaishouItemCollectSamples) {
  65. kuaishouItemCollectSamples.setCreateTime(DateUtils.getNowDate());
  66. return kuaishouItemCollectSamplesMapper.insertKuaishouItemCollectSamples(kuaishouItemCollectSamples);
  67. }
  68. /**
  69. * 修改【请填写功能名称】
  70. *
  71. * @param kuaishouItemCollectSamples 【请填写功能名称】
  72. * @return 结果
  73. */
  74. @Override
  75. public int updateKuaishouItemCollectSamples(KuaishouItemCollectSamples kuaishouItemCollectSamples) {
  76. kuaishouItemCollectSamples.setUpdateTime(DateUtils.getNowDate());
  77. return kuaishouItemCollectSamplesMapper.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples);
  78. }
  79. /**
  80. * 批量删除【请填写功能名称】
  81. *
  82. * @param ids 需要删除的【请填写功能名称】主键
  83. * @return 结果
  84. */
  85. @Override
  86. public int deleteKuaishouItemCollectSamplesByIds(Long[] ids) {
  87. return kuaishouItemCollectSamplesMapper.deleteKuaishouItemCollectSamplesByIds(ids);
  88. }
  89. /**
  90. * 删除【请填写功能名称】信息
  91. *
  92. * @param id 【请填写功能名称】主键
  93. * @return 结果
  94. */
  95. @Override
  96. public int deleteKuaishouItemCollectSamplesById(Long id) {
  97. return kuaishouItemCollectSamplesMapper.deleteKuaishouItemCollectSamplesById(id);
  98. }
  99. @Override
  100. public JSONObject preview(Long userId, String nickName, JSONArray itemIds, JSONArray promoterIds) {
  101. JSONObject previewJson = new JSONObject();
  102. List<JSONObject> itemList = kuaishouItemCollectSamplesMapper.getItemList(itemIds);
  103. Map<Long, JSONObject> itemMap = new HashMap<>();
  104. for (int i = 0; i < itemList.size(); i++) {
  105. JSONObject itemJson = itemList.get(i);
  106. itemMap.put(itemJson.getLong("itemId"), itemJson);
  107. }
  108. Map<Long, JSONObject> promoterMap = new HashMap<>();
  109. List<JSONObject> promoterList = kuaishouItemCollectSamplesMapper.promoterList(promoterIds);
  110. for (int i = 0; i < promoterList.size(); i++) {
  111. JSONObject promoterJson = promoterList.get(i);
  112. promoterMap.put(promoterJson.getLong("promoterId"), promoterJson);
  113. }
  114. Integer sampleReceivedCount = 0;
  115. List<JSONObject> samples = new ArrayList<>();
  116. for (int i = 0; i < itemIds.size(); i++) {
  117. Long itemId = itemIds.getLong(i);
  118. JSONObject itemJson = itemMap.get(itemId);
  119. for (int j = 0; j < promoterIds.size(); j++) {
  120. Long promoterId = promoterIds.getLong(j);
  121. Integer count = kuaishouItemCollectSamplesMapper.check(itemId, promoterId);
  122. if (count > 0) {
  123. sampleReceivedCount++;
  124. continue;
  125. }
  126. JSONObject sampleJson = new JSONObject();
  127. sampleJson.put("itemId", itemJson.getLong("itemId"));
  128. sampleJson.put("itemTitle", itemJson.getString("itemTitle"));
  129. sampleJson.put("itemPrice", itemJson.getLong("itemPrice"));
  130. sampleJson.put("itemImgUrl", itemJson.getString("itemImgUrl"));
  131. sampleJson.put("commissionRate", itemJson.getLong("commissionRate"));
  132. sampleJson.put("regimentalPromotion", itemJson.getLong("regimentalPromotion"));
  133. sampleJson.put("itemCreateId", itemJson.getLong("userId"));
  134. sampleJson.put("itemCreateName", itemJson.getString("userName"));
  135. sampleJson.put("collectSampleId", userId);
  136. sampleJson.put("collectSampleName", nickName);
  137. JSONObject promoterJson = promoterMap.get(promoterId);
  138. sampleJson.put("promoterId", promoterJson.getLong("promoterId"));
  139. sampleJson.put("promoterNickName", promoterJson.getString("promoterNickName"));
  140. sampleJson.put("promoterPhone", promoterJson.getString("promoterPhone"));
  141. sampleJson.put("promoterAddress", promoterJson.getString("promoterAddress"));
  142. sampleJson.put("promoterUrl", promoterJson.getString("promoterUrl"));
  143. sampleJson.put("collectSampleStatus", 1);
  144. sampleJson.put("collectSampleDesc", "待招商审核");
  145. samples.add(sampleJson);
  146. }
  147. previewJson.put("sampleReceivedCount", sampleReceivedCount);
  148. previewJson.put("samples", samples);
  149. }
  150. return previewJson;
  151. }
  152. @Override
  153. public void batchAdd(JSONArray temCollectSamples) {
  154. List<KuaishouItemCollectSamples> adds = new ArrayList<>();
  155. for (int i = 0; i < temCollectSamples.size(); i++) {
  156. JSONObject sampleJson = temCollectSamples.getJSONObject(i);
  157. KuaishouItemCollectSamples sample = new KuaishouItemCollectSamples();
  158. sample.setItemId(sampleJson.getLong("itemId"));
  159. sample.setItemTitle(sampleJson.getString("itemTitle"));
  160. sample.setItemPrice(sampleJson.getLong("itemPrice"));
  161. sample.setItemImgUrl(sampleJson.getString("itemImgUrl"));
  162. sample.setItemDesc(sampleJson.getString("itemDesc"));
  163. sample.setCommissionRate(sampleJson.getLong("commissionRate"));
  164. sample.setRegimentalPromotion(sampleJson.getLong("regimentalPromotion"));
  165. sample.setSampleCount(sampleJson.getInteger("sampleCount"));
  166. sample.setSampleRequirement(sampleJson.getString("sampleRequirement"));
  167. sample.setItemCreateId(sampleJson.getLong("itemCreateId"));
  168. sample.setItemCreateName(sampleJson.getString("itemCreateName"));
  169. sample.setCollectSampleId(sampleJson.getLong("collectSampleId"));
  170. sample.setCollectSampleName(sampleJson.getString("collectSampleName"));
  171. sample.setPartnerRecommendText(sampleJson.getString("partnerRecommendText"));
  172. sample.setPromoterId(sampleJson.getLong("promoterId"));
  173. sample.setPromoterPhone(sampleJson.getString("promoterPhone"));
  174. sample.setPromoterAddress(sampleJson.getString("promoterAddress"));
  175. sample.setCollectSampleStatus(sampleJson.getInteger("collectSampleStatus"));
  176. sample.setCollectSampleDesc(sampleJson.getString("collectSampleDesc"));
  177. sample.setPromoterNickName(sampleJson.getString("promoterNickName"));
  178. sample.setPromoterUrl(sampleJson.getString("promoterUrl"));
  179. adds.add(sample);
  180. }
  181. if (!Check.isNull(adds)) {
  182. kuaishouItemCollectSamplesMapper.batchAdd(adds);
  183. }
  184. }
  185. @Override
  186. public void subscribe(Long id, String courierNumber, String code) throws Exception {
  187. KuaishouItemCollectSamples samples = kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesById(id);
  188. SubscribeParameters subscribeParameters = new SubscribeParameters();
  189. subscribeParameters.setCallbackurl("http://ruixuan.api.tjyourong.com.cn/itemCollectSamples/callback");
  190. subscribeParameters.setPhone(samples.getPromoterPhone());
  191. SubscribeParam subscribeParam = new SubscribeParam();
  192. subscribeParam.setParameters(subscribeParameters);
  193. subscribeParam.setCompany(code);
  194. subscribeParam.setNumber(courierNumber);
  195. subscribeParam.setKey("BPEQUJxB9244");
  196. SubscribeReq subscribeReq = new SubscribeReq();
  197. subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA);
  198. subscribeReq.setParam(new Gson().toJson(subscribeParam));
  199. IBaseClient subscribe = new Subscribe();
  200. JSONObject jsonObject = JSONObject.parseObject(subscribe.execute(subscribeReq).getBody());
  201. String returnCode = jsonObject.getString("returnCode");
  202. KuaishouItemCollectSamples updateSample = new KuaishouItemCollectSamples();
  203. updateSample.setId(id);
  204. if ("200".equals(returnCode)) {
  205. updateSample.setCollectSampleDesc("快递推送订阅成功");
  206. } else {
  207. updateSample.setCollectSampleStatus(3);
  208. updateSample.setCollectSampleDesc("快递推送订阅失败,失败原因:" + jsonObject.getString("message"));
  209. }
  210. kuaishouItemCollectSamplesMapper.updateKuaishouItemCollectSamples(updateSample);
  211. }
  212. @Override
  213. public void updateByNum(KuaishouItemCollectSamples updateSample) {
  214. kuaishouItemCollectSamplesMapper.updateByNum(updateSample);
  215. }
  216. @Override
  217. public void replaceExpress(KuaishouItemCollectSampleExpress express) {
  218. kuaishouItemCollectSamplesMapper.replaceExpress(express);
  219. }
  220. @Override
  221. public JSONObject getDetail(Long id) {
  222. JSONObject json = new JSONObject();
  223. KuaishouItemCollectSamples sample = kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesById(id);
  224. KuaishouItemCollectSampleLog log = new KuaishouItemCollectSampleLog();
  225. log.setCollectSampleStatus(1);
  226. log.setUserId(sample.getCollectSampleId());
  227. log.setUserName(sample.getCollectSampleName());
  228. log.setSampleId(sample.getId());
  229. log.setCreateTime(sample.getCreateTime());
  230. log.setUpdateTime(sample.getCreateTime());
  231. kuaishouItemCollectSamplesMapper.insertLog(log);
  232. json.put("sample", sample);
  233. if (!Check.isNull(sample.getCourierNumber())) {
  234. KuaishouItemCollectSampleExpress express = kuaishouItemCollectSamplesMapper.getExpress(sample.getCourierNumber());
  235. if (!Check.isNull(express)) {
  236. json.put("express", express);
  237. }
  238. }
  239. List<KuaishouItemCollectSampleLog> logs = kuaishouItemCollectSamplesMapper.getLogList(id);
  240. if (!Check.isNull(logs)) {
  241. json.put("logs", logs);
  242. }
  243. return json;
  244. }
  245. @Override
  246. public Integer getStatusByCourierNumbe(String nu) {
  247. return kuaishouItemCollectSamplesMapper.getStatusByCourierNumbe(nu);
  248. }
  249. @Override
  250. public JSONObject courierNumberInfo(String courierNumber) {
  251. return kuaishouItemCollectSamplesMapper.courierNumberInfo(courierNumber);
  252. }
  253. @Override
  254. public void insertLog(KuaishouItemCollectSampleLog sampleLog) {
  255. kuaishouItemCollectSamplesMapper.insertLog(sampleLog);
  256. }
  257. @Override
  258. public void cleanLogs(Long id, Integer status) {
  259. kuaishouItemCollectSamplesMapper.cleanLogs(id,status);
  260. }
  261. }