From 8fd21c83719ecdb056b2eb93094d072cb8c8171c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=90?= <419641032@qq.com> Date: Fri, 28 Aug 2020 15:55:13 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E5=9B=9E=E6=94=B6=E7=AB=99=E5=95=86=E5=93=81=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=202=E3=80=81=E7=9F=AD=E4=BF=A1=E8=AE=B0=E5=BD=95=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/constants/Constants.java | 2 + .../front/service/impl/OrderServiceImpl.java | 9 ---- .../zbkj/crmeb/sms/service/SmsService.java | 2 +- .../service/impl/SmsRecordServiceImpl.java | 30 +++++++++++-- .../sms/service/impl/SmsServiceImpl.java | 38 ++++++++++------- .../controller/StoreProductController.java | 17 ++++++++ .../store/service/StoreProductService.java | 7 ++++ .../service/impl/StoreProductServiceImpl.java | 28 +++++++++---- .../service/impl/SystemStoreServiceImpl.java | 8 ++-- .../crmeb/task/sms/AsyncSmsSendResult.java | 42 +++++++++---------- 10 files changed, 122 insertions(+), 61 deletions(-) diff --git a/crmeb/src/main/java/com/constants/Constants.java b/crmeb/src/main/java/com/constants/Constants.java index 2161a9b2..ebdf5690 100644 --- a/crmeb/src/main/java/com/constants/Constants.java +++ b/crmeb/src/main/java/com/constants/Constants.java @@ -10,6 +10,8 @@ package com.constants; public class Constants { public static final long TOKEN_EXPRESS_MINUTES = (60 * 1); //1小时 + public static final int HTTPSTATUS_CODE_SUCCESS = 200; + public static final int NUM_ZERO = 0; public static final int NUM_ONE = 1; public static final int NUM_TWO = 2; diff --git a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java index 35aa175a..c2ad277d 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/front/service/impl/OrderServiceImpl.java @@ -557,15 +557,6 @@ public class OrderServiceImpl implements OrderService { SystemAttachment systemAttachmentPram = new SystemAttachment(); systemAttachmentPram.setName(name); // todo 二维码前端生成 -// List sysAttachments = systemAttachmentService.getByEntity(systemAttachmentPram); -// String siteUrl = systemConfigService.getValueByKey(""); -// if(sysAttachments.size() == 0){ -// // todo 二维码 -// String qrCode = ""; -// -// }else{ -// -// } } storeOrderDetailResponse.setMapKey(systemConfigService.getValueByKey("tengxun_map_key")); // StoreOrder storeOrder = new StoreOrder(); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/sms/service/SmsService.java b/crmeb/src/main/java/com/zbkj/crmeb/sms/service/SmsService.java index 8830790c..4921eaf5 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/sms/service/SmsService.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/sms/service/SmsService.java @@ -49,7 +49,7 @@ public interface SmsService{ * 根据发送id同步发送短信结果 * @param recordIds 短信发送id */ - void pushByAsyncStatus(List recordIds); + void pushByAsyncStatus(String recordIds); void consume(); diff --git a/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsRecordServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsRecordServiceImpl.java index e3072717..584b1128 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsRecordServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsRecordServiceImpl.java @@ -1,14 +1,19 @@ package com.zbkj.crmeb.sms.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.common.PageParamRequest; +import com.constants.Constants; import com.constants.SmsConstants; import com.exception.CrmebException; import com.github.pagehelper.PageHelper; +import com.utils.CrmebUtil; import com.utils.RedisUtil; import com.utils.RestTemplateUtil; +import com.zbkj.crmeb.sms.SmsResultVo; import com.zbkj.crmeb.sms.model.SmsRecord; import com.zbkj.crmeb.sms.dao.SmsRecordDao; import com.zbkj.crmeb.sms.request.SmsRecordRequest; @@ -22,6 +27,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -89,10 +95,25 @@ public class SmsRecordServiceImpl extends ServiceImpl i } int resultCode = joResult.getInteger("status"); - String message = joResult.getString("msg"); - JSONObject data = joResult.getJSONObject("data"); - String smsRecodeId = (data.containsKey("id") ? data.getString("id") : "0"); + if(resultCode == Constants.HTTPSTATUS_CODE_SUCCESS){ + List smsRecords = new ArrayList<>(); + for (Object data : joResult.getJSONArray("data")) { + JSONObject resultJo = JSONObject.parseObject(data.toString()); + SmsRecord smsRecord = new SmsRecord().setRecordId(resultJo.getInteger("id")) + .setResultcode(resultJo.getInteger("resultcode")); + smsRecords.add(smsRecord); + } + updateSendSmsStatus(smsRecords); + } + } + private void updateSendSmsStatus(List smsRecords){ + for (SmsRecord smsRecord : smsRecords) { + LambdaUpdateWrapper lup = new LambdaUpdateWrapper<>(); + lup.eq(SmsRecord::getRecordId, smsRecord.getRecordId()) + .set(SmsRecord::getResultcode,smsRecord.getResultcode()); + update(lup); + } } // 短信发送状态同步队列消费者 @@ -108,8 +129,9 @@ public class SmsRecordServiceImpl extends ServiceImpl i continue; } try{ - List recordIds = (List) JSONObject.parseObject(data.toString()); + List recordIds = CrmebUtil.stringToArray(data.toString()); updateSmsStatus(recordIds); + }catch (Exception e){ redisUtil.lPush(SmsConstants.SMS_SEND_RESULT_KEY, data); } diff --git a/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsServiceImpl.java index 958e16b1..63f3b0b7 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/sms/service/impl/SmsServiceImpl.java @@ -3,8 +3,10 @@ package com.zbkj.crmeb.sms.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.common.PageParamRequest; +import com.constants.Constants; import com.constants.SmsConstants; import com.exception.CrmebException; +import com.exception.ExceptionCodeEnum; import com.utils.CrmebUtil; import com.utils.RedisUtil; import com.utils.RestTemplateUtil; @@ -19,6 +21,7 @@ import com.zbkj.crmeb.system.service.SystemConfigService; import com.zbkj.crmeb.user.service.UserService; import lombok.Data; import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -439,21 +442,24 @@ public class SmsServiceImpl implements SmsService { String message = joResult.getString("msg"); JSONObject data = joResult.getJSONObject("data"); String smsRecodeId = (data.containsKey("id") ? data.getString("id") : "0"); + sendSmsVo.setContent(data.getString("content")); - try{ - // 注意这里的状态仅仅是调用是否成功的状态 需要等待5分钟一周另外一个任务去查询发送状态后再更新status数据 - SmsRecord smsRecord = new SmsRecord(0,sendSmsVo.getUid(), sendSmsVo.getMobile(),sendSmsVo.getContent(), - "", sendSmsVo.getTemplate().toString(), - resultCode,Integer.parseInt(smsRecodeId), message); - smsRecordService.save(smsRecord); - }catch (Exception e){ - return true; - } - // 添加到短信实际发送状态队列 - if(smsRecodeId.length() > 0){ - List recordsIds = new ArrayList<>(); - recordsIds.add(Integer.parseInt(smsRecodeId)); - pushByAsyncStatus(recordsIds); + if(resultCode == Constants.HTTPSTATUS_CODE_SUCCESS){ + try{ + // 注意这里的状态仅仅是调用是否成功的状态 需要等待5分钟一周另外一个任务去查询发送状态后再更新status数据 + SmsRecord smsRecord = new SmsRecord(0,sendSmsVo.getUid(), sendSmsVo.getMobile(),sendSmsVo.getContent(), + "", sendSmsVo.getTemplate().toString(), + resultCode,Integer.parseInt(smsRecodeId), message); + smsRecordService.save(smsRecord); + }catch (Exception e){ + return true; + } + // 添加到短信实际发送状态队列 + if(smsRecodeId.length() > 0){ + List recordsIds = new ArrayList<>(); + recordsIds.add(Integer.parseInt(smsRecodeId)); + pushByAsyncStatus(StringUtils.join(recordsIds,",")); + } } return true; } @@ -557,9 +563,9 @@ public class SmsServiceImpl implements SmsService { * @param recordIds 短信发送id */ @Override - public void pushByAsyncStatus(List recordIds) { + public void pushByAsyncStatus(String recordIds) { if(null == recordIds) return; - redisUtil.lPush(SmsConstants.SMS_SEND_RESULT_KEY, JSONObject.toJSONString(recordIds)); + redisUtil.lPush(SmsConstants.SMS_SEND_RESULT_KEY, recordIds); } /** diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/controller/StoreProductController.java b/crmeb/src/main/java/com/zbkj/crmeb/store/controller/StoreProductController.java index 59303ccb..a9077bc5 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/controller/StoreProductController.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/controller/StoreProductController.java @@ -91,6 +91,23 @@ public class StoreProductController { } } + /** + * 恢复已删除商品表 + * @param id Integer + * @author Stivepeim + * @since 2020-08-28 + */ + @ApiOperation(value = "恢复商品") + @RequestMapping(value = "/restore/{id}", method = RequestMethod.GET) + public CommonResult restore(@RequestBody @PathVariable Integer id){ + if(storeProductService.reStoreProduct(id)){ +// storeCartService.productStatusNotEnable(id); + return CommonResult.success(); + }else{ + return CommonResult.failed(); + } + } + /** * 修改商品表 * @param storeProductRequest 修改参数 diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductService.java b/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductService.java index 5a3397ac..d2f3bb28 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductService.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/service/StoreProductService.java @@ -128,6 +128,13 @@ public interface StoreProductService extends IService { */ boolean deleteProduct(Integer productId); + /** + * 恢复已删除商品 + * @param productId 商品id + * @return 恢复结果 + */ + boolean reStoreProduct(Integer productId); + /** * 后台任务批量操作 */ diff --git a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java index fc06ab92..4e06e478 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/store/service/impl/StoreProductServiceImpl.java @@ -819,7 +819,7 @@ public class StoreProductServiceImpl extends ServiceImpl 0){ + String stepValueValidLength = stepValue.replace("[","").replace("]","").replace("\"",""); + if(stepValueValidLength.length() > 0){ com.alibaba.fastjson.JSONArray stepValues = JSON.parseArray(stepValue); int c = stepValues.get(0).toString().length(); attrValueIsNullCount += c == 0 ? 1 : 0; + spattr.setAttrName(saleJson.getString(stepkey)); + spattr.setAttrValues(props.getString(stepkey)); + spaAttes.add(spattr); + productRequest.setAttr(spaAttes); }else{ attrValueIsNullCount += 1; } - spattr.setAttrName(saleJson.getString(stepkey)); - spattr.setAttrValues(props.getString(stepkey)); - spaAttes.add(spattr); - productRequest.setAttr(spaAttes); } // 判断是否单属性 productRequest.setSpecType(spaAttes.size() != attrValueIsNullCount); @@ -1303,6 +1304,19 @@ public class StoreProductServiceImpl extends ServiceImpl lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(StoreProduct::getId, productId); + lambdaUpdateWrapper.set(StoreProduct::getIsDel, false); + return update(lambdaUpdateWrapper); + } + ///////////////////////////////////////////自定义方法 // 操作库存 diff --git a/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemStoreServiceImpl.java b/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemStoreServiceImpl.java index 8b5de3d6..75011355 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemStoreServiceImpl.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/system/service/impl/SystemStoreServiceImpl.java @@ -54,10 +54,12 @@ public class SystemStoreServiceImpl extends ServiceImpl getList(String keywords, int status, PageParamRequest pageParamRequest) { PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - if(status == 2){ + if(status == 1){ // 显示中 + lambdaQueryWrapper.eq(SystemStore::getIsShow, true).eq(SystemStore::getIsDel, false); + }else if(status == 2){ // 回收站中 lambdaQueryWrapper.eq(SystemStore::getIsDel, true); - }else{ - lambdaQueryWrapper.eq(SystemStore::getIsShow, status).eq(SystemStore::getIsDel, false); + }else{ // 隐藏中的 + lambdaQueryWrapper.eq(SystemStore::getIsShow, false).eq(SystemStore::getIsDel, false);; } if(!StringUtils.isBlank(keywords)){ lambdaQueryWrapper.and(i -> i.or().like(SystemStore::getName, keywords) diff --git a/crmeb/src/main/java/com/zbkj/crmeb/task/sms/AsyncSmsSendResult.java b/crmeb/src/main/java/com/zbkj/crmeb/task/sms/AsyncSmsSendResult.java index 3c20540d..fb403f17 100644 --- a/crmeb/src/main/java/com/zbkj/crmeb/task/sms/AsyncSmsSendResult.java +++ b/crmeb/src/main/java/com/zbkj/crmeb/task/sms/AsyncSmsSendResult.java @@ -18,26 +18,26 @@ import org.springframework.stereotype.Component; * @Date 2020/8/18 * @Created by stivepeim */ -//@Component -//@Configuration //读取配置 -//@EnableScheduling // 2.开启定时任务 +@Component +@Configuration //读取配置 +@EnableScheduling // 2.开启定时任务 public class AsyncSmsSendResult { -// //日志 -// private static final Logger logger = LoggerFactory.getLogger(AsyncSmsSendResult.class); -// -// @Autowired -// private SmsRecordService smsRecordsService; -// -// @Scheduled(fixedDelay = 1000 * 10L) // todo 后面更改为 一分钟同步一次数据 -// public void init(){ -// logger.info("---AsyncSmsResult task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDate()); -// try { -// smsRecordsService.consumeSmsStatus(); -// -// }catch (Exception e){ -// e.printStackTrace(); -// logger.error("AsyncSmsSend.task" + " | msg : " + e.getMessage()); -// } -// -// } + //日志 + private static final Logger logger = LoggerFactory.getLogger(AsyncSmsSendResult.class); + + @Autowired + private SmsRecordService smsRecordsService; + + @Scheduled(fixedDelay = 1000 * 60L) // todo 后面更改为 一分钟同步一次数据 + public void init(){ + logger.info("---AsyncSmsResult task------produce Data with fixed rate task: Execution Time - {}", DateUtil.nowDate()); + try { + smsRecordsService.consumeSmsStatus(); + + }catch (Exception e){ + e.printStackTrace(); + logger.error("AsyncSmsSend.task" + " | msg : " + e.getMessage()); + } + + } }