diff --git a/propertyManagement-admin/src/main/java/com/propertyManagement/web/controller/business/WxClockController.java b/propertyManagement-admin/src/main/java/com/propertyManagement/web/controller/business/WxClockController.java index dadb3bf2d019a6b79e890e39215bc8caeea486cc..856e61d2e0a6db6202552688cb8e62375faa68ee 100644 --- a/propertyManagement-admin/src/main/java/com/propertyManagement/web/controller/business/WxClockController.java +++ b/propertyManagement-admin/src/main/java/com/propertyManagement/web/controller/business/WxClockController.java @@ -1,9 +1,17 @@ package com.propertyManagement.web.controller.business; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.propertyManagement.business.domain.WxClock; import com.propertyManagement.business.domain.bo.WxClockBo; import com.propertyManagement.business.domain.vo.WxClockVo; +import com.propertyManagement.business.domain.vo.WxClockVo2; +import com.propertyManagement.business.mapper.WxClockMapper; import com.propertyManagement.business.service.IWxClockService; +import com.propertyManagement.business.support.util.AuthUtil; import com.propertyManagement.common.annotation.Log; import com.propertyManagement.common.annotation.RepeatSubmit; import com.propertyManagement.common.core.controller.BaseController; @@ -22,7 +30,9 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.Arrays; +import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 打卡 @@ -38,6 +48,8 @@ public class WxClockController extends BaseController { private final IWxClockService iWxClockService; + private final WxClockMapper wxClockMapper; + /** * 查询打卡列表 */ @@ -47,6 +59,37 @@ public class WxClockController extends BaseController { return iWxClockService.queryPageList(bo, pageQuery); } + /** + * 查询打卡列表 + */ + @GetMapping("/info") + public R info(@NotNull Long accountId ,@NotNull(message = "日期不能为空") String date) { + WxClockVo2 wxClockVo2 = new WxClockVo2(); + // 解析传入的日期参数 + DateTime inputDate = DateUtil.parse(date, "yyyy-MM"); + // 获取本月第一天和最后一天 + DateTime beginOfMonth = DateUtil.beginOfMonth(inputDate); + DateTime endOfMonth = DateUtil.endOfMonth(inputDate); + // 生成本月所有日期列表 + List dateTimes = DateUtil.rangeToList(beginOfMonth, endOfMonth, DateField.DAY_OF_MONTH); + // 并行处理提高效率 + List clockRecordList = dateTimes.parallelStream() + .map(item -> { + String dateStr = DateUtil.format(item, "yyyy-MM-dd"); + int count = Math.toIntExact(wxClockMapper.selectCount(Wrappers.lambdaQuery() + .apply("DATE(clock_time) = {0}", dateStr) + .eq(WxClock::getAccountId, accountId))); + return new WxClockVo2.ClockRecord(dateStr, count > 0 ? 1 : 0); + }) + .collect(Collectors.toList()); + // 计算打卡和缺卡天数 + long clockDays = clockRecordList.stream().filter(r -> r.getClockState() == 1).count(); + wxClockVo2.setClockDay((int) clockDays); + wxClockVo2.setNoRecordDay(clockRecordList.size() - (int) clockDays); + wxClockVo2.setClockRecordList(clockRecordList); + return R.ok(wxClockVo2); + } + /** * 导出打卡列表 */ diff --git a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/WxPayRecord.java b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/WxPayRecord.java index 7f34fd2dca019767ccf2c64351f1d085c6ca7c97..dd2fd10488f88831bc527fa22f7451effcb19547 100644 --- a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/WxPayRecord.java +++ b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/WxPayRecord.java @@ -100,9 +100,5 @@ public class WxPayRecord extends BaseEntity { * 平台支付流水号 */ private String outTradeNo; - /** - * 通道支付流水号 - */ - private String tradeNo; } diff --git a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/CodeLoginBo.java b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/CodeLoginBo.java index f6dc3b10a18fae59790b0a7de75f121098908620..93a0b958461ed83738e6679a2ead9f90be2b11c3 100644 --- a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/CodeLoginBo.java +++ b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/CodeLoginBo.java @@ -25,4 +25,14 @@ public class CodeLoginBo { private double longitude; // 经度 private double latitude; // 纬度 + /** + * 加密数据 + */ + private String encryptedData; + + /** + * 偏移量 + */ + private String iv; + } diff --git a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxPayRecordBo.java b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxPayRecordBo.java index fa5d3b4703fc39a6e114e7329bfe6c61ea4d2ce8..cb7fea874068410b8589acbde2ada3519f596ee5 100644 --- a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxPayRecordBo.java +++ b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxPayRecordBo.java @@ -133,10 +133,4 @@ public class WxPayRecordBo extends BaseEntity { */ private String outTradeNo; - /** - * 通道支付流水号 - */ - private String tradeNo; - - } diff --git a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxProprietorLedgerBo.java b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxProprietorLedgerBo.java index 262df98c883ca0c8a4ebb4f61e70f3d10304dffe..3f891221eef179ce5cf16abfd96a8e7a40c6159c 100644 --- a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxProprietorLedgerBo.java +++ b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/bo/WxProprietorLedgerBo.java @@ -96,7 +96,6 @@ public class WxProprietorLedgerBo extends BaseEntity { * 出生日期 */ @JsonFormat(pattern = "YYYY-MM-dd") - @NotNull(message = "出生日期不能为空", groups = { AddGroup.class, EditGroup.class }) private Date birthDate; /** @@ -108,7 +107,6 @@ public class WxProprietorLedgerBo extends BaseEntity { /** * 户籍地 */ - @NotBlank(message = "户籍地不能为空", groups = { AddGroup.class, EditGroup.class }) private String registerAddress; /** diff --git a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/vo/WxPayRecordVo.java b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/vo/WxPayRecordVo.java index a0aaef8136e9b47feac8f84c5d0a2961a9e2adea..805c173704a8d9a76fe561770b7088fed89a29f3 100644 --- a/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/vo/WxPayRecordVo.java +++ b/propertyManagement-business/src/main/java/com/propertyManagement/business/domain/vo/WxPayRecordVo.java @@ -122,11 +122,5 @@ public class WxPayRecordVo implements Serializable { @ExcelProperty(value = "平台支付流水号") private String outTradeNo; - /** - * 通道支付流水号 - */ - @ExcelProperty(value = "通道支付流水号") - private String tradeNo; - } diff --git a/propertyManagement-business/src/main/java/com/propertyManagement/business/service/WxUserLoginService.java b/propertyManagement-business/src/main/java/com/propertyManagement/business/service/WxUserLoginService.java index 9270a18cbdc3f7bbf2ad8a921082ce6022910175..1e316b68e92413d9f23a88de6e01f11894eb9b85 100644 --- a/propertyManagement-business/src/main/java/com/propertyManagement/business/service/WxUserLoginService.java +++ b/propertyManagement-business/src/main/java/com/propertyManagement/business/service/WxUserLoginService.java @@ -3,7 +3,9 @@ package com.propertyManagement.business.service; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; +import cn.binarywang.wx.miniapp.bean.WxMaUserInfo; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.propertyManagement.business.domain.WxFamilyMember; import com.propertyManagement.business.domain.WxProprietorLedger; @@ -145,8 +147,14 @@ public class WxUserLoginService { } newUser.setOpenId(openId); newUser.setMobile(phoneNumber); - newUser.setNickName(phoneNumber); - newUser.setAvatar("https://llwy-1356792742.cos.ap-beijing.myqcloud.com/%E5%88%A9%E9%BE%99%E7%89%A9%E4%B8%9A%20logo.png"); + if (StringUtils.isNotBlank(bo.getEncryptedData()) && StringUtils.isNotBlank(bo.getIv())) { + WxMaUserInfo userInfo = wxMaDormService.getUserService().getUserInfo(session.getSessionKey(), bo.getEncryptedData(), bo.getIv()); + newUser.setNickName(userInfo.getNickName() + "_" + phoneNumber); + newUser.setAvatar(userInfo.getAvatarUrl()); + }else { + newUser.setNickName(phoneNumber); + newUser.setAvatar("https://llwy-1356792742.cos.ap-beijing.myqcloud.com/%E5%88%A9%E9%BE%99%E7%89%A9%E4%B8%9A%20logo.png"); + } if (bo.getLongitude() > 0 && bo.getLatitude() > 0) { newUser.setLongitude(bo.getLongitude()); newUser.setLatitude(bo.getLatitude()); diff --git a/propertyManagement-business/src/main/java/com/propertyManagement/business/service/impl/WxPayRecordServiceImpl.java b/propertyManagement-business/src/main/java/com/propertyManagement/business/service/impl/WxPayRecordServiceImpl.java index a8b73a17b4e4e31cfc3dd4512c965f431eb370ce..80a2a7668c0fcabcd76d886c225a73d78fe11d26 100644 --- a/propertyManagement-business/src/main/java/com/propertyManagement/business/service/impl/WxPayRecordServiceImpl.java +++ b/propertyManagement-business/src/main/java/com/propertyManagement/business/service/impl/WxPayRecordServiceImpl.java @@ -155,6 +155,9 @@ public class WxPayRecordServiceImpl implements IWxPayRecordService { recordLambdaQueryWrapper.eq(WxPayRecord::getOrderId, orderId); WxPayRecord record = baseMapper.selectOne(recordLambdaQueryWrapper); record.setPayState(PayState.YES.getCode()); + record.setPayChannelCode(payChannelCode); + record.setPayMchCode(payMchCode); + record.setPayAppCode(payAppCode); baseMapper.updateById(record); /** * 更新订单状态 @@ -258,7 +261,6 @@ public class WxPayRecordServiceImpl implements IWxPayRecordService { lqw.eq(bo.getPayAmount() != null, WxPayRecord::getPayAmount, bo.getPayAmount()); lqw.eq(bo.getPayState() != null, WxPayRecord::getPayState, bo.getPayState()); lqw.eq(StringUtils.isNotBlank(bo.getOutTradeNo()), WxPayRecord::getOutTradeNo, bo.getOutTradeNo()); - lqw.eq(StringUtils.isNotBlank(bo.getTradeNo()), WxPayRecord::getTradeNo, bo.getTradeNo()); return lqw; } diff --git a/propertyManagement-ui/package.json b/propertyManagement-ui/package.json index 98f5a264c3a04647938e9f65acbe657a3a4ac364..dc56b015c63b93aaa74ba52b64cbce9615d59452 100644 --- a/propertyManagement-ui/package.json +++ b/propertyManagement-ui/package.json @@ -40,6 +40,7 @@ "axios": "0.24.0", "clipboard": "2.0.8", "core-js": "3.25.3", + "dayjs": "^1.11.13", "echarts": "5.4.0", "element-ui": "2.15.13", "file-saver": "2.0.5", diff --git a/propertyManagement-ui/src/api/business/clock.js b/propertyManagement-ui/src/api/business/clock.js index 83fdee67849c5ced01dc73024c7f182e4efd3be1..125fca75a85bed4d7cb8083b9db61fbaca9d3d14 100644 --- a/propertyManagement-ui/src/api/business/clock.js +++ b/propertyManagement-ui/src/api/business/clock.js @@ -9,6 +9,15 @@ export function listClock(query) { }) } +// 查询打卡列表 +export function listClockInfo(params) { + return request({ + url: '/business/clock/info', + method: 'get', + params: params + }) +} + // 查询打卡详细 export function getClock(clockId) { return request({ diff --git a/propertyManagement-ui/src/views/business/clock/index.vue b/propertyManagement-ui/src/views/business/clock/index.vue index 312336410474f98a8c3a7656d6995b5cbd8b8fd2..46a1249c90ce756213eec2b3518a3bc9ba3c705d 100644 --- a/propertyManagement-ui/src/views/business/clock/index.vue +++ b/propertyManagement-ui/src/views/business/clock/index.vue @@ -114,8 +114,8 @@ - - + + + 取 消 + + + + + + diff --git a/propertyManagement-ui/src/views/business/payRecord/index.vue b/propertyManagement-ui/src/views/business/payRecord/index.vue index 117426e00d58bb160e16e49a3024b4d19b1ef8a1..76e9399bbdbb7329f31b7fcd0661dc3e54dbfdaf 100644 --- a/propertyManagement-ui/src/views/business/payRecord/index.vue +++ b/propertyManagement-ui/src/views/business/payRecord/index.vue @@ -22,14 +22,14 @@ @keyup.enter.native="handleQuery" /> - - - + + + + + + + + - + - +