server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -213,6 +213,8 @@ public static final String WX_PLATFORM_ACCESS_TOKEN = "WX_PLATFORM_ACCESS_TOKEN"; public static final String WX_PLATFORM_APPID = "WX_PLATFORM_APPID"; public static final String WX_PLATFORM_SECRET = "WX_PLATFORM_SECRET"; public static final String WX_PLATFORM_AUDIT_VISIT = "WX_PLATFORM_AUDIT_VISIT"; public static final String WX_PLATFORM_PREFIX = "WX_PLATFORM_PREFIX"; server/dmvisit_service/src/main/java/com/doumee/core/wx/WxMiniConfig.java
@@ -1,59 +1,59 @@ package com.doumee.core.wx; import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; import com.doumee.config.mybatis.SpringUtils; import com.github.binarywang.wxpay.config.WxPayConfig; import com.github.binarywang.wxpay.constant.WxPayConstants; import com.github.binarywang.wxpay.service.WxPayService; import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; //import cn.binarywang.wx.miniapp.api.WxMaService; //import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl; //import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl; //import com.doumee.config.mybatis.SpringUtils; //import com.github.binarywang.wxpay.config.WxPayConfig; //import com.github.binarywang.wxpay.constant.WxPayConstants; //import com.github.binarywang.wxpay.service.WxPayService; //import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl; //import org.apache.commons.lang3.StringUtils; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.context.annotation.Configuration; // //import javax.annotation.PostConstruct; /** * 微信å°ç¨åºç»ä»¶ */ @Configuration //@Configuration public class WxMiniConfig { /********微信å°ç¨åºæå¡**********/ public static WxMaService wxMaService; /********微信å°ç¨åºæ¯ä»**********/ public static WxPayService wxPayService; /********微信APPæ¯ä»**********/ public static WxPayService wxAppPayService; @Autowired private WxPayProperties wxPayProperties; public static WxMiniConfig me() { return SpringUtils.get().getBean(WxMiniConfig.class); } @PostConstruct void init() { this.load_WxMaService(); // this.load_wxPayService(); // this.load_wxAppPayService(); } /** * åå§å微信å°ç¨åº */ public void load_WxMaService() { WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId())); config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret())); config.setMsgDataFormat("JSON"); //config.setToken(""); //config.setAesKey(""); WxMaService wxMaService = new WxMaServiceImpl(); wxMaService.setWxMaConfig(config); this.wxMaService = wxMaService; } // /********微信å°ç¨åºæå¡**********/ // public static WxMaService wxMaService; // /********微信å°ç¨åºæ¯ä»**********/ // public static WxPayService wxPayService; // /********微信APPæ¯ä»**********/ // public static WxPayService wxAppPayService; // // // @Autowired // private WxPayProperties wxPayProperties; // // public static WxMiniConfig me() { // return SpringUtils.get().getBean(WxMiniConfig.class); // } // // @PostConstruct // void init() { // this.load_WxMaService(); //// this.load_wxPayService(); //// this.load_wxAppPayService(); // } // /** // * åå§å微信å°ç¨åº // */ // public void load_WxMaService() { // WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl(); // config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId())); // config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret())); // config.setMsgDataFormat("JSON"); // //config.setToken(""); // //config.setAesKey(""); // WxMaService wxMaService = new WxMaServiceImpl(); // wxMaService.setWxMaConfig(config); // this.wxMaService = wxMaService; // } /** * åå§å微信å°ç¨åºæ¯ä» server/dmvisit_service/src/main/java/com/doumee/core/wx/WxMiniUtilService.java
@@ -3,10 +3,10 @@ import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.utils.ID; import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest; import com.github.binarywang.wxpay.bean.result.WxPayRefundResult; import com.github.binarywang.wxpay.exception.WxPayException; //import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest; //import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest; //import com.github.binarywang.wxpay.bean.result.WxPayRefundResult; //import com.github.binarywang.wxpay.exception.WxPayException; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -20,34 +20,34 @@ @Slf4j public class WxMiniUtilService { /** * 订åå¾®ä¿¡éæ¬¾ * orderNo:åæ·è®¢åå· * totalPriceï¼è®¢åæ»éé¢ * refundPriceï¼é款éé¢ */ @Transactional(rollbackFor = Exception.class) public static String wxRefund(String orderNo, BigDecimal totalPrice, BigDecimal refundPrice) { try { // åé鿬¾è¯·æ± String refNum = ID.nextGUID(); WxPayRefundRequest request = new WxPayRefundRequest(); request.setOutTradeNo(orderNo); request.setOutRefundNo(refNum); // request.setTotalFee(2); // request.setRefundFee(1); request.setTotalFee(BaseWxPayRequest.yuanToFen(totalPrice.toString())); request.setRefundFee(BaseWxPayRequest.yuanToFen(refundPrice.toString())); WxPayRefundResult response = WxMiniConfig.wxPayService.refund(request); if ("SUCCESS".equals(response.getReturnCode()) && "SUCCESS".equals(response.getResultCode())) { return refNum; } else { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),response.getErrCode() + response.getErrCodeDes()); } } catch (WxPayException e) { e.printStackTrace(); } throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鿬¾åçå¼å¸¸è¯·è系管çå"); } // // /** // * 订åå¾®ä¿¡éæ¬¾ // * orderNo:åæ·è®¢åå· // * totalPriceï¼è®¢åæ»éé¢ // * refundPriceï¼é款éé¢ // */ // @Transactional(rollbackFor = Exception.class) // public static String wxRefund(String orderNo, BigDecimal totalPrice, BigDecimal refundPrice) { // try { // // åé鿬¾è¯·æ± // String refNum = ID.nextGUID(); // WxPayRefundRequest request = new WxPayRefundRequest(); // request.setOutTradeNo(orderNo); // request.setOutRefundNo(refNum); // // request.setTotalFee(2); // // request.setRefundFee(1); // request.setTotalFee(BaseWxPayRequest.yuanToFen(totalPrice.toString())); // request.setRefundFee(BaseWxPayRequest.yuanToFen(refundPrice.toString())); // WxPayRefundResult response = WxMiniConfig.wxPayService.refund(request); // if ("SUCCESS".equals(response.getReturnCode()) && "SUCCESS".equals(response.getResultCode())) { // return refNum; // } else { // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),response.getErrCode() + response.getErrCodeDes()); // } // } catch (WxPayException e) { // e.printStackTrace(); // } // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鿬¾åçå¼å¸¸è¯·è系管çå"); // } } server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ package com.doumee.core.wx.wxPlat; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.Constants; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl; import me.chanjar.weixin.mp.config.WxMpConfigStorage; import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/27 9:30 */ @Configuration public class WxPlatConfig { @Autowired private SystemDictDataBiz systemDictDataBiz; @Bean public WxMpConfigStorage wxMpConfigStorage() { WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl(); // å ¬ä¼å·appId configStorage.setAppId(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode()); // å ¬ä¼å·appSecret configStorage.setSecret(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode()); // å ¬ä¼å·Token configStorage.setToken(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode()); // å ¬ä¼å·EncodingAESKey // configStorage.setAesKey(); return configStorage; } /** * 声æå®ä¾ * * @return */ @Bean public WxMpService wxMpService() { WxMpService wxMpService = new WxMpServiceImpl(); wxMpService.setWxMpConfigStorage(wxMpConfigStorage()); return wxMpService; } } server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.doumee.core.wx.wxPlat; import com.doumee.dao.business.model.Visits; import lombok.extern.slf4j.Slf4j; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; /** * å¾®ä¿¡å ¬ä¼å·éç¥ * * @Author : Rk * @create 2023/12/27 9:19 */ @Slf4j @Component public class WxPlatNotice { /** * å¾®ä¿¡å ¬ä¼å·APIçService */ private final WxMpService wxMpService; public WxPlatNotice(WxMpService wxMpService) { this.wxMpService = wxMpService; } /** * 访客记å½å®¡æ¹ä¸å¡éç¥ */ public Boolean sendVisitAuditTemplateNotice(Visits visits,String prefix,String tempId){ if(StringUtils.isBlank(visits.getOpenid())){ return false; } WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(visits.getOpenid()) .templateId(tempId) .url(prefix + "pages/appointmentDetails/appointmentDetails?id="+visits.getId()) .build(); String thing1 = "å¾ å®¡æ¹"; if(visits.getStatus()==2){ thing1 = "å®¡æ ¸éè¿"; }else if(visits.getStatus()==3){ thing1 = "å®¡æ ¸ä¸éè¿"; } // æ·»å æ¨¡æ¿æ°æ® templateMessage.addData(new WxMpTemplateData("thing1", thing1)) .addData(new WxMpTemplateData("thing2", visits.getName())) .addData(new WxMpTemplateData("phone_number6", visits.getPhone())); String msgId = null; try { // å鿍¡æ¿æ¶æ¯ msgId = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage); } catch (WxErrorException e) { e.printStackTrace(); } log.warn("·==++--·æ¨é微信模æ¿ä¿¡æ¯ï¼{}·--++==·", msgId != null ? "æå" : "失败"); return msgId != null; } } server/dmvisit_service/src/main/java/com/doumee/dao/web/response/VisitDetailVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,39 @@ package com.doumee.dao.web.response; import com.doumee.dao.business.model.Visits; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 11:19 */ @Data public class VisitDetailVO { @ApiModelProperty(value = "审æ¹ç¶æ") private Integer status; @ApiModelProperty(value = "被访人åç§°") private String visitUserName; @ApiModelProperty(value = "æè®¿äºç±") private String visitReason; @ApiModelProperty(value = "车è¾ä¿¡æ¯") private String carNos; @ApiModelProperty(value = "é¨ç¦ç»åç§°") private List<String> doorGroupName; @ApiModelProperty(value = "æè®¿æ¶é´") private String visitTime; @ApiModelProperty(value = "é访人åä¿¡æ¯") private List<Visits> withVisitsList; } server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -3,6 +3,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Visits; import com.doumee.dao.web.response.VisitDetailVO; import java.util.List; /** @@ -98,4 +100,11 @@ * @return long */ long count(Visits visits); /** * 访客记å½è¯¦æ - å¾®ä¿¡å ¬ä¼å· * @param id * @return */ VisitDetailVO getVisitDetail(Integer id); } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -36,7 +36,6 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -27,7 +27,6 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -45,7 +45,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.shiro.SecurityUtils; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
@@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -22,6 +22,7 @@ import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.core.wx.wxPlat.WxPlatNotice; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.DeviceRoleMapper; import com.doumee.dao.business.MemberMapper; @@ -30,6 +31,7 @@ import com.doumee.dao.business.join.DeviceJoinMapper; import com.doumee.dao.business.join.VisitsJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.web.response.VisitDetailVO; import com.doumee.service.business.VisitsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -72,6 +74,8 @@ @Autowired private DeviceJoinMapper deviceJoinMapper; @Autowired private WxPlatNotice wxPlatNotice; @Override public Integer create(Visits visits) { @@ -94,7 +98,9 @@ getHkDeviceRoles(visits); //æ£éªæè®¿äººæ¯å¦åæ³ Member visitMember = isValideVisitedUser(visits.getReceptMemberId()); if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType()) &&!IdcardUtil.isValidCard(visits.getIdcardNo())){ if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&visits.getIdcardNo().length()!=18 //&&!IdcardUtil.isValidCard(visits.getIdcardNo()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼èº«ä»½è¯å·ç æè¯¯ï¼è¯·æ ¸å®åéè¯ï¼"); } Date date = new Date(); @@ -114,11 +120,15 @@ if(StringUtils.isNotBlank(erpId)){ visits.setErpId(erpId); }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼åèµ·æè®¿å®¡æ¹ç³è¯·å¤±è´¥ï¼"); // throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼åèµ·æè®¿å®¡æ¹ç³è¯·å¤±è´¥ï¼"); } visitsMapper.insert(visits); initWithVisitInfo(visits); updateProblemLog(visits,problemLog,member); //åéå¾®ä¿¡å ¬ä¼å·éç¥ wxPlatNotice.sendVisitAuditTemplateNotice(visits, systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(), systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode()); return visits.getId(); } @@ -664,4 +674,43 @@ return PageData.from(result); } @Override public VisitDetailVO getVisitDetail(Integer id){ Visits visits = visitsMapper.selectById(id); if(Objects.isNull(visits)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } Member member = memberMapper.selectById(visits.getReceptMemberId()); if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°è¢«è®¿å工信æ¯"); } VisitDetailVO visitDetailVO = new VisitDetailVO(); visitDetailVO.setStatus(visits.getStatus()); visitDetailVO.setCarNos(visits.getCarNos()); visitDetailVO.setVisitUserName(member.getName()); visitDetailVO.setVisitReason(visits.getReason()); visitDetailVO.setVisitTime(DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm") + " è³ " + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm") ); if(StringUtils.isNotBlank(visits.getDoors())){ List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .select(DeviceRole::getName) .eq(DeviceRole::getIsdeleted,Constants.ZERO) .in(DeviceRole::getId,visits.getDoors().split(","))); if(CollectionUtils.isNotEmpty(deviceRoleList)){ visitDetailVO.setDoorGroupName( deviceRoleList.stream().map(m->m.getName()).collect(Collectors.toList()) ); } } visitDetailVO.setWithVisitsList(visitsMapper.selectList(new QueryWrapper<Visits>().lambda() .select(Visits::getName,Visits::getPhone) .eq(Visits::getParentId,id))); return visitDetailVO; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -26,7 +26,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -28,7 +28,6 @@ import com.hikvision.artemis.sdk.config.ArtemisConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemUserServiceImpl.java
@@ -1,6 +1,5 @@ package com.doumee.service.system.impl; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; server/dmvisit_web/src/main/java/com/doumee/api/web/ProblemController.java
@@ -2,6 +2,7 @@ import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.core.wx.wxPlat.WxPlatNotice; import com.doumee.dao.web.reqeust.FinishAnswerDTO; import com.doumee.dao.web.response.ProblemsVO; import com.doumee.service.business.ProblemLogService; @@ -36,6 +37,9 @@ @Autowired private ProblemLogService problemLogService; @Autowired private WxPlatNotice wxPlatNotice; @ApiOperation(value = "è·åé¢ç®æ°æ®", notes = "H5") @GetMapping("/getProblemsVO") @@ -54,4 +58,6 @@ } } server/dmvisit_web/src/main/java/com/doumee/api/web/UnitController.java
@@ -16,7 +16,6 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
@@ -6,6 +6,7 @@ import com.doumee.dao.business.model.Visits; import com.doumee.dao.web.reqeust.CheckVisitedDTO; import com.doumee.dao.web.response.MemberVO; import com.doumee.dao.web.response.VisitDetailVO; import com.doumee.dao.web.response.WxAuthorizeVO; import com.doumee.service.business.MemberService; import com.doumee.service.business.VisitsService; @@ -14,7 +15,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -66,4 +67,9 @@ } @ApiOperation(value = "访客记å½è¯¦æ ", notes = "访客记å½è¯¦æ ") @GetMapping("/detail") public ApiResponse<VisitDetailVO> detail(@RequestParam Integer id) { return ApiResponse.success("æ¥è¯¢æå", visitsService.getVisitDetail(id)); } } server/pom.xml
@@ -216,18 +216,18 @@ <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> <!-- WeChat å°ç¨åº --> <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-miniapp</artifactId> <version>${weixin-java-miniapp.version}</version> </dependency> <!-- WeChat æ¯ä» --> <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-pay</artifactId> <version>${weixin-java-pay.version}</version> </dependency> <!-- <!– WeChat å°ç¨åº –>--> <!-- <dependency>--> <!-- <groupId>com.github.binarywang</groupId>--> <!-- <artifactId>weixin-java-miniapp</artifactId>--> <!-- <version>${weixin-java-miniapp.version}</version>--> <!-- </dependency>--> <!-- <!– WeChat æ¯ä» –>--> <!-- <dependency>--> <!-- <groupId>com.github.binarywang</groupId>--> <!-- <artifactId>weixin-java-pay</artifactId>--> <!-- <version>${weixin-java-pay.version}</version>--> <!-- </dependency>--> <!-- é¿éäºOSS--> <dependency> @@ -281,6 +281,12 @@ <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- WxJavaå ¬ä¼å· --> <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>3.6.0</version> </dependency> </dependencies> <build>