liweifan před 2 roky
rodič
revize
f136a8c349
33 změnil soubory, kde provedl 269 přidání a 134 odebrání
  1. 0 2
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java
  2. 0 41
      cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/CertificateTypeEnum.java
  3. 1 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java
  4. 1 1
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserLoginServiceImpl.java
  5. 6 0
      cooleshow-common/pom.xml
  6. 2 1
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/AccessSource.java
  7. 35 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/CertificateTypeEnum.java
  8. 2 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ContractTemplateSourceEnum.java
  9. 2 0
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ContractTemplateTypeEnum.java
  10. 16 23
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/SysUserType.java
  11. 4 3
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserGenderEnum.java
  12. 3 9
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserLockFlag.java
  13. 3 10
      cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/YesOrNoEnum.java
  14. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountDao.java
  15. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/PianoRoomSettingsSearch.java
  16. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/PianoRoomSettings.java
  17. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserAccountRecord.java
  18. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrder.java
  19. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderDetail.java
  20. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderService.java
  21. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ContractServiceImpl.java
  22. 29 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountServiceImpl.java
  23. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserWithdrawalServiceImpl.java
  24. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderRefundVo.java
  25. 3 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  26. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/PianoRoomSettingsMapper.xml
  27. 19 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountMapper.xml
  28. 49 24
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml
  29. 2 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserWithdrawalMapper.xml
  30. 2 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/PianoRoomSettingsController.java
  31. 0 2
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/WebSiteController.java
  32. 34 0
      cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenWebSiteController.java
  33. 3 1
      toolset/toolset-base/src/main/java/com/yonge/toolset/base/page/QueryInfo.java

+ 0 - 2
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/entity/SysUser.java

@@ -9,8 +9,6 @@ import java.util.List;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.yonge.cooleshow.auth.api.enums.YesOrNoEnum;
-
 /**
  * 对应数据库表(sys_user):
  */

+ 0 - 41
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/CertificateTypeEnum.java

@@ -1,41 +0,0 @@
-package com.yonge.cooleshow.auth.api.enums;
-
-import com.yonge.toolset.base.enums.BaseEnum;
-
-/**
- * @Author Joburgess
- * @Date 2021/1/6 0006
- **/
-public enum CertificateTypeEnum implements BaseEnum<String, CertificateTypeEnum> {
-
-    IDENTITY("IDENTITY", "身份证"),
-    HK_MAC("HK_MAC", "港澳居民往来内地通行证"),
-    TAIWAN("TAIWAN", "台湾居民往来内地通行证"),
-    FOREIGN_PASSPORT("FOREIGN_PASSPORT", "外国护照");
-
-    private String code;
-
-    private String msg;
-
-    CertificateTypeEnum(String code, String msg) {
-        this.code = code;
-        this.msg = msg;
-    }
-
-    @Override
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getMsg() {
-        return msg;
-    }
-
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-}

+ 1 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/dal/dao/SysUserDao.java

@@ -8,7 +8,7 @@ import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.dto.SysUserQueryInfo;
 import com.yonge.cooleshow.auth.api.dto.UserSetReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.auth.api.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.auth.api.vo.UserSetVo;
 import com.yonge.toolset.mybatis.dal.BaseDAO;
 import com.yonge.cooleshow.common.entity.ImUserModel;

+ 1 - 1
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserLoginServiceImpl.java

@@ -12,7 +12,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.entity.SysUserLogin;
-import com.yonge.cooleshow.auth.api.enums.UserLockFlag;
+import com.yonge.cooleshow.common.enums.UserLockFlag;
 import com.yonge.cooleshow.auth.dal.dao.SysUserDao;
 import com.yonge.cooleshow.auth.dal.dao.SysUserLoginDao;
 import com.yonge.cooleshow.auth.service.SysUserLoginService;

+ 6 - 0
cooleshow-common/pom.xml

@@ -49,5 +49,11 @@
 			<groupId>org.springframework.cloud</groupId>
 			<artifactId>spring-cloud-starter-oauth2</artifactId>
 		</dependency>
+
+		<dependency>
+			<groupId>com.baomidou</groupId>
+			<artifactId>mybatis-plus-annotation</artifactId>
+			<version>3.0.7.1</version>
+		</dependency>
 	</dependencies>
 </project>

+ 2 - 1
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/AccessSource.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
@@ -10,7 +11,7 @@ import com.yonge.toolset.base.enums.BaseEnum;
 public enum AccessSource implements BaseEnum<Integer, AccessSource> {
 
 	PC(1, "PC端"), MOBILE(2, "移动端"), WX(3, "微信");
-
+	@EnumValue
 	private Integer code;
 
 	private AccessSource(Integer code, String remark) {

+ 35 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/CertificateTypeEnum.java

@@ -0,0 +1,35 @@
+package com.yonge.cooleshow.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+/**
+ * @Author Joburgess
+ * @Date 2021/1/6 0006
+ **/
+public enum CertificateTypeEnum implements BaseEnum<String, CertificateTypeEnum> {
+
+    IDENTITY("身份证"),
+    HK_MAC("港澳居民往来内地通行证"),
+    TAIWAN("台湾居民往来内地通行证"),
+    FOREIGN_PASSPORT("外国护照");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    CertificateTypeEnum(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 2 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ContractTemplateSourceEnum.java

@@ -1,10 +1,12 @@
 package com.yonge.cooleshow.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum ContractTemplateSourceEnum implements BaseEnum<String, ContractTemplateSourceEnum> {
     PLATFORM("平台协议"), LINGXINPAY("灵薪付");
 
+    @EnumValue
     private String code;
 
     private String desc;

+ 2 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/ContractTemplateTypeEnum.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum ContractTemplateTypeEnum implements BaseEnum<String, ContractTemplateTypeEnum> {
@@ -8,6 +9,7 @@ public enum ContractTemplateTypeEnum implements BaseEnum<String, ContractTemplat
     PRODUCT(ContractTemplateSourceEnum.PLATFORM, "产品"),
     WITHDRAW(ContractTemplateSourceEnum.LINGXINPAY, "用户结算");
 
+    @EnumValue
     private String code;
 
     private ContractTemplateSourceEnum source;

+ 16 - 23
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/SysUserType.java

@@ -1,35 +1,28 @@
 package com.yonge.cooleshow.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 import org.apache.commons.lang3.StringUtils;
 
 public enum SysUserType implements BaseEnum<String, SysUserType> {
 
-	STUDENT("学生"), TEACHER("指导老师"), SYSTEM("系统內置");
+    STUDENT("学生"), TEACHER("指导老师"), SYSTEM("系统內置");
+    @EnumValue
+    private String code;
 
-	private String desc;
+    private String desc;
 
-	private SysUserType(String desc) {
-	}
+    SysUserType(String desc) {
+        this.code = this.name();
+        this.desc = desc;
+    }
 
-	@Override
-	public String getCode() {
-		return name();
-	}
+    @Override
+    public String getCode() {
+        return name();
+    }
 
-	public String getDesc() {
-		return desc;
-	}
-
-	public static SysUserType queryByName(String name) {
-		if (StringUtils.isBlank(name)) {
-			return null;
-		}
-		for (SysUserType sysUserType : SysUserType.values()) {
-			if (name.equals(sysUserType.getCode())) {
-				return sysUserType;
-			}
-		}
-		return null;
-	}
+    public String getDesc() {
+        return desc;
+    }
 }

+ 4 - 3
cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserGenderEnum.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
@@ -10,12 +11,12 @@ import com.yonge.toolset.base.enums.BaseEnum;
 public enum UserGenderEnum implements BaseEnum<Integer, UserGenderEnum> {
 
 	WOMAN(0, "女"), MAN(1, "男");
-
-	private int code;
+	@EnumValue
+	private Integer code;
 
 	private String description;
 
-	private UserGenderEnum(int code, String description) {
+	UserGenderEnum(int code, String description) {
 		this.code = code;
 		this.description = description;
 	}

+ 3 - 9
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/UserLockFlag.java → cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/UserLockFlag.java

@@ -1,5 +1,6 @@
-package com.yonge.cooleshow.auth.api.enums;
+package com.yonge.cooleshow.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 /**
@@ -9,6 +10,7 @@ public enum UserLockFlag implements BaseEnum<Integer, UserLockFlag> {
 
 	NORMAL(0, "正常"), LOCKED(9, "锁定"), CANCELLED(1, "冻结");
 
+	@EnumValue
 	private int code;
 
 	UserLockFlag(int code, String remark) {
@@ -22,18 +24,10 @@ public enum UserLockFlag implements BaseEnum<Integer, UserLockFlag> {
 		return code;
 	}
 
-	public void setCode(int code) {
-		this.code = code;
-	}
-
 	public String getRemark() {
 		return remark;
 	}
 
-	public void setRemark(String remark) {
-		this.remark = remark;
-	}
-
 	public static UserLockFlag codeOf(int code) {
 		for (UserLockFlag userStatus : UserLockFlag.values()) {
 			if (code == userStatus.getCode()) {

+ 3 - 10
cooleshow-auth/auth-api/src/main/java/com/yonge/cooleshow/auth/api/enums/YesOrNoEnum.java → cooleshow-common/src/main/java/com/yonge/cooleshow/common/enums/YesOrNoEnum.java

@@ -1,11 +1,12 @@
-package com.yonge.cooleshow.auth.api.enums;
+package com.yonge.cooleshow.common.enums;
 
+import com.baomidou.mybatisplus.annotation.EnumValue;
 import com.yonge.toolset.base.enums.BaseEnum;
 
 public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
     NO(0,"否"),
     YES(1,"是");
-
+    @EnumValue
     private Integer code;
     private String msg;
 
@@ -14,18 +15,10 @@ public enum YesOrNoEnum implements BaseEnum<Integer, YesOrNoEnum> {
         this.msg = msg;
     }
 
-    public void setCode(Integer code) {
-        this.code = code;
-    }
-
     public String getMsg() {
         return msg;
     }
 
-    public void setMsg(String msg) {
-        this.msg = msg;
-    }
-
     @Override
     public Integer getCode() {
         return this.code;

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/UserAccountDao.java

@@ -5,6 +5,7 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.TotalReq;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
@@ -74,4 +75,10 @@ public interface UserAccountDao extends BaseMapper<UserAccount>{
 	 * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.res.AccountTotal>
 	 */
     List<AccountTotal> accountTotal(@Param("timeType")String timeType,@Param("param")TotalReq totalReq);
+	/**
+	 * 统计本次变更前已经变更的金额
+	 * @param accountRecordDto
+	 * @return
+	 */
+    BigDecimal totalTransAmount(@Param("param") UserAccountRecordDto accountRecordDto);
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/PianoRoomSettingsSearch.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * @Author: liweifan
@@ -11,4 +12,14 @@ import io.swagger.annotations.ApiModel;
 public class PianoRoomSettingsSearch extends QueryInfo{
 	private static final long serialVersionUID = 1L;
 
+	@ApiModelProperty("状态 0-停用 1-使用 ")
+	private Integer status;
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
 }

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/PianoRoomSettings.java

@@ -30,7 +30,7 @@ public class PianoRoomSettings implements Serializable {
     private String description;
     @ApiModelProperty("状态 0-停用 1-使用 ")
     @TableField(value = "status_")
-    private Byte status;
+    private Integer status;
     @ApiModelProperty("创建人 ")
 	@TableField(value = "create_by_")
     private Long createBy;
@@ -92,11 +92,11 @@ public class PianoRoomSettings implements Serializable {
         this.description = description;
     }
 
-    public Byte getStatus() {
+    public Integer getStatus() {
         return status;
     }
 
-    public void setStatus(Byte status) {
+    public void setStatus(Integer status) {
         this.status = status;
     }
 

+ 22 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserAccountRecord.java

@@ -12,6 +12,7 @@ import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.models.auth.In;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.math.BigDecimal;
 
@@ -54,6 +55,12 @@ public class UserAccountRecord implements Serializable {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
     private Date createTime;
+    @ApiModelProperty("是否异常 ")
+    @TableField(value = "err_flag_")
+    private Integer errFlag = 0;
+    @ApiModelProperty("异常信息 ")
+    @TableField(value = "err_msg_")
+    private String errMsg;
 
     public Long getId() {
         return id;
@@ -135,4 +142,19 @@ public class UserAccountRecord implements Serializable {
         this.createTime = createTime;
     }
 
+    public Integer getErrFlag() {
+        return errFlag;
+    }
+
+    public void setErrFlag(Integer errFlag) {
+        this.errFlag = errFlag;
+    }
+
+    public String getErrMsg() {
+        return errMsg;
+    }
+
+    public void setErrMsg(String errMsg) {
+        this.errMsg = errMsg;
+    }
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrder.java

@@ -35,7 +35,7 @@ public class UserOrder implements Serializable {
     @ApiModelProperty("订单名称 ")
     @TableField(value = "order_name_")
     private String orderName;
-    @ApiModelProperty("订单类型:  VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播")
+    @ApiModelProperty("订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ) 老师端(PINAO_ROOM、琴房时长)")
     @TableField(value = "order_type_")
     private OrderTypeEnum orderType;
     @ApiModelProperty("订单描述信息 ")

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrderDetail.java

@@ -32,7 +32,7 @@ public class UserOrderDetail implements Serializable {
     @ApiModelProperty("卖家id ")
     @TableField(value = "merch_id_")
     private Long merchId;
-    @ApiModelProperty("订单类型:  VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播")
+    @ApiModelProperty("订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ) 老师端(PINAO_ROOM、琴房时长)")
     @TableField(value = "good_type_")
     private GoodTypeEnum goodType;
     @ApiModelProperty("业务id ")

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderService.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
@@ -165,4 +166,5 @@ public interface UserOrderService extends IService<UserOrder> {
      */
     @Transactional(rollbackFor = Exception.class)
     void orderSuccess(UserOrderVo detail, PaymentCallBack data);
+
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ContractServiceImpl.java

@@ -1,7 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.auth.api.enums.CertificateTypeEnum;
+import com.yonge.cooleshow.common.enums.CertificateTypeEnum;
 import com.yonge.cooleshow.biz.dal.entity.ContractTemplate;
 import com.yonge.cooleshow.biz.dal.entity.SysUserTsign;
 import com.yonge.cooleshow.biz.dal.service.*;

+ 29 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserAccountServiceImpl.java

@@ -1,10 +1,16 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dto.UserAccountRecordDto;
 import com.yonge.cooleshow.biz.dal.dto.req.TotalReq;
 import com.yonge.cooleshow.biz.dal.entity.UserAccountRecord;
+import com.yonge.cooleshow.biz.dal.entity.UserOrder;
+import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
+import com.yonge.cooleshow.biz.dal.service.UserOrderService;
+import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.enums.FrozenTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService;
@@ -13,6 +19,8 @@ import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
 import org.redisson.api.RedissonClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.yonge.cooleshow.biz.dal.entity.UserAccount;
@@ -30,10 +38,14 @@ import java.util.concurrent.TimeUnit;
 
 @Service
 public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAccount> implements UserAccountService {
+    private final static Logger log = LoggerFactory.getLogger(UserAccountServiceImpl.class);
+
     @Autowired
     private UserAccountRecordService userAccountRecordService;
     @Autowired
     private RedissonClient redissonClient;
+    @Autowired
+    private UserOrderService orderService;
 
     @Override
     public UserAccountVo detail(Long id) {
@@ -118,18 +130,31 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
 
     private HttpResponseResult<UserAccountRecord> doAccountChange(UserAccountRecordDto accountRecordDto) {
         UserAccountVo detail = detail(accountRecordDto.getUserId());
+        //收入要校验金额
+        if (InOrOutEnum.IN.equals(accountRecordDto.getInOrOut())) {
+            UserOrder userOrder = orderService.getOne(Wrappers.<UserOrder>lambdaQuery()
+                    .eq(UserOrder::getOrderNo, accountRecordDto.getOrderNo()));
+            BigDecimal totalTransAmount = baseMapper.totalTransAmount(accountRecordDto);
+            if (null == totalTransAmount) {
+                totalTransAmount = BigDecimal.ZERO;
+            }
+            //金额校验失败,入账为冻结金额
+            if (null == userOrder || totalTransAmount.add(accountRecordDto.getTransAmount()).compareTo(userOrder.getActualPrice()) > 0) {
+                log.error("账户变更失败,param is " + JSONObject.toJSONString(accountRecordDto));
+                accountRecordDto.setErrFlag(1);
+                accountRecordDto.setErrMsg("账户变更异常,订单入账总金额大于购买金额,订单号:" + accountRecordDto.getOrderNo());
+                accountRecordDto.setFrozenType(FrozenTypeEnum.FROZEN);
+            }
+        }
 
         if (FrozenTypeEnum.FROZEN.equals(accountRecordDto.getFrozenType())) {
             //校验冻结金额
-
             baseMapper.frozenChangeAccount(accountRecordDto.getUserId(), accountRecordDto.getTransAmount(), accountRecordDto.getInOrOut().getCode());
         } else if (FrozenTypeEnum.FROZEN_DEDUCT.equals(accountRecordDto.getFrozenType())) {
             baseMapper.frozenDeductChangeAccount(accountRecordDto.getUserId(), accountRecordDto.getTransAmount(), accountRecordDto.getInOrOut().getCode());
         } else if (FrozenTypeEnum.FROZEN_BACK.equals(accountRecordDto.getFrozenType())) {
             baseMapper.frozenBackChangeAccount(accountRecordDto.getUserId(), accountRecordDto.getTransAmount(), accountRecordDto.getInOrOut().getCode());
         } else {
-
-
             baseMapper.changeAccount(accountRecordDto.getUserId(), accountRecordDto.getTransAmount(), accountRecordDto.getInOrOut().getCode());
         }
 
@@ -141,6 +166,7 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco
             //插入账户变更记录
             accountRecordDto.setAccountId(accountRecordDto.getUserId());
             accountRecordDto.setAccountBalance(detail.getAmountUsable());
+
             userAccountRecordService.save(accountRecordDto);
         }
         return HttpResponseResult.succeed(accountRecordDto);

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserWithdrawalServiceImpl.java

@@ -83,7 +83,7 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
     public IPage<UserWithdrawalVo> selectPage(IPage<UserWithdrawalVo> page, TeacherWithdrawalSearch query) {
         List<UserWithdrawalVo> withdrawalVoList = baseMapper.selectPage(page, query);
         withdrawalVoList.forEach(o -> {
-            if(AuthStatusEnum.DOING.equals(o.getAuthStatus())){
+            if(AuthStatusEnum.DOING.equals(o.getAuthStatus()) || TradeStatusEnum.pending.equals(o.getTradeStatus())){
                 o.setWithdrawStatus("DOING");
             }else if(TradeStatusEnum.succeeded.equals(o.getTradeStatus())){
                 o.setWithdrawStatus("SUCCESS");

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderRefundVo.java

@@ -19,7 +19,7 @@ public class UserOrderRefundVo extends UserOrderRefund{
     @TableField(value = "order_name_")
     private String orderName;
 
-    @ApiModelProperty("订单类型:  VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播")
+    @ApiModelProperty("订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ) 老师端(PINAO_ROOM、琴房时长)")
     @TableField(value = "order_type_")
     private OrderTypeEnum orderType;
 

+ 3 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -53,7 +53,7 @@
                 sum(if(a.end_time_ &lt;= now(),1,0)) as expTime,
                 sum(if(a.end_time_ &gt; now(),1,0)) as unExpTime
             from course_schedule a
-            where a.lock_ = 0 and a.type_ = 'PRACTICE'
+            where a.lock_ = 0 and a.type_ in ('PRACTICE','PIANO_ROOM_CLASS')
             <if test="userId != null and userId != ''">
                 and a.teacher_id_ = #{userId}
             </if>
@@ -66,7 +66,7 @@
                 avg (b.score_) as starGrade
             from course_schedule a
             join course_schedule_replied b on a.id_ = b.course_schedule_id_
-            where a.lock_ = 0 and a.type_ = 'PRACTICE' and b.score_ is not null
+            where a.lock_ = 0 and a.type_ in ('PRACTICE','PIANO_ROOM_CLASS') and b.score_ is not null
             <if test="userId != null and userId != ''">
                 and a.teacher_id_ = #{userId}
             </if>
@@ -85,7 +85,7 @@
             sum(if(b.end_time_ &gt; now(),1,0)) as unfinshHours
         from student t
         left join course_schedule_student_payment a on t.user_id_ = a.user_id_
-        left join course_schedule b on a.course_id_ = b.id_ and b.lock_ = 0 and b.type_ = 'PRACTICE'
+        left join course_schedule b on a.course_id_ = b.id_ and b.lock_ = 0 and b.type_ in ('PRACTICE','PIANO_ROOM_CLASS')
         <where>
             <if test="userId != null and userId != ''">
                 and t.user_id_ = #{userId}

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/PianoRoomSettingsMapper.xml

@@ -44,6 +44,9 @@
         FROM piano_room_settings t
         LEFT JOIN sys_user u on t.update_by_ = u.id_
         where t.del_flag_ = 0
+        <if test="param.status != null">
+            and t.status_ = #{param.status}
+        </if>
     </sql>
 
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.PianoRoomSettingsVo">

+ 19 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountMapper.xml

@@ -138,4 +138,23 @@
         </if>
         order by t.sys_day_ymd_
     </select>
+
+    <select id="totalTransAmount" resultType="java.math.BigDecimal">
+        sleect sum(trans_amount_) from user_cash_account_record
+        <where>
+
+            <if test="param.accountId != null">
+                and account_id_ = #{param.accountId}
+            </if>
+            <if test="param.inOrOut != null">
+                and in_or_out_ = #{param.inOrOut}
+            </if>
+            <if test="param.orderNo != null and param.orderNo != ''">
+                and order_no_ = #{param.orderNo}
+            </if>
+            <if test="param.bizType != null">
+                and biz_type_ = #{param.bizType}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 49 - 24
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserAccountRecordMapper.xml

@@ -10,7 +10,6 @@
         <result column="biz_type_" property="bizType" />
         <result column="biz_id_" property="bizId" />
         <result column="biz_name_" property="bizName" />
-        <result column="order_no_" property="orderNo" />
         <result column="create_time_" property="createTime" />
     </resultMap>
 
@@ -24,15 +23,30 @@
         , t.biz_type_ as bizType
         , t.biz_id_ as bizId
         , t.biz_name_ as bizName
-        , t.order_no_ as orderNo
         , t.create_time_ as createTime
         </sql>
 
     <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">
         SELECT
             <include refid="baseColumns"/>
-        FROM user_cash_account_record t
-        where t.id_ = #{id}
+        FROM (
+            select
+                max(t.id_) as id_,
+                t.account_id_,
+                sum(t.trans_amount_) as trans_amount_,
+                if(t.in_or_out_ = 'OUT', min(t.account_balance_), max(t.account_balance_)) as account_balance_,
+                t.in_or_out_,
+                t.biz_type_,
+                t.biz_id_,
+                t.biz_name_,
+                max(t.create_time_) as create_time_
+            from user_cash_account_record t
+            where exists(
+                select 1 from user_cash_account_record t1
+                where t1.id_ = #{id} and t1.biz_id_ = t.biz_id_ and t1.biz_type_ = t.biz_type_
+            )
+            group by t.account_id_,t.in_or_out_,t.biz_type_,biz_id_,biz_name_
+        ) t
     </select>
 
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.UserAccountRecordVo">
@@ -41,25 +55,38 @@
             DATE_FORMAT(t.create_time_,'%m-%d') as timeDay,
             a.start_time_ as startTime,
             a.end_time_ as endTime
-        FROM user_cash_account_record t
+        FROM (
+            select
+                max(t.id_) as id_,
+                t.account_id_,
+                sum(t.trans_amount_) as trans_amount_,
+                if(t.in_or_out_ = 'OUT', min(t.account_balance_), max(t.account_balance_)) as account_balance_,
+                t.in_or_out_,
+                t.biz_type_,
+                t.biz_id_,
+                t.biz_name_,
+                max(t.create_time_) as create_time_
+            from user_cash_account_record t
+            <where>
+                <if test="null != param.userId">
+                    AND t.account_id_ = #{param.userId}
+                </if>
+                <if test="null != param.inOrOut">
+                    AND t.in_or_out_ = #{param.inOrOut}
+                </if>
+                <if test="null != param.bizType">
+                    AND t.biz_type_ = #{param.bizType}
+                </if>
+                <if test="param.startTime !=null">
+                    <![CDATA[AND t.create_time_ >= #{param.startTime} ]]>
+                </if>
+                <if test="param.endTime !=null">
+                    <![CDATA[AND t.create_time_ < #{param.endTime} ]]>
+                </if>
+            </where>
+            group by t.account_id_,t.in_or_out_,t.biz_type_,biz_id_,biz_name_
+        ) t
         left join course_schedule a on t.biz_id_ = a.id_ and t.biz_type_ in ('PRACTICE','LIVE')
-        <where>
-            <if test="null != param.userId">
-                AND t.account_id_ = #{param.userId}
-            </if>
-            <if test="null != param.inOrOut">
-                AND t.in_or_out_ = #{param.inOrOut}
-            </if>
-            <if test="null != param.bizType">
-                AND t.biz_type_ = #{param.bizType}
-            </if>
-            <if test="param.startTime !=null">
-                <![CDATA[AND t.create_time_ >= #{param.startTime} ]]>
-            </if>
-            <if test="param.endTime !=null">
-                <![CDATA[AND t.create_time_ < #{param.endTime} ]]>
-            </if>
-        </where>
         order by t.create_time_ desc
     </select>
 
@@ -71,7 +98,6 @@
     </select>
 
     <select id="selectTodayTeacherEarning" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherEarningVo">
-
         select
             su.id_ as teacherId,
             su.phone_ as teacherPhone,
@@ -79,7 +105,6 @@
         from user_cash_account_record ucar
         left join sys_user su on ucar.account_id_ = su.id_
             where ucar.create_time_ > date_format(now(),'%Y-%m-%d')
-
         group by su.id_, su.phone_
     </select>
 </mapper>

+ 2 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserWithdrawalMapper.xml

@@ -120,10 +120,10 @@
                 AND t.trans_no_ LIKE CONCAT('%', #{transNo}, '%')
             </if>
             <if test="param.startTime !=null">
-                <![CDATA[AND t.create_time_ >= #{param.startTime} ]]>
+                <![CDATA[AND t.auth_time_ >= #{param.startTime} ]]>
             </if>
             <if test="param.endTime !=null">
-                <![CDATA[AND t.create_time_ < #{param.endTime} ]]>
+                <![CDATA[AND t.auth_time_ < #{param.endTime} ]]>
             </if>
         </where>
         order by t.create_time_ desc

+ 2 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/PianoRoomSettingsController.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.teacher.controller;
 
 import com.yonge.cooleshow.biz.dal.dto.search.PianoRoomSettingsSearch;
+import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.PianoRoomSettingsService;
 import com.yonge.cooleshow.biz.dal.vo.PianoRoomSettingsVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -32,6 +33,7 @@ public class PianoRoomSettingsController extends BaseController {
     @PostMapping("/list")
     @ApiOperation(value = "查询列表")
     public HttpResponseResult<List<PianoRoomSettingsVo>> list(@RequestBody PianoRoomSettingsSearch query) {
+        query.setStatus(YesOrNoEnum.YES.getCode());
         List<PianoRoomSettingsVo> list = pianoRoomSettingsService.selectList(query);
         return succeed(list);
     }

+ 0 - 2
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/WebSiteController.java

@@ -27,8 +27,6 @@ import java.util.List;
 @Api(value = "官网", tags = "官网")
 public class WebSiteController extends BaseController {
     @Autowired
-    private TeacherService teacherService;
-    @Autowired
     private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "切换用户类型")

+ 34 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/open/OpenWebSiteController.java

@@ -0,0 +1,34 @@
+package com.yonge.cooleshow.website.controller.open;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/open/openWebsite")
+@Api(value = "官网", tags = "官网")
+public class OpenWebSiteController extends BaseController {
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation(value = "判断注册状态 true 已注册 false 未注册")
+    @GetMapping("/checkRegister")
+    public HttpResponseResult<Boolean> checkRegister(
+            @ApiParam(value = "userType", required = true) @RequestParam("userType") String userType,
+            @ApiParam(value = "phone", required = true) @RequestParam("phone") String phone) {
+        SysUser sysUser = sysUserFeignService.queryUserByMobile(phone);
+        if (null == sysUser || !sysUser.getUserType().contains(userType)) {
+            return HttpResponseResult.succeed(false);
+        }
+        return HttpResponseResult.succeed(true);
+    }
+}

+ 3 - 1
toolset/toolset-base/src/main/java/com/yonge/toolset/base/page/QueryInfo.java

@@ -1,10 +1,12 @@
 package com.yonge.toolset.base.page;
 
 
+import java.io.Serializable;
+
 /**
  * 查询对象基类
  */
-public class QueryInfo {
+public class QueryInfo implements Serializable {
 	/**
 	 * 默认当前页码
 	 */