123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541 |
- package com.ruixuan.isc.controller;
- 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.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.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.utils.Check;
- import com.ruixuan.data.utils.ExportExcelUtils;
- import com.ruixuan.isc.entity.KuaishouItemCollectSampleExpress;
- import com.ruixuan.isc.entity.KuaishouItemCollectSampleLog;
- import com.ruixuan.isc.entity.KuaishouItemCollectSamples;
- import com.ruixuan.isc.enums.CompanyEnum;
- import com.ruixuan.isc.service.IKuaishouItemCollectSamplesService;
- import com.ruixuan.isc.service.IKuaishouItemListService;
- import com.ruixuan.system.service.ISysDeptService;
- import com.ruixuan.system.service.ISysRoleService;
- import com.ruixuan.system.service.ISysUserService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.poi.xssf.usermodel.XSSFWorkbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.DeleteMapping;
- 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.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.io.UnsupportedEncodingException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * 【商品领样】Controller
- *
- * @author ruoyi
- * @date 2023-02-08
- */
- @Api(tags = "商品领样")
- @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;
- @Autowired
- private IKuaishouItemListService itemListService;
- /**
- * 查询【请填写功能名称】列表
- */
- @GetMapping("/list")
- public TableDataInfo list(Long itemId, Long promoterId, Long userId, Integer collectSampleStatus, String itemTitle, String promoterNickName, String promoterPhone) {
- TableDataInfo tableDataInfo = new TableDataInfo();
- try {
- Map<String, Object> requestMap = new HashMap<>();
- if (!Check.isNull(userId)) {
- 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);
- }
- if (!Check.isNull(itemTitle)) {
- requestMap.put("itemTitle", itemTitle);
- }
- if (!Check.isNull(promoterNickName)) {
- requestMap.put("promoterNickName", promoterNickName);
- }
- if (!Check.isNull(promoterPhone)) {
- requestMap.put("promoterPhone", promoterPhone);
- }
- 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不能为空");
- }
- KuaishouItemCollectSampleLog sampleLog = new KuaishouItemCollectSampleLog();
- sampleLog.setUserId(kuaishouItemCollectSamples.getUserId());
- sampleLog.setUserName(kuaishouItemCollectSamples.getUserName());
- sampleLog.setSampleId(id);
- Integer collectSampleStatus = kuaishouItemCollectSamples.getCollectSampleStatus();
- if (!Check.isNull(collectSampleStatus)) {
- sampleLog.setCollectSampleStatus(collectSampleStatus);
- if (collectSampleStatus == 2) {
- String collectSampleDesc = kuaishouItemCollectSamples.getCollectSampleDesc();
- if (Check.isNull(collectSampleDesc)) {
- kuaishouItemCollectSamples.setCollectSampleDesc("领样审核拒绝");
- kuaishouItemCollectSamplesService.cleanLogs(kuaishouItemCollectSamples.getId(), collectSampleStatus);
- }
- }
- if (collectSampleStatus == 3) {
- kuaishouItemCollectSamples.setCollectSampleDesc("待录入订单号");
- }
- if (collectSampleStatus == 5) { // 招商审核作业拒绝
- String collectSampleDesc = kuaishouItemCollectSamples.getCollectSampleDesc();
- if (Check.isNull(collectSampleDesc)) {
- kuaishouItemCollectSamples.setCollectSampleDesc("招商审核作业拒绝,请重新提交");
- }
- kuaishouItemCollectSamplesService.cleanLogs(kuaishouItemCollectSamples.getId(), collectSampleStatus);
- }
- if (collectSampleStatus == 7) { // 作业完成
- kuaishouItemCollectSamples.setCollectSampleDesc("作业已完成");
- }
- }
- String courierNumber = kuaishouItemCollectSamples.getCourierNumber();
- if (!Check.isNull(courierNumber)) {
- sampleLog.setCollectSampleStatus(4);
- kuaishouItemCollectSamples.setCollectSampleStatus(4);
- kuaishouItemCollectSamples.setCollectSampleDesc("商品已发货");
- // 调用快递接口
- kuaishouItemCollectSamplesService.subscribe(id, courierNumber, kuaishouItemCollectSamples.getCompanyCode());
- }
- String taskFileUrl = kuaishouItemCollectSamples.getTaskFileUrl();
- if (!Check.isNull(taskFileUrl)) { // 作业上传成功
- sampleLog.setCollectSampleStatus(6);
- kuaishouItemCollectSamples.setCollectSampleStatus(6);
- kuaishouItemCollectSamples.setCollectSampleDesc("作业上传成功,待招商审核");
- }
- int i = kuaishouItemCollectSamplesService.updateKuaishouItemCollectSamples(kuaishouItemCollectSamples);
- if (i > 0) {
- sampleLog.setCreateTime(new Date());
- sampleLog.setUpdateTime(new Date());
- kuaishouItemCollectSamplesService.insertLog(sampleLog);
- Long itemId = kuaishouItemCollectSamplesService.getItemIdById(id);
- if (!Check.isNull(itemId)) {
- JSONObject info = kuaishouItemCollectSamplesService.getCollectSampleInfo(itemId);
- itemListService.updateCount(itemId, info.getInteger("sampleCount"), info.getInteger("userCount"));
- }
- }
- returnJson.put("code", 0);
- returnJson.put("message", "修改成功");
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @GetMapping("/detail")
- public JSONObject detail(Long id) {
- JSONObject returnJson = new JSONObject();
- try {
- if (Check.isNull(id)) {
- throw new Exception("id不能为空");
- }
- returnJson = kuaishouItemCollectSamplesService.getDetail(id);
- returnJson.put("code", 0);
- returnJson.put("message", "查询成功");
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @GetMapping("/courierNumberInfo")
- public JSONObject courierNumberInfo(String courierNumber) {
- JSONObject returnJson = new JSONObject();
- try {
- if (Check.isNull(courierNumber)) {
- throw new Exception("快递单号不能为空");
- }
- JSONObject data = kuaishouItemCollectSamplesService.courierNumberInfo(courierNumber);
- returnJson.put("data", data);
- 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, String code) {
- 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(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());
- 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)) {
- Integer status = kuaishouItemCollectSamplesService.getStatusByCourierNumbe(nu);
- if (!Check.isNull(status)) {
- if (status < 5) { // 防止快递重复回调
- 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;
- }
- @GetMapping("/copyInfo")
- public JSONObject copyInfo(Long promoterId) {
- JSONObject returnJson = new JSONObject();
- try {
- if (Check.isNull(promoterId)) {
- throw new Exception("请传入达人ID");
- }
- JSONObject copyJson = kuaishouItemCollectSamplesService.getCopyInfo(promoterId);
- returnJson.put("code", 0);
- returnJson.put("message", "调用成功");
- returnJson.put("data", copyJson);
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @DeleteMapping("/remove")
- public AjaxResult remove( Long id) {
- return toAjax(kuaishouItemCollectSamplesService.deleteKuaishouItemCollectSamplesById(id));
- }
- /**
- * 认领商品列表导出
- *
- * @return
- */
- @PostMapping("/exportCollectSamples")
- @ApiOperation(value = "认领商品列表")
- @ResponseBody
- public void exportCollectSamples(HttpServletRequest request, HttpServletResponse response, @RequestBody JSONObject requestJson) throws IOException {
- Map<String, Object> requestMap = new HashMap<>();
- if (!Check.isNull(requestJson.getJSONArray("ids"))) {
- requestMap.put("ids", requestJson.getJSONArray("ids"));
- }
- List<JSONObject> list = kuaishouItemCollectSamplesService.exportCollectSamples(requestMap);
- List<List<Object>> exportList = new ArrayList<>();
- if (!Check.isNull(list)) {
- for (int i = 0; i < list.size(); i++) {
- JSONObject date = list.get(i);
- List<Object> export = new ArrayList();
- export.add(date.getString("id"));
- export.add(date.getString("itemId"));
- export.add(date.getString("itemTitle"));
- export.add(date.getString("promoterId"));
- export.add(date.getString("promoterNickName"));
- export.add(date.getString("status"));
- JSONObject copyJson = kuaishouItemCollectSamplesService.getCopyInfo(date.getLong("promoterId"));
- export.add(copyJson.getString("fansNumber"));
- export.add(copyJson.getString("totalSale"));
- export.add(date.getString("sampleCount"));
- export.add(date.getString("sampleRequirement"));
- export.add(date.getString("consignee"));
- export.add(date.getString("promoterPhone"));
- export.add(date.getString("promoterAddress"));
- exportList.add(export);
- }
- }
- String[] headers = {"id", "商品ID", "商品名称", "达人ID", "达人昵称", "领样状态", "粉丝数", "销售额", "领样数量", "领样规则", "收件人", "收件人手机号码", "收件人地址"};
- OutputStream os = response.getOutputStream();
- ExportExcelUtils eeu = new ExportExcelUtils();
- XSSFWorkbook workbook = new XSSFWorkbook();
- eeu.exportExcel(workbook, 0, "领样列表", headers, exportList);
- this.setResponseHeader(response, "领样列表.xls");
- workbook.write(os);
- os.flush();
- os.close();
- }
- //发送响应流方法
- public void setResponseHeader(HttpServletResponse response, String fileName) {
- try {
- try {
- fileName = new String(fileName.getBytes(), "ISO8859-1");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- response.setContentType("application/octet-stream;charset=ISO8859-1");
- response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
- response.addHeader("Pargam", "no-cache");
- response.addHeader("Cache-Control", "no-cache");
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- @GetMapping("/getPersonalInfo")
- @ApiOperation(value = "工作台——个人信息")
- public JSONObject getPersonalInfo(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId) {
- JSONObject returnJson = new JSONObject();
- try {
- if (Check.isNull(userId)) {
- throw new Exception("请传入人员ID");
- }
- return kuaishouItemCollectSamplesService.getPersonalInfo(userId);
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @GetMapping("/getOrderData")
- @ApiOperation(value = "工作台——订单数据")
- public JSONObject getOrderData(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId,
- @ApiParam("日期") @RequestParam(value = "statDate", required = false) String statDate) {
- JSONObject returnJson = new JSONObject();
- try {
- if (Check.isNull(userId)) {
- throw new Exception("请传入人员ID");
- }
- return kuaishouItemCollectSamplesService.getOrderData(userId, statDate);
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- @GetMapping("/getDataAnalysis")
- @ApiOperation(value = "工作台——数据分析")
- public JSONObject getDataAnalysis(@ApiParam("创建人ID") @RequestParam(value = "userId", required = true) Long userId) {
- JSONObject returnJson = new JSONObject();
- try {
- if (Check.isNull(userId)) {
- throw new Exception("请传入人员ID");
- }
- return kuaishouItemCollectSamplesService.getDataAnalysis(userId);
- } catch (Exception e) {
- e.printStackTrace();
- returnJson.put("code", -1);
- returnJson.put("message", e.getMessage());
- }
- return returnJson;
- }
- }
|