微信小程序打卡接口

This commit is contained in:
xiezhijun
2021-03-22 15:51:55 +08:00
parent 636a808d3a
commit 1d66f7334a
6 changed files with 200 additions and 1 deletions

View File

@ -0,0 +1,160 @@
package com.stdiet.web.controller.custom;
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.utils.StringUtils;
import com.stdiet.common.utils.oss.AliyunOSSUtils;
import com.stdiet.common.utils.sign.AesUtils;
import com.stdiet.custom.domain.*;
import com.stdiet.custom.dto.response.CustomerCaseResponse;
import com.stdiet.custom.page.WxLogInfo;
import com.stdiet.custom.service.ISysCustomerCaseService;
import com.stdiet.custom.service.ISysOrderService;
import com.stdiet.custom.service.ISysWxUserInfoService;
import com.stdiet.custom.service.ISysWxUserLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 微信小程序统一Controller
*/
@RestController
@RequestMapping("/wx/applet")
public class WechatAppletController extends BaseController {
@Autowired
private ISysCustomerCaseService sysCustomerCaseService;
@Autowired
private ISysWxUserLogService sysWxUserLogService;
@Autowired
private ISysWxUserInfoService sysWxUserInfoService;
@Autowired
private ISysOrderService sysOrderService;
/**
* 查询微信小程序中展示的客户案例
*/
@GetMapping("/caseList")
public TableDataInfo caseList(SysCustomerCase sysCustomerCase)
{
startPage();
sysCustomerCase.setKeywordArray(StringUtils.isNotEmpty(sysCustomerCase.getKeyword()) ? sysCustomerCase.getKeyword().split(",") : null);
List<CustomerCaseResponse> list = sysCustomerCaseService.getWxCustomerCaseList(sysCustomerCase);
//处理ID加密
dealIdEnc(list);
return getDataTable(list);
}
/**
* 查询客户案例文件列表
*/
@GetMapping("/getFileByCaseId")
public AjaxResult getFileByCaseId(@RequestParam("caseId")String caseId)
{
Long id = StringUtils.isNotEmpty(caseId) ? Long.parseLong(AesUtils.decrypt(caseId, null)) : null;
CustomerCaseResponse customerCaseResponse = new CustomerCaseResponse();
customerCaseResponse.setId(caseId);
if(id != null){
List<SysCustomerCaseFile> list = sysCustomerCaseService.getFileListByCaseId(id);
List<String> fileUrl = new ArrayList<>();
for (SysCustomerCaseFile caseFile : list) {
fileUrl.add(caseFile.getFileUrl());
}
List<String> downUrlList = AliyunOSSUtils.generatePresignedUrl(fileUrl);
customerCaseResponse.setFileList(downUrlList);
}else{
customerCaseResponse.setFileList(new ArrayList<>());
}
return AjaxResult.success(customerCaseResponse);
}
/**
* 同步客户信息,返回订单数量
* @param sysWxUserInfo
* @return
*/
@PostMapping("/synchroCustomerInfo")
public AjaxResult synchroCustomerInfo(@RequestBody SysWxUserInfo sysWxUserInfo) {
if(StringUtils.isEmpty(sysWxUserInfo.getOpenid()) || StringUtils.isEmpty(sysWxUserInfo.getPhone())){
return AjaxResult.error("手机号为空");
}
// 查询微信用户
SysWxUserInfo userInfo = sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserInfo.getOpenid());
if(userInfo != null){
//更新数据
sysWxUserInfoService.updateSysWxUserInfo(sysWxUserInfo);
}else{
sysWxUserInfoService.insertSysWxUserInfo(sysWxUserInfo);
}
//查询是否下单
SysCustomer param = new SysCustomer();
param.setPhone(sysWxUserInfo.getPhone());
int orderCount = sysOrderService.getOrderCountByCustomer(param);
//返回订单数量
return AjaxResult.success(orderCount);
}
/**
* 微信小程序获取客户打卡记录
* @param sysWxUserLog
* @return
*/
@GetMapping(value = "/getPunchLogs")
public TableDataInfo getPunchLogs(SysWxUserLog sysWxUserLog) {
startPage();
List<WxLogInfo> list = sysWxUserLogService.selectWxLogInfoList(sysWxUserLog);
return getDataTable(list);
}
/**
* 今日是否打卡
* @param openid
* @return
*/
@GetMapping(value = "/checkNowPunchLog/{openid}")
public AjaxResult checkNowPunchLog(@PathVariable String openid) {
int count = StringUtils.isEmpty(openid) ? 0 : sysWxUserLogService.checkWxLogInfoCount(openid);
return AjaxResult.success(count);
}
/**
* 微信小程序打卡
* @param sysWxUserLog
* @return
*/
@PostMapping(value = "/addPunchLog")
public AjaxResult addPunchLog(@RequestBody SysWxUserLog sysWxUserLog) {
// 查询微信用户
SysWxUserInfo userInfo = StringUtils.isEmpty(sysWxUserLog.getOpenid()) ? null : sysWxUserInfoService.selectSysWxUserInfoById(sysWxUserLog.getOpenid());
if (userInfo == null) {
return AjaxResult.error("不存在客户");
}
//查询今日是否已打卡
int count = sysWxUserLogService.checkWxLogInfoCount(sysWxUserLog.getOpenid());
if(count > 0){
return AjaxResult.error("今日已打卡,不可重复打卡");
}
sysWxUserLog.setLogTime(DateTimeUtil.getCurrentTimeDate());
return toAjax(sysWxUserLogService.insertSysWxUserLog(sysWxUserLog));
}
/**
* 处理返回值的ID加密
* @param list
* @return
*/
private void dealIdEnc(List<CustomerCaseResponse> list){
for (CustomerCaseResponse cus : list) {
cus.setId(AesUtils.encrypt(cus.getId()+"", null));
}
}
}