增加从payapi获取数据接口
diff --git a/backend/build.gradle b/backend/build.gradle
index dd3c0ca..45c52ba 100644
--- a/backend/build.gradle
+++ b/backend/build.gradle
@@ -73,6 +73,10 @@
compile group: 'com.sun.jersey.contribs', name: 'jersey-multipart', version: '1.19.3'
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.9.1'
compile group: 'log4j', name: 'log4j', version: '1.2.17'
+
+ compile group: 'com.supwisdom', name: 'payapi-sdk', version: '1.0.25-4-g8c3fe54'
+
+ implementation 'org.hamcrest:hamcrest:2.1'
}
dependencyManagement {
@@ -86,4 +90,15 @@
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
+}
+
+repositories {
+ mavenCentral()
+ maven {
+ url "http://ykt-nx.supwisdom.com/repository/ecard-repo/"
+ credentials {
+ username 'ecard'
+ password 'Ecard4SUP'
+ }
+ }
}
\ No newline at end of file
diff --git a/backend/src/main/java/com/supwisdom/dlpay/api/bean/ApiResponse.java b/backend/src/main/java/com/supwisdom/dlpay/api/util/ApiResponse.java
similarity index 92%
rename from backend/src/main/java/com/supwisdom/dlpay/api/bean/ApiResponse.java
rename to backend/src/main/java/com/supwisdom/dlpay/api/util/ApiResponse.java
index e4cbca1..b8cba78 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/api/bean/ApiResponse.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/api/util/ApiResponse.java
@@ -1,4 +1,4 @@
-package com.supwisdom.dlpay.api.bean;
+package com.supwisdom.dlpay.api.util;
public class ApiResponse {
private Integer retcode;
diff --git a/backend/src/main/java/com/supwisdom/dlpay/api/util/PointTaskCode.java b/backend/src/main/java/com/supwisdom/dlpay/api/util/PointTaskCode.java
new file mode 100644
index 0000000..05cddb7
--- /dev/null
+++ b/backend/src/main/java/com/supwisdom/dlpay/api/util/PointTaskCode.java
@@ -0,0 +1,49 @@
+package com.supwisdom.dlpay.api.util;
+
+public enum PointTaskCode {
+ /**
+ * 签到
+ */
+ SIGN_IN("signin", 4),
+ /**
+ * 认证
+ */
+ AUTH("auth",7),
+ /**
+ * 消费
+ */
+ CONSUME("consume",8),
+ /**
+ * 兑换
+ */
+ EXCHANGE("exchange",9);
+
+ private String code;
+ private Integer taskid;
+
+ PointTaskCode(String code, Integer taskid) {
+ this.code = code;
+ this.taskid = taskid;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public Integer getTaskid() {
+ return taskid;
+ }
+
+ public void setTaskid(Integer taskid) {
+ this.taskid = taskid;
+ }
+
+ @Override
+ public String toString() {
+ return code;
+ }
+}
diff --git a/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/FeedbackRepositoryImpl.java b/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/FeedbackRepositoryImpl.java
index 131fb49..0487f6c 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/FeedbackRepositoryImpl.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/portal/dao/impl/FeedbackRepositoryImpl.java
@@ -14,8 +14,8 @@
@NotNull
@Override
public Pagination getFeedbackList(@NotNull FeedbackSearchBean bean) {
- StringBuilder sql = new StringBuilder("select f.*,p.name username from tb_feedback f left join tb_person p on f.userid = p.userid where 1=1 ");
- String username = bean.getUsername();
+ StringBuilder sql = new StringBuilder("select f.*,m.phone username from tb_feedback f left join tb_mobile_user m on f.mobileid = m.uid where 1=1 ");
+ String phone = bean.getPhone();
String title = bean.getTitle();
String startdate = bean.getStartdate();
String enddate = bean.getEnddate();
@@ -23,8 +23,8 @@
String mobileid = bean.getMobileid();
int pageno = bean.getPageno();
int pagesize = bean.getPagesize();
- if (!StringUtil.isEmpty(username)) {
- sql.append(" and p.name like :username");
+ if (!StringUtil.isEmpty(phone)) {
+ sql.append(" and m.loginid =:phone");
}
if (!StringUtil.isEmpty(title)) {
sql.append(" and f.title like :title");
@@ -43,8 +43,8 @@
}
sql.append(" order by f.fbtime desc");
Finder f = Finder.create(sql.toString());
- if (!StringUtil.isEmpty(username)) {
- f.setParameter("username", "%" + username.trim() + "%");
+ if (!StringUtil.isEmpty(phone)) {
+ f.setParameter("phone", phone.trim());
}
if (!StringUtil.isEmpty(title)) {
f.setParameter("title", "%" + title.trim() + "%");
diff --git a/backend/src/main/java/com/supwisdom/dlpay/portal/util/PayApiInit.java b/backend/src/main/java/com/supwisdom/dlpay/portal/util/PayApiInit.java
new file mode 100644
index 0000000..b1917c8
--- /dev/null
+++ b/backend/src/main/java/com/supwisdom/dlpay/portal/util/PayApiInit.java
@@ -0,0 +1,46 @@
+package com.supwisdom.dlpay.portal.util;
+
+import com.supwisdom.dlpay.api.bean.ApiVersionResponse;
+import com.supwisdom.dlpay.framework.service.SystemUtilService;
+import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
+import com.supwisdom.dlpay.paysdk.proxy.ApiCommonProxy;
+import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.notNullValue;
+
+@Component
+@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
+@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
+public class PayApiInit {
+ @Autowired
+ private SystemUtilService systemUtilService;
+
+ private String appid;
+
+ private String secret;
+
+ @Autowired
+ private ApiLoginProxy apiLoginProxy;
+
+ @Autowired
+ private ApiCommonProxy apiCommonProxy;
+
+ @PostConstruct
+ public void login() {
+ appid = systemUtilService.getBusinessValue(PortalConstant.SYSPARA_PORTAL_APPID);
+ secret = systemUtilService.getBusinessValue(PortalConstant.SYSPARA_PORTAL_SECRET);
+ ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+ helper.login(appid, secret);
+ System.out.println("向支付中心登录成功");
+ ApiVersionResponse version = apiCommonProxy.apiVersion();
+ assertThat("get version error " + version.getException(),
+ version.getVersion(), notNullValue());
+ }
+}
diff --git a/backend/src/main/java/com/supwisdom/dlpay/portal/util/PortalConstant.java b/backend/src/main/java/com/supwisdom/dlpay/portal/util/PortalConstant.java
index 4a6de31..490b5d6 100644
--- a/backend/src/main/java/com/supwisdom/dlpay/portal/util/PortalConstant.java
+++ b/backend/src/main/java/com/supwisdom/dlpay/portal/util/PortalConstant.java
@@ -10,10 +10,16 @@
public static final String SYSPARA_IMAGE_URLASSIGN = "imageserver.url.assign";
public static final String SYSPARA_IMAGE_URLPUSH = "imageserver.url.push";
public static final String SYSPARA_ARTICLE_CURRENTNO = "article.currentno";
+ public static final String SYSPARA_PORTAL_APPID = "portal.appid";
+ public static final String SYSPARA_PORTAL_SECRET = "portal.secret";
public static final String ARTICLE_STATUS_SAVE = "save";
public static final String ARTICLE_STATUS_PASS = "pass";
public static final String ARTICLE_STATUS_RELEASED = "released";
public static final String ARTICLE_STATUS_REVIEW = "review";
public static final String ARTICLE_STATUS_REJECT = "reject";
+
+ public static final String POINTTASK_STATUS_UNDONE = "undone";
+ public static final String POINTTASK_STATUS_DONE = "done";
+ public static final String POINTTASK_STATUS_RECEIVED = "received";
}
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
new file mode 100644
index 0000000..ee5c14c
--- /dev/null
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/api/scheduler_task.kt
@@ -0,0 +1,25 @@
+package com.supwisdom.dlpay.api
+
+import com.supwisdom.dlpay.paysdk.ApiLoginHelper
+import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy
+import mu.KotlinLogging
+import net.javacrumbs.shedlock.core.SchedulerLock
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.scheduling.annotation.Scheduled
+import org.springframework.stereotype.Component
+
+@Component
+class RefreshJwtSchedulerTask {
+
+ private val logger = KotlinLogging.logger { }
+
+ @Autowired
+ private lateinit var apiLoginProxy: ApiLoginProxy
+
+ @Scheduled(cron = "0 */20 * * * ?")
+ @SchedulerLock(name = "refreshJwt", lockAtMostForString = "PT10M")
+ fun refreshJwt() {
+ val loginHelper = ApiLoginHelper(apiLoginProxy)
+ loginHelper.refresh()
+ }
+}
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt
index 761a5b0..66dea84 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/qrcode_srvice_impl.kt
@@ -1,7 +1,7 @@
package com.supwisdom.dlpay.api.service.impl
import com.google.gson.Gson
-import com.supwisdom.dlpay.api.bean.ApiResponse
+import com.supwisdom.dlpay.api.util.ApiResponse
import com.supwisdom.dlpay.api.service.QRCodeService
import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.framework.util.MD5
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
index 243364b..a731ac1 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -1,5 +1,7 @@
package com.supwisdom.dlpay.api.service.impl
+import com.supwisdom.dlpay.api.bean.JsonResult
+import com.supwisdom.dlpay.api.bean.UserTaskParam
import com.supwisdom.dlpay.api.dao.AccountDao
import com.supwisdom.dlpay.api.dao.PersonDao
import com.supwisdom.dlpay.api.dao.PersondtlDao
@@ -9,8 +11,17 @@
import com.supwisdom.dlpay.api.domain.TPersondtl
import com.supwisdom.dlpay.api.domain.TPointsAccount
import com.supwisdom.dlpay.api.service.UserService
+import com.supwisdom.dlpay.api.util.PointTaskCode
import com.supwisdom.dlpay.exception.TransactionProcessException
+import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.framework.util.*
+import com.supwisdom.dlpay.mobile.dao.MobileUserDao
+import com.supwisdom.dlpay.mobile.domain.TBMobileUser
+import com.supwisdom.dlpay.mobile.exception.PortalBusinessException
+import com.supwisdom.dlpay.paysdk.proxy.UserProxy
+import com.supwisdom.dlpay.portal.bean.PointTaskBean
+import com.supwisdom.dlpay.portal.util.PortalConstant
+import mu.KotlinLogging
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.data.domain.PageRequest
import org.springframework.data.domain.Sort
@@ -29,6 +40,13 @@
private lateinit var pointsAccountDao: PointsAccountDao
@Autowired
private lateinit var persondtlDao: PersondtlDao
+ @Autowired
+ private lateinit var systemUtilService: SystemUtilService
+ @Autowired
+ private lateinit var mobileUserDao:MobileUserDao
+ @Autowired
+ private lateinit var userProxy: UserProxy
+ val logger = KotlinLogging.logger { }
override fun findAccountByUserid(userid: String, subjno: String?): TAccount? {
return if (!StringUtil.isEmpty(subjno)) {
@@ -76,4 +94,107 @@
}
return result
}
+
+ override fun completePointTask(user: TBMobileUser, taskcode:String):JsonResult {
+ return if (taskcode == PointTaskCode.SIGN_IN.code) {
+ signInPointTask(user)
+ }else{
+ JsonResult.error(400,"未知的任务CODE")
+ }
+ }
+
+ fun signInPointTask(user: TBMobileUser):JsonResult{
+ val lastTime = user.lastsignintime
+ val hostDateTime = systemUtilService.sysdatetime.hostdatetime
+ if (!lastTime.isNullOrEmpty()) {
+ val lastDate = lastTime.substring(0,8)
+ val hostDate = hostDateTime.substring(0,8)
+ if (lastDate < hostDate) {
+ user.lastsignintime = hostDateTime
+ mobileUserDao.save(user)
+ } else {
+ return JsonResult.error(500,"签到时间异常")
+ }
+ }else{
+ user.lastsignintime = hostDateTime
+ mobileUserDao.save(user)
+ }
+ val taskResponse = userProxy.userTask(UserTaskParam().apply {
+ this.userid = user.userid
+ this.taskid = PointTaskCode.SIGN_IN.taskid.toString()
+ })
+ if (taskResponse.retcode != 0) {
+ logger.error { "用户签到积分任务异常:${taskResponse.retmsg}" }
+ throw PortalBusinessException(taskResponse.retmsg)
+ }
+ return JsonResult.ok()
+ }
+
+ fun querySignInTaskStatus(user: TBMobileUser,list:ArrayList<PointTaskBean>,bean:PointTaskBean){
+ bean.taskcode = PointTaskCode.SIGN_IN.code
+ val lastTime = user.lastsignintime
+ if (!lastTime.isNullOrEmpty()) {
+ val lastDate = lastTime.substring(0,8)
+ val hostDate = systemUtilService.sysdatetime.hostdate
+ if (lastDate < hostDate) {
+ bean.status = PortalConstant.POINTTASK_STATUS_UNDONE
+ } else {
+ bean.status = PortalConstant.POINTTASK_STATUS_RECEIVED
+ }
+ } else {
+ bean.status = PortalConstant.POINTTASK_STATUS_UNDONE
+ }
+ list.add(bean)
+ }
+
+ fun queryAuthTaskStatus(user: TBMobileUser,list:ArrayList<PointTaskBean>,bean:PointTaskBean){
+ bean.taskcode = PointTaskCode.AUTH.code
+ bean.status = PortalConstant.POINTTASK_STATUS_DONE
+ list.add(bean)
+ }
+
+ fun queryConsumeTaskStatus(user: TBMobileUser,list:ArrayList<PointTaskBean>,bean:PointTaskBean){
+ bean.taskcode = PointTaskCode.CONSUME.code
+ bean.status = PortalConstant.POINTTASK_STATUS_DONE
+ list.add(bean)
+ }
+
+ fun queryExchangeTaskStatus(user: TBMobileUser,list:ArrayList<PointTaskBean>,bean:PointTaskBean){
+ bean.taskcode = PointTaskCode.EXCHANGE.code
+ bean.status = PortalConstant.POINTTASK_STATUS_DONE
+ list.add(bean)
+ }
+
+ override fun queryPointTaskStatus(user: TBMobileUser): List<PointTaskBean>? {
+ val result = ArrayList<PointTaskBean>()
+ val taskResponse = userProxy.tPointsTaskNoPage
+ if (taskResponse["retcode"] != 0) {
+ logger.error { "查询积分任务异常" }
+ throw PortalBusinessException("查询积分任务异常")
+ }
+ @Suppress("UNCHECKED_CAST")
+ val data = taskResponse["data"] as ArrayList<LinkedHashMap<String,Any>>
+ data.forEach {
+ val taskid = it["taskid"] as Int
+ val bean = PointTaskBean().apply {
+ this.points = it["taskpoints"] as Int
+ this.taskname = it["taskname"] as String
+ }
+ when (taskid) {
+ PointTaskCode.SIGN_IN.taskid -> {
+ querySignInTaskStatus(user,result,bean)
+ }
+ PointTaskCode.AUTH.taskid -> {
+ queryAuthTaskStatus(user,result,bean)
+ }
+ PointTaskCode.CONSUME.taskid -> {
+ queryConsumeTaskStatus(user,result,bean)
+ }
+ PointTaskCode.EXCHANGE.taskid -> {
+ queryExchangeTaskStatus(user,result,bean)
+ }
+ }
+ }
+ return result
+ }
}
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt
index f379574..6367c88 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/qrcode_service.kt
@@ -1,6 +1,6 @@
package com.supwisdom.dlpay.api.service
-import com.supwisdom.dlpay.api.bean.ApiResponse
+import com.supwisdom.dlpay.api.util.ApiResponse
interface QRCodeService {
fun encodeCode(uid: String): ApiResponse
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
index 810a2f7..a2eeb15 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/api/service/user_service.kt
@@ -1,7 +1,10 @@
package com.supwisdom.dlpay.api.service
+import com.supwisdom.dlpay.api.bean.JsonResult
import com.supwisdom.dlpay.api.domain.*
import com.supwisdom.dlpay.framework.util.PageResult
+import com.supwisdom.dlpay.mobile.domain.TBMobileUser
+import com.supwisdom.dlpay.portal.bean.PointTaskBean
import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
@@ -26,4 +29,10 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
fun findDtlMonthCountByUserid(userid:String, month :String) : Map<String,Any>?
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class))
+ fun completePointTask(user:TBMobileUser,taskcode:String):JsonResult
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class), readOnly = true)
+ fun queryPointTaskStatus(user:TBMobileUser) : List<PointTaskBean>?
}
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
index 1aad98a..4cd7ccc 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
@@ -2,6 +2,8 @@
import com.fasterxml.jackson.databind.ObjectMapper
import com.supwisdom.dlpay.api.bean.JsonResult
+import com.supwisdom.dlpay.api.bean.QueryCardInfo
+import com.supwisdom.dlpay.api.bean.QueryCardParam
import com.supwisdom.dlpay.api.service.UserService
import com.supwisdom.dlpay.framework.core.JwtConfig
import com.supwisdom.dlpay.framework.core.JwtTokenUtil
@@ -13,7 +15,9 @@
import com.supwisdom.dlpay.mobile.domain.TBMobileUser
import com.supwisdom.dlpay.mobile.exception.UserLoginFailException
import com.supwisdom.dlpay.mobile.service.MobileApiService
+import com.supwisdom.dlpay.paysdk.proxy.UserProxy
import com.supwisdom.dlpay.portal.util.PortalConstant
+import com.supwisdom.dlpay.util.ConstantUtil
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.HttpStatus
import org.springframework.security.authentication.BadCredentialsException
@@ -42,6 +46,8 @@
lateinit var systemUtilService: SystemUtilService
@Autowired
lateinit var userService: UserService
+ @Autowired
+ lateinit var userProxy: UserProxy
override fun onAuthenticationSuccess(request: HttpServletRequest, response: HttpServletResponse, authentication: Authentication) {
val platform = request.getParameter("platform")
@@ -84,8 +90,20 @@
var name = ""
var signed=""
if (!user.userid.isNullOrEmpty()) {
- val person = userService.findOnePersonByUserid(user.userid!!)
- var card = mobileApiService.findCardByUserid(user.userid!!)
+ val personResponse = userProxy.queryPerson(user.userid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]信息失败:${personResponse.retmsg}" }
+ throw UserLoginFailException("查询用户失败")
+ }
+ val person = personResponse.person
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ var card:QueryCardInfo?=null
+ if (cardResponse.retcode == 0) {
+ card = cardResponse.card
+ }
name = person.name
if(card!=null&&card.signed){
signed = TradeDict.STATUS_YES
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
index b3149a1..64665f8 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
@@ -2,7 +2,7 @@
import com.supwisdom.dlpay.agent.citizencard.YnrccUtil
import com.supwisdom.dlpay.agent.service.CitizencardPayService
-import com.supwisdom.dlpay.api.bean.JsonResult
+import com.supwisdom.dlpay.api.bean.*
import com.supwisdom.dlpay.api.service.QRCodeService
import com.supwisdom.dlpay.api.service.UploadPicService
import com.supwisdom.dlpay.api.service.UserService
@@ -19,6 +19,7 @@
import com.supwisdom.dlpay.mobile.domain.TBMobileUser
import com.supwisdom.dlpay.mobile.exception.PortalBusinessException
import com.supwisdom.dlpay.mobile.service.MobileApiService
+import com.supwisdom.dlpay.paysdk.proxy.UserProxy
import com.supwisdom.dlpay.portal.bean.FeedbackSearchBean
import com.supwisdom.dlpay.portal.domain.TBFeedback
import com.supwisdom.dlpay.portal.service.ArticleService
@@ -66,6 +67,8 @@
lateinit var columnService: ColumnService
@Autowired
lateinit var articleService: ArticleService
+ @Autowired
+ lateinit var userProxy: UserProxy
val logger = KotlinLogging.logger { }
@RequestMapping("/time")
@@ -237,9 +240,15 @@
}
var signed = ""
if (!user.userid.isNullOrEmpty()) {
- val card = mobileApiService.findCardByUserid(user.userid!!)
- if (card != null && card.signed) {
- signed = TradeDict.STATUS_YES
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode == 0) {
+ val card = cardResponse.card
+ if (card.signed) {
+ signed = TradeDict.STATUS_YES
+ }
}
}
return JsonResult.ok("OK").put("token", token.jwtToken)
@@ -345,6 +354,8 @@
lateinit var uploadPicService: UploadPicService
@Autowired
lateinit var feedbackService: FeedbackService
+ @Autowired
+ lateinit var userProxy: UserProxy
val logger = KotlinLogging.logger { }
@RequestMapping("/idtypes")
@@ -452,9 +463,13 @@
redisTemplate.delete(user.phone!!)
if (!personid.isNullOrEmpty()) {
//绑定用户
- val person = userService.findOnePersonByUserid(personid)
+ val personResponse = userProxy.queryPerson(personid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${personid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
user.bindtime = DateUtil.getNow()
- user.userid = person.userid
+ user.userid = personResponse.person.userid
mobileApiService.saveUser(user)
}
return JsonResult.ok("OK").put("randcode", newCode)!!
@@ -475,12 +490,24 @@
return JsonResult.error("手机号不存在,请注册")
}
val phone = user.phone!!
- val card = mobileApiService.findCardByNo(cardno)
- ?: return JsonResult.error("银行卡号有误")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.cardno = cardno
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询卡片[${cardno}]信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error("银行卡号有误")
+ }
+ val card = cardResponse.card
if (card.userid.isNullOrEmpty() || card.status != TradeDict.STATUS_NORMAL) {
return JsonResult.error("银行卡号信息有误")
}
- val person = userService.findOnePersonByUserid(card.userid)
+ val personResponse = userProxy.queryPerson(card.userid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${card.userid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
+ val person = personResponse.person
if (person.name != name) {
return JsonResult.error("绑定信息有误[姓名]")
}
@@ -502,7 +529,11 @@
signed = TradeDict.STATUS_YES
if (!card.signed) {
card.signed = true
- mobileApiService.saveCard(card)
+ val response = userProxy.updateCardSign(card.cardno, true)
+ if (response.retcode != 0) {
+ logger.error { "更新卡片签约状态失败:${response.retmsg}" }
+ return JsonResult.error("绑卡失败,请稍后重试")
+ }
}
user.signedtime = DateUtil.getNow();
mobileApiService.saveUser(user)
@@ -541,10 +572,22 @@
if (user.phone.isNullOrEmpty()) {
return JsonResult.error("手机号不存在,请注册")
}
- var card = mobileApiService.findCardByUserid(user.userid!!)
- ?: return JsonResult.error("卡片不存在,请重新绑定")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]卡片信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error("卡片不存在,请重新绑定")
+ }
+ val card = cardResponse.card
//call sign api
- val person = userService.findOnePersonByUserid(card.userid)
+ val personResponse = userProxy.queryPerson(card.userid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${card.userid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
+ val person = personResponse.person
var signed = ""
//call api
var resp = citizencardPayService.bindCard(card.cardno, person.name, person.idtype, person.idno, user.phone!!)
@@ -556,7 +599,11 @@
signed = TradeDict.STATUS_YES
if (!card.signed) {
card.signed = true
- mobileApiService.saveCard(card)
+ val response = userProxy.updateCardSign(card.cardno, true)
+ if (response.retcode != 0) {
+ logger.error { "更新卡片签约状态失败:${response.retmsg}" }
+ return JsonResult.error("绑卡失败,请稍后重试")
+ }
}
user.signedtime = DateUtil.getNow();
mobileApiService.saveUser(user)
@@ -649,8 +696,15 @@
?: return JsonResult.error("用户不存在,请注册")
var signed = ""
if (!user.userid.isNullOrEmpty()) {
- var card = mobileApiService.findCardByUserid(user.userid!!)
- ?: return JsonResult.error(-1, "卡片不存在,请重新绑定")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]卡片信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error(-1,"卡片不存在,请重新绑定")
+ }
+ val card = cardResponse.card
if (card.signed) {
signed = TradeDict.STATUS_YES
}
@@ -676,10 +730,22 @@
}
var signed: String
if (!user.userid.isNullOrEmpty()) {
- var card = mobileApiService.findCardByUserid(user.userid!!)
- ?: return JsonResult.error("卡片不存在,请重新绑定")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]卡片信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error("卡片不存在,请重新绑定")
+ }
+ val card = cardResponse.card
+ val personResponse = userProxy.queryPerson(card.userid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${card.userid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
+ val person = personResponse.person
//call sign api
- val person = userService.findOnePersonByUserid(card.userid)
val captcha = agree//此处为验证码,暂由此参数代替
var resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, user.phone!!, YnrccUtil.TRANSTYPE_SIGNCARD, captcha)
if (resp.code != "0000") {
@@ -687,7 +753,11 @@
}
card.signed = true
user.signedtime = DateUtil.getNow()
- mobileApiService.saveCard(card)
+ val response = userProxy.updateCardSign(card.cardno, true)
+ if (response.retcode != 0) {
+ logger.error { "更新卡片签约状态失败:${response.retmsg}" }
+ return JsonResult.error("签约银行协议失败,请稍后重试")
+ }
mobileApiService.saveUser(user)
signed = TradeDict.STATUS_YES
} else {
@@ -734,8 +804,20 @@
if (!user.paypwd.isNullOrEmpty()) {
payseted = true
}
- val person = userService.findOnePersonByUserid(user.userid!!)
- val card = mobileApiService.findCardByUserid(user.userid!!)
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ var card:QueryCardInfo? = null
+ if (cardResponse.retcode == 0) {
+ card = cardResponse.card
+ }
+ val personResponse = userProxy.queryPerson(user.userid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
+ val person = personResponse.person
var needrebind = false
var signed = ""
if (card == null) {
@@ -795,9 +877,18 @@
}
}
-
val name = person.name
- val page = userService.findPersondtlByUserid(user.userid!!, no, month)
+ val queryDtlInfo = userProxy.queryPersonDtl(QueryPersonDtlParam().apply {
+ this.month = month
+ this.userid = user.userid
+ this.pageno = no
+ this.pagesize = 10
+ })
+ if (queryDtlInfo["retcode"] != 0) {
+ logger.error { "查询用户[${user.userid}]月份[${month}]的流水失败:${queryDtlInfo["retmsg"]}" }
+ return JsonResult.error("查询流水失败,请稍后重试")
+ }
+ val page = queryDtlInfo["data"]
return JsonResult.ok("OK").put("page", page)
?.put("today", today)
?.put("yesterday", yester)
@@ -825,8 +916,12 @@
if (user.userid.isNullOrEmpty()) {
return JsonResult.ok("OK")
}
- val data = userService.findDtlMonthCountByUserid(user.userid!!, month)
- return JsonResult.ok().put("data", data)
+ val billCount = userProxy.billCount(user.userid!!, month)
+ if (billCount["retcode"] != 0) {
+ logger.error { "查询用户[${user.userid}]月份[${month}]的统计流水失败:${billCount["retmsg"]}" }
+ return JsonResult.error("查询流水失败,请稍后重试")
+ }
+ return JsonResult.ok().put("data", billCount["data"])
}
/**
@@ -896,9 +991,21 @@
if (user.userid.isNullOrEmpty()) {
return JsonResult.error(-1, "银行卡未绑定,请先绑定")
}
- val person = userService.findOnePersonByUserid(user.userid!!)
- val card = mobileApiService.findCardByUserid(user.userid!!)
- ?: return JsonResult.error(-1, "银行卡未绑定,请先绑定")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]卡片信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error(-1, "银行卡未绑定,请先绑定")
+ }
+ val card = cardResponse.card
+ val personResponse = userProxy.queryPerson(user.userid)
+ if (personResponse.retcode!= 0) {
+ logger.error { "查询用户[${user.userid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
+ val person = personResponse.person
var status = ""
//normal/loss/frozen/locked
when (card.transStatus) {
@@ -938,13 +1045,24 @@
if (it) mobileApiService.saveUser(user)
}
}
- var card = mobileApiService.findCardByUserid(user.userid!!)
- ?: return JsonResult.error(-1, "银行卡未绑定,请先绑定")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]卡片信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error(-1, "银行卡未绑定,请先绑定")
+ }
+ val card = cardResponse.card
if (card.transStatus != TradeDict.STATUS_NORMAL) {
return JsonResult.error("卡状态非正常,不能挂失")
}
card.transStatus = TradeDict.STATUS_LOST
- mobileApiService.saveCard(card)
+ val response = userProxy.updateCardTransStatus(card.cardno, TradeDict.STATUS_LOST)
+ if (response.retcode != 0) {
+ logger.error { "更新卡片交易状态失败:${response.retmsg}" }
+ return JsonResult.error("挂失失败,请稍后重试")
+ }
return JsonResult.ok("ok")
}
@@ -976,17 +1094,33 @@
?: return JsonResult.error("用户不存在,请注册")
var signed: String
if (!user.userid.isNullOrEmpty()) {
- var card = mobileApiService.findCardByUserid(user.userid!!)
- ?: return JsonResult.error("银行卡不存在,不能解除代扣协议")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]卡片信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error(-1, "银行卡不存在,不能解除代扣协议")
+ }
+ val card = cardResponse.card
//call sign api
- val person = userService.findOnePersonByUserid(card.userid)
+ val personResponse = userProxy.queryPerson(card.userid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${card.userid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
+ val person = personResponse.person
val captcha = ""//此处为验证码,暂由此参数代替
var resp = citizencardPayService.signCard(card.cardno, person.name, person.idtype, person.idno, user.phone!!, YnrccUtil.TRANSTYPE_UNSIGNCARD, captcha)
if (resp.code != "0000") {
return JsonResult.error(resp.message)
}
card.signed = false
- mobileApiService.saveCard(card)
+ val response = userProxy.updateCardSign(card.cardno, false)
+ if (response.retcode != 0) {
+ logger.error { "更新卡片签约状态失败:${response.retmsg}" }
+ return JsonResult.error("解除银行协议失败,请稍后重试")
+ }
signed = TradeDict.STATUS_NO
} else {
return JsonResult.error("未绑定银行卡,不能解除代扣协议")
@@ -1023,11 +1157,22 @@
if (it) mobileApiService.saveUser(user)
}
}
- var card = mobileApiService.findCardByUserid(user.userid!!)
- ?: return JsonResult.error(-1, "银行卡未绑定,无需解绑")
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ })
+ if (cardResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]卡片信息失败:${cardResponse.retmsg}" }
+ return JsonResult.error(-1, "银行卡未绑定,无需解绑")
+ }
+ val card = cardResponse.card
card.signed = false
user.userid = null
- mobileApiService.saveCard(card)
+ val response = userProxy.updateCardSign(card.cardno, false)
+ if (response.retcode != 0) {
+ logger.error { "更新卡片签约状态失败:${response.retmsg}" }
+ return JsonResult.error("解除绑定失败,请稍后重试")
+ }
mobileApiService.saveUser(user)
return JsonResult.ok("OK")
?.put("signed", TradeDict.STATUS_NO)!!
@@ -1114,4 +1259,136 @@
?: return JsonResult.error("未找到该条留言")
return JsonResult.ok().put("data",feedback)
}
+
+ /**
+ * 查询用户总积分
+ */
+ @Suppress("UNCHECKED_CAST")
+ @RequestMapping(value = ["/point/total"],method = [RequestMethod.GET])
+ fun getTotalPoint():JsonResult?{
+ val p = SecurityContextHolder.getContext().authentication
+ val user = (mobileApiService.findUserById(p.name)
+ ?: return JsonResult.error("用户不存在,请注册"))
+ if (!user.userid.isNullOrEmpty()) {
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_CITIZENCARD
+ })
+ if (cardResponse.retcode != 0) {
+ return JsonResult.ok().put("data",0)
+ }
+ val card = cardResponse.card
+ val personResponse = userProxy.queryPerson(card.userid)
+ if (personResponse.retcode != 0) {
+ return JsonResult.ok().put("data",0)
+ }
+ val person = personResponse.person
+ val pointResponse = userProxy.getUserPoints(UserPointsParam().apply {
+ this.pageNo = 1
+ this.pageSize = 1
+ this.name = person.name
+ this.idno = card.cardno
+ })
+ if (pointResponse["retcode"] != 0) {
+ logger.error { "查询用户[${user.userid}]积分失败" }
+ return JsonResult.error("查询积分失败")
+ }
+ val page = pointResponse["page"] as LinkedHashMap<String,Any>
+ val data = page["data"] as ArrayList<LinkedHashMap<String,Any>>
+ if (data.isNotEmpty()) {
+ val pointsMain = data[0]["tPointsMain"] as LinkedHashMap<String,Any>
+ return JsonResult.ok().put("data",pointsMain["points"])
+ }
+ return JsonResult.ok().put("data",0)
+ }else{
+ return JsonResult.ok().put("data",0)
+ }
+ }
+
+ /**
+ * 查询用户积分流水
+ */
+ @RequestMapping(value = ["/point/flow"],method = [RequestMethod.GET])
+ fun getTotalPoint(pageno:Int,pagesize:Int):JsonResult?{
+ val p = SecurityContextHolder.getContext().authentication
+ val user = (mobileApiService.findUserById(p.name)
+ ?: return JsonResult.error("用户不存在,请注册"))
+ val emptyResult = PageResult<Any>().apply {
+ this.count = 0
+ }
+ if (!user.userid.isNullOrEmpty()) {
+ val cardResponse = userProxy.queryCard(QueryCardParam().apply {
+ this.userid = user.userid
+ this.cardtype = ConstantUtil.CARDTYPE_CITIZENCARD
+ })
+ if (cardResponse.retcode != 0) {
+ return JsonResult.ok().put("data",emptyResult)
+ }
+ val card = cardResponse.card
+ val personResponse = userProxy.queryPerson(card.userid)
+ if (personResponse.retcode != 0) {
+ return JsonResult.ok().put("data",emptyResult)
+ }
+ val person = personResponse.person
+ val pointResponse = userProxy.getUserPoints(UserPointsParam().apply {
+ this.pageNo = pageno
+ this.pageSize = pagesize
+ this.name = person.name
+ this.idno = card.cardno
+ })
+ if (pointResponse["retcode"] != 0) {
+ logger.error { "查询用户[${user.userid}]积分流水失败" }
+ return JsonResult.error("查询积分流水失败")
+ }
+ return JsonResult.ok().put("data",pointResponse["page"])
+ }else{
+ return JsonResult.ok().put("data",emptyResult)
+ }
+ }
+
+ /**
+ * 完成积分任务
+ */
+ @RequestMapping(value = ["/point/task/{taskcode}"],method = [RequestMethod.POST])
+ fun completePointTask(@PathVariable taskcode:String):JsonResult?{
+ try {
+ val p = SecurityContextHolder.getContext().authentication
+ val user = (mobileApiService.findUserById(p.name)
+ ?: return JsonResult.error("用户不存在,请注册"))
+ if (!user.userid.isNullOrEmpty()) {
+ val personResponse = userProxy.queryPerson(user.userid)
+ if (personResponse.retcode != 0) {
+ logger.error { "查询用户[${user.userid}]信息失败:${personResponse.retmsg}" }
+ return JsonResult.error("查询用户信息失败,请稍后重试")
+ }
+ return userService.completePointTask(user,taskcode)
+ } else {
+ return JsonResult.error("未绑定银行卡,不能获取积分")
+ }
+ } catch (e: Exception) {
+ if (e is PortalBusinessException) {
+ return JsonResult.error(e.message)
+ }
+ return JsonResult.error("服务器繁忙,请稍后重试")
+ }
+ }
+
+ /**
+ * 查询积分状态
+ */
+ @RequestMapping(value = ["/point/taskstatus"],method = [RequestMethod.GET])
+ fun completePointTask():JsonResult?{
+ try {
+ val p = SecurityContextHolder.getContext().authentication
+ val user = (mobileApiService.findUserById(p.name)
+ ?: return JsonResult.error("用户不存在,请注册"))
+ val result = userService.queryPointTaskStatus(user)
+ return JsonResult.ok().put("data",result)
+ } catch (e: Exception) {
+ if (e is PortalBusinessException) {
+ return JsonResult.error(e.message)
+ }
+ return JsonResult.error("服务器繁忙,请稍后重试")
+ }
+ }
}
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt
index 339e607..7f84e2c 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/mobile/domain/TBMobileUser.kt
@@ -178,6 +178,9 @@
@Column(name = "phone", length = 15)
var phone: String? = null
+ @Column(name = "lastsignintime", length = 14)
+ var lastsignintime: String? = null
+
fun checkLoginpwdtime():Int{
if (this.loginpwderror >= 5 && (System.currentTimeMillis() - this.loginpwderrortime!!) < 1000 * 60 * 30) {
return -1
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/PortalApi.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/PortalApi.kt
index 8860dc1..a7ef28b 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/PortalApi.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/PortalApi.kt
@@ -75,7 +75,7 @@
val p = SecurityContextHolder.getContext().authentication
val oper = operatorDetailService.findByOperid(p.name)
val data = HashMap<String, String>()
- val url = systemUtilService.getBusinessValue(PortalConstant.SYSPARA_IMAGESERVER_URL)
+ val url = systemUtilService.getBusinessValue(PortalConstant.SYSPARA_IMAGE_URLPUSH)
data["name"] = oper.opername
data["roles"] = "admin"
data["url"] = url
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/bean/FeedbackSearchBean.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/bean/FeedbackSearchBean.kt
index d15c56b..07826b9 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/bean/FeedbackSearchBean.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/bean/FeedbackSearchBean.kt
@@ -1,7 +1,7 @@
package com.supwisdom.dlpay.portal.bean
class FeedbackSearchBean {
- var username: String = ""
+ var phone: String = ""
var title: String = ""
var startdate: String = ""
var enddate: String = ""
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/bean/PointTaskBean.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/bean/PointTaskBean.kt
new file mode 100644
index 0000000..357865e
--- /dev/null
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/bean/PointTaskBean.kt
@@ -0,0 +1,10 @@
+package com.supwisdom.dlpay.portal.bean
+
+import com.supwisdom.dlpay.portal.util.PortalConstant.POINTTASK_STATUS_RECEIVED
+
+class PointTaskBean {
+ var taskcode: String = ""
+ var status: String = POINTTASK_STATUS_RECEIVED
+ var points: Int = 0
+ var taskname: String = ""
+}
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/dao/ResourceDao.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/dao/ResourceDao.kt
index 4d79afe..d66dd64 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/dao/ResourceDao.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/dao/ResourceDao.kt
@@ -8,9 +8,9 @@
@Repository
interface ResourceDao : JpaRepository<TBResource, String> {
- @Query("select t2 from TRoleResource t1,TBResource t2 where t1.resid = t2.resid and t2.isleaf = '0' and t1.roleid=?1 order by t2.ordernum")
+ @Query("select t2 from TRoleResource t1,TBResource t2 where t1.resid = t2.resid and t2.isleaf = '0' and t1.roleid=?1 and showflag='1' order by t2.ordernum")
fun findRootListByRole(roleId: String): List<TBResource>
- @Query("select t2 from TRoleResource t1,TBResource t2 where t1.resid = t2.resid and t2.isleaf = '1' and t1.roleid=?1 and t2.parentid=?2 order by t2.ordernum")
+ @Query("select t2 from TRoleResource t1,TBResource t2 where t1.resid = t2.resid and t2.isleaf = '1' and t1.roleid=?1 and showflag='1' and t2.parentid=?2 order by t2.ordernum")
fun findChildrenByRoleAndParent(roleId: String, parentId: String): List<TBResource>
}
\ No newline at end of file
diff --git a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/service/Impl/FeedbackServiceImpl.kt b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/service/Impl/FeedbackServiceImpl.kt
index dfa359d..b4f5e70 100644
--- a/backend/src/main/kotlin/com/supwisdom/dlpay/portal/service/Impl/FeedbackServiceImpl.kt
+++ b/backend/src/main/kotlin/com/supwisdom/dlpay/portal/service/Impl/FeedbackServiceImpl.kt
@@ -37,12 +37,7 @@
val list = page.list as List<TBFeedback>
list.forEach {
it.pictures = annexDao.getByFbid(it.fbid)
- if (it.userid.isNullOrEmpty()) {
- val mobileUser = mobileUserService.getByUid(it.mobileid)
- if (mobileUser != null) {
- it.username = "用户" + mobileUser.phone!!.substring(7)
- }
- }
+ it.username = "用户" + it.username.substring(7)
}
return page
}
diff --git a/backend/src/main/resources/data-postgresql.sql b/backend/src/main/resources/data-postgresql.sql
index 562254a..1a98333 100644
--- a/backend/src/main/resources/data-postgresql.sql
+++ b/backend/src/main/resources/data-postgresql.sql
@@ -5,5 +5,42 @@
INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('imageserver.url.image', 'http://ykt.supwisdom.com:9119/touchorder/dcpic', '{tenentid}');
INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('imageserver.url.push', 'http://ykt.supwisdom.com:8777', '{tenentid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.addserial', '', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.priority', '1', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.ecname', '大理市信息化发展有限责任公司', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.sign', 'Yuns9bbB5', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.tempid', '755a16cc9c0649acbb3f3b0415a49a46', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.account', 'dlapp', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.url', 'http://112.35.4.197:15000', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('sms.pwd', 'kingstar#2019', '{tenantid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('article.currentno', '1', '{tenentid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('portal.appid', '700001', '{tenentid}');
+INSERT INTO "tb_businesspara"("parakey", "paraval", "tenantid") VALUES ('portal.secret', '5f788ce433ec44f299351cdf7f137e81', '{tenentid}');
+
+INSERT INTO "tb_column"("columnid", "isleaf", "name", "needreview", "parentid", "code", "ispublic", "publishable", "ordernum") VALUES ('2c9cab947451988c017451a737b10000', '0', '线上活动', '0', '', 'OnlineActivities', '1', '1', 12);
+INSERT INTO "tb_column"("columnid", "isleaf", "name", "needreview", "parentid", "code", "ispublic", "publishable", "ordernum") VALUES ('2c9cab947451988c017451b280870001', '0', '线下活动', '0', '', 'OfflineActivities', '1', '1', 13);
+INSERT INTO "tb_column"("columnid", "isleaf", "name", "needreview", "parentid", "code", "ispublic", "publishable", "ordernum") VALUES ('2c9cab947428d6fe017428d8c2610000', '0', '热门活动', '0', NULL, 'PopularActivities', '1', '1', 1);
+
+INSERT INTO "tb_resource"("resid", "isleaf", "ordernum", "parentid", "resname", "respath", "showflag", "icon") VALUES ('f066939ecbf64da3a54fa93d56e4391b', '0', 1, NULL, '系统中心', '#', '1', 'el-icon-s-home');
+INSERT INTO "tb_resource"("resid", "isleaf", "ordernum", "parentid", "resname", "respath", "showflag", "icon") VALUES ('286daeeccc8847f4a5a24b2c04079e33', '1', 1, 'f066939ecbf64da3a54fa93d56e4391b', '操作员管理', '/operator/index', '1', NULL);
+INSERT INTO "tb_resource"("resid", "isleaf", "ordernum", "parentid", "resname", "respath", "showflag", "icon") VALUES ('42f227fbe7744adcaef7d15583276a33', '1', 2, 'f066939ecbf64da3a54fa93d56e4391b', '留言管理', '/feedback/index', '1', NULL);
+INSERT INTO "tb_resource"("resid", "isleaf", "ordernum", "parentid", "resname", "respath", "showflag", "icon") VALUES ('a1de09561f6740cab1065707fff8e8ae', '1', 3, 'f066939ecbf64da3a54fa93d56e4391b', '推送消息管理', '/pushmsg/index', '1', NULL);
+INSERT INTO "tb_resource"("resid", "isleaf", "ordernum", "parentid", "resname", "respath", "showflag", "icon") VALUES ('81d3556981c34633adadb0fc4dc8d1f3', '1', 4, 'f066939ecbf64da3a54fa93d56e4391b', '栏目管理', '/column/index', '1', NULL);
+INSERT INTO "tb_resource"("resid", "isleaf", "ordernum", "parentid", "resname", "respath", "showflag", "icon") VALUES ('99604b8d18b34417befe051a3720cbed', '1', 6, 'f066939ecbf64da3a54fa93d56e4391b', '创建文章', '/article/create', '1', NULL);
+INSERT INTO "tb_resource"("resid", "isleaf", "ordernum", "parentid", "resname", "respath", "showflag", "icon") VALUES ('4665765bf07d455486f2a5215dd97380', '1', 5, 'f066939ecbf64da3a54fa93d56e4391b', '文章管理', '/article/list', '1', NULL);
+
+INSERT INTO "tb_operator"("operid", "closedate", "email", "mobile", "opendate", "opercode", "opername", "operpwd", "opertype", "sex", "status", "tenantid", "thirdadmin", "jti", "roleid") VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', NULL, NULL, '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', NULL, 'normal', '{tenantid}', 'no', 'QwC1ln7rReYmBOhq57op6Q', '20497f2fa27a44f7841492288ab75d88');
+
+INSERT INTO "tb_role"("roleid", "detail", "moditime", "rolecode", "rolename") VALUES ('20497f2fa27a44f7841492288ab75d88', '系统管理员', '20200803173823', 'S', '系统管理员');
+
+INSERT INTO "tb_role_resource"("id", "addtime", "resid", "roleid") VALUES ('36fe95266fbc4eabacf2b7022b1bf7f2', '20200803174123', 'f066939ecbf64da3a54fa93d56e4391b', '20497f2fa27a44f7841492288ab75d88');
+INSERT INTO "tb_role_resource"("id", "addtime", "resid", "roleid") VALUES ('7197af22f7864c1ca15817a54dc6411c', '20200803174123', '286daeeccc8847f4a5a24b2c04079e33', '20497f2fa27a44f7841492288ab75d88');
+INSERT INTO "tb_role_resource"("id", "addtime", "resid", "roleid") VALUES ('5521acf036d54dc78f751e8a674133fb', '20200804141135', '42f227fbe7744adcaef7d15583276a33', '20497f2fa27a44f7841492288ab75d88');
+INSERT INTO "tb_role_resource"("id", "addtime", "resid", "roleid") VALUES ('ea8752334cde4df09db81189cc06bafa', '20200814165959', 'a1de09561f6740cab1065707fff8e8ae', '20497f2fa27a44f7841492288ab75d88');
+INSERT INTO "tb_role_resource"("id", "addtime", "resid", "roleid") VALUES ('fd4a4e21231e4844b1310f95afc40f9a', '20200825152358', '81d3556981c34633adadb0fc4dc8d1f3', '20497f2fa27a44f7841492288ab75d88');
+INSERT INTO "tb_role_resource"("id", "addtime", "resid", "roleid") VALUES ('fc8f90bb3b6d41f8b7e1b840b1a0d590', '20200827110834', '4665765bf07d455486f2a5215dd97380', '20497f2fa27a44f7841492288ab75d88');
+INSERT INTO "tb_role_resource"("id", "addtime", "resid", "roleid") VALUES ('460d7f0b57eb4dcfb73fb1b51ad37f4f', '20200827142245', '99604b8d18b34417befe051a3720cbed', '20497f2fa27a44f7841492288ab75d88');
+
+
--------- end of script
commit;
diff --git a/backend/src/main/resources/data.sql b/backend/src/main/resources/data.sql
index 3bd9798..8512f52 100644
--- a/backend/src/main/resources/data.sql
+++ b/backend/src/main/resources/data.sql
@@ -1,15 +1,6 @@
INSERT INTO tb_tenantconfig(cfgid, tenantid, datacenter_id)
values ('main', '{tenantid}', '01');
-INSERT INTO tb_operator(operid, closedate, opendate, opercode, opername, operpwd, opertype, status, thirdadmin, tenantid)
-VALUES ('LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', '20500101', '20190101', 'system', '系统管理员', '$2a$10$Ex9xp11.vCaD8D0a7ahiUOKqDij1TcCUBwRAmrqXeDvAkmzLibn4.', 'oper', 'normal', 'no', '{tenantid}');
-
-
-INSERT INTO tb_role(roleid, createtime, editflag, lastsaved, rolecode, roledesc, rolename, tenantid)
-VALUES ('d1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '20190101000000', 0, '', 'ROLE_ADMIN', '超级管理员', '超级管理员', '{tenantid}');
-
-INSERT INTO tb_oper_role(id, operid, roleid, tenantid)
-VALUES ('1', 'LOR2IwRkbOjp+sVG9KR2BpHZbwGKepS4', 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs', '{tenantid}');
INSERT INTO "tb_function" ("id", "createtime", "isleaf", "lastsaved", "menuicon", "menuurl", "name", "ordernum", "parentid", tenantid)
VALUES (1, NULL, 0, NULL, 'layui-icon-home', '#', '主页', 1, -1, '{tenantid}');
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 664084c..323cd35 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -57,4 +57,5 @@
spring.kafka.consumer.auto-commit-interval=100
# 指定消息key和消息体的编解码方式
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
-spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
\ No newline at end of file
+spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
+payapi.url=http://localhost:8080/payapi
\ No newline at end of file
diff --git a/frontend/src/views/feedback/index.vue b/frontend/src/views/feedback/index.vue
index 868b6dc..8ca94da 100644
--- a/frontend/src/views/feedback/index.vue
+++ b/frontend/src/views/feedback/index.vue
@@ -1,10 +1,10 @@
<template>
<div class="app-container">
<div class="filter-container">
- <div class="filter-item" style="margin-right:15px">留言用户</div>
+ <div class="filter-item" style="margin-right:15px">用户手机</div>
<el-input
- v-model="formData.username"
- placeholder="用户名"
+ v-model="formData.phone"
+ placeholder="留言用户手机号"
style="width: 350px;margin-right:50px"
class="filter-item"
/>
@@ -248,7 +248,7 @@
replyDialogVisible: false,
queryDate: null,
formData: {
- username: '',
+ phone: '',
title: '',
replystatus: '',
startdate: '',
@@ -335,7 +335,7 @@
this.getFeedbackList()
},
clearFilter() {
- this.formData.username = ''
+ this.formData.phone = ''
this.formData.title = ''
this.formData.replystatus = ''
this.queryDate = null