Browse Source

feat: 廉洁协议签署

lixuesong 1 năm trước cách đây
mục cha
commit
20c135fb00

+ 2 - 0
db/v2.0/230906.sql

@@ -0,0 +1,2 @@
+alter table sys_user
+    add sign_agreement varchar(1024) null comment '小程序签署协议信息';

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/SysUser.java

@@ -286,4 +286,9 @@ public class SysUser implements Serializable {
 	@ApiModelProperty(value="税邦云协议签署")
 	private Integer taxHelperAgreementSignature;
 
+	/**
+	 * 小程序签署协议信息
+	 */
+	private String signAgreement;
+
 }

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/vo/UserVO.java

@@ -270,4 +270,9 @@ public class UserVO implements Serializable {
 	 */
 	private List<?> certList;
 
+	/**
+	 * 小程序签署协议信息
+	 */
+	private String signAgreement;
+
 }

+ 47 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -12,6 +12,7 @@ import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.IdcardUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -59,6 +60,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmUserSignDetail;
 import com.qunzhixinxi.hnqz.admin.entity.WmWkAlbum;
 import com.qunzhixinxi.hnqz.admin.entity.WmWkArticle;
 import com.qunzhixinxi.hnqz.admin.entity.WmWkArticleShare;
+import com.qunzhixinxi.hnqz.admin.entity.dto.SignAgreementDTO;
 import com.qunzhixinxi.hnqz.admin.entity.input.NoticeApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiOutput;
@@ -137,6 +139,7 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.http.ResponseEntity;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
@@ -880,6 +883,20 @@ public class ApiController {
 				mapOne.put("existEidResult", false);
 			}
 
+			// 签署协议信息
+			mapOne.put("signHonestAgreement", false);
+			if (StrUtil.isNotBlank(sysU.getSignAgreement())) {
+				JSONArray agreements = JSONUtil.parseArray(sysU.getSignAgreement());
+                for (Object agreement : agreements) {
+                    SignAgreementDTO signAgreementDTO = BeanUtil.toBean(agreement, SignAgreementDTO.class);
+                    if (SignAgreementDTO.SignAgreementType.HONEST_AGREEMENT.equals(signAgreementDTO.getAgreementType())) {
+                        // 廉洁协议是否签署
+                        mapOne.put("signHonestAgreement", true);
+                        break;
+                    }
+                }
+			}
+
 			// 获取发起认证的令牌
 			String randomStr;
 
@@ -4597,4 +4614,34 @@ public class ApiController {
 		return R.ok(Collections.emptyList());
 	}
 
+	/**
+	 * 小程序签署协议
+	 *
+	 * @param signAgreementDTO 请求参数
+	 * @return {@link R}<{@link ?}> 结果
+	 */
+	@SysLog("小程序签署协议")
+	@PostMapping("/sign-agreement")
+	public R<Boolean> signAgreement(@Validated @RequestBody SignAgreementDTO signAgreementDTO) {
+		log.info("小程序签署协议请求:{}", signAgreementDTO);
+
+		Integer userId = SecurityUtils.getUser().getId();
+
+		SysUser queryUser = sysUserService.getById(userId);
+		List<Object> signAgreementDTOList = new ArrayList<>();
+		if (StrUtil.isBlank(queryUser.getSignAgreement())) {
+			signAgreementDTOList.add(signAgreementDTO);
+		} else {
+			JSONArray agreements = JSONUtil.parseArray(queryUser.getSignAgreement());
+			signAgreementDTOList.add(signAgreementDTO);
+			signAgreementDTOList.addAll(agreements);
+		}
+
+		SysUser user = new SysUser();
+		user.setUserId(userId);
+		user.setSignAgreement(JSONUtil.toJsonStr(signAgreementDTOList));
+		user.setUpdateTime(LocalDateTime.now());
+
+		return R.ok(sysUserService.updateById(user));
+	}
 }

+ 54 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/dto/SignAgreementDTO.java

@@ -0,0 +1,54 @@
+package com.qunzhixinxi.hnqz.admin.entity.dto;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.Getter;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 签署协议请求
+ *
+ * @author lixuesong
+ * @date 2023/09/06
+ */
+@Data
+public class SignAgreementDTO implements Serializable {
+    private static final long serialVersionUID = -1590830291205177428L;
+
+    /**
+     * 协议类型
+     */
+    @NotNull(message = "协议类型必填")
+    private SignAgreementType agreementType;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 协议类型
+     *
+     * @author lixuesong
+     * @date 2023/09/06
+     */
+    @Getter
+    @AllArgsConstructor
+    public enum SignAgreementType {
+        HONEST_AGREEMENT("HONEST_AGREEMENT", "廉洁协议");
+
+        /**
+         * 类型
+         */
+        @EnumValue
+        private final String type;
+
+        /**
+         * 描述
+         */
+        private final String description;
+    }
+}

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/SysUserMapper.xml

@@ -642,7 +642,8 @@
 		u.bank_card_number,
 	  	u.bank_phone,
 	  	u.bank_name,
-		u.tax_helper_agreement_signature
+		u.tax_helper_agreement_signature,
+		u.sign_agreement
 		FROM
 		sys_user  u
 		LEFT JOIN sys_dept  d ON d.dept_id = u.dept_id