123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331 |
- package com.ruixuan.isc.controller;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- 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.request.SubscribeParam;
- import com.kuaidi100.sdk.request.SubscribeParameters;
- import com.kuaidi100.sdk.request.SubscribeReq;
- import com.kuaidi100.sdk.response.SubscribeResp;
- import com.ruixuan.common.annotation.Log;
- import com.ruixuan.common.core.controller.BaseController;
- import com.ruixuan.common.core.domain.AjaxResult;
- import com.ruixuan.common.core.domain.entity.SysUser;
- import com.ruixuan.common.core.page.TableDataInfo;
- import com.ruixuan.common.enums.BusinessType;
- import com.ruixuan.common.utils.Check;
- import com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress;
- import com.ruixuan.isc.entity.KuaishouItemCollectSamples;
- import com.ruixuan.isc.enums.CompanyEnum;
- import com.ruixuan.isc.service.IKuaishouItemCollectSamplesService;
- import com.ruixuan.system.service.ISysDeptService;
- import com.ruixuan.system.service.ISysRoleService;
- import com.ruixuan.system.service.ISysUserService;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- /**
- * 【商品领样】Controller
- *
- * @author ruoyi
- * @date 2023-02-08
- */
- @RestController
- @Slf4j
- @RequestMapping("/itemCollectSamples")
- public class KuaishouItemCollectSamplesController extends BaseController {
- @Autowired
- private IKuaishouItemCollectSamplesService kuaishouItemCollectSamplesService;
- @Autowired
- private ISysRoleService sysRoleService;
- @Autowired
- private ISysDeptService sysDeptService;
- @Autowired
- private ISysUserService sysUserService;
- /**
- * 查询【请填写功能名称】列表
- */
- @GetMapping("/list")
- public TableDataInfo list(Long itemId, Long promoterId, Long userId, Integer collectSampleStatus) {
- TableDataInfo tableDataInfo = new TableDataInfo();
- try {
- Map<String, Object> requestMap = new HashMap<>();
- if (Check.isNull(userId)) {
- throw new Exception("请传入登录人ID");
- }
- String roleId = sysRoleService.getRoleBYUserId(userId);
- if (roleId.equals("courtshipManager") || roleId.equals("bdManager") || roleId.equals("associationManager")) { // 经理层级查看部门下所有数据
- Long deptId = sysDeptService.getDeptIdByUserId(userId);
- List<Long> userIds = sysDeptService.getDeptUserListByDeptId(deptId);
- if (roleId.equals("bdManager") || roleId.equals("associationManager")) {
- requestMap.put("collectSampleIds", userIds);
- } else {
- requestMap.put("itemCreateIds", userIds);
- }
- } else if (roleId.equals("association") || roleId.equals("bd")) { // 社群和bd查看申请人为自己的领样信息
- requestMap.put("collectSampleId", userId);
- } else if (roleId.equals("courtship")) { // 招商查看创建人为自己的领样信息
- requestMap.put("itemCreateId", userId);
- }
- if (!Check.isNull(itemId)) {
- requestMap.put("itemId", itemId);
- }
- if (!Check.isNull(promoterId)) {
- requestMap.put("promoterId", promoterId);
- }
- if (!Check.isNull(collectSampleStatus)) {
- requestMap.put("collectSampleStatus", collectSampleStatus);
- }
- startPage();
- List<KuaishouItemCollectSamples> list = kuaishouItemCollectSamplesService.selectKuaishouItemCollectSamplesList(requestMap);
- return getDataTable(list);
- } catch (Exception e) {
- e.printStackTrace();
- tableDataInfo.setCode(-1);
- tableDataInfo.setMsg(e.getMessage());
- }
- return tableDataInfo;
- }
- /**
- * 领样预览
- */
- @PostMapping("/preview")
- public JSONObject preview(@RequestBody JSONObject requestJson) {
- JSONObject returnJson = new JSONObject();
- try {
- Long userId = requestJson.getLong("userId");
- if (Check.isNull(userId)) {
- throw new Exception("请传入当前登录人ID");
- }
- SysUser sysUser = sysUserService.selectUserById(userId);
- if (Check.isNull(sysUser)) {
- throw new Exception("未获取到登录人信息");
- }
- JSONArray itemIds = requestJson.getJSONArray("itemIds");
- if (Check.isNull(itemIds)) {
- throw new Exception("请传入需要申请的商品列表");
- }
- JSONArray promoterIds = requestJson.getJSONArray("promoterIds");
- if (Check.isNull(promoterIds)) {
- throw new Exception("请传入需要申请的达人列表");
- }
- JSONObject previewJson = kuaishouItemCollectSamplesService.preview(userId, sysUser.getNickName(), itemIds, promoterIds);
- returnJson.put("code", 0);
- returnJson.put("message", "success");
- returnJson.put("preview", previewJson);
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- /**
- * 新增【请填写功能名称】
- */
- @PostMapping("/add")
- public JSONObject add(@RequestBody JSONObject requestJson) {
- JSONObject returnJson = new JSONObject();
- try {
- if (Check.isNull(requestJson)) {
- throw new Exception("入参不能为空");
- }
- JSONArray temCollectSamples = requestJson.getJSONArray("temCollectSamples");
- if (Check.isNull(temCollectSamples)) {
- throw new Exception("认领信息不能为空");
- }
- kuaishouItemCollectSamplesService.batchAdd(temCollectSamples);
- returnJson.put("code", 0);
- returnJson.put("message", "领样信息增加成功");
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @GetMapping("/getCompany")
- public List<JSONObject> getCompany() {
- return CompanyEnum.companyList();
- }
- /**
- * 修改【请填写功能名称】
- */
- @PutMapping("/edit")
- public JSONObject edit(@RequestBody KuaishouItemCollectSamples kuaishouItemCollectSamples) {
- JSONObject returnJson = new JSONObject();
- try {
- Long id = kuaishouItemCollectSamples.getId();
- if (Check.isNull(id)) {
- throw new Exception("id不能为空");
- }
- Integer collectSampleStatus = kuaishouItemCollectSamples.getCollectSampleStatus();
- if (!Check.isNull(collectSampleStatus)) {
- if (collectSampleStatus == 2) {
- String collectSampleDesc = kuaishouItemCollectSamples.getCollectSampleDesc();
- if (Check.isNull(collectSampleDesc)) {
- kuaishouItemCollectSamples.setCollectSampleDesc("领样审核拒绝");
- }
- }
- if (collectSampleStatus == 3) {
- kuaishouItemCollectSamples.setCollectSampleDesc("待录入订单号");
- }
- if (collectSampleStatus == 5) { // 招商审核作业拒绝
- String collectSampleDesc = kuaishouItemCollectSamples.getCollectSampleDesc();
- if (Check.isNull(collectSampleDesc)) {
- kuaishouItemCollectSamples.setCollectSampleDesc("招商审核作业拒绝,请重新提交");
- }
- }
- if (collectSampleStatus == 7) { // 作业完成
- kuaishouItemCollectSamples.setCollectSampleDesc("作业已完成");
- }
- }
- String courierNumber = kuaishouItemCollectSamples.getCourierNumber();
- if (!Check.isNull(courierNumber)) {
- kuaishouItemCollectSamples.setCollectSampleStatus(4);
- kuaishouItemCollectSamples.setCollectSampleDesc("商品已发货");
- // 调用快递接口
- kuaishouItemCollectSamplesService.subscribe(id, courierNumber, kuaishouItemCollectSamples.getCompanyCode());
- }
- String taskFileUrl = kuaishouItemCollectSamples.getTaskFileUrl();
- if (Check.isNull(taskFileUrl)) { // 作业上传成功
- kuaishouItemCollectSamples.setCollectSampleStatus(6);
- kuaishouItemCollectSamples.setCollectSampleDesc("作业上传成功,待招商审核");
- }
- kuaishouItemCollectSamplesService.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples);
- returnJson.put("code", 0);
- returnJson.put("message", "修改成功");
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @PutMapping("/testSubscribe")
- public JSONObject testSubscribe(String phone, String courierNumber) {
- JSONObject returnJson = new JSONObject();
- try {
- SubscribeParameters subscribeParameters = new SubscribeParameters();
- subscribeParameters.setCallbackurl("http://ruixuan.api.tjyourong.com.cn/itemCollectSamples/callback");
- subscribeParameters.setPhone(phone);
- SubscribeParam subscribeParam = new SubscribeParam();
- subscribeParam.setParameters(subscribeParameters);
- subscribeParam.setCompany(CompanyConstant.YD);
- 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());
- System.err.println(jsonObject);
- System.out.println(subscribe.execute(subscribeReq));
- returnJson.put("code", 0);
- returnJson.put("message", "调用成功");
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @PostMapping("/callback")
- public SubscribeResp callback(HttpServletRequest request) {
- SubscribeResp subscribeResp = new SubscribeResp();
- try {
- String param = request.getParameter("param");
- log.info("快递回调信息:{}", param);
- JSONObject paramJson = JSONObject.parseObject(param);
- if (Check.isNull(paramJson)) {
- throw new Exception("回调信息为空");
- }
- JSONObject lastResult = paramJson.getJSONObject("lastResult");
- if (!Check.isNull(lastResult)) {
- String state = lastResult.getString("state");
- String nu = lastResult.getString("nu");
- String com = lastResult.getString("com");
- if ("3".equals(state)) {
- KuaishouItemCollectSamples updateSample = new KuaishouItemCollectSamples();
- updateSample.setCourierNumber(nu);
- updateSample.setCollectSampleStatus(5);
- updateSample.setCollectSampleDesc("快递已签收,待上传作业");
- // kuaishouItemCollectSamplesService.updateByNum(updateSample);
- }
- JSONArray data = lastResult.getJSONArray("data");
- KuaishouItemCollectSampleExpress express = new KuaishouItemCollectSampleExpress();
- express.setCourierNumber(nu);
- express.setCom(com);
- express.setState(state);
- if (!Check.isNull(data)) {
- express.setExpressData(data.toJSONString());
- }
- kuaishouItemCollectSamplesService.replaceExpress(express);
- }
- subscribeResp.setResult(Boolean.TRUE);
- subscribeResp.setReturnCode("200");
- subscribeResp.setMessage("回调成功");
- } catch (Exception e) {
- e.printStackTrace();
- subscribeResp.setResult(Boolean.FALSE);
- subscribeResp.setReturnCode("-1");
- subscribeResp.setMessage(e.getMessage());
- }
- return subscribeResp;
- }
- /**
- * 删除【请填写功能名称】
- */
- @PreAuthorize("@ss.hasPermi('system:samples:remove')")
- @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult remove(@PathVariable Long[] ids) {
- return toAjax(kuaishouItemCollectSamplesService.deleteKuaishouItemCollectSamplesByIds(ids));
- }
- }
|