package com.ruixuan.isc.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.kuaidi100.sdk.api.Subscribe; import com.kuaidi100.sdk.contant.ApiInfoConstant; import com.kuaidi100.sdk.contant.CompanyConstant; import com.kuaidi100.sdk.core.IBaseClient; import com.kuaidi100.sdk.pojo.HttpResult; import com.kuaidi100.sdk.request.SubscribeParam; import com.kuaidi100.sdk.request.SubscribeParameters; import com.kuaidi100.sdk.request.SubscribeReq; import com.ruixuan.common.utils.Check; import com.ruixuan.common.utils.DateUtils; import com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress; import com.ruixuan.isc.entity.KuaishouItemCollectSampleLog; import com.ruixuan.isc.entity.KuaishouItemCollectSamples; import com.ruixuan.isc.mapper.KuaishouItemCollectSamplesMapper; import com.ruixuan.isc.service.IKuaishouItemCollectSamplesService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.security.auth.callback.CallbackHandler; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 【请填写功能名称】Service业务层处理 * * @author ruoyi * @date 2023-02-08 */ @Service public class KuaishouItemCollectSamplesServiceImpl implements IKuaishouItemCollectSamplesService { @Autowired private KuaishouItemCollectSamplesMapper kuaishouItemCollectSamplesMapper; /** * 查询【请填写功能名称】 * * @param id 【请填写功能名称】主键 * @return 【请填写功能名称】 */ @Override public KuaishouItemCollectSamples selectKuaishouItemCollectSamplesById(Long id) { return kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesById(id); } /** * 查询【请填写功能名称】列表 * * @param requestMap 【请填写功能名称】 * @return 【请填写功能名称】 */ @Override public List selectKuaishouItemCollectSamplesList(Map requestMap) { return kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesList(requestMap); } /** * 新增【请填写功能名称】 * * @param kuaishouItemCollectSamples 【请填写功能名称】 * @return 结果 */ @Override public int insertKuaishouItemCollectSamples(KuaishouItemCollectSamples kuaishouItemCollectSamples) { kuaishouItemCollectSamples.setCreateTime(DateUtils.getNowDate()); return kuaishouItemCollectSamplesMapper.insertKuaishouItemCollectSamples(kuaishouItemCollectSamples); } /** * 修改【请填写功能名称】 * * @param kuaishouItemCollectSamples 【请填写功能名称】 * @return 结果 */ @Override public int updateKuaishouItemCollectSamples(KuaishouItemCollectSamples kuaishouItemCollectSamples) { kuaishouItemCollectSamples.setUpdateTime(DateUtils.getNowDate()); return kuaishouItemCollectSamplesMapper.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples); } /** * 批量删除【请填写功能名称】 * * @param ids 需要删除的【请填写功能名称】主键 * @return 结果 */ @Override public int deleteKuaishouItemCollectSamplesByIds(Long[] ids) { return kuaishouItemCollectSamplesMapper.deleteKuaishouItemCollectSamplesByIds(ids); } /** * 删除【请填写功能名称】信息 * * @param id 【请填写功能名称】主键 * @return 结果 */ @Override public int deleteKuaishouItemCollectSamplesById(Long id) { return kuaishouItemCollectSamplesMapper.deleteKuaishouItemCollectSamplesById(id); } @Override public JSONObject preview(Long userId, String nickName, JSONArray itemIds, JSONArray promoterIds) { JSONObject previewJson = new JSONObject(); List itemList = kuaishouItemCollectSamplesMapper.getItemList(itemIds); Map itemMap = new HashMap<>(); for (int i = 0; i < itemList.size(); i++) { JSONObject itemJson = itemList.get(i); itemMap.put(itemJson.getLong("itemId"), itemJson); } Map promoterMap = new HashMap<>(); List promoterList = kuaishouItemCollectSamplesMapper.promoterList(promoterIds); for (int i = 0; i < promoterList.size(); i++) { JSONObject promoterJson = promoterList.get(i); promoterMap.put(promoterJson.getLong("promoterId"), promoterJson); } Integer sampleReceivedCount = 0; List samples = new ArrayList<>(); for (int i = 0; i < itemIds.size(); i++) { Long itemId = itemIds.getLong(i); JSONObject itemJson = itemMap.get(itemId); for (int j = 0; j < promoterIds.size(); j++) { Long promoterId = promoterIds.getLong(j); Integer count = kuaishouItemCollectSamplesMapper.check(itemId, promoterId); if (count > 0) { sampleReceivedCount++; continue; } JSONObject sampleJson = new JSONObject(); sampleJson.put("itemId", itemJson.getLong("itemId")); sampleJson.put("itemTitle", itemJson.getString("itemTitle")); sampleJson.put("itemPrice", itemJson.getLong("itemPrice")); sampleJson.put("itemImgUrl", itemJson.getString("itemImgUrl")); sampleJson.put("commissionRate", itemJson.getLong("commissionRate")); sampleJson.put("regimentalPromotion", itemJson.getLong("regimentalPromotion")); sampleJson.put("itemCreateId", itemJson.getLong("userId")); sampleJson.put("itemCreateName", itemJson.getString("userName")); sampleJson.put("collectSampleId", userId); sampleJson.put("collectSampleName", nickName); JSONObject promoterJson = promoterMap.get(promoterId); sampleJson.put("promoterId", promoterJson.getLong("promoterId")); sampleJson.put("promoterNickName", promoterJson.getString("promoterNickName")); sampleJson.put("promoterPhone", promoterJson.getString("promoterPhone")); sampleJson.put("promoterAddress", promoterJson.getString("promoterAddress")); sampleJson.put("promoterUrl", promoterJson.getString("promoterUrl")); sampleJson.put("collectSampleStatus", 1); sampleJson.put("collectSampleDesc", "待招商审核"); samples.add(sampleJson); } previewJson.put("sampleReceivedCount", sampleReceivedCount); previewJson.put("samples", samples); } return previewJson; } @Override public void batchAdd(JSONArray temCollectSamples) { List adds = new ArrayList<>(); for (int i = 0; i < temCollectSamples.size(); i++) { JSONObject sampleJson = temCollectSamples.getJSONObject(i); KuaishouItemCollectSamples sample = new KuaishouItemCollectSamples(); sample.setItemId(sampleJson.getLong("itemId")); sample.setItemTitle(sampleJson.getString("itemTitle")); sample.setItemPrice(sampleJson.getLong("itemPrice")); sample.setItemImgUrl(sampleJson.getString("itemImgUrl")); sample.setItemDesc(sampleJson.getString("itemDesc")); sample.setCommissionRate(sampleJson.getLong("commissionRate")); sample.setRegimentalPromotion(sampleJson.getLong("regimentalPromotion")); sample.setSampleCount(sampleJson.getInteger("sampleCount")); sample.setSampleRequirement(sampleJson.getString("sampleRequirement")); sample.setItemCreateId(sampleJson.getLong("itemCreateId")); sample.setItemCreateName(sampleJson.getString("itemCreateName")); sample.setCollectSampleId(sampleJson.getLong("collectSampleId")); sample.setCollectSampleName(sampleJson.getString("collectSampleName")); sample.setPartnerRecommendText(sampleJson.getString("partnerRecommendText")); sample.setPromoterId(sampleJson.getLong("promoterId")); sample.setPromoterPhone(sampleJson.getString("promoterPhone")); sample.setPromoterAddress(sampleJson.getString("promoterAddress")); sample.setCollectSampleStatus(sampleJson.getInteger("collectSampleStatus")); sample.setCollectSampleDesc(sampleJson.getString("collectSampleDesc")); sample.setPromoterNickName(sampleJson.getString("promoterNickName")); sample.setPromoterUrl(sampleJson.getString("promoterUrl")); adds.add(sample); } if (!Check.isNull(adds)) { kuaishouItemCollectSamplesMapper.batchAdd(adds); } } @Override public void subscribe(Long id, String courierNumber, String code) throws Exception { KuaishouItemCollectSamples samples = kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesById(id); SubscribeParameters subscribeParameters = new SubscribeParameters(); subscribeParameters.setCallbackurl("http://ruixuan.api.tjyourong.com.cn/itemCollectSamples/callback"); subscribeParameters.setPhone(samples.getPromoterPhone()); SubscribeParam subscribeParam = new SubscribeParam(); subscribeParam.setParameters(subscribeParameters); subscribeParam.setCompany(code); subscribeParam.setNumber(courierNumber); subscribeParam.setKey("BPEQUJxB9244"); SubscribeReq subscribeReq = new SubscribeReq(); subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA); subscribeReq.setParam(new Gson().toJson(subscribeParam)); IBaseClient subscribe = new Subscribe(); JSONObject jsonObject = JSONObject.parseObject(subscribe.execute(subscribeReq).getBody()); String returnCode = jsonObject.getString("returnCode"); KuaishouItemCollectSamples updateSample = new KuaishouItemCollectSamples(); updateSample.setId(id); if ("200".equals(returnCode)) { updateSample.setCollectSampleDesc("快递推送订阅成功"); } else { updateSample.setCollectSampleStatus(3); updateSample.setCollectSampleDesc("快递推送订阅失败,失败原因:" + jsonObject.getString("message")); } kuaishouItemCollectSamplesMapper.updateKuaishouItemCollectSamples(updateSample); } @Override public void updateByNum(KuaishouItemCollectSamples updateSample) { kuaishouItemCollectSamplesMapper.updateByNum(updateSample); } @Override public void replaceExpress(KuaishouItemCollectSampleExpress express) { kuaishouItemCollectSamplesMapper.replaceExpress(express); } @Override public JSONObject getDetail(Long id) { JSONObject json = new JSONObject(); KuaishouItemCollectSamples sample = kuaishouItemCollectSamplesMapper.selectKuaishouItemCollectSamplesById(id); KuaishouItemCollectSampleLog log = new KuaishouItemCollectSampleLog(); log.setCollectSampleStatus(1); log.setUserId(sample.getCollectSampleId()); log.setUserName(sample.getCollectSampleName()); log.setSampleId(sample.getId()); log.setCreateTime(sample.getCreateTime()); log.setUpdateTime(sample.getCreateTime()); kuaishouItemCollectSamplesMapper.insertLog(log); json.put("sample", sample); if (!Check.isNull(sample.getCourierNumber())) { KuaishouItemCollectSampleExpress express = kuaishouItemCollectSamplesMapper.getExpress(sample.getCourierNumber()); if (!Check.isNull(express)) { json.put("express", express); } } List logs = kuaishouItemCollectSamplesMapper.getLogList(id); if (!Check.isNull(logs)) { json.put("logs", logs); } return json; } @Override public Integer getStatusByCourierNumbe(String nu) { return kuaishouItemCollectSamplesMapper.getStatusByCourierNumbe(nu); } @Override public JSONObject courierNumberInfo(String courierNumber) { return kuaishouItemCollectSamplesMapper.courierNumberInfo(courierNumber); } @Override public void insertLog(KuaishouItemCollectSampleLog sampleLog) { kuaishouItemCollectSamplesMapper.insertLog(sampleLog); } @Override public void cleanLogs(Long id, Integer status) { kuaishouItemCollectSamplesMapper.cleanLogs(id,status); } }