guo00guo 5 rokov pred
rodič
commit
8373e04be1

+ 0 - 1
core/src/main/java/com/mooctest/crowd/domain/Application.java

@@ -7,7 +7,6 @@ import org.springframework.boot.web.servlet.ServletComponentScan;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
-
 @SpringBootApplication
 @EnableConfigurationProperties
 @ServletComponentScan

+ 1 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/TechnicalArticles.java

@@ -2,6 +2,7 @@ package com.mooctest.crowd.domain.domainobject;
 
 import lombok.Data;
 
+import java.sql.Date;
 import java.sql.Timestamp;
 
 @Data

+ 0 - 3
core/src/main/java/com/mooctest/crowd/domain/model/BankCardPO.java

@@ -15,9 +15,6 @@ public class BankCardPO {
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
 
-    @Column(name = "BC_NAME")
-    private String name;
-
     @Column(name="BC_USER")
     private String user;
 

+ 1 - 0
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestProjectPO.java

@@ -4,6 +4,7 @@ import lombok.Data;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Date;
 import java.sql.Timestamp;
 
 /**

+ 3 - 3
core/src/main/java/com/mooctest/crowd/domain/repository/PublicationsRepo.java

@@ -38,9 +38,9 @@ public class PublicationsRepo implements IPublicationsRepo{
             public Predicate toPredicate(Root<PublicationsPO> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
                 Predicate predicate = cb.conjunction();
                 if(keyword != null) {
-                    predicate.getExpressions().add(
-                            cb.like(a.<String>get("longTitle"), "%" + StringUtils.trim(keyword) + "%")
-                    );
+                    Predicate title=cb.like(a.get("title"), "%" + StringUtils.trim(keyword) + "%");
+                    Predicate author=cb.like(a.get("authorList"), "%" + StringUtils.trim(keyword) + "%");
+                    predicate.getExpressions().add(cb.or(title,author));
                 }
                 return predicate;
             }

+ 0 - 1
site/pom.xml

@@ -145,7 +145,6 @@
 			<plugin>
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-maven-plugin</artifactId>
-
 			</plugin>
 		</plugins>
 	</build>

+ 2 - 1
site/src/main/java/com/mooctest/crowd/site/controller/PersonalDataController.java

@@ -7,6 +7,7 @@ import com.mooctest.crowd.site.data.vo.BankCardVO;
 import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 import com.mooctest.crowd.site.service.PersonalDataService;
+import org.codehaus.jettison.json.JSONException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -54,7 +55,7 @@ public class PersonalDataController {
     }
 
     @RequestMapping(value = "/addbankcard/{userId:\\d+}", method = RequestMethod.POST)
-    public BankCardDTO addBankCard(@PathVariable("userId") long userId, @RequestBody BankCardVO bankCardVO){
+    public BankCardDTO addBankCard(@PathVariable("userId") long userId, @RequestBody BankCardVO bankCardVO) throws JSONException {
         return  personalDataService.addBankCard(userId,bankCardVO);
     }
 

+ 4 - 3
site/src/main/java/com/mooctest/crowd/site/data/dto/CrowdTestSquareIndexDTO.java

@@ -33,13 +33,14 @@ public class CrowdTestSquareIndexDTO {
      */
     public void initHotTaskAndProject(){
         List<CrowdTestProjectVO> projectVOS = this.crowdTestProjectVOs.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList());
-        this.crowdTestProjectVOs = projectVOS;
+        this.crowdTestProjectVOs = projectVOS.subList(0,6);
         //根据参与人数和创建时间进行排序
         List<CrowdTestProjectVO> list1 = projectVOS.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getJoinCount).reversed()).collect(Collectors.toList());
         //截取前七条
         this.hotCrowdTestProjectVOs = list1.subList(0, 7);
-        List<CrowdTaskVO> tasklist1 = crowdTestTaskVOS.stream().sorted(Comparator.comparing(CrowdTaskVO::getAcceptedCount).reversed()).collect(Collectors.toList());
-        List<CrowdTaskVO> tasklist2 = tasklist1.stream().sorted(Comparator.comparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList());
+        List<CrowdTaskVO> tasklist1 = crowdTestTaskVOS.stream().sorted(Comparator.comparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList());
+        this.crowdTestTaskVOS=tasklist1.subList(0,6);
+        List<CrowdTaskVO> tasklist2 = tasklist1.stream().sorted(Comparator.comparing(CrowdTaskVO::getParticipantCount).reversed()).collect(Collectors.toList());
         //过滤掉已完成的
         tasklist2.stream().filter(ct -> ct.getStatus() != CrowdTestTaskStatus.HAS_FINISHED);
         this.hotCrowdTaskVOs = tasklist2.subList(0, 7);

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/BankCardVO.java

@@ -13,4 +13,6 @@ public class BankCardVO {
     private String number;
     private String code;
     private Long userId;
+    private String logoUrl;
+
 }

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTaskVO.java

@@ -81,7 +81,7 @@ public class CrowdTaskVO implements Serializable {
                 this.time_interval=times[1]+"小时前发布";
             }else if(times[2]>0){
                 this.time_interval=times[2]+"分钟前发布";
-            }else{
+            }else if(times[3]>0){
                 this.time_interval=times[3]+"秒前发布";
             }
         } catch (ParseException e) {

+ 16 - 15
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTestProjectVO.java

@@ -48,11 +48,11 @@ public class CrowdTestProjectVO {
     private int isDeleted;
     private int joinCount;
     private Timestamp createTime;
-    private  String  time_interval;
+    private String time_interval;
 
-    public  CrowdTestProjectVO(CrowdTestProject crowdTestProject) {
-        id=crowdTestProject.getId();
-        code=crowdTestProject.getCode();
+    public CrowdTestProjectVO(CrowdTestProject crowdTestProject) {
+        id = crowdTestProject.getId();
+        code = crowdTestProject.getCode();
         name = crowdTestProject.getName();
         userId = crowdTestProject.getUserId();
         regionalManagerId = crowdTestProject.getRegionalManagerId();
@@ -78,23 +78,24 @@ public class CrowdTestProjectVO {
         createTime = crowdTestProject.getCreateTime();
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {
-            Date date = df.parse(df.format(crowdTestProject.getCreateTime()));
+            Date date = crowdTestProject.getCreateTime();
             long[] times = getDistanceTimes(date);
-            if(times[0]>0){
-                this.time_interval=times[0]+"天前发布";
-            }else if(times[1]>0){
-                this.time_interval=times[1]+"小时前发布";
-            }else if(times[2]>0){
-                this.time_interval=times[2]+"分钟前发布";
-            }else{
-                this.time_interval=times[3]+"秒前发布";
+            if (times[0] > 0) {
+                this.time_interval = times[0] + "天前发布";
+            } else if (times[1] > 0) {
+                this.time_interval = times[1] + "小时前发布";
+            } else if (times[2] > 0) {
+                this.time_interval = times[2] + "分钟前发布";
+            } else if (times[3] > 0) {
+                this.time_interval = times[3] + "秒前发布";
             }
-        } catch (ParseException e) {
+        } catch (Exception e) {
             e.printStackTrace();
         }
 
 
     }
+
     public static long[] getDistanceTimes(Date date) {
         long day = 0;
         long hour = 0;
@@ -105,7 +106,7 @@ public class CrowdTestProjectVO {
         day = diff / (24 * 60 * 60 * 1000);
         hour = (diff / (60 * 60 * 1000) - day * 24);
         min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
-        sec = (diff/1000-day*24*60*60-hour*60*60-min*60);
+        sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
         long[] times = {day, hour, min, sec};
         return times;
     }

+ 3 - 2
site/src/main/java/com/mooctest/crowd/site/data/vo/TechnicalArticlesVO.java

@@ -1,7 +1,6 @@
 package com.mooctest.crowd.site.data.vo;
 
 import com.mooctest.crowd.domain.domainobject.TechnicalArticles;
-import com.mooctest.crowd.domain.model.TechnicalArticlesPO;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
@@ -11,6 +10,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+
 @Data
 @NoArgsConstructor
 public class TechnicalArticlesVO {
@@ -36,7 +36,7 @@ public class TechnicalArticlesVO {
         this.publicTime=project.getPublicTime();
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {
-            Date date = df.parse(df.format(project.getPublicTime()));
+            Date date =  df.parse(df.format(project.getPublicTime()));
             long[] times = getDistanceTimes(date);
             if(times[0]>0){
                 this.time_interval=times[0]+"天前发布";
@@ -57,6 +57,7 @@ public class TechnicalArticlesVO {
         long min = 0;
         long sec = 0;
         long diff;
+
         diff = System.currentTimeMillis() - date.getTime();
         day = diff / (24 * 60 * 60 * 1000);
         hour = (diff / (60 * 60 * 1000) - day * 24);

+ 2 - 1
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -7,6 +7,7 @@ import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
 import com.mooctest.crowd.domain.model.PersonalAuthenticationPO;
 import com.mooctest.crowd.site.data.vo.*;
+import org.codehaus.jettison.json.JSONException;
 import org.springframework.data.domain.Pageable;
 import com.mooctest.crowd.site.command.LoginCommand;
 import com.mooctest.crowd.site.command.RegisterCommand;
@@ -82,7 +83,7 @@ public interface ViewMediator {
 
     BankCardDTO getBankCard(long userId);
 
-    BankCardDTO addBankCard(long userId,BankCardVO bankCardVO);
+    BankCardDTO addBankCard(long userId,BankCardVO bankCardVO) throws JSONException;
 
     BankCardDTO deleteBankCard(long id,long userId);
 

+ 22 - 16
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -19,12 +19,15 @@ import com.mooctest.crowd.site.data.enums.RoleType;
 import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import lombok.extern.slf4j.Slf4j;
+import org.codehaus.jettison.json.JSONException;
+import org.codehaus.jettison.json.JSONObject;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -784,16 +787,15 @@ public class WebMediatorImpl implements ViewMediator {
     @Override
     public UserDTO updateInformation(long userId, UserVO userVO) {
         Optional<UserPO> userPO = userDao.findById(userId);
-        userPO.get().setUnit(userVO.getUnit());
-        userPO.get().setGender(userVO.getGender());
-        userPO.get().setBirthday(userVO.getBirthday());
-        userPO.get().setProvince(userVO.getProvince());
-        userPO.get().setCity(userVO.getCity());
-        userPO.get().setCounty(userVO.getCounty());
-        userPO.get().setDetailedAddress(userVO.getDetailedAddress());
-        userPO.get().setPersonalCompetence(userVO.getPersonalCompetence());
-        userDao.save(userPO.get());
-        this.getInformation(userId);
+            userPO.get().setUnit(userVO.getUnit());
+            userPO.get().setGender(userVO.getGender());
+            userPO.get().setBirthday(userVO.getBirthday());
+            userPO.get().setProvince(userVO.getProvince());
+            userPO.get().setCity(userVO.getCity());
+            userPO.get().setCounty(userVO.getCounty());
+            userPO.get().setDetailedAddress(userVO.getDetailedAddress());
+            userPO.get().setPersonalCompetence(userVO.getPersonalCompetence());
+            userDao.save(userPO.get());
         return this.getInformation(userId);
     }
 
@@ -856,11 +858,11 @@ public class WebMediatorImpl implements ViewMediator {
         bankCardDao.findByUserIdAndIsDeleted(userId,DeletedStatus.isNotDeleted).forEach(bankCardPO ->{
             BankCardVO bankCardVO = new BankCardVO();
             bankCardVO.setId(bankCardPO.getId());
-            bankCardVO.setName(bankCardPO.getName());
             bankCardVO.setUser(bankCardPO.getUser());
             bankCardVO.setNumber(bankCardPO.getNumber());
             Optional<BankLogoPO> bankLogo=bankLogoDao.findByCode(bankCardPO.getCode());
-            bankCardVO.setCode(bankLogo.get().getLogoUrl());
+            bankCardVO.setLogoUrl(bankLogo.get().getLogoUrl());
+            bankCardVO.setName(bankLogo.get().getName());
             bankCardVOList.add(bankCardVO);
         });
         List<BankCardVO> results = bankCardVOList.stream().distinct().collect(Collectors.toList());
@@ -869,17 +871,21 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public BankCardDTO addBankCard(long userId, BankCardVO bankCardVO) {
+    public BankCardDTO addBankCard(long userId, BankCardVO bankCardVO) throws JSONException {
         BankCardPO bankCardPO=new BankCardPO();
-        bankCardPO.setName(bankCardVO.getName());
+        String bankNo=bankCardVO.getNumber();
+        String url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo="+bankNo+"&cardBinCheck=true";
+        RestTemplate restTemplate = new RestTemplate();
+        String result = restTemplate.getForObject(url,String.class);
+        JSONObject json = new JSONObject(result);
+        String bank = String.valueOf(json.get("bank"));
         bankCardPO.setUser(bankCardVO.getUser());
         bankCardPO.setNumber(bankCardVO.getNumber());
-        bankCardPO.setCode(bankCardVO.getCode());
+        bankCardPO.setCode(bank);
         bankCardPO.setUserId(userId);
         bankCardDao.save(bankCardPO);
         return this.getBankCard(userId);
     }
-
     @Override
     public BankCardDTO deleteBankCard(long id, long userId) {
         Optional<BankCardPO> bankCardPO=bankCardDao.findById(id);

+ 2 - 1
site/src/main/java/com/mooctest/crowd/site/service/PersonalDataService.java

@@ -6,6 +6,7 @@ import com.mooctest.crowd.site.data.dto.UserDTO;
 import com.mooctest.crowd.site.data.vo.BankCardVO;
 import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
+import org.codehaus.jettison.json.JSONException;
 
 
 public interface PersonalDataService {
@@ -23,7 +24,7 @@ public interface PersonalDataService {
 
     BankCardDTO getBankCard(long userId);
 
-    BankCardDTO addBankCard(long userId,BankCardVO bankCardVO);
+    BankCardDTO addBankCard(long userId,BankCardVO bankCardVO) throws JSONException;
 
     BankCardDTO deleteBankCard(long id,long userId);
 }

+ 2 - 1
site/src/main/java/com/mooctest/crowd/site/service/impl/PersonalDataServiceImpl.java

@@ -8,6 +8,7 @@ import com.mooctest.crowd.site.data.vo.QualificationVO;
 import com.mooctest.crowd.site.data.vo.UserVO;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.PersonalDataService;
+import org.codehaus.jettison.json.JSONException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -53,7 +54,7 @@ public class PersonalDataServiceImpl implements PersonalDataService {
     }
 
     @Override
-    public BankCardDTO addBankCard(long userId, BankCardVO bankCardVO) {
+    public BankCardDTO addBankCard(long userId, BankCardVO bankCardVO) throws JSONException {
         return viewMediator.addBankCard(userId,bankCardVO);
     }
 

+ 2 - 0
site/src/main/resources/application.yml

@@ -65,6 +65,7 @@ spring:
   profiles: dev
   datasource:
     url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+
     username: mooctest
     password: secr3t!
   redis:
@@ -115,6 +116,7 @@ spring:
   profiles: dev-pre
   datasource:
     url: jdbc:mysql://101.37.175.111:3306/crowd-test-service-pre?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+
     username: mooctest
     password: secr3t!
   redis: