server/dmvisit_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -136,7 +136,7 @@ systemUser.setSalt(salt); // åå»ºç¨æ·è®°å½ systemUser.setType(Constants.UserType.SYSTEM.getKey()); systemUser.setType(Constants.ZERO); Integer userId = systemUserService.create(systemUser); // 设置é¨é¨ if (systemUser.getDepartmentId() != null) { server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1,12 +1,12 @@ package com.doumee.core.utils; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import java.math.BigDecimal; import java.net.URLDecoder; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.text.SimpleDateFormat; import java.util.Date; public class Constants { @@ -22,6 +22,55 @@ public static final String HK_PUSH_URL = "HK_PUSH_URL"; public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ; //被æè®¿äººä¿¡æ¯æ ¡éªæ¹å¼ï¼0ææºå·åç¬æ ¡éª 1ææºå·åå§åç»åæ ¡éªï¼ public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID"; public static final String SELECT_DOORS_VISIT_REQUIRED = "SELECT_DOORS_VISIT_REQUIRED"; public static final String SELECT_DOORS_LW_REQUIRED = "SELECT_DOORS_LW_REQUIRED"; public static final String PROBLEM_LW_REQUIRED = "PROBLEM_LW_REQUIRED"; public static final String PROBLEM_VISIT_REQUIRED = "PROBLEM_VISIT_REQUIRED"; public static final String MDJ_LW_REQUIRED = "MDJ_LW_REQUIRED"; public static final String MDJ_VISIT_REQUIRED = "MDJ_VISIT_REQUIRED"; public static final String EDS_PWD ="!@#$%^&QWERTY" ; public static Date getBirthdyByCardNo(String idCard){ if(idCard ==null || idCard.length()<14){ return null; } Date birthday = null; // è§£æä¸ºæ¥æå¯¹è±¡ String birthdayString = idCard.substring(6, 14); // æªå身份è¯å·çåå 使°åä½ä¸ºåºçæ¥æ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); try { birthday = dateFormat.parse(birthdayString); } catch (Exception e) { throw new RuntimeException(e); } return birthday; } public static String getTuominStr(String s){ if(StringUtils.isEmpty(s)){ return ""; } int l = s.length(); if(l <= 2){ return s.substring(0,1)+"****"; } if(l <= 5){ return s.substring(0,2)+"***"; } if(l <= 10){ return s.substring(0,3)+"***"+s.substring(l-3,l); } if(l <= 11){ return s.substring(0,3)+"****"+s.substring(l-4,l); } if(l <= 15){ return s.substring(0,3)+"****"+s.substring(l-4,l); } return s.substring(0,5)+"*******"+s.substring(l-6,l); } /** * mq tag */ @@ -33,6 +82,11 @@ String activity_looknum = "looknum"; String activity_signup = "signup"; } public interface DeviceRoleType{ int lw = 0;//å³å¡è®¿å®¢ int fk = 1;//æ®é访客 int nb = 2;//å é¨è®¿å®¢ } public interface DOOR_ROLE_TYPE{ int lw = 0; int fk = 1; @@ -41,9 +95,6 @@ public static final String SUCCESS_STR = "SUCCESS" ; //å¼é¨æ¶é´æææï¼åéï¼ public static final String QR_OPENBOOK_VALIDTIME="QR_OPENBOOK_VALIDTIME"; public static final String QR_OPENROOM_VALIDTIME="QR_OPENROOM_VALIDTIME"; public static final String ADVANCE_IN="ADVANCE_IN"; public static final String ACCESS_ID="ACCESS_ID"; public static final String BUCKETNAME = "BUCKETNAME"; public static final String OSS = "OSS"; @@ -53,49 +104,21 @@ public static final String ENDPOINT = "ENDPOINT"; public static final String RESOURCE_PATH = "RESOURCE_PATH"; //åéä¼è®®å¼å§ 宿¶æåå¤å°åéåé public static final String NOTICE_TIME = "NOTICE_TIME"; public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD"; public static final String ACCESS_TOKEN = "ACCESS_TOKEN"; public static final String INITIAL_ROLE = "INITIAL_ROLE"; public static final String PLAT_ADDR="PLAT_ADDR"; public static final String ADDR_PHONE="ADDR_PHONE"; public static final String ADDR_NAME="ADDR_NAME"; public static final String ADDR_INFO="ADDR_INFO"; public static final String SYSTEM ="SYSTEM"; public static final String DEFAULT_PASSWORD = "DEFAULT_PASSWORD" ; public static final String CREATION_ROLE = "CREATION_ROLE"; public static final String ORG_ROLE = "ORG_ROLE"; public static final String USER_AGREEMENT = "USER_AGREEMENT"; public static final String ABOUT_USER = "ABOUT_USER"; public static final String RECHARGE_MONEY = "RECHARGE_MONEY"; public static final String PLATFORM_ADDRESS = "PLATFORM_ADDRESS"; public static final String PROJECT_HEAD_IMG = "PROJECT_HEAD_IMG"; public static final String COFFEE_BEAN_TASK ="COFFEE_BEAN_TASK"; public static final String SIGN_BOARD="SIGN_BOARD";//æ¯æ¥ç¾å° public static final String SHARE_INFO="SHARE_INFO";//å享èµè®¯ public static final String SHARE_INVITE_BILL="SHARE_INVITE_BILL";//å享éè¯·æµ·æ¥ public static final String INVITE_USER_LOGIN="INVITE_USER_LOGIN";///é请æ°ç¨æ·æ³¨å public static final String POST_COMMENTS="POST_COMMENTS";//åå¸è¯è®º public static final String COFFEE_MAP_CONSUME="COFFEE_MAP_CONSUME";//åå¡å°å¾æ¶è´¹ // æå¡é¡¹ç® public static final String PROJECTS = "PROJECTS"; //ç¨æ·å¤´å public static final String SYSUSER = "SYSUSER"; public static final String ROOT_PATH="ROOT_PATH";//æ¬å°æä»¶ä¸ä¼ å°åé ç½® public static final String FILE_DIR="FILE_DIR";//æ¬å°æä»¶è®¿é®å°åé ç½® public static final String WX_PLATFORM = "WX_PLATFORM"; 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"; @@ -105,13 +128,7 @@ public static final String ACTIVITY_SIGN_KEY = "actcode_"; public static final String AFTERSALE_KEY = "salecode_"; } /** * ä¼ä¸æ°æ®æ¥æº 0平尿³¨å 1åå°å¯¼å ¥ */ public interface ORIGIN{ public static final int platformRegister = 0; public static final int backstageImport = 1; } public static BigDecimal formatBigdecimal(BigDecimal d) { if (d == null) { @@ -171,10 +188,17 @@ int objTypeBook_in = 1;//åä¼äººåå¼é¨ int objTypeBook_out = 2;//访客å¼é¨ } public interface memberType{ int visitor = 0;//æ®é访客 int lw_visitor = 1;//å³å¡è®¿å®¢ int internal = 2;//å é¨äººå } public static void main(String[] args) { String t = URLDecoder.decode("https://lsqw.gtja.com/qwcos/v-index.html#/loginforProperty?corpId=ww4b7aefafeb430e4b&corpId=ww4b7aefafeb430e4b&agentId=1000005&agentId=1000005&fromRoute=&userCode=013561&userCode=&userId=zz&userId=&encryptUserCode=&custQwId=wmIUuSDgAAR8MhtVY8w90EyKltvoK5fA&custCode=&openId=op1wZwD1dKuBQywmWWS5957zUOJI&name=%E8%B9%84%E8%B9%84&headUrl=http%3A%2F%2Fwx.qlogo.cn%2Fmmhead%2FQ3auHgzwzM4QlibSOAvYcvRMdsoyF3Ua7duLOYSJfB3dsGsYxIYonBw%2F0&dbHeadUrl=https%3A%2F%2Ftgf.gtja.com%2Ff%2F%2Fqwoms%2F2022512%2Fqwoms_1652332606613_8.jpg"); System.out.println(t); } /** * ç¨æ·ç±»å */ @@ -803,253 +827,4 @@ // 0订åéç¥ 1ç³»ç»æ¶æ¯ 2äºå¨æ¶æ¯ 3伿 叿é 4宿¹å®¢æ 5æ´»å¨æ¨è 6æçå ³æ³¨ NOTICE_ORDER(0,"0订åéç¥","0订åéç¥"), NOTICE_SYSTEM(1,"1ç³»ç»æ¶æ¯","1ç³»ç»æ¶æ¯"), NOTICE_INTERACTION(2,"äºå¨æ¶æ¯","äºå¨æ¶æ¯"), NOTICE_MEMBER_COUPON(3,"伿 叿é","伿 叿é"), NOTICE_ACTIVITY(5,"æ´»å¨æ¨è","æ´»å¨æ¨è"), NOTICE_MEMBER_FOLLOW(6,"æçå ³æ³¨","æçå ³æ³¨") ; private Integer key; private String type; private String content; NoticeType(Integer key, String type, String content) { this.key = key; this.type = type; this.content = content; } } /** * 积åç±»å */ public enum IntegralObjType { REGISTER(0, "平尿³¨å", "平尿³¨å",0), SIGNIN(1, "ç¾å°", "ç¾å°",0), SHARE(2, "å享é请", "å享é请",0), INVITENEWUSER(3, "é请æ°ç¨æ·", "é请æ°ç¨æ·",0), EXCHANGEGOODS(4, "å æ¢åå", "å æ¢åå",1), EXCHANGECOUPON(5, "å æ¢ä¼æ å¸", "å æ¢ä¼æ å¸",1), SHARE_INFO(6,"å享èµè®¯","å享èµè®¯",0), POST_COMMENTS(7,"åå¸è¯è®º","åå¸è¯è®º",0), COFFEE_MAP_CONSUME(8,"åå¡å°å¾æ¶è´¹","åå¡å°å¾æ¶è´¹",0), SHOP_ORDER(9,"ä½é¢æµæ£åå","ä½é¢æµæ£åå",1), AFTERSALE_BACK(10,"å®å鿬¾","å®å鿬¾",1), EXCHANGE_CARD(11,"å¡å å¼","å¡å å¼",0), SYSTEM_RECHARGE(12,"å¹³å°å å¼","å¹³å°å å¼",0), SYSTEM_DEDUCT(13,"平尿£æ¬¾","平尿£æ¬¾",0), SHOP_ORDER_CANCEL(14,"ä½é¢æµæ£ååéè¿","ä½é¢æµæ£ååéè¿",0) ; // æååé private String name; private int key; private String noteinfo;// æè¿° private Integer addTitle; // 0 = æ°å¢ï¼1 = 䏿°å¢ // æé æ¹æ³ IntegralObjType(int key, String name, String noteinfo ,Integer addTitle) { this.name = name; this.key = key; this.noteinfo = noteinfo; this.addTitle = addTitle; } // æ®éæ¹æ³ public static String getName(int index) { for (IntegralObjType c : IntegralObjType.values()) { if (c.getKey() == index) { return c.name; } } return null; } // æ®éæ¹æ³ public static String getInfo(int index) { for (IntegralObjType c : IntegralObjType.values()) { if (c.getKey() == index) { return c.noteinfo; } } return null; } // get set æ¹æ³ public String getName() { return name; } public void setName(String name) { this.name = name; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } public String getNoteinfo() { return noteinfo; } public int getAddTitle() { return this.addTitle; } public void setAddTitle(Integer addTitle) { this.addTitle = addTitle; } } /** * æ ç¾ç±»å */ public enum LabelsType { GOODSTYPE(0, "åååç±»", "åååç±»"), GOODSBRAND(1, "åååç", "åååç"), BUSNESSLABEL(2, "åå®¶æ ç¾", "åå®¶æ ç¾"), EXPRESSDELIVERY(3, "å¿«é", "å¿«é"), RETURNOPTIONS(4, "éè´§é项", "éè´§é项"), EXCHANGEOPTIONS(5, "æ¢è´§é项", "æ¢è´§é项"), REFUNDOPTIONS(6, "鿬¾é项", "鿬¾é项"), CANCELORDEROPTIONS(7, "åæ¶è®¢åé项", "åæ¶è®¢åé项"), COFFERBEANTYPE(8, "åå¡ç¾ç§åç±»", "åå¡ç¾ç§åç±»"), INFOTYPE(9, "å¨è¯¢åç±»", "å¨è¯¢åç±»"), ACTIVITYMATCHTYPE(10, "æ´»å¨èµäºåç±»", "æ´»å¨èµäºåç±»"), DARENTANDIANTYPE(11, "达人æ¢åºåç±»", "达人æ¢åºåç±»"), HOMEZHUANQU(12, "é¦é¡µä¸åº", "é¦é¡µä¸åº"), ; // æååé private String name; private int key; private String noteinfo;// æè¿° // æé æ¹æ³ LabelsType(int key, String name, String noteinfo) { this.name = name; this.key = key; this.noteinfo = noteinfo; } // æ®éæ¹æ³ public static String getName(int index) { for (LabelsType c : LabelsType.values()) { if (c.getKey() == index) { return c.name; } } return null; } // æ®éæ¹æ³ public static String getInfo(int index) { for (LabelsType c : LabelsType.values()) { if (c.getKey() == index) { return c.noteinfo; } } return null; } // get set æ¹æ³ public String getName() { return name; } public void setName(String name) { this.name = name; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } public String getNoteinfo() { return noteinfo; } } /** * æ´»å¨ç±»å */ public enum ActivityType { SHOPACTIVITY(0, "åå®¶æ´»å¨", "åå®¶æ´»å¨"), PLATACTIVITY(1, "平尿´»å¨", "平尿´»å¨"), TANDIAN(2, "æ¢åº", "æ¢åº"), CONSULT(3, "èµè®¯", "èµè®¯"), ; // æååé private String name; private int key; private String noteinfo;// æè¿° // æé æ¹æ³ ActivityType(int key, String name, String noteinfo) { this.name = name; this.key = key; this.noteinfo = noteinfo; } // æ®éæ¹æ³ public static String getName(int index) { for (ActivityType c : ActivityType.values()) { if (c.getKey() == index) { return c.name; } } return null; } // æ®éæ¹æ³ public static String getInfo(int index) { for (ActivityType c : ActivityType.values()) { if (c.getKey() == index) { return c.noteinfo; } } return null; } // get set æ¹æ³ public String getName() { return name; } public void setName(String name) { this.name = name; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } public String getNoteinfo() { return noteinfo; } } } server/dmvisit_service/src/main/java/com/doumee/core/utils/IdCardTool.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ package com.doumee.core.utils; public class IdCardTool { } server/dmvisit_service/src/main/java/com/doumee/core/wx/WXConstant.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.doumee.core.wx; /** * å ¬ä¼å·æ¥å£å°åç±» * * @Author : Rk * @create 2023/12/7 10:42 */ public class WXConstant { //è·åå ¬ä¼å· access_token public static final String GET_ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"; //è·åç¨æ·ä¿¡æ¯ public static final String GET_USER_INFO_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"; } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/DeviceEvent.java
@@ -218,6 +218,10 @@ @ExcelColumn(name="身份è¯id") private String idNum; @ApiModelProperty(value = "è¯ä»¶æ¾ç¤ºä¿¡æ¯") @ExcelColumn(name="è¯ä»¶æ¾ç¤ºä¿¡æ¯") private String idcardDecode; @ApiModelProperty(value = "身份è¯ç¾åæºå ³") @ExcelColumn(name="身份è¯ç¾åæºå ³") private String issuingAuthority; server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -195,5 +196,8 @@ @ApiModelProperty(value = "ERPç»ç»ç¼ç ") @ExcelColumn(name="ERPç»ç»ç¼ç ") private String erpOrgId; @ApiModelProperty(value = "ç»ç»åç§°") @TableField(exist = false) private String companyName; } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/ProblemLog.java
@@ -65,7 +65,7 @@ @ApiModelProperty(value = "ç»å®ç³è¯·ç¼ç ") @ExcelColumn(name="ç»å®ç³è¯·ç¼ç ") private String logId; private Integer logId; @ApiModelProperty(value = "å¾å", example = "1") @ExcelColumn(name="å¾å") server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -9,6 +10,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.util.List; /** * 访客ç³è¯·ä¿¡æ¯è¡¨ @@ -106,12 +108,10 @@ @ApiModelProperty(value = "é¨ç¦æææå¼å§") @ExcelColumn(name="é¨ç¦æææå¼å§") @JsonFormat(pattern = "yyyy-MM-dd") private Date starttime; @ApiModelProperty(value = "é¨ç¦ææææªæ¢") @ExcelColumn(name="é¨ç¦ææææªæ¢") @JsonFormat(pattern = "yyyy-MM-dd") private Date endtime; @ApiModelProperty(value = "æ¥è®¿äºç±") @@ -159,7 +159,9 @@ @ApiModelProperty(value = "ç»å®¡å¤æ³¨") @ExcelColumn(name="ç»å®¡å¤æ³¨") private String endCheckInfo; @ApiModelProperty(value = "è¯ä»¶æ¾ç¤ºä¿¡æ¯") @ExcelColumn(name="è¯ä»¶æ¾ç¤ºä¿¡æ¯") private String idcardDecode; @ApiModelProperty(value = "è¯ä»¶ç±»å 0èº«ä»½è¯ 1港澳è¯ä»¶ 2æ¤ç §", example = "1") @ExcelColumn(name="è¯ä»¶ç±»å 0èº«ä»½è¯ 1港澳è¯ä»¶ 2æ¤ç §") private Integer idcardType; @@ -192,5 +194,11 @@ @ApiModelProperty(value = "ERPç³è¯·è®°å½ç¼ç ") @ExcelColumn(name="ERPç³è¯·è®°å½ç¼ç ") private String erpId; @ApiModelProperty(value = "æ®é访客ç³è¯·é访人å") @TableField(exist = false) private List<Visits> withUserList; @ApiModelProperty(value = "å³å¡è®¿å®¢ç³è¯·é访人å") @TableField(exist = false) private List<Integer> lwWithUserList; } server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/FinishAnswerDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.doumee.dao.web.reqeust; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.math.BigDecimal; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 11:19 */ @Data public class FinishAnswerDTO { @NotBlank(message = "ç颿ç»ä¸ºç©º") @ApiModelProperty(value = "ç颿ç»ï¼jsonï¼") private String content; @NotNull(message = "使ç¨åºæ¯ä¸ºç©º") @ApiModelProperty(value = "使ç¨åºæ¯ 0å³å¡äººå 1æ®é访客") private Integer useType; @ApiModelProperty(value = "访客ç¼ç ") private String userId; @ApiModelProperty(value = "ç¨æ·openId") private String openId; } server/dmvisit_service/src/main/java/com/doumee/dao/web/response/ProblemsVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.doumee.dao.web.response; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.doumee.core.annotation.excel.ExcelColumn; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 11:19 */ @Data public class ProblemsVO { @ApiModelProperty(value = "主é®", example = "1") private Integer id; @ApiModelProperty(value = "夿³¨") private String remark; @ApiModelProperty(value = "é¢ç®") private String title; @ApiModelProperty(value = "é项éå") private String options; @ApiModelProperty(value = "æ£ç¡®çæ¡") private String answer; @ApiModelProperty(value = "ç±»å 0åé 1å¤é ", example = "1") private Integer type; @ApiModelProperty(value = "åå¼", example = "1") private BigDecimal score; } server/dmvisit_service/src/main/java/com/doumee/dao/web/response/WxAuthorizeVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.doumee.dao.web.response; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 11:19 */ @Data public class WxAuthorizeVO { @ApiModelProperty(value = "ææOPENID") private String openid; } server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -7,6 +7,8 @@ import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.model.Member; import com.doumee.dao.web.response.WxAuthorizeVO; import java.util.List; /** @@ -132,4 +134,25 @@ * @return */ void importMemberBatch(LaborEmpowerDTO laborEmpowerDTO); /********************************************å ¬ä¼å·æ¥å£***********************************************************************/ /** * å¾®ä¿¡æææ¥å£ * @param code * @return */ WxAuthorizeVO wxAuthorize(String code); } server/dmvisit_service/src/main/java/com/doumee/service/business/ProblemLogService.java
@@ -3,6 +3,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.ProblemLog; import com.doumee.dao.web.reqeust.FinishAnswerDTO; import java.util.List; /** @@ -94,4 +96,11 @@ * @return long */ long count(ProblemLog problemLog); /** * ä¿åçé¢è®°å½ * @param finishAnswerDTO * @return */ Integer finishAnswer(FinishAnswerDTO finishAnswerDTO); } server/dmvisit_service/src/main/java/com/doumee/service/business/ProblemsService.java
@@ -4,6 +4,8 @@ import com.doumee.core.model.PageWrap; import com.doumee.dao.admin.response.ProblemDTO; import com.doumee.dao.business.model.Problems; import com.doumee.dao.web.response.ProblemsVO; import java.util.List; /** @@ -96,6 +98,14 @@ */ long count(Problems problems); /** * è·åé¢ç®ä¿¡æ¯ * @param useType * @return */ List<ProblemsVO> getProblemsVO(Integer useType); /** * è·åä¸åç¨æ·ç±»åçé¢ç® * @param useType server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -19,6 +19,7 @@ * @return Integer */ Integer create(Visits visits); Integer createFk(Visits visits); /** * 主é®å é¤ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -4,6 +4,10 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.PhoneUtil; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.Jwt.JwtPayLoad; import com.doumee.config.Jwt.JwtTokenUtil; import com.doumee.core.annotation.excel.ExcelImporter; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -11,7 +15,9 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; import com.doumee.core.utils.Utils; import com.doumee.core.wx.WXConstant; import com.doumee.dao.admin.request.LaborEmpowerDTO; import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.response.MemberInfoDTO; @@ -22,6 +28,7 @@ import com.doumee.dao.business.model.Empower; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.TrainTime; import com.doumee.dao.web.response.WxAuthorizeVO; import com.doumee.service.business.MemberService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -54,6 +61,10 @@ @Autowired private TrainTimeMapper trainTimeMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Override public Integer create(Member member) { @@ -371,4 +382,45 @@ // } /********************************************å ¬ä¼å·æ¥å£***********************************************************************/ /** * å¾®ä¿¡æææ¥å£ * @param code * @return */ @Override public WxAuthorizeVO wxAuthorize(String code){ String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode(); String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode(); String getTokenUrl = WXConstant.GET_USER_INFO_URL.replace("CODE", code) .replace("APPID", appId).replace("SECRET", appSecret); JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true)); String openId = null; if(!Objects.isNull(tokenJson.get("access_token"))){ openId = tokenJson.getString("openid"); } WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); wxAuthorizeVO.setOpenid(openId); return wxAuthorizeVO; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
@@ -1,20 +1,33 @@ package com.doumee.service.business.impl; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.CompanyMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.ProblemLogMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.ProblemLog; import com.doumee.dao.web.reqeust.FinishAnswerDTO; import com.doumee.service.business.ProblemLogService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; import java.util.Objects; /** * 访客çé¢è®°å½è¡¨Serviceå®ç° @@ -26,6 +39,12 @@ @Autowired private ProblemLogMapper problemLogMapper; @Autowired private MemberMapper memberMapper; @Autowired private CompanyMapper companyMapper; @Override public Integer create(ProblemLog problemLog) { @@ -152,4 +171,45 @@ QueryWrapper<ProblemLog> wrapper = new QueryWrapper<>(problemLog); return problemLogMapper.selectCount(wrapper); } /** * ä¿åçé¢è®°å½ * @param finishAnswerDTO * @return */ @Override public Integer finishAnswer(FinishAnswerDTO finishAnswerDTO){ ProblemLog problemLog = new ProblemLog(); BeanUtils.copyProperties(finishAnswerDTO,problemLog); problemLog.setCreateDate(new Date()); problemLog.setIsdeleted(Constants.ZERO); problemLog.setStatus(Constants.ZERO); if(finishAnswerDTO.getUseType().equals(Constants.ZERO)&&StringUtils.isNotBlank(finishAnswerDTO.getUserId())){ Member member = memberMapper.selectById(finishAnswerDTO.getUserId()); if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°å³å¡äººå"); } if(!member.getType().equals(Constants.memberType.lw_visitor)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éå³å¡äººåç±»åï¼çé¢å¤±è´¥"); } if(!member.getStatus().equals(Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对ä¸èµ·ï¼è´¦å·å·²ç»" + (member.getStatus().equals(Constants.ONE)?"ç¦ç¨":"æé»/å é¤") ); } problemLog.setName(member.getName()); problemLog.setPhone(member.getPhone()); problemLog.setCompanyId(member.getCompanyId()); Company company = companyMapper.selectById(member.getCompanyId()); if(Objects.isNull(company)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°å³å¡äººåå ¬å¸"); } problemLog.setCompanyName(company.getName()); } this.problemLogMapper.insert(problemLog); return problemLog.getId(); } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemsServiceImpl.java
@@ -10,17 +10,20 @@ import com.doumee.dao.admin.response.ProblemDTO; import com.doumee.dao.business.ProblemsMapper; import com.doumee.dao.business.model.Problems; import com.doumee.dao.web.response.ProblemsVO; import com.doumee.service.business.ProblemsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.beans.BeanUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -199,4 +202,27 @@ return collect; } /** * è·åé¢ç®ä¿¡æ¯ * @param useType * @return */ @Override public List<ProblemsVO> getProblemsVO(Integer useType){ List<Problems> problemsList = problemsMapper.selectList(new QueryWrapper<Problems>().lambda().eq(Problems::getUseType,useType) .eq(Problems::getIsdeleted, Constants.ZERO).orderByAsc(Problems::getSortnu)); List<ProblemsVO> problemsVOList = new ArrayList<>(); for (Problems problems:problemsList) { ProblemsVO problemsVO = new ProblemsVO(); BeanUtils.copyProperties(problems,problemsVO); problemsVOList.add(problemsVO); } return problemsVOList; } } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -1,19 +1,35 @@ package com.doumee.service.business.impl; import cn.hutool.core.util.IdcardUtil; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.DeviceRoleMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.ProblemLogMapper; import com.doumee.dao.business.VisitsMapper; import com.doumee.dao.business.model.DeviceRole; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.ProblemLog; import com.doumee.dao.business.model.Visits; import com.doumee.service.business.VisitsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.DigestUtils; import java.util.Arrays; import java.util.Date; import java.util.List; /** @@ -26,13 +42,183 @@ @Autowired private VisitsMapper visitsMapper; @Autowired private DeviceRoleMapper deviceRoleMapper; @Autowired private ProblemLogMapper problemLogMapper ; @Autowired private MemberMapper memberMapper ; @Autowired private SystemDictDataBiz systemDictDataBiz; @Override public Integer create(Visits visits) { visitsMapper.insert(visits); return visits.getId(); } /** * æ®é访客ç³è¯· * @param visits * @return */ @Override public Integer createFk(Visits visits) { if(visits.getStarttime() == null || visits.getEndtime() == null || StringUtils.isBlank(visits.getReason()) || StringUtils.isBlank( visits.getName()) || StringUtils.isBlank( visits.getPhone()) || visits.getIdcardType() == null || StringUtils.isBlank( visits.getFaceImg() ) || StringUtils.isBlank( visits.getIdcardNo() ) || visits.getReceptMemberId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼ä¿¡æ¯å¡«å䏿£ç¡®ï¼"); } //æ£æ¥æ¯å¦å¿ é¡»çé¢ï¼å¹¶ä¸ç¬¦åçé¢è¦æ± ProblemLog problemLog = isValidProblemLog(visits); //è·åç³è¯·ç海康访é®é¨ç¦ç»ä¿¡æ¯ String[] hkIds = getHkDeviceRoles(visits); //æ£éªæè®¿äººæ¯å¦åæ³ isValideVisitedUser(visits.getReceptMemberId()); //æ£æ¥éè®¿äººåæ¯å¦åæ³,çæéè®¿äººåæ°å¢éå List<Member> withUsers = isValideWithUsers(visits.getWithUserList()); if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType()) &&!IdcardUtil.isValidCard(visits.getIdcardNo())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼èº«ä»½è¯å·ç æè¯¯ï¼è¯·æ ¸å®åéè¯ï¼"); } Date date = new Date(); visits.setBirthday(Constants.getBirthdyByCardNo(visits.getIdcardNo())); //身份è¯å·åå¨å¯æ visits.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, visits.getIdcardNo()));//身份è¯å·å å¯ visits.setIdcardDecode(Constants.getTuominStr(visits.getIdcardNo()));//è±æææºå· visits.setCreateDate(date); //访客信æ¯(使ç¨èº«ä»½è¯å·æ¥è¯¢æ¯å¦å·²å卿¹æ®éè®¿å®¢ï¼æ²¡æåæ°å¢ï¼åå¨åæ´æ°openidçä¿¡æ¯) Member member = getMemberByIdcardno(visits); visitsMapper.insert(visits); updateProblemLog(visits,problemLog,member); return visits.getId(); } private Member getMemberByIdcardno(Visits idcardNo) { Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() // .eq(Member::getType,Constants.MEMBER_TYPE) .eq(Member::getIdcardNo,idcardNo.getIdcardNo()) ); return null; } private List<Member> isValideWithUsers(List<Visits> withUserList) { if(withUserList!= null && withUserList .size()>0){ for(Visits model:withUserList){ } } return null; } /** * 妿æçé¢è®°å½ï¼æ´æ°çé¢è®°å½å ³èæ°æ® * @param visits * @param problemLog * @param member */ private void updateProblemLog(Visits visits, ProblemLog problemLog,Member member) { if(problemLog!=null){ problemLog.setEditDate(visits.getCreateDate()); problemLog.setName(visits.getName()); problemLog.setUserId(member.getId()); problemLog.setPhone(member.getPhone()); problemLog.setLogId(visits.getId()); problemLogMapper.updateById(problemLog); } } /** * æ£æ¥è®¿äººæ¯å¦åæ³ * @param receptMemberId */ private Member isValideVisitedUser(Integer receptMemberId) { Member member = memberMapper.selectById(receptMemberId); if(member == null || Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥æè®¿äººææ¶ä¸è½æ¥åæ¨çæè®¿ç³è¯·ï¼"); } if(!Constants.equalsInteger(member.getStatus(), Constants.ZERO)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥æè®¿äººææ¶ä¸è½æ¥åæ¨çæè®¿ç³è¯·."); } if(!Constants.equalsInteger(Constants.ONE, member.getCanVisit())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯¥æè®¿äººææ¶ä¸è½æ¥åæ¨çæè®¿ç³è¯·~"); } return member; } private ProblemLog isValidProblemLog(Visits visits) { String required = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROBLEM_VISIT_REQUIRED).getCode(); if(StringUtils.equals(required,Constants.ONE+"")){ //å¦æå¿ é¡»çé¢ï¼æ¥æ¾çé¢è®°å½ if(visits.getUserAnswerId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯·å æè¦æ±è¿è¡å®å ¨ç¥è¯çé¢ï¼"); } ProblemLog log = problemLogMapper.selectById(visits.getUserAnswerId()); if(log == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯·å æè¦æ±è¿è¡å®å ¨ç¥è¯çé¢."); } if(log.getLogId() !=null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯·å æè¦æ±è¿è¡å®å ¨ç¥è¯çé¢~"); } return log; } return null; } /** * è·åç³è¯·ç海康访é®é¨ç¦ç»ä¿¡æ¯ * @param visits * @return */ private String[] getHkDeviceRoles(Visits visits) { String mustSelectDoors = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SELECT_DOORS_VISIT_REQUIRED).getCode(); List<DeviceRole> roles = null; if(StringUtils.equals(mustSelectDoors,Constants.ZERO+"")){ //å¦æå¿ é¡»éæ©é¨ç¦ï¼ä½æªéæ© if(StringUtils.isBlank(visits.getDoors())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯·éæ©è®¿é®é¨ç¦ï¼"); } //æ ¡éªé¨ç¦ç»ä¿¡æ¯æ¯å¦æ£ç¡® String[] dIds = visits.getDoors().split(","); roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getIsdeleted,Constants.ZERO) .eq(DeviceRole::getType,Constants.DeviceRoleType.fk) .in(DeviceRole::getId, Arrays.asList(dIds))); if(roles == null || roles.size()==0 || roles.size() != dIds.length){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼è¯·éæ©ææè®¿é®é¨ç¦ï¼"); } }else{ //å¦æè®¾ç½®ä¸éæ©é¨ç¦ï¼åæä¾é»è®¤é¨ç¦ç»ä¿¡æ¯ String[] dIds = visits.getDoors().split(","); roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getIsdeleted,Constants.ZERO) .eq(DeviceRole::getIsDefault,Constants.ZERO) .eq(DeviceRole::getType,Constants.DeviceRoleType.fk)); if(roles.size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼æä¸åå¨å¯è®¿é®ç访客é¨ç¦ï¼æ æ³è¿è¡ç³è¯·æä½ï¼"); } } String[] ids =new String[roles.size()]; for (int i = 0; i < roles.size(); i++) { ids[i] = roles.get(i).getHkId(); } return ids; } @Override public void deleteById(Integer id) { visitsMapper.deleteById(id); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEventServiceImpl.java
@@ -65,7 +65,6 @@ } } } } /** server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ package com.doumee.api; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.Constants; import com.doumee.core.utils.HttpsUtil; import com.doumee.core.wx.WXConstant; import com.doumee.dao.system.model.SystemDictData; import lombok.extern.slf4j.Slf4j; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.URIBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.io.IOException; import java.net.URI; import java.util.Date; import java.util.Map; import java.util.Objects; /** * 宿¶ä»»å¡ * @author jiangping * @date 2021-10-10 14:40:35 * https://www.bejson.com/othertools/cron/ cron 表达å¼çæå°å */ @Slf4j @Component @EnableScheduling public class ScheduleTool { @Autowired private SystemDictDataBiz systemDictDataBiz; /** * æ¯å¦å¼åè */ @Value("${timing}") private Boolean timing; /** * æ´æ°å¾®ä¿¡å ¬ä¼å· ACCESS_TOKEN * @throws Exception */ @Scheduled(fixedDelay=1000 * 60 * 90) public void updAccessToken(){ String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode(); String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode(); //çæå¾®ä¿¡token String url = WXConstant.GET_ACCESS_TOKEN_URL.replace("APPID",appId).replace("APPSECRET",appSecret); String response = HttpsUtil.get(url,false); JSONObject json = JSONObject.parseObject(response); SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN); if(!Objects.isNull(systemDictData)){ systemDictData.setCode(json.getString("access_token")); systemDictData.setUpdateTime(new Date()); systemDictDataBiz.updateByIdNew(systemDictData); log.info(" æ´æ°å¾®ä¿¡å ¬ä¼å· ACCESS_TOKEN =========> " + systemDictData.getCode() ); } } } server/dmvisit_web/src/main/java/com/doumee/api/web/ApiController.java
@@ -1,6 +1,7 @@ package com.doumee.api.web; import com.doumee.config.Jwt.JwtTokenUtil; import com.doumee.core.model.PageData; import lombok.extern.slf4j.Slf4j; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -25,6 +26,7 @@ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); return request; } /** * è·åç¨æ·ID * server/dmvisit_web/src/main/java/com/doumee/api/web/UnitController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,73 @@ package com.doumee.api.web; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.dao.system.model.SystemDictData; import com.doumee.dao.web.reqeust.FinishAnswerDTO; import com.doumee.dao.web.response.ProblemsVO; import com.doumee.service.business.ProblemLogService; import com.doumee.service.business.ProblemsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; 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.*; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 10:40 */ @Api(tags = "99ãå ¶ä»") @Trace(exclude = true) @RestController @RequestMapping("/web/unit") @Slf4j public class UnitController { @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private ProblemsService problemsService; @Autowired private ProblemLogService problemLogService; @ApiOperation(value = "æ¥è¯¢åå ¸å¼æ°æ®", notes = "H5") @GetMapping("/getSystemDictData") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "label", value = "æ°æ®åå ¸å¼", required = true), @ApiImplicitParam(paramType = "query", dataType = "String", name = "dictCode", value = "ç³»ç»åå ¸å¼", required = true) }) public ApiResponse<SystemDictData> getSystemDictData(@RequestParam String dictCode, @RequestParam String label) { return ApiResponse.success("æ¥è¯¢æå",systemDictDataBiz.queryByCode(dictCode,label)); } @ApiOperation(value = "è·åé¢ç®æ°æ®", notes = "H5") @GetMapping("/getProblemsVO") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "useType", value = "使ç¨åºæ¯ 0å³å¡äººå 1æ®é访客", required = true) }) public ApiResponse<List<ProblemsVO>> getProblemsVO(@RequestParam Integer useType) { return ApiResponse.success("æ¥è¯¢æå",problemsService.getProblemsVO(useType)); } @ApiOperation(value = "ä¿åçé¢è®°å½", notes = "H5") @PostMapping("/finishAnswer") public ApiResponse<Integer> finishAnswer(@RequestBody FinishAnswerDTO finishAnswerDTO) { return ApiResponse.success("æ¥è¯¢æå",problemLogService.finishAnswer(finishAnswerDTO)); } } server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.doumee.api.web; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.Constants; import com.doumee.dao.web.response.WxAuthorizeVO; import com.doumee.service.business.MemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/7 10:40 */ @Api(tags = "1ã访客ä¸å¡") @Trace(exclude = true) @RestController @RequestMapping("/web/visitor") @Slf4j public class VisitorController { @Autowired private MemberService memberService; @ApiOperation(value = "访客微信ææ", notes = "访客微信ææè·åopenId") @GetMapping("/wxAuthorize") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", dataType = "String", name = "code", value = "ææç ", required = true) }) public ApiResponse<WxAuthorizeVO> wxAuthorize(@RequestParam String code) { WxAuthorizeVO wxAuthorizeVO = memberService.wxAuthorize(code); return ApiResponse.success("æ¥è¯¢æå",wxAuthorizeVO); } }