瀏覽代碼

Merge branch 'hotfix-mpshare-20210706' of googol/YY_BE_2 into master

屈桐 4 年之前
父節點
當前提交
f858048480

+ 8 - 18
hnqz-common/hnqz-common-core/src/main/resources/banner.txt

@@ -1,20 +1,10 @@
 ${AnsiColor.BRIGHT_YELLOW}
 
-
-,-.----.
-\    /  \        ,---,
-;   :    \      /_ ./|
-|   | .\ :,---, |  ' :
-.   : |: /___/ \.  : |
-|   |  \ :.  \  \ ,' '
-|   : .  / \  ;  `  ,'
-;   | |  \  \  \    '
-|   | ;\  \  '  \   |
-:   ' | \.'   \  ;  ;
-:   : :-'      :  \  \
-|   |.'         \  ' ;
-`---'            `--`
-
-
-
-
+██╗   ██╗ █████╗  ██████╗     ██╗   ██╗██╗    ██╗   ██╗██╗   ██╗███╗   ██╗
+╚██╗ ██╔╝██╔══██╗██╔═══██╗    ╚██╗ ██╔╝██║    ╚██╗ ██╔╝██║   ██║████╗  ██║
+ ╚████╔╝ ███████║██║   ██║     ╚████╔╝ ██║     ╚████╔╝ ██║   ██║██╔██╗ ██║
+  ╚██╔╝  ██╔══██║██║   ██║      ╚██╔╝  ██║      ╚██╔╝  ██║   ██║██║╚██╗██║
+   ██║   ██║  ██║╚██████╔╝       ██║   ██║       ██║   ╚██████╔╝██║ ╚████║
+   ╚═╝   ╚═╝  ╚═╝ ╚═════╝        ╚═╝   ╚═╝       ╚═╝    ╚═════╝ ╚═╝  ╚═══╝
+
+                           https://www.yaoyi.net

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/CacheConstants.java

@@ -11,6 +11,11 @@ public interface CacheConstants {
 	String DRUG_ENT_PERSONAL_SHARE_KEY1 = "share_drug_ent:";
 	String DRUG_ENT_PERSONAL_SHARE_KEY2 = "userId:";
 
+	/**
+	 * 文章每人分享限制缓存
+	 */
+	String ARTICLE_PERSONAL_SHARE_KEY = "share_article:";
+
 	String SETTLE_PACKAGE_KEY = "settle_package_key:settle";
 
 	String EMAIL_KEY = "email_key:";

+ 484 - 599
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -1,6 +1,8 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -52,7 +54,9 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.redis.core.BoundValueOperations;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.web.bind.annotation.*;
@@ -66,8 +70,10 @@ import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.Duration;
 import java.time.Instant;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.temporal.TemporalAdjusters;
 import java.util.*;
@@ -88,7 +94,7 @@ import java.util.stream.Collectors;
 public class ApiController {
 	private final WmTaskContentService wmTaskContentService;
 	private final WmTaskContentConfigService wmTaskContentConfigService;
-	private final SysDictService sysDictService;
+	private final WmWkArticleService wmWkArticleService;
 	private final SysDictItemService sysDictItemService;
 	private final WmDaDrugEntService wmDaDrugEntService;
 	private final WmDaAgentService wmDaAgentService;
@@ -113,6 +119,7 @@ public class ApiController {
 	private final SysCertResultRecordMapper sysCertResultRecordMapper;
 	private final SysDeptSubService sysDeptSubService;
 	private final SysPublicParamService sysPublicParamService;
+	private final WmWkAlbumService wmWkAlbumService;
 
 	@SysLog("通过任务类型获取表单配置")
 	@ApiOperation(value = "任务类型表单配置-通过任务类型获取表单配置", notes = "根据任务类型获取表单配置")
@@ -793,21 +800,6 @@ public class ApiController {
 		return R.ok(wmTaskContentService.updateById(wmTaskContent));
 	}
 
-
-//	public static void main(String args[]){
-//		Map<String,Object> opemMap=GetOpenIDUtil.oauth2GetOpenid("011Nw3Gl14tYLp06vpIl16JYFl1Nw3GH");
-//
-//		if(null!=opemMap)
-//		{
-//			String openid=opemMap.get("openid")+"";
-//			String accessToken = GetAccessTokenUtil.getAccessToken(GetOpenIDUtil.appid,GetOpenIDUtil.appsecret ).get("accessToken");
-//			Map<String,String> wxMap=GetBasicInformation.getAccessToken(accessToken, openid);
-//		}
-//	}
-
-
-	private final WmWkArticleService wmWkArticleService;
-
 	/**
 	 * 分页查询
 	 *
@@ -888,244 +880,31 @@ public class ApiController {
 	}
 
 	/**
-	 * 通过id查询文库-文章
+	 * 通过id查询文库-相册
 	 *
-	 * @param articleId id
-	 * @return R
+	 * @param articleId   文章id
+	 * @param shareUserId 分享人id
+	 * @param openUserId  获取打开人openid授权码
+	 * @param type        操作类型
+	 * @param packageId   积分包id
+	 * @param sharePicUrl 分享图片链接
+	 * @return 结果
 	 */
-	@ApiOperation(value = "", notes = "文章-通过分享链接,获取文章")
+	@ApiOperation(value = "文章-通过分享链接,获取文章", notes = "文章-通过分享链接,获取文章")
 	@ApiImplicitParams({
 			@ApiImplicitParam(name = "articleId", value = "文章ID", dataType = "String"),
 			@ApiImplicitParam(name = "shareUserId", value = "分享人ID", dataType = "String"),
-			@ApiImplicitParam(name = "openUserId", value = "打开人信息", dataType = "String")
+			@ApiImplicitParam(name = "openUserId", value = "获取打开人openid的授权码", dataType = "String"),
+			@ApiImplicitParam(name = "type", value = "操作类型", dataType = "String"),
+			@ApiImplicitParam(name = "packageId", value = "所属积分包id", dataType = "String"),
+			@ApiImplicitParam(name = "sharePicUrl", value = "分享url", dataType = "String")
 	})
 	@GetMapping("/shareArticleById")
-	public R shareArticleById(String articleId, String shareUserId, String openUserId, String type, String packageId, String sharePicUrl) {
-		int score = 0;
-		if (null == articleId) {
-			return R.ok();
-		}
-
-		if (null == shareUserId) {
-			return R.failed("分享人ID不能为空");
-		}
-		WmScorePackage tWmScorePackage = new WmScorePackage();
-		if (StringUtils.isNotEmpty(packageId)) {
-			tWmScorePackage = wmScorePackageService.getById(packageId);
-			if (null == tWmScorePackage) {
-				return R.failed("积分包异常,请选择其他积分包");
-			}
-			if ("0".equals(tWmScorePackage.getTaskAddFlag())) {
-				return R.ok();
-			}
-			if (StringUtils.isEmpty(tWmScorePackage.getRuleId())) {
-				return R.failed("积分包未配置积分规则");
-			}
-		} else {
-			return R.ok();
-		}
-
-		SysUser sysUser = sysUserService.getById(shareUserId);
-
-		if (null != sysUser) {
-			UserVO userVO = sysUserService.selectUserVoById(sysUser.getUserId());
-			if (null != userVO) {
-
-				if ("1".equals(tWmScorePackage.getPackageType1())) {
-					Boolean fullFlag = wmTaskService.checkUserTaskSubScore(userVO.getUserId() + "");
-					if (fullFlag) {
-						String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
-						String info = StringUtils.isEmpty(value) ? "每日最多提交3万积分" : "每日最多提交" + Integer.parseInt(value) + "积分";
-						log.warn("系统当前限制积分上限:【{}】,提示:【{}】", value, info);
-						return R.failed(info + ",积分+0");
-					}
-				}
-
-				WmScorePackageStatus query = new WmScorePackageStatus();
-				query.setUserId(userVO.getUserId() + "");
-				query.setStatus("2");
-				query.setTaskAddFlag("1");
-				query.setPackageId(tWmScorePackage.getId());
-				query.setDelFlag("0");
-				query.setEnableFlag("0");
-				List<WmScorePackageStatus> statusList = wmScorePackageStatusService.list(Wrappers.lambdaQuery(query));
-				if (CollectionUtils.isEmpty(statusList)) {
-//					log.warn("获取积分包异常,任务保存失败9001:{}", tWmScorePackage.getId());
-//					return R.failed("获取积分包异常,任务保存失败");
-					return R.ok();
-				}
-				if (statusList.size() != 1) {
-					log.warn("获取积分包异常,任务保存失败9002:{}", tWmScorePackage.getId());
-					return R.failed("获取积分包异常,任务保存失败");
-				}
-				WmScorePackageStatus scorePackageStatus = statusList.get(0);
-
-				WmWkArticleShare wmWkArticleShare = new WmWkArticleShare();
-				wmWkArticleShare.setShareUserid(userVO.getUserId() + "");
-				wmWkArticleShare.setShareType("1");
-				LocalDateTime localDateTime = LocalDateTime.now();
-				wmWkArticleShare.setCreateTime(localDateTime);
-				wmWkArticleShare.setArctileId(articleId);
-				wmWkArticleShareService.save(wmWkArticleShare);
-
-
-				WmTask wmTask = new WmTask();
-				wmTask.setTaskFrom("1");
-				wmTask.setTaskUserId(userVO.getUserId() + "");  //任务提交人
-				wmTask.setUpdateTime(localDateTime);       //调研时间
-				wmTask.setLookintoDate(localDateTime);       //调研时间
-				wmTask.setTaskStatus("2");  //任务状态
-				wmTask.setSubmitStatus("0");
-				wmTask.setDrugEntId(userVO.getDrugEntId());
-				wmTask.setShareImgUrl(sharePicUrl);
-
-				if ("share".equals(type)) {
-					wmTask.setTaskTypeId("9");
-				} else if ("open".equals(type)) {
-					wmTask.setTaskTypeId("10");
-
-					WmWkArticleShare wmWkArticleShare1 = new WmWkArticleShare();
-					wmWkArticleShare1.setShareType("1");
-					wmWkArticleShare1.setArctileId(articleId);
-					List<WmWkArticleShare> wmWkArticleShareList = wmWkArticleShareService.list(Wrappers.
-							query(wmWkArticleShare1).lambda().orderByDesc(WmWkArticleShare::getCreateTime));
-					if (wmWkArticleShareList.size() > 0) {
-						List<String> stringList = new ArrayList<>();
-						for (WmWkArticleShare wmw : wmWkArticleShareList) {
-							stringList.add(wmw.getId() + "");
-						}
-						LambdaQueryWrapper<WmTask> lambdaQueryWrapper = Wrappers.lambdaQuery();
-						lambdaQueryWrapper.in(WmTask::getTaskContentId, stringList);
-						lambdaQueryWrapper.orderByDesc(WmTask::getCreateTime);
-						List<WmTask> wmTaskList = wmTaskService.list(lambdaQueryWrapper);
-						if (wmTaskList.size() > 0) {
-							for (WmTask wmTask2 : wmTaskList) {
-								if (StringUtils.isNotEmpty(wmTask2.getShareImgUrl())) {
-									wmTask.setShareImgUrl(wmTask2.getShareImgUrl());
-									break;
-								}
-							}
-						}
-					}
-
-				} else {
-					return R.failed("type字段不能为空");
-				}
-
-				System.out.println("获取积分包ID:" + tWmScorePackage.getId());
-
-				WmTaskType wmTaskType = new WmTaskType();
-				wmTaskType.setRuleId(tWmScorePackage.getRuleId());
-				WmTaskType wmTaskType1 = wmTaskTypeService.getById(wmTask.getTaskTypeId());
-				wmTaskType.setTaskTypeName(wmTaskType1.getTaskTypeName());
-
-				score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
-				System.out.println("获取任务得分:" + score);
-				if (score < 0) {
-					return R.failed("获取任务积分失败");
-				}
-				wmTask.setScore(score);
-
-				wmTask.setScorePackageId(tWmScorePackage.getId());
-				wmTask.setTaskRuleId(tWmScorePackage.getTaskRuleId());
-				wmTask.setTaskContentId(wmWkArticleShare.getId() + "");
-				wmTask.setCreateTime(localDateTime);
-				if (isZbRole(userVO.getRoleList(), 5)) {
-					wmTask.setTaskUserType("5");
-				}
-				if (isZbRole(userVO.getRoleList(), 6)) {
-					wmTask.setTaskUserType("6");
-				}
-
-				wmTask.setDeptId(userVO.getDeptId() + "");
-				wmTask.setSubmitStatus("0");
-				boolean isSave = wmTaskService.save(wmTask);   //保存任务
-
-				if (isSave) {
-					WmScorePackage wmScorePackage1 = wmScorePackageService.getById(tWmScorePackage.getId());
-					//判断任务是否完成
-					if (null != wmScorePackage1) {
-						WmTask taskQuery = new WmTask();
-						taskQuery.setScorePackageId(tWmScorePackage.getId());
-						QueryWrapper<WmTask> taskQueryWrapper = Wrappers.query(taskQuery);
-						/**
-						 * 查询出 审核通过和审核中的任务
-						 */
-						taskQueryWrapper.lambda()
-								.ne(WmTask::getTaskStatus, "4")
-								.eq(WmTask::getRealFlag, "0");
-//								.ne(WmTask::getRealFlag, "1");
-						List<WmTask> wmTaskList = wmTaskService.list(taskQueryWrapper);
-						/**
-						 * 判断定量还是定额 1- 定额   2-定量
-						 */
-						if ("1".equals(wmScorePackage1.getPackageType1())) {
-
-							int totalCount = 0;
-							for (WmTask wmtask : wmTaskList) {
-								totalCount += wmtask.getScore();
-							}
-
-							if (totalCount >= wmScorePackage1.getScore()) {
-								wmScorePackage1.setTaskAddFlag("0");
-								scorePackageStatus.setTaskAddFlag("0");
-								wmScorePackageStatusService.updateById(scorePackageStatus);
-							}
-						} else if ("2".equals(wmScorePackage1.getPackageType1())) {
-							score = 0;
-
-							List<WmTask> userTaskList = wmTaskList.stream().filter(item ->
-									item.getTaskUserId().equals(userVO.getUserId() + "")).collect(Collectors.toList());
-
-							if (userTaskList.size() >= scorePackageStatus.getTaskNum()) {
-								scorePackageStatus.setTaskAddFlag("0");
-								wmScorePackageStatusService.updateById(scorePackageStatus);
-
-								/**
-								 * 改变大包状态
-								 */
-								WmScorePackageStatus queryAll = new WmScorePackageStatus();
-								queryAll.setPackageId(tWmScorePackage.getId());
-								queryAll.setStatus("2");
-								queryAll.setTaskAddFlag("0");
-								List<WmScorePackageStatus> statusAll = wmScorePackageStatusService.
-										list(Wrappers.query(queryAll));
-								if (new BigDecimal(wmScorePackage1.getUserNum())
-										.compareTo(new BigDecimal(statusAll.size())) <= 0) {
-									wmScorePackage1.setTaskAddFlag("0");
-								}
-
-							}
-
-//							if (wmTaskList.size() >= wmScorePackage1.getTaskNum()) {
-//								wmScorePackage1.setTaskAddFlag("0");
-//							}
-
-						}
-
-						wmScorePackage1.setIsConduct("1");
-						wmScorePackageService.updateById(wmScorePackage1);
-
-					}
-				} else {
-					return R.failed("任务保存失败");
-				}
-
-			}
-		}
-
-		WmWkArticle wmWkArticle = wmWkArticleService.getById(articleId);
-		if ("share".equals(type)) {
-			wmWkArticle.setForwardNum(wmWkArticle.getForwardNum() + 1);
-		}
-		wmWkArticleService.updateById(wmWkArticle);
-		wmWkArticle.setScore(score + "");
-		return R.ok(wmWkArticle);
+	public R<?> shareArticleById(String articleId, String shareUserId, String openUserId, String type, String packageId, String sharePicUrl) {
+		return shareAndReadTaskMethod(articleId, shareUserId, openUserId, type, packageId, sharePicUrl, "article");
 	}
 
 
-	private final WmWkAlbumService wmWkAlbumService;
-
 	/**
 	 * 分页查询
 	 *
@@ -1154,16 +933,7 @@ public class ApiController {
 
 				drugIds.addAll(entList.stream().map(WmDaDrugEnt::getId).collect(Collectors.toList()));
 			}
-//			if (StringUtils.isNotEmpty(sysUser.getPlatId())) {
-//				List<SysUser> userList = sysUserService.getUserByPlatId(sysUser.getPlatId());
-//				if (CollectionUtils.isNotEmpty(userList)) {
-//					for (SysUser user : userList) {
-//						if (StringUtils.isNotEmpty(user.getDrugEntId()) && !"null".equals(user.getDrugEntId())) {
-//							drugIds.add(user.getDrugEntId());
-//						}
-//					}
-//				}
-//			}
+
 			/**
 			 * 能查到药企
 			 */
@@ -1179,32 +949,6 @@ public class ApiController {
 		Page pageAnswer = wmWkAlbumService.page(page, Wrappers.query(wmWkAlbum)
 				.lambda()
 				.orderByDesc(WmWkAlbum::getCreateTime));
-//		List<WmWkAlbum> wmWkAlbumList = pageAnswer.getRecords();
-//		if (null != wmWkAlbumList) {
-//			for (WmWkAlbum wmW : wmWkAlbumList) {
-//				if (null != wmW.getGlyp()) {
-//					WmDaDrugEntDrugtable wmDaDrugEntDrugtable = new WmDaDrugEntDrugtable();
-////					if(wmW.getGlyp().contains(","))
-////					{
-//					String[] ar = wmW.getGlyp().split(",");
-//					List<String> list = new ArrayList<>(Arrays.asList(ar));
-//					List<WmDaDrugEntDrugtable> wmDaDrugEntDrugtableList = wmDaDrugEntDrugtableService.listByIds(list);
-//					if (wmDaDrugEntDrugtableList.size() > 0) {
-//						String temp1 = "";
-//						for (int i = 0; i < wmDaDrugEntDrugtableList.size(); i++) {
-//							temp1 += wmDaDrugEntDrugtableList.get(i).getDrugname();
-//							if (i < wmDaDrugEntDrugtableList.size() - 1) {
-//								temp1 += ",";
-//							}
-//						}
-//						wmW.setTemp1(temp1);
-//					}
-//
-////					}
-//				}
-//			}
-//		}
-//		pageAnswer.setRecords(wmWkAlbumList);
 		return R.ok(pageAnswer);
 	}
 
@@ -1224,335 +968,86 @@ public class ApiController {
 		System.out.println(shareUserId);
 		if (StringUtils.isNotEmpty(shareUserId)) {
 			WmWkAlbumApiInput input = new WmWkAlbumApiInput();
-			SysUser sysUser = sysUserService.getById(shareUserId);
-			input.setDeptId(sysUser.getDeptId());
-			Page pageAnswer2 = wmWkAlbumService.pageByConditionNew(page, input);
-			return R.ok(pageAnswer2);
-		}
-
-		wmWkAlbum.setDelFlag(0);
-		wmWkAlbum.setEnableFlag(0);
-		Page pageAnswer = wmWkAlbumService.page(page, Wrappers.query(wmWkAlbum)
-				.lambda()
-				.orderByDesc(WmWkAlbum::getCreateTime));
-
-		return R.ok(pageAnswer);
-	}
-
-
-	/**
-	 * 通过id查询文库-相册
-	 *
-	 * @param id id
-	 * @return R
-	 */
-	@ApiOperation(value = "相册-通过id获取相册信息", notes = "通过id获取相册信息")
-	@GetMapping("/getAlbumById")
-	public R getById(Integer id) {
-		WmWkAlbum wmWkAlbum = wmWkAlbumService.getById(id);
-		if (null != wmWkAlbum) {
-			if (null != wmWkAlbum.getGlyp()) {
-				if (wmWkAlbum.getGlyp().indexOf(",") > 0) {
-					String drugTables[] = wmWkAlbum.getGlyp().split(",");
-					List<String> stringList = new ArrayList<>();
-					for (String str : drugTables) {
-						stringList.add(str);
-					}
-					List<WmDaDrugEntDrugtable> wmDaDrugEntDrugtableList = wmDaDrugEntDrugtableService.listByIds(stringList);
-					if (wmDaDrugEntDrugtableList.size() > 0) {
-						String drugStr = "";
-						for (int i = 0; i < wmDaDrugEntDrugtableList.size(); i++) {
-							drugStr += wmDaDrugEntDrugtableList.get(i).getDrugname();
-							if (i < wmDaDrugEntDrugtableList.size() - 1) {
-								drugStr += "、";
-							}
-						}
-						wmWkAlbum.setGlyp(drugStr);
-					}
-				} else {
-					WmDaDrugEntDrugtable wmDaDrugEntDrugtable = wmDaDrugEntDrugtableService.getById(wmWkAlbum.getGlyp());
-					if (null != wmDaDrugEntDrugtable) {
-						wmWkAlbum.setGlyp(wmDaDrugEntDrugtable.getDrugname());
-					}
-				}
-			}
-		}
-		return R.ok(wmWkAlbum);
-	}
-
-
-	/**
-	 * 通过id查询文库-相册
-	 *
-	 * @param id id
-	 * @return R
-	 */
-	@ApiOperation(value = "相册-分享通过分享链接,获取相册", notes = "通过分享链接,获取相册  type=share 分享, type=open 分享链接打开")
-	@GetMapping("/shareAlbumById")
-	public R shareAlbumById(String id, String shareUserId, String openUserId, String type, String packageId, String sharePicUrl) {
-
-		if (StringUtils.isEmpty(id)) {
-			return R.ok();
-		}
-		if (null == shareUserId) {
-			return R.failed("分享人ID不能为空");
-		}
-		SysUser sysUser = sysUserService.getById(shareUserId);
-
-		if (null == id) {
-			id = "7";
-		}
-		int score = 0;
-
-		WmWkAlbum wmWkAlbum = wmWkAlbumService.getById(id);
-
-
-		WmScorePackage tWmScorePackage = new WmScorePackage();
-		if (StringUtils.isNotEmpty(packageId)) {
-			tWmScorePackage = wmScorePackageService.getById(packageId);
-			if (null == tWmScorePackage) {
-				return R.failed("积分包异常,请选择其他积分包");
-			}
-			if ("0".equals(tWmScorePackage.getTaskAddFlag())) {
-				return R.ok();
-			}
-			if (StringUtils.isEmpty(tWmScorePackage.getRuleId())) {
-				return R.failed("积分包未配置积分规则");
-			}
-		}
-
-		if (null != sysUser) {
-			UserVO userVO = sysUserService.selectUserVoById(sysUser.getUserId());
-			if ("1".equals(tWmScorePackage.getPackageType1())) {
-				Boolean fullFlag = wmTaskService.checkUserTaskSubScore(userVO.getUserId() + "");
-				if (fullFlag) {
-					String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
-					String info = StringUtils.isEmpty(value) ? "每日最多提交3万积分" : "每日最多提交" + Integer.parseInt(value) + "积分";
-					log.warn("系统当前限制积分上限:【{}】,提示:【{}】", value, info);
-					return R.failed(info + ",积分+0");
-				}
-			}
-			if (StringUtils.isNotEmpty(wmWkAlbum.getGlyp())) {
-				String drugTables[] = wmWkAlbum.getGlyp().split(",");
-				List<String> stringList = new ArrayList<>();
-				for (String str : drugTables) {
-					stringList.add(str);
-				}
-				List<WmDaDrugEntDrugtable> drugtableList = wmDaDrugEntDrugtableService.listByIds(stringList);
-				if (CollectionUtils.isNotEmpty(drugtableList)) {
-					/**
-					 * 2020-12-13 修改
-					 * 需求有逻辑BUG
-					 */
-					String date = DateUtil.today() + ":";
-					System.err.println("DateUtil.today():" + date);
-					for (int i = 0; i < drugtableList.size(); i++) {
-						WmDaDrugEntDrugtable drug = drugtableList.get(i);
-						if (StringUtils.isEmpty(drug.getDrugEntId())) {
-							continue;
-						}
-						String key = CacheConstants.DRUG_ENT_PERSONAL_SHARE_KEY1 + date
-								+ drug.getDrugEntId() + CacheConstants.DRUG_ENT_PERSONAL_SHARE_KEY2 + sysUser.getUserId();
-						System.err.println("key" + key);
-						if (redisTemplate.hasKey(key)) {
-							int times = Integer.parseInt(redisTemplate.opsForValue().get(key).toString());
-							if (times >= upmsConfig.getMaxShareTimes()) {
-								return R.failed("您当日转发的该药企产品相册次数已超过20次,转发将不再获得积分");
-							}
-							times++;
-							redisTemplate.opsForValue().set(key, times, CacheConstants.SHARE_TIME, TimeUnit.DAYS);
-						} else {
-							redisTemplate.opsForValue().set(key, 1, CacheConstants.SHARE_TIME, TimeUnit.DAYS);
-						}
-
-					}
-				}
-			}
-
-			if (null != userVO) {
-
-				WmWkArticleShare wmWkArticleShare = new WmWkArticleShare();
-				wmWkArticleShare.setShareUserid(userVO.getUserId() + "");
-				wmWkArticleShare.setShareType("1");
-				wmWkArticleShare.setCreateTime(LocalDateTime.now());
-				wmWkArticleShare.setArctileId(id);
-				wmWkArticleShareService.save(wmWkArticleShare);
-
-				WmScorePackageStatus query = new WmScorePackageStatus();
-				query.setUserId(userVO.getUserId() + "");
-				query.setStatus("2");
-				query.setTaskAddFlag("1");
-				query.setPackageId(tWmScorePackage.getId());
-				query.setDelFlag("0");
-				query.setEnableFlag("0");
-				List<WmScorePackageStatus> statusList = wmScorePackageStatusService.list(Wrappers.lambdaQuery(query));
-				if (CollectionUtils.isEmpty(statusList)) {
-//					log.warn("获取积分包异常,任务保存失败9001:{}", tWmScorePackage.getId());
-//					return R.failed("获取积分包异常,任务保存失败");
-					return R.ok();
-				}
-				if (statusList.size() != 1) {
-					log.warn("获取积分包异常,任务保存失败9002:{}", tWmScorePackage.getId());
-					return R.failed("获取积分包异常,任务保存失败");
-				}
-				WmScorePackageStatus scorePackageStatus = statusList.get(0);
-
-
-				WmTask wmTask = new WmTask();
-				wmTask.setTaskFrom("1");
-				wmTask.setTaskUserId(userVO.getUserId() + "");  //任务提交人
-				wmTask.setLookintoDate(LocalDateTime.now());       //调研时间
-				wmTask.setTaskStatus("2"); //任务状态
-				wmTask.setSubmitStatus("0");
-				wmTask.setDrugEntId(userVO.getDrugEntId());
-
-				wmTask.setShareImgUrl(sharePicUrl);
-				if ("share".equals(type)) {
-					wmTask.setTaskTypeId("8");
-				} else if ("open".equals(type)) {
-					wmTask.setTaskTypeId("11");
-					try {
-						WmWkArticleShare wmWkArticleShare1 = new WmWkArticleShare();
-						wmWkArticleShare1.setShareType("1");
-						wmWkArticleShare1.setArctileId(id);
-						List<WmWkArticleShare> wmWkArticleShareList = wmWkArticleShareService.list(Wrappers.query(wmWkArticleShare1)
-								.lambda().orderByDesc(WmWkArticleShare::getCreateTime));
-						if (wmWkArticleShareList.size() > 0) {
-							List<String> stringList = new ArrayList<>();
-							for (WmWkArticleShare wmw : wmWkArticleShareList) {
-								stringList.add(wmw.getId() + "");
-							}
-							LambdaQueryWrapper<WmTask> lambdaQueryWrapper = Wrappers.lambdaQuery();
-							lambdaQueryWrapper.in(WmTask::getTaskContentId, stringList);
-							lambdaQueryWrapper.orderByDesc(WmTask::getCreateTime);
-							List<WmTask> wmTaskList = wmTaskService.list(lambdaQueryWrapper);
-							if (wmTaskList.size() > 0) {
-								for (WmTask wmTask2 : wmTaskList) {
-									if (null != wmTask2.getShareImgUrl() && !"".equals(wmTask2.getShareImgUrl())) {
-										wmTask.setShareImgUrl(wmTask2.getShareImgUrl());
-										break;
-									}
-								}
-							}
-						}
-					} catch (Exception ex) {
-						ex.printStackTrace();
-					}
-				} else {
-					R.failed("type字段不能为空");
-				}
-
-				WmTaskType wmTaskType = new WmTaskType();
-				wmTaskType.setRuleId(tWmScorePackage.getRuleId());
-				WmTaskType wmTaskType1 = wmTaskTypeService.getById(wmTask.getTaskTypeId());
-				wmTaskType.setTaskTypeName(wmTaskType1.getTaskTypeName());
-				score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
-				System.out.println("获取任务得分:" + score);
-				if (score < 0) {
-					return R.failed("获取任务积分失败");
-				}
-				wmTask.setScore(score);
-
-				wmTask.setScorePackageId(tWmScorePackage.getId());
-				wmTask.setTaskRuleId(tWmScorePackage.getTaskRuleId());
-
-
-				wmTask.setTaskContentId(wmWkArticleShare.getId() + "");
-
-				if (isZbRole(userVO.getRoleList(), 5)) {
-					wmTask.setTaskUserType("5");
-				}
-
-				wmTask.setCreateTime(LocalDateTime.now());
-
-				if (isZbRole(userVO.getRoleList(), 6)) {
-					wmTask.setTaskUserType("6");
-				}
-
-				wmTask.setDeptId(userVO.getDeptId() + "");
-				wmTask.setSubmitStatus("0");
-				boolean isSave = wmTaskService.save(wmTask);   //保存任务
-
-				//判断任务是否完成
-				if (isSave) {
-					WmScorePackage wmScorePackage1 = wmScorePackageService.getById(tWmScorePackage.getId());
-					//判断任务是否完成
-					if (null != wmScorePackage1) {
-						WmTask taskQuery = new WmTask();
-						taskQuery.setScorePackageId(tWmScorePackage.getId());
-						QueryWrapper<WmTask> taskQueryWrapper = Wrappers.query(taskQuery);
-						/**
-						 * 查询出 审核通过和审核中的任务
-						 */
-						taskQueryWrapper.lambda()
-								.ne(WmTask::getTaskStatus, "4")
-								.eq(WmTask::getRealFlag, "0");
-//								.ne(WmTask::getRealFlag, "1");
-						List<WmTask> wmTaskList = wmTaskService.list(taskQueryWrapper);
-						/**
-						 * 判断定量还是定额 1- 定额   2-定量
-						 */
-						if ("1".equals(wmScorePackage1.getPackageType1())) {
-
-							int totalCount = 0;
-							for (WmTask wmtask : wmTaskList) {
-								totalCount += wmtask.getScore();
-							}
-
-							if (totalCount >= wmScorePackage1.getScore()) {
-								wmScorePackage1.setTaskAddFlag("0");
-								scorePackageStatus.setTaskAddFlag("0");
-								wmScorePackageStatusService.updateById(scorePackageStatus);
-							}
-						} else if ("2".equals(wmScorePackage1.getPackageType1())) {
-							score = 0;
-
-							List<WmTask> userTaskList = wmTaskList.stream().filter(item ->
-									item.getTaskUserId().equals(userVO.getUserId() + "")).collect(Collectors.toList());
-
-							if (userTaskList.size() >= scorePackageStatus.getTaskNum()) {
-								scorePackageStatus.setTaskAddFlag("0");
-								wmScorePackageStatusService.updateById(scorePackageStatus);
-
-								/**
-								 * 改变大包状态
-								 */
-								WmScorePackageStatus queryAll = new WmScorePackageStatus();
-								queryAll.setPackageId(tWmScorePackage.getId());
-								queryAll.setStatus("2");
-								queryAll.setTaskAddFlag("0");
-								List<WmScorePackageStatus> statusAll = wmScorePackageStatusService.
-										list(Wrappers.query(queryAll));
-								if (new BigDecimal(wmScorePackage1.getUserNum())
-										.compareTo(new BigDecimal(statusAll.size())) <= 0) {
-									wmScorePackage1.setTaskAddFlag("0");
-								}
-							}
+			SysUser sysUser = sysUserService.getById(shareUserId);
+			input.setDeptId(sysUser.getDeptId());
+			Page pageAnswer2 = wmWkAlbumService.pageByConditionNew(page, input);
+			return R.ok(pageAnswer2);
+		}
 
-//							if (wmTaskList.size() >= wmScorePackage1.getTaskNum()) {
-//								wmScorePackage1.setTaskAddFlag("0");
-//							}
+		wmWkAlbum.setDelFlag(0);
+		wmWkAlbum.setEnableFlag(0);
+		Page pageAnswer = wmWkAlbumService.page(page, Wrappers.query(wmWkAlbum)
+				.lambda()
+				.orderByDesc(WmWkAlbum::getCreateTime));
 
-						}
+		return R.ok(pageAnswer);
+	}
 
-						wmScorePackage1.setIsConduct("1");
-						wmScorePackageService.updateById(wmScorePackage1);
 
+	/**
+	 * 通过id查询文库-相册
+	 *
+	 * @param id id
+	 * @return R
+	 */
+	@ApiOperation(value = "相册-通过id获取相册信息", notes = "通过id获取相册信息")
+	@GetMapping("/getAlbumById")
+	public R getById(Integer id) {
+		WmWkAlbum wmWkAlbum = wmWkAlbumService.getById(id);
+		if (null != wmWkAlbum) {
+			if (null != wmWkAlbum.getGlyp()) {
+				if (wmWkAlbum.getGlyp().indexOf(",") > 0) {
+					String drugTables[] = wmWkAlbum.getGlyp().split(",");
+					List<String> stringList = new ArrayList<>();
+					for (String str : drugTables) {
+						stringList.add(str);
+					}
+					List<WmDaDrugEntDrugtable> wmDaDrugEntDrugtableList = wmDaDrugEntDrugtableService.listByIds(stringList);
+					if (wmDaDrugEntDrugtableList.size() > 0) {
+						String drugStr = "";
+						for (int i = 0; i < wmDaDrugEntDrugtableList.size(); i++) {
+							drugStr += wmDaDrugEntDrugtableList.get(i).getDrugname();
+							if (i < wmDaDrugEntDrugtableList.size() - 1) {
+								drugStr += "、";
+							}
+						}
+						wmWkAlbum.setGlyp(drugStr);
 					}
 				} else {
-					return R.failed("任务保存失败");
+					WmDaDrugEntDrugtable wmDaDrugEntDrugtable = wmDaDrugEntDrugtableService.getById(wmWkAlbum.getGlyp());
+					if (null != wmDaDrugEntDrugtable) {
+						wmWkAlbum.setGlyp(wmDaDrugEntDrugtable.getDrugname());
+					}
 				}
 			}
 		}
-
-		if ("share".equals(type)) {
-			wmWkAlbum.setForwardNum(wmWkAlbum.getForwardNum() + 1);
-		}
-		wmWkAlbumService.updateById(wmWkAlbum);
+		return R.ok(wmWkAlbum);
+	}
 
 
-		wmWkAlbum.setScore(score + "");
-		return R.ok(wmWkAlbum);
+	/**
+	 * 通过id查询文库-相册
+	 *
+	 * @param id          相册id
+	 * @param shareUserId 分享人id
+	 * @param openUserId  获取打开人openid授权码
+	 * @param type        操作类型
+	 * @param packageId   积分包id
+	 * @param sharePicUrl 分享图片链接
+	 * @return 结果
+	 */
+	@ApiOperation(value = "相册-分享通过分享链接,获取相册", notes = "通过分享链接,获取相册  type=share 分享, type=open 分享链接打开")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "id", value = "相册id", dataType = "String"),
+			@ApiImplicitParam(name = "shareUserId", value = "分享人ID", dataType = "String"),
+			@ApiImplicitParam(name = "openUserId", value = "获取打开人openid的授权码", dataType = "String"),
+			@ApiImplicitParam(name = "type", value = "操作类型", dataType = "String"),
+			@ApiImplicitParam(name = "packageId", value = "所属积分包id", dataType = "String"),
+			@ApiImplicitParam(name = "sharePicUrl", value = "分享url", dataType = "String")
+	})
+	@GetMapping("/shareAlbumById")
+	public R<?> shareAlbumById(String id, String shareUserId, String openUserId, String type, String packageId, String sharePicUrl) {
+		return shareAndReadTaskMethod(id, shareUserId, openUserId, type, packageId, sharePicUrl, "album");
 	}
 
 
@@ -3487,4 +2982,394 @@ public class ApiController {
 		return R.ok(listMap);
 	}
 
+	/**
+	 * 获取阅读人openid
+	 *
+	 * @param authCode 授权code
+	 * @return 获取结果
+	 */
+	private String getReaderOpenId(String authCode) {
+		//获取小程序openid
+		log.info("小程序登录AUTH_CODE:{}", authCode);
+		Map<String, Object> resultMap = GetOpenIDUtil.oauth2GetOpenid(authCode.trim());
+		log.warn("小程序登录结果信息:{}", resultMap);
+		return (String) resultMap.get("openid");
+	}
+
+	/**
+	 * 分享阅读任务方法
+	 *
+	 * @param id               文章或者相册id
+	 * @param shareUserId      分享人id
+	 * @param openUserId       打开人获取openid授权码
+	 * @param type             操作类型:share->分享, open->打开
+	 * @param packageId        积分包id
+	 * @param sharePicUrl      分享图片链接
+	 * @param taskCategoryName 任务类别名称
+	 * @return 结果
+	 */
+	private R<?> shareAndReadTaskMethod(String id, String shareUserId, String openUserId, String type, String packageId,
+									 String sharePicUrl, String taskCategoryName) {
+
+		LocalDateTime now = LocalDateTime.now();
+		int score = 0;
+		WmWkAlbum wmWkAlbum = null;
+		WmWkArticle wmWkArticle = null;
+
+		if (StringUtils.isEmpty(id) || StringUtils.isEmpty(packageId)) {
+			return R.ok();
+		}
+
+		if (StringUtils.isEmpty(shareUserId)) {
+			return R.failed("分享人ID不能为空");
+		}
+
+		WmScorePackage tWmScorePackage = wmScorePackageService.getById(packageId);
+		if (null == tWmScorePackage) {
+			return R.failed("积分包异常,请选择其他积分包");
+		}
+		if ("0".equals(tWmScorePackage.getTaskAddFlag())) {
+			return R.ok();
+		}
+		if (StringUtils.isEmpty(tWmScorePackage.getRuleId())) {
+			return R.failed("积分包未配置积分规则");
+		}
+
+		if ("article".equalsIgnoreCase(taskCategoryName)) {
+			wmWkArticle = wmWkArticleService.getById(id);
+		} else if ("album".equalsIgnoreCase(taskCategoryName)) {
+			wmWkAlbum = wmWkAlbumService.getById(id);
+		}
+
+		// 获取分享人
+		SysUser sysUser = sysUserService.getById(shareUserId);
+
+		if (null != sysUser) {
+			UserVO userVO = sysUserService.selectUserVoById(sysUser.getUserId());
+			if (null != userVO) {
+
+				if (!StringUtils.equalsAny(type, "share", "open")) {
+					return R.failed("操作类型错误");
+				}
+
+				// 校验相册和文章转发次数限制
+				if ("share".equals(type)) {
+					String info = null;
+					if ("album".equalsIgnoreCase(taskCategoryName)) {
+						info = checkAlbumLimit(wmWkAlbum, sysUser);
+					} else if ("article".equalsIgnoreCase(taskCategoryName)){
+						info = checkArticleLimit(wmWkArticle, sysUser);
+					}
+					if (StringUtils.isNotEmpty(info)) {
+						return R.failed(info);
+					}
+				}
+
+				if ("1".equals(tWmScorePackage.getPackageType1())) {
+					boolean fullFlag = wmTaskService.checkUserTaskSubScore(String.valueOf(userVO.getUserId()));
+					if (fullFlag) {
+						String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
+						String info = StringUtils.isEmpty(value) ? "每日最多提交3万积分" : "每日最多提交" + Integer.parseInt(value) + "积分";
+						log.warn("系统当前限制积分上限:【{}】,提示:【{}】", value, info);
+						return R.failed(info + ",积分+0");
+					}
+				}
+
+				List<WmScorePackageStatus> statusList = wmScorePackageStatusService.list(
+						Wrappers.<WmScorePackageStatus>lambdaQuery()
+								.eq(WmScorePackageStatus::getUserId, String.valueOf(userVO.getUserId()))
+								.eq(WmScorePackageStatus::getStatus, "2")
+								.eq(WmScorePackageStatus::getTaskAddFlag, "1")
+								.eq(WmScorePackageStatus::getPackageId, tWmScorePackage.getId())
+								.eq(WmScorePackageStatus::getDelFlag, "0")
+								.eq(WmScorePackageStatus::getEnableFlag, "0")
+				);
+
+				if (CollectionUtils.isEmpty(statusList)) {
+					return R.ok();
+				}
+
+				if (statusList.size() != 1) {
+					log.warn("获取积分包异常,任务保存失败9002:{}", tWmScorePackage.getId());
+					return R.failed("获取积分包异常,任务保存失败");
+				}
+
+				WmScorePackageStatus scorePackageStatus = statusList.get(0);
+
+				WmWkArticleShare wmWkArticleShare = new WmWkArticleShare();
+				wmWkArticleShare.setShareUserid(userVO.getUserId() + "");
+				wmWkArticleShare.setShareType("1");
+				wmWkArticleShare.setCreateTime(LocalDateTime.now());
+				wmWkArticleShare.setArctileId(id);
+
+				WmTask wmTask = new WmTask();
+				log.info("获取积分包ID:{}", tWmScorePackage.getId());
+				// 根据任务类型获取积分值
+				WmTaskType wmTaskType = new WmTaskType();
+				wmTaskType.setRuleId(tWmScorePackage.getRuleId());
+				if ("share".equalsIgnoreCase(type)) {
+					if ("article".equalsIgnoreCase(taskCategoryName)) {
+						wmTask.setTaskTypeId("9");
+					} else if ("album".equalsIgnoreCase(taskCategoryName)) {
+						wmTask.setTaskTypeId("8");
+					}
+				} else if ("open".equalsIgnoreCase(type)) {
+					if ("article".equalsIgnoreCase(taskCategoryName)) {
+						wmTask.setTaskTypeId("10");
+					} else if ("album".equalsIgnoreCase(taskCategoryName)) {
+						wmTask.setTaskTypeId("11");
+					}
+				}
+				wmTaskType.setTaskTypeName(wmTaskTypeService.getById(wmTask.getTaskTypeId()).getTaskTypeName());
+				score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
+
+				log.info("任务类型预设积分:{}", score);
+				if (score < 0) {
+					return R.failed("获取任务积分失败");
+				}
+				wmTask.setScore(score);
+
+				if ("open".equals(type)) {
+					List<WmWkArticleShare> wmWkArticleShareList = wmWkArticleShareService.list(Wrappers.
+							<WmWkArticleShare>lambdaQuery()
+							.eq(WmWkArticleShare::getArctileId, id)
+							.eq(WmWkArticleShare::getShareType, "1")
+							.orderByDesc(WmWkArticleShare::getCreateTime));
+					if (CollectionUtils.isNotEmpty(wmWkArticleShareList)) {
+						List<String> stringList = wmWkArticleShareList.stream()
+								.map(articleShare -> String.valueOf(articleShare.getId())).collect(Collectors.toList());
+						List<WmTask> wmTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
+								.in(WmTask::getTaskContentId, stringList)
+								.orderByDesc(WmTask::getCreateTime));
+						if (CollectionUtils.isNotEmpty(wmTaskList)) {
+							Optional<WmTask> first = wmTaskList.stream()
+									.filter(t -> StringUtils.isNotEmpty(t.getShareImgUrl()))
+									.findFirst();
+							first.ifPresent(task -> wmTask.setShareImgUrl(task.getShareImgUrl()));
+						}
+					}
+
+					// 获取打开用户的openid
+					if (StringUtils.isEmpty(openUserId)) {
+						log.info("openUserId为null,任务积分为0。");
+						wmTask.setScore(0);
+					} else {
+						String readerOpenId = getReaderOpenId(openUserId.trim());
+						if (readerOpenId.contains("null")) {
+							log.info("获取阅读者openid失败,积分值为0");
+							wmTask.setScore(0);
+						} else {
+							// 过滤文章分享list,如果阅读者已经阅读过同一个分享人分享的的同一篇文章,就不再记录分数
+							List<WmWkArticleShare> shares = wmWkArticleShareList
+									.stream()
+									.filter(s -> readerOpenId.equals(s.getOpenUser()) && shareUserId.equals(s.getShareUserid()))
+									.collect(Collectors.toList());
+							if (CollectionUtils.isNotEmpty(shares)) {
+								log.info("同一个分享存在多次打开记录:{}", shares);
+								wmTask.setScore(0);
+							}
+							//  记录阅读者openid
+							wmWkArticleShare.setOpenUser(readerOpenId);
+
+						}
+					}
+				}
+
+				// 记录分享记录
+				wmWkArticleShareService.save(wmWkArticleShare);
+
+				wmTask.setTaskFrom("1");
+				wmTask.setTaskUserId(String.valueOf(userVO.getUserId()));  //任务提交人
+				wmTask.setLookintoDate(now);       //调研时间
+				wmTask.setUpdateTime(now);
+				wmTask.setTaskStatus("2"); //任务状态
+				wmTask.setSubmitStatus("0");
+				wmTask.setDrugEntId(userVO.getDrugEntId());
+				wmTask.setShareImgUrl(sharePicUrl);
+				wmTask.setScorePackageId(tWmScorePackage.getId());
+				wmTask.setTaskRuleId(tWmScorePackage.getTaskRuleId());
+				wmTask.setTaskContentId(String.valueOf(wmWkArticleShare.getId()));
+				wmTask.setCreateTime(now);
+
+				if (isZbRole(userVO.getRoleList(), 5)) {
+					wmTask.setTaskUserType("5");
+				}
+
+				if (isZbRole(userVO.getRoleList(), 6)) {
+					wmTask.setTaskUserType("6");
+				}
+
+				wmTask.setDeptId(String.valueOf(userVO.getDeptId()));
+
+				// 保存前最后校验一遍文章分享和文章阅读以及产品分享和产品分享阅读所做的积分值是否在比例范围之内(初始设定为30%)
+				String value = sysPublicParamService.getSysPublicParamKeyToValue("SHARE_READ_TASK_SCORE_UPPER_LIMIT_RATIO");
+				value = StringUtils.isEmpty(value) ? "0.3" : value;
+				log.warn("系统当前分享类及分享阅读类积分上限:【{}】", value);
+				int limit = (int) (tWmScorePackage.getScore() * Double.parseDouble(value));
+				List<WmTask> taskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
+						// 两对分享阅读任务
+						.in(WmTask::getTaskTypeId, Arrays.asList("8", "9", "10", "11"))
+						// 同一个积分包
+						.eq(WmTask::getScorePackageId, tWmScorePackage.getId())
+						// 分享人
+						.eq(WmTask::getTaskUserId, shareUserId)
+						// 审核不通过
+						.ne(WmTask::getTaskStatus, "4")
+				);
+
+				int sum = taskList.stream().mapToInt(WmTask::getScore).sum();
+				log.info("当前积分包值限制上限为:{},当前任务积分和为:{}", limit, sum);
+				if (sum >= limit) {
+					log.warn("完成任务积分值已经超过上限,设置为0");
+					wmTask.setScore(0);
+				}
+
+				boolean isSave = wmTaskService.save(wmTask);   //保存任务
+
+				//判断任务是否完成
+				if (isSave) {
+					WmScorePackage wmScorePackage1 = wmScorePackageService.getById(tWmScorePackage.getId());
+					//判断任务是否完成
+					if (null != wmScorePackage1) {
+						// 查询出 审核通过和审核中的任务
+						List<WmTask> wmTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
+								.eq(WmTask::getScorePackageId, tWmScorePackage.getId())
+								// 查询出 审核通过和审核中的任务
+								.ne(WmTask::getTaskStatus, "4")
+								.eq(WmTask::getRealFlag, "0"));
+						// 判断定量还是定额 1- 定额   2-定量
+						if ("1".equals(wmScorePackage1.getPackageType1())) {
+
+							int totalCount = 0;
+							for (WmTask wmtask : wmTaskList) {
+								totalCount += wmtask.getScore();
+							}
+
+							if (totalCount >= wmScorePackage1.getScore()) {
+								wmScorePackage1.setTaskAddFlag("0");
+								scorePackageStatus.setTaskAddFlag("0");
+								wmScorePackageStatusService.updateById(scorePackageStatus);
+							}
+						} else if ("2".equals(wmScorePackage1.getPackageType1())) {
+							score = 0;
+
+							List<WmTask> userTaskList = wmTaskList.stream()
+									.filter(item -> item.getTaskUserId().equals(String.valueOf(userVO.getUserId())))
+									.collect(Collectors.toList());
+
+							if (userTaskList.size() >= scorePackageStatus.getTaskNum()) {
+								scorePackageStatus.setTaskAddFlag("0");
+								wmScorePackageStatusService.updateById(scorePackageStatus);
+								// 改变大包状态
+								WmScorePackageStatus queryAll = new WmScorePackageStatus();
+								queryAll.setPackageId(tWmScorePackage.getId());
+								queryAll.setStatus("2");
+								queryAll.setTaskAddFlag("0");
+								List<WmScorePackageStatus> statusAll = wmScorePackageStatusService.
+										list(Wrappers.query(queryAll));
+								if (new BigDecimal(wmScorePackage1.getUserNum())
+										.compareTo(new BigDecimal(statusAll.size())) <= 0) {
+									wmScorePackage1.setTaskAddFlag("0");
+								}
+							}
+
+						}
+
+						wmScorePackage1.setIsConduct("1");
+						wmScorePackageService.updateById(wmScorePackage1);
+
+					}
+				} else {
+					return R.failed("任务保存失败");
+				}
+			}
+		}
+
+		if ("album".equalsIgnoreCase(taskCategoryName)) {
+			if ("share".equalsIgnoreCase(type)) {
+				wmWkAlbum.setForwardNum(wmWkAlbum.getForwardNum() + 1);
+			}
+			wmWkAlbumService.updateById(wmWkAlbum);
+			wmWkAlbum.setScore(String.valueOf(score));
+			return R.ok(wmWkAlbum);
+		} else if ("article".equalsIgnoreCase(taskCategoryName)) {
+			if ("share".equalsIgnoreCase(type)) {
+				wmWkArticle.setForwardNum(wmWkArticle.getForwardNum() + 1);
+			}
+			wmWkArticleService.updateById(wmWkArticle);
+			wmWkArticle.setScore(String.valueOf(score));
+			return R.ok(wmWkArticle);
+		}
+		return R.ok();
+	}
+
+	/**
+	 * 校验文章转发限制
+	 *
+	 * @param wmWkArticle 文章
+	 * @param sysUser     转发人
+	 * @return 校验信息
+	 */
+	private String checkArticleLimit(WmWkArticle wmWkArticle, SysUser sysUser) {
+		Assert.notNull(wmWkArticle);
+		LocalDateTime now = LocalDateTime.now();
+		final String cacheKey = CacheConstants.ARTICLE_PERSONAL_SHARE_KEY + DateUtil.format(now, "yyyyMMdd:") + sysUser.getUserId() + ":" + wmWkArticle
+				.getId();
+		Integer times = (Integer) redisTemplate.opsForValue().get(cacheKey);
+		if (null != times) {
+			if (times++ >= 5) {
+				return "您当日转发的该文章次数已超过20次,转发将不再获得积分";
+			}
+		} else {
+			times = 1;
+		}
+		redisTemplate.opsForValue()
+				.set(cacheKey, times, Duration.between(now, LocalDateTime.of(now.toLocalDate(), LocalTime.MAX)));
+		return null;
+	}
+
+	/**
+	 * 校验相册转发限制
+	 *
+	 * @param wmWkAlbum 相册
+	 * @param sysUser   分享人
+	 * @return 校验结果信息
+	 */
+	private String checkAlbumLimit(WmWkAlbum wmWkAlbum, SysUser sysUser) {
+
+		Assert.notNull(wmWkAlbum);
+		if (StringUtils.isNotEmpty(wmWkAlbum.getGlyp())) {
+			List<WmDaDrugEntDrugtable> drugTableList =
+					wmDaDrugEntDrugtableService.listByIds(Arrays.asList(wmWkAlbum.getGlyp().split(",")));
+			if (CollectionUtils.isNotEmpty(drugTableList)) {
+				/**
+				 * 2020-12-13 修改
+				 * 需求有逻辑BUG
+				 */
+				String date = DateUtil.today() + ":";
+				System.err.println("DateUtil.today():" + date);
+				for (int i = 0; i < drugTableList.size(); i++) {
+					WmDaDrugEntDrugtable drug = drugTableList.get(i);
+					if (StringUtils.isEmpty(drug.getDrugEntId())) {
+						continue;
+					}
+					String key = CacheConstants.DRUG_ENT_PERSONAL_SHARE_KEY1 + date
+							+ drug.getDrugEntId() + CacheConstants.DRUG_ENT_PERSONAL_SHARE_KEY2 + sysUser.getUserId();
+					System.err.println("key" + key);
+					if (redisTemplate.hasKey(key)) {
+						int times = Integer.parseInt(redisTemplate.opsForValue().get(key).toString());
+						if (times >= upmsConfig.getMaxShareTimes()) {
+							return "您当日转发的该药企产品相册次数已超过20次,转发将不再获得积分";
+						}
+						times++;
+						redisTemplate.opsForValue().set(key, times, CacheConstants.SHARE_TIME, TimeUnit.DAYS);
+					} else {
+						redisTemplate.opsForValue().set(key, 1, CacheConstants.SHARE_TIME, TimeUnit.DAYS);
+					}
+
+				}
+			}
+		}
+		return null;
+	}
 }

+ 0 - 6
hnqz-upms/hnqz-upms-biz/src/main/resources/banner.txt

@@ -1,6 +0,0 @@
-██╗   ██╗ █████╗  ██████╗     ██╗   ██╗██╗    ██╗   ██╗██╗   ██╗███╗   ██╗              ██╗   ██╗██████╗ ███╗   ███╗███████╗
-╚██╗ ██╔╝██╔══██╗██╔═══██╗    ╚██╗ ██╔╝██║    ╚██╗ ██╔╝██║   ██║████╗  ██║              ██║   ██║██╔══██╗████╗ ████║██╔════╝
- ╚████╔╝ ███████║██║   ██║     ╚████╔╝ ██║     ╚████╔╝ ██║   ██║██╔██╗ ██║    █████╗    ██║   ██║██████╔╝██╔████╔██║███████╗
-  ╚██╔╝  ██╔══██║██║   ██║      ╚██╔╝  ██║      ╚██╔╝  ██║   ██║██║╚██╗██║    ╚════╝    ██║   ██║██╔═══╝ ██║╚██╔╝██║╚════██║
-   ██║   ██║  ██║╚██████╔╝       ██║   ██║       ██║   ╚██████╔╝██║ ╚████║              ╚██████╔╝██║     ██║ ╚═╝ ██║███████║
-   ╚═╝   ╚═╝  ╚═╝ ╚═════╝        ╚═╝   ╚═╝       ╚═╝    ╚═════╝ ╚═╝  ╚═══╝               ╚═════╝ ╚═╝     ╚═╝     ╚═╝╚══════╝