linxk преди 3 седмици
родител
ревизия
04bffec404

+ 1 - 1
cif-service/src/main/java/com/txz/cif/dao/RedEnvelopeMapper.java

@@ -7,6 +7,6 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 public interface RedEnvelopeMapper extends Mapper<RedEnvelope> {
-    BigDecimal sumWithDay(Date day, Long userId);
+    BigDecimal sumWithDay(Date day, Long userId,Integer type);
 
 }

+ 14 - 0
cif-service/src/main/java/com/txz/cif/model/Account.java

@@ -72,6 +72,20 @@ public class Account {
     @ApiModelProperty(value="freezeAmount冻结金额")
     private BigDecimal freezeAmount;
 
+    /**
+     * 余额
+     */
+    @Column(name = "total_in_amount")
+    @ApiModelProperty(value="总入账")
+    private BigDecimal totalInamount;
+
+    /**
+     * 冻结金额
+     */
+    @Column(name = "total_out_amount")
+    @ApiModelProperty(value="总出账")
+    private BigDecimal totalOutAmount;
+
     /**
      * 上日余额
      */

+ 8 - 1
cif-service/src/main/java/com/txz/cif/service/RedEnvelopeService.java

@@ -15,5 +15,12 @@ public interface RedEnvelopeService extends Service<RedEnvelope> {
 
     Result addRedEnvelope(RedEnvelopeParam param);
 
-    BigDecimal sumWithDay(int day, Long userId);
+    /**
+     * 统计收益
+     * @param day 距离进入的天数 为空则不限制
+     * @param userId 用户id
+     * @param type 1待结算 2已结算 3不限制
+     * @return
+     */
+    BigDecimal sumWithDay(Integer day, Long userId,Integer type);
 }

+ 7 - 3
cif-service/src/main/java/com/txz/cif/service/impl/RedEnvelopeServiceImpl.java

@@ -78,9 +78,13 @@ public class RedEnvelopeServiceImpl extends AbstractService<RedEnvelope> impleme
     }
 
     @Override
-    public BigDecimal sumWithDay(int day, Long userId) {
-        return cRedEnvelopeMapper.sumWithDay(DateUtil.offsetDay(DateUtil.date(),-day),userId);
-    }
+    public BigDecimal sumWithDay(Integer day, Long userId,Integer type) {
+        if (day == null){
+            return cRedEnvelopeMapper.sumWithDay(null,userId,type);
+        } else {
+            return cRedEnvelopeMapper.sumWithDay(DateUtil.offsetDay(DateUtil.date(),-day),userId,type);
+        }
+          }
 
     /**
      * 构建红包对象

+ 41 - 7
cif-service/src/main/java/com/txz/cif/web/AccountApiController.java

@@ -1,18 +1,18 @@
 package com.txz.cif.web;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
-import com.txz.cif.core.AbstractApiController;
-import com.txz.cif.core.Result;
-import com.txz.cif.core.ResultCode;
-import com.txz.cif.core.ResultGenerator;
+import com.txz.cif.core.*;
 import com.txz.cif.model.Account;
 import com.txz.cif.model.AccountFlow;
 import com.txz.cif.model.User;
 import com.txz.cif.service.AccountFlowService;
 import com.txz.cif.service.AccountService;
+import com.txz.cif.service.RedEnvelopeService;
 import com.txz.cif.service.UserService;
 import com.txz.cif.web.bo.AccountFlowBO;
+import com.txz.cif.web.bo.AccountInfoBO;
 import com.txz.cif.web.bo.IndexCollectBO;
+import com.txz.cif.web.bo.UserInfoBO;
 import com.txz.cif.web.para.AccountFlowParam;
 
 import com.github.pagehelper.PageHelper;
@@ -27,11 +27,10 @@ import tk.mybatis.mapper.entity.Condition;
 import tk.mybatis.mapper.entity.Example.Criteria;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 
@@ -51,12 +50,47 @@ public class AccountApiController extends AbstractApiController {
 	@Resource
 	private AccountService accountService;
 
+	@Resource
+	private RedEnvelopeService redEnvelopeService;
+
 
 	@Resource
 	private UserService userService;
+	@Resource
+	private AuthService authService;
+
+	@ApiOperation(value = "查询账号信息", notes = "",httpMethod = "GET")
+	@GetMapping("/getAccountInfo")
+	public Result<AccountInfoBO> getAccountInfo(HttpServletRequest request) {
+		Long userId = authService.getTokenUserId(request);
+		if (userId == null ){
+			ResultGenerator.genFailResult(ResultCode.USERID_IS_NULL);
+		}
+		User user = userService.findById(userId);
+		if (user == null ){
+			ResultGenerator.genFailResult(ResultCode.USER_IS_NULL);
+		}
+		Account wallet = accountService.getAccount(userId, 1);
+		Account earnings = accountService.getAccount(userId, 2);
+		AccountInfoBO bo = new AccountInfoBO();
+		bo.setBalance(wallet.getBalance().add(earnings.getBalance()));
+		bo.setSettledAmount(earnings.getTotalInamount());
+		BigDecimal pendingAmount = redEnvelopeService.sumWithDay(null,userId,1);
+		bo.setPendingAmount(pendingAmount);
+
+		BigDecimal tDEamings = redEnvelopeService.sumWithDay(1,userId,3);
+		bo.setTDEamings(tDEamings);
+		BigDecimal yDEamings = redEnvelopeService.sumWithDay(2,userId,3);
+		bo.setTDEamings(yDEamings.subtract(tDEamings));
+		Integer day = DateUtil.thisDayOfMonth();
+		BigDecimal mTDEamings = redEnvelopeService.sumWithDay(day,userId,3);
+		bo.setTDEamings(mTDEamings);
+
+		return ResultGenerator.genSuccessResult(bo);
+	}
 
 
-	@PostMapping("/accountFlowList")
+		@PostMapping("/accountFlowList")
 	@ApiOperation(value = "出入流水",httpMethod = "POST")
 	public Result<AccountFlowBO> accountFlowList(@RequestBody AccountFlowParam param, @RequestHeader(value = X_CLIENT_TOKEN_USERID, required = false) Long userId)
 	{

+ 1 - 1
cif-service/src/main/java/com/txz/cif/web/UserApiController.java

@@ -151,7 +151,7 @@ public class UserApiController extends AbstractApiController {
         Integer invited2 = userService.countByCondition(c);
         bo.setTeamNo(invited+invited2);
         //7日收益
-        BigDecimal amount = redEnvelopeService.sumWithDay(7,user.getId());
+        BigDecimal amount = redEnvelopeService.sumWithDay(7,user.getId(),3);
         bo.setL7DEarnings(amount);
         return ResultGenerator.genSuccessResult(bo);
     }

+ 63 - 0
cif-service/src/main/java/com/txz/cif/web/bo/AccountInfoBO.java

@@ -0,0 +1,63 @@
+package com.txz.cif.web.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import javax.persistence.*;
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@ApiModel(value="账号余额信息")
+public class AccountInfoBO {
+
+    /**
+     * 总收益
+     */
+    @ApiModelProperty(value="总收益")
+    private BigDecimal totalEarnings;
+
+    /**
+     * 余额
+     */
+    @ApiModelProperty(value="balance余额")
+    private BigDecimal balance;
+
+    /**
+     * 已结算金额
+     */
+    @ApiModelProperty(value="settledAmount已结算金额")
+    private BigDecimal settledAmount;
+
+
+
+    /**
+     * 待结算金额
+     */
+    @ApiModelProperty(value="pendingAmount待结算金额")
+    private BigDecimal pendingAmount;
+
+
+    /**
+     * 当日收益
+     */
+    @ApiModelProperty(value="TDEamings当日收益")
+    private BigDecimal tDEamings;
+
+    /**
+     * 昨日收益
+     */
+    @ApiModelProperty(value="yDEamings昨日收益")
+    private BigDecimal yDEamings;
+
+    /**
+     * 本月收益
+     */
+    @ApiModelProperty(value="pendingAmount本月收益")
+    private BigDecimal mTDEamings;
+
+}

+ 0 - 135
cif-service/src/main/java/com/txz/cif/web/bo/HospitalBO.java

@@ -1,135 +0,0 @@
-package com.txz.cif.web.bo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.Date;
-
-@Data
-@Builder
-@AllArgsConstructor
-@NoArgsConstructor
-@ApiModel(value="医院")
-public class HospitalBO {
-    @ApiModelProperty(value="医院id")
-    private Long hospitalId;
-
-    /**
-     * 管理账号用户id
-     */
-    @ApiModelProperty(value="userId管理账号用户id")
-    private Long userId;
-
-    @ApiModelProperty(value="科室名称")
-    private String department;
-
-    /**
-     * 结算方案id
-     */
-    @ApiModelProperty(value="settlePlanId结算方案id")
-    private Long settlePlanId;
-
-    /**
-     * 医院名称
-     */
-    @ApiModelProperty(value="name医院名称")
-    private String name;
-
-    @ApiModelProperty(value="手机")
-    private String phoneNo;
-
-
-    @ApiModelProperty(value="登录账号")
-    private String loginAccount;
-
-    @ApiModelProperty(value="邮箱")
-    private String email;
-
-    /**
-     * 地址
-     */
-    @ApiModelProperty(value="address地址")
-    private String address;
-
-    /**
-     * 图标
-     */
-    @ApiModelProperty(value="icon图标")
-    private String icon;
-
-    /**
-     * 状态 1正常 2禁用
-     */
-    @ApiModelProperty(value="status状态 1正常 2禁用")
-    private Integer status;
-
-    /**
-     * 类型 1区域中心 2省级中心 3会诊医院
-     */
-    @ApiModelProperty(value="type类型 1区域中心 2省级中心 3会诊医院")
-    private Integer type;
-
-    /**
-     * 分类 多个分类 使用 , 分割
-     */
-    @ApiModelProperty(value="sysTypes分类 多个分类 使用 , 分割")
-    private String sysTypes;
-
-    /**
-     * 区域码
-     */
-    @ApiModelProperty(value="areaCode区域码")
-    private String areaCode;
-
-    @ApiModelProperty(value="区域名称")
-    private String  areaName;
-
-    /**
-     * 省地区码
-     */
-    @ApiModelProperty(value="provinceCode省地区码")
-    private String provinceCode;
-
-    /**
-     * 城市地区码
-     */
-    @ApiModelProperty(value="cityCode城市地区码")
-    private String cityCode;
-
-    /**
-     * 公告
-     */
-    @ApiModelProperty(value="notice公告")
-    private String notice;
-
-    /**
-     * 创建时间
-     */
-    @ApiModelProperty(value="createTime创建时间")
-    private Date createTime;
-
-    /**
-     * 更新时间
-     */
-    @ApiModelProperty(value="updateTime更新时间")
-    private Date updateTime;
-
-    /**
-     * 简介
-     */
-    @ApiModelProperty(value="introductory简介")
-    private String introductory;
-
-    /**
-     * 科室简介
-     */
-    @ApiModelProperty(value="officeIntro科室简介")
-    private String officeIntro;
-
-    @ApiModelProperty(value="结算方案")
-    private SettlePlanBO settlePlan;
-}

+ 0 - 50
cif-service/src/main/java/com/txz/cif/web/bo/HospitalSettleBO.java

@@ -1,50 +0,0 @@
-package com.txz.cif.web.bo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-@Getter
-@Setter
-@ToString
-@Builder
-@AllArgsConstructor
-@NoArgsConstructor
-@ApiModel(value="医院结算")
-public class HospitalSettleBO {
-
-
-    /**
-     * 余额
-     */
-    @ApiModelProperty(value="余额")
-    private BigDecimal balance;
-
-
-    @ApiModelProperty(value="冻结金额")
-    private BigDecimal freezeAmount;
-    /**
-     * 年份
-     */
-    @ApiModelProperty(value="年份")
-    private String year;
-
-    @ApiModelProperty(value="全年开支")
-    private BigDecimal expenditure;
-
-    /**
-     * 统计集合
-     */
-    @ApiModelProperty(value="统计集合")
-    private List<IndexCollectBO> collects;
-
-    /**
-     * 年度支出统计
-     */
-    @ApiModelProperty(value="年度支出统计")
-    private List<IndexCollectBO> outs;
-
-}

+ 0 - 119
cif-service/src/main/java/com/txz/cif/web/bo/HospitalSimpleBO.java

@@ -1,119 +0,0 @@
-package com.txz.cif.web.bo;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.Date;
-import javax.persistence.*;
-
-@Data
-@Builder
-@AllArgsConstructor
-@NoArgsConstructor
-@ApiModel(value="医院简单信息")
-public class HospitalSimpleBO {
-    @ApiModelProperty(value="医院id")
-    private Long hospitalId;
-
-
-    /**
-     * 医院名称
-     */
-    @ApiModelProperty(value="name医院名称")
-    private String name;
-
-    @ApiModelProperty(value="科室名称")
-    private String department;
-
-    @ApiModelProperty(value="手机")
-    private String phoneNo;
-
-    @ApiModelProperty(value="邮箱")
-    private String email;
-
-    /**
-     * 地址
-     */
-    @ApiModelProperty(value="address地址")
-    private String address;
-
-    /**
-     * 图标
-     */
-    @ApiModelProperty(value="icon图标")
-    private String icon;
-
-    /**
-     * 状态 1正常 2禁用
-     */
-    @ApiModelProperty(value="status状态 1正常 2禁用")
-    private Integer status;
-
-    /**
-     * 类型 1区域中心 2省级中心 3会诊医院
-     */
-    @ApiModelProperty(value="type类型 1区域中心 2省级中心 3会诊医院")
-    private Integer type;
-
-    /**
-     * 分类 多个分类 使用 , 分割
-     */
-    @ApiModelProperty(value="sysTypes分类 多个分类 使用 , 分割")
-    private String sysTypes;
-
-    /**
-     * 区域码
-     */
-    @ApiModelProperty(value="areaCode区域码")
-    private String areaCode;
-
-    @ApiModelProperty(value="区域名称")
-    private String  areaName;
-
-    /**
-     * 省地区码
-     */
-    @ApiModelProperty(value="provinceCode省地区码")
-    private String provinceCode;
-
-    /**
-     * 城市地区码
-     */
-    @ApiModelProperty(value="cityCode城市地区码")
-    private String cityCode;
-
-    /**
-     * 公告
-     */
-    @ApiModelProperty(value="notice公告")
-    private String notice;
-
-    /**
-     * 创建时间
-     */
-    @ApiModelProperty(value="createTime创建时间")
-    private Date createTime;
-
-    /**
-     * 更新时间
-     */
-    @ApiModelProperty(value="updateTime更新时间")
-    private Date updateTime;
-
-    /**
-     * 简介
-     */
-    @ApiModelProperty(value="introductory简介")
-    private String introductory;
-
-    /**
-     * 科室简介
-     */
-    @ApiModelProperty(value="officeIntro科室简介")
-    private String officeIntro;
-
-}

+ 23 - 7
cif-service/src/main/resources/mapper/AccountMapper.xml

@@ -19,6 +19,8 @@
     <result column="freeze_amount" jdbcType="DECIMAL" property="freezeAmount" />
     <result column="before_day_balance" jdbcType="DECIMAL" property="beforeDayBalance" />
     <result column="before_day_init_balance" jdbcType="DECIMAL" property="beforeDayInitBalance" />
+    <result column="total_in_amount" jdbcType="DECIMAL" property="totalInamount" />
+    <result column="total_out_amount" jdbcType="DECIMAL" property="totalOutAmount" />
 
     <result column="before_day_time" jdbcType="TIMESTAMP" property="beforeDayTime" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
@@ -57,13 +59,27 @@
           and DATE_FORMAT( before_day_time, '%Y-%m-%d' ) != CURRENT_DATE
     </update>
 
-  <update id="deal"  >
-    update c_account
-    set balance = balance + #{amount}
-    where id =  #{accountId}
-    <if test="accountId != 5">
-      and balance + #{amount} >= 0
-    </if>
+  <update id="deal">
+    UPDATE c_account
+    SET balance = balance + #{amount},
+    total_in_amount = total_in_amount + CASE
+    WHEN #{amount} > 0 THEN #{amount}
+    ELSE 0
+    END,
+    total_out_amount = total_out_amount + CASE
+    WHEN 0 > #{amount}  THEN -#{amount}
+    ELSE 0
+    END
+    WHERE id = #{accountId}
+    <choose>
+      <when test="accountId != 5">
+        AND balance + #{amount} >= 0
+      </when>
+      <otherwise>
+        <!-- 账户ID为5时的特殊处理 -->
+        AND 1=1
+      </otherwise>
+    </choose>
   </update>
 
   <update id="dealFreeze" >

+ 12 - 1
cif-service/src/main/resources/mapper/RedEnvelopeMapper.xml

@@ -26,5 +26,16 @@
 
   <select id="sumWithDay" resultType="java.math.BigDecimal">
     SELECT SUM(amount) AS total_amount
-    FROM c_red_envelope WHERE user_id=#{userId} and trans_time >= #{day}</select>
+    FROM c_red_envelope
+    WHERE user_id=#{userId}
+    <if test="day != null">
+      and trans_time >= #{day}
+    </if>
+    <if test="type == 1">
+      and status = 1
+    </if>
+    <if test="type == 2">
+      and status = 2
+    </if>
+  </select>
 </mapper>