This commit is contained in:
xiezhijun
2021-05-07 18:44:12 +08:00
8 changed files with 169 additions and 172 deletions

View File

@ -111,12 +111,14 @@ public class SysOrderNutritionistReplaceRecordController extends BaseController
return AjaxResult.error("开始时间不能小于"+ DateUtils.dateTime(sysOrder.getCommissStartTime()));
}
//更换的售后或营养师不能与原订单一致
if(sysOrderNutritionistReplaceRecord.getNutritionistId() != null && sysOrder.getNutritionistId().longValue() == sysOrderNutritionistReplaceRecord.getNutritionistId().longValue()){
return AjaxResult.error("更换的营养师与原订单营养师不能相同");
}
if(sysOrderNutritionistReplaceRecord.getAfterSaleId() != null && sysOrder.getAfterSaleId().longValue() == sysOrderNutritionistReplaceRecord.getAfterSaleId().longValue()){
return AjaxResult.error("更换的售后与原订单售后不能相同");
}
// if(sysOrderNutritionistReplaceRecord.getNutritionistId() != null && sysOrder.getNutritionistId().longValue() == sysOrderNutritionistReplaceRecord.getNutritionistId().longValue()){
// return AjaxResult.error("更换的营养师与原订单营养师不能相同");
// }
// if(sysOrderNutritionistReplaceRecord.getAfterSaleId() != null && sysOrder.getAfterSaleId().longValue() == sysOrderNutritionistReplaceRecord.getAfterSaleId().longValue()){
// return AjaxResult.error("更换的售后与原订单售后不能相同");
// }
//体验单、二开售后提成单都不支持更换营养师和售后
if(sysOrder.getAfterSaleCommissOrder().intValue() == 1 || "2".equals(sysOrder.getOrderType())){
return AjaxResult.error("二开提成单、体验单不支持更换营养师、售后");

View File

@ -2,12 +2,9 @@ package com.stdiet.web.controller.custom;
import com.aliyun.vod20170321.models.GetPlayInfoResponseBody;
import com.aliyun.vod20170321.models.GetVideoInfoResponseBody;
import com.aliyun.vod20170321.models.GetVideoListResponseBody;
import com.itextpdf.io.util.DateTimeUtil;
import com.stdiet.common.core.controller.BaseController;
import com.stdiet.common.core.domain.AjaxResult;
import com.stdiet.common.core.page.TableDataInfo;
import com.stdiet.common.enums.BusinessType;
import com.stdiet.common.exception.file.FileNameLengthLimitExceededException;
import com.stdiet.common.utils.AliyunVideoUtils;
import com.stdiet.common.utils.DateUtils;
@ -22,9 +19,7 @@ import com.stdiet.custom.dto.response.MessageNoticeResponse;
import com.stdiet.custom.dto.response.NutritionalVideoResponse;
import com.stdiet.custom.page.WxLogInfo;
import com.stdiet.custom.service.*;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -40,23 +35,21 @@ import java.util.*;
public class WechatAppletController extends BaseController {
public static final String[] imageName = {"breakfastImages", "lunchImages", "dinnerImages", "extraMealImages", "bodyImages"};
@Autowired
private ISysCustomerCaseService sysCustomerCaseService;
@Autowired
private ISysWxUserLogService sysWxUserLogService;
@Autowired
private ISysWxUserInfoService sysWxUserInfoService;
@Autowired
private ISysOrderService sysOrderService;
@Autowired
private ISysNutritionQuestionService sysNutritionQuestionService;
@Autowired
private ISysAskNutritionQuestionService sysAskNutritionQuestionService;
@Autowired
private ISysCustomerService iSysCustomerService;
@Autowired
private ISysMessageNoticeService sysMessageNoticeService;
@ -71,8 +64,7 @@ public class WechatAppletController extends BaseController {
* 查询微信小程序中展示的客户案例
*/
@GetMapping("/caseList")
public TableDataInfo caseList(SysCustomerCase sysCustomerCase)
{
public TableDataInfo caseList(SysCustomerCase sysCustomerCase) {
startPage();
sysCustomerCase.setKeywordArray(StringUtils.isNotEmpty(sysCustomerCase.getKeyword()) ? sysCustomerCase.getKeyword().split(",") : null);
List<CustomerCaseResponse> list = sysCustomerCaseService.getWxCustomerCaseList(sysCustomerCase);
@ -85,12 +77,11 @@ public class WechatAppletController extends BaseController {
* 查询客户案例文件列表
*/
@GetMapping("/getFileByCaseId")
public AjaxResult getFileByCaseId(@RequestParam("caseId")String caseId)
{
Long id = StringUtils.isNotEmpty(caseId) ? Long.parseLong(AesUtils.decrypt(caseId, null)) : null;
public AjaxResult getFileByCaseId(@RequestParam("caseId") String caseId) {
Long id = StringUtils.isNotEmpty(caseId) ? Long.parseLong(AesUtils.decrypt(caseId, null)) : -1L;
CustomerCaseResponse customerCaseResponse = new CustomerCaseResponse();
customerCaseResponse.setId(caseId);
if(id != null){
if (id != -1) {
List<SysCustomerCaseFile> list = sysCustomerCaseService.getFileListByCaseId(id);
List<String> fileUrl = new ArrayList<>();
for (SysCustomerCaseFile caseFile : list) {
@ -98,7 +89,7 @@ public class WechatAppletController extends BaseController {
}
List<String> downUrlList = AliyunOSSUtils.generatePresignedUrl(fileUrl);
customerCaseResponse.setFileList(downUrlList);
}else{
} else {
customerCaseResponse.setFileList(new ArrayList<>());
}
return AjaxResult.success(customerCaseResponse);
@ -106,26 +97,27 @@ public class WechatAppletController extends BaseController {
/**
* 同步客户信息
*
* @param sysWxUserInfo
* @return
*/
@PostMapping("/synchroCustomerInfo")
public AjaxResult synchroCustomerInfo(@RequestBody SysWxUserInfo sysWxUserInfo) {
if(StringUtils.isEmpty(sysWxUserInfo.getOpenid()) || StringUtils.isEmpty(sysWxUserInfo.getPhone())){
if (StringUtils.isEmpty(sysWxUserInfo.getOpenid()) || StringUtils.isEmpty(sysWxUserInfo.getPhone())) {
return AjaxResult.error("手机号为空");
}
// 查询微信用户
SysWxUserInfo userInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserInfo.getOpenid());
if(userInfo != null){
if (userInfo != null) {
//更新数据
sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo);
}else{
} else {
sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
}
Map<String,Object> result = new HashMap<>();
Map<String, Object> result = new HashMap<>();
//根据手机号查询返回用户加密ID
SysCustomer customer = sysCustomerService.getCustomerByPhone(sysWxUserInfo.getPhone());
result.put("customerId", customer != null ? AesUtils.encrypt(customer.getId()+"", null) : null);
result.put("customerId", customer != null ? AesUtils.encrypt(customer.getId() + "", null) : null);
//查询未读消息数量
SysMessageNotice messageParam = new SysMessageNotice();
messageParam.setReadType(0);
@ -137,27 +129,28 @@ public class WechatAppletController extends BaseController {
/**
* 微信小程序获取客户打卡记录
*
* @param sysWxUserLog
* @return
*/
@GetMapping(value = "/getPunchLogs")
public AjaxResult getPunchLogs(SysWxUserLog sysWxUserLog) {
if(StringUtils.isEmpty(sysWxUserLog.getPhone()) && StringUtils.isEmpty(sysWxUserLog.getOpenid())){
return AjaxResult.error(5001, "缺少参数");
if (StringUtils.isEmpty(sysWxUserLog.getPhone()) && StringUtils.isEmpty(sysWxUserLog.getOpenid())) {
return AjaxResult.error(5001, "缺少参数");
}
//查询是否下单
SysCustomer param = new SysCustomer();
param.setPhone(sysWxUserLog.getPhone());
int orderCount = sysOrderService.getOrderCountByCustomer(param);
if(orderCount > 0){
if (orderCount > 0) {
Map<String, Object> result = new HashMap<>();
//今日是否已打卡
boolean isPunch = false;
startPage();
List<WxLogInfo> list = sysWxUserLogService.getWxLogInfoList(sysWxUserLog);
if(list.size() > 0){
if (list.size() > 0) {
WxLogInfo lastLog = list.get(0);
if(lastLog.getDate() != null && ChronoUnit.DAYS.between(DateUtils.stringToLocalDate(lastLog.getDate(), "yyyy-MM-dd"), LocalDate.now()) == 0) {
if (lastLog.getDate() != null && ChronoUnit.DAYS.between(DateUtils.stringToLocalDate(lastLog.getDate(), "yyyy-MM-dd"), LocalDate.now()) == 0) {
isPunch = true;
}
}
@ -171,13 +164,14 @@ public class WechatAppletController extends BaseController {
result.put("isPunch", isPunch);
result.put("tableDataInfo", tableDataInfo);
return AjaxResult.success(result);
}else{
} else {
return AjaxResult.error(5002, "未查询到相关订单信息");
}
}
/**
* 今日是否打卡
*
* @param openid
* @return
*/
@ -192,6 +186,7 @@ public class WechatAppletController extends BaseController {
/**
* 微信小程序打卡
*
* @param sysWxUserLog
* @return
*/
@ -202,24 +197,22 @@ public class WechatAppletController extends BaseController {
if (userInfo == null || StringUtils.isEmpty(userInfo.getPhone())) {
return AjaxResult.error("打卡失败");
}
if(sysWxUserLog.getId() == null){
if (sysWxUserLog.getId() == null) {
//查询今日是否已打卡
if(sysWxUserLog.getLogTime() == null){
if (sysWxUserLog.getLogTime() == null) {
sysWxUserLog.setLogTime(new Date());
}
int count = sysWxUserLogService.checkWxLogInfoCount(sysWxUserLog);
if(count > 0){
if (count > 0) {
return AjaxResult.error("今日已打卡,不可重复打卡");
}
return toAjax(sysWxUserLogService.insertSysWxUserLog(sysWxUserLog));
}else{
} else {
return toAjax(sysWxUserLogService.updateSysWxUserLog(sysWxUserLog));
}
}
public static final String[] imageName = {"breakfastImages", "lunchImages", "dinnerImages", "extraMealImages", "bodyImages"};
/**
* 获取微信用户记录详细信息
*/
@ -230,7 +223,7 @@ public class WechatAppletController extends BaseController {
SysWxUserLog param = new SysWxUserLog();
param.setId(Long.parseLong(id));
sysWxUserLog = sysWxUserLogService.getWxLogInfoDetailById(param);
if(sysWxUserLog == null){
if (sysWxUserLog == null) {
return AjaxResult.error("打卡记录不存在");
}
Map<String, List<String>> imageUrlMap = new HashMap<>();
@ -247,10 +240,10 @@ public class WechatAppletController extends BaseController {
imageUrlMap.put(imageName[3], extraMealImagesUrlList);
List<String> bodyImagesUrlList = StringUtils.isNotEmpty(sysWxUserLog.getBodyImages()) ? Arrays.asList(sysWxUserLog.getBodyImages().split("\\|")) : new ArrayList<>();
imageUrlMap.put(imageName[4], bodyImagesUrlList );
imageUrlMap.put(imageName[4], bodyImagesUrlList);
//生成预览链接
Map<String,List<String>> downUrlList = AliyunOSSUtils.generatePresignedUrl(imageUrlMap);
Map<String, List<String>> downUrlList = AliyunOSSUtils.generatePresignedUrl(imageUrlMap);
sysWxUserLog.setBreakfastImagesUrl(downUrlList.get(imageName[0]));
sysWxUserLog.setLunchImagesUrl(downUrlList.get(imageName[1]));
@ -275,12 +268,13 @@ public class WechatAppletController extends BaseController {
/**
* 处理返回值的ID加密
*
* @param list
* @return
*/
private void dealIdEnc(List<CustomerCaseResponse> list){
private void dealIdEnc(List<CustomerCaseResponse> list) {
for (CustomerCaseResponse cus : list) {
cus.setId(AesUtils.encrypt(cus.getId()+"", null));
cus.setId(AesUtils.encrypt(cus.getId() + "", null));
}
}
@ -318,9 +312,9 @@ public class WechatAppletController extends BaseController {
* 获取小程序展示的营养小知识列表
*/
@GetMapping(value = "/getNutritionQuestionList")
public AjaxResult getNutritionQuestionList(SysNutritionQuestion sysNutritionQuestion, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10")int pageSize) {
public AjaxResult getNutritionQuestionList(SysNutritionQuestion sysNutritionQuestion, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
sysNutritionQuestion.setShowFlag(1);
Map<String,Object> result = sysNutritionQuestionService.getNutritionQuestionListByKey(sysNutritionQuestion, pageNum, pageSize);
Map<String, Object> result = sysNutritionQuestionService.getNutritionQuestionListByKey(sysNutritionQuestion, pageNum, pageSize);
return AjaxResult.success(result);
}
@ -328,9 +322,8 @@ public class WechatAppletController extends BaseController {
* 新增营养小知识提问
*/
@PostMapping("/addAskNutritionQuestion")
public AjaxResult addAskNutritionQuestion(@RequestBody SysAskNutritionQuestion sysAskNutritionQuestion)
{
if(StringUtils.isEmpty(sysAskNutritionQuestion.getOpenid()) || StringUtils.isEmpty(sysAskNutritionQuestion.getQuestion())){
public AjaxResult addAskNutritionQuestion(@RequestBody SysAskNutritionQuestion sysAskNutritionQuestion) {
if (StringUtils.isEmpty(sysAskNutritionQuestion.getOpenid()) || StringUtils.isEmpty(sysAskNutritionQuestion.getQuestion())) {
return AjaxResult.error("添加失败");
}
return toAjax(sysAskNutritionQuestionService.insertSysAskNutritionQuestion(sysAskNutritionQuestion));
@ -342,11 +335,9 @@ public class WechatAppletController extends BaseController {
@GetMapping(value = "/getCustomerMessage")
public TableDataInfo getCustomerMessage(SysMessageNotice sysMessageNotice) {
startPage();
if(StringUtils.isNotEmpty(sysMessageNotice.getCustomerId())){
sysMessageNotice.setMessageCustomer(Long.parseLong(AesUtils.decrypt(sysMessageNotice.getCustomerId(), null)));
}else{
sysMessageNotice.setMessageCustomer(0L);
}
Long cusId = StringUtils.isNotEmpty(sysMessageNotice.getCustomerId()) ? Long.parseLong(AesUtils.decrypt(sysMessageNotice.getCustomerId())) : 0L;
sysMessageNotice.setMessageCustomer(cusId);
List<MessageNoticeResponse> list = sysMessageNoticeService.getCustomerMessage(sysMessageNotice);
return getDataTable(list);
}
@ -355,7 +346,7 @@ public class WechatAppletController extends BaseController {
* 更新用户通知消息已读状态
*/
@GetMapping(value = "/updateMessageReadStatus")
public AjaxResult updateMessageReadStatus(@RequestParam("id")Long id) {
public AjaxResult updateMessageReadStatus(@RequestParam("id") Long id) {
SysMessageNotice sysMessageNotice = new SysMessageNotice();
sysMessageNotice.setReadType(1);
sysMessageNotice.setId(id);
@ -413,4 +404,43 @@ public class WechatAppletController extends BaseController {
}
return result;
}
@PostMapping("/login")
public AjaxResult login(@RequestBody SysWxUserInfo sysWxUserInfo) {
if (StringUtils.isEmpty(sysWxUserInfo.getOpenid())) {
return AjaxResult.error("缺少参数openid");
}
SysWxUserInfo curWxUserInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserInfo.getOpenid());
// 第一次尝试匹配搜索sys_wx_user_info表尝试查找cus_id此时不需要手机号
if (StringUtils.isEmpty(sysWxUserInfo.getPhone()) && (StringUtils.isNull(curWxUserInfo) || StringUtils.isNull(curWxUserInfo.getCusId()))) {
// 如果没找到任何信息,此时为未登录过的新用户 || 没有cusId没有创建用户信息
return AjaxResult.error(5000, "需要手机号进一步匹配");
}
// 第二次尝试匹配带上手机号先去sys_customer查找找到就更新sys_wx_user_info表并返回一系列登录后的数据
if (StringUtils.isNotEmpty(sysWxUserInfo.getPhone())) {
SysCustomer sysCustomer = iSysCustomerService.getCustomerByPhone(sysWxUserInfo.getPhone());
if (StringUtils.isNull(sysCustomer)) {
return AjaxResult.error(5003, "未查到用户信息,请联系销售顾问");
}
if (StringUtils.isNull(curWxUserInfo)) {
// 新增sys_wx_user_info
sysWxUserInfo.setCusId(sysCustomer.getId());
sysWxUserInfo.setCreateTime(DateUtils.getNowDate());
sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
} else {
// 更新sys_wx_user_info数据
curWxUserInfo.setCusId(sysCustomer.getId());
curWxUserInfo.setUpdateTime(DateUtils.getNowDate());
sysWxUserInfoService.updateSysWxUserInfo(curWxUserInfo);
}
}
curWxUserInfo.setCustomerId(AesUtils.encrypt(curWxUserInfo.getCusId().toString()));
// 并返回一系列登录后的数据
return AjaxResult.success(curWxUserInfo);
}
}