points.go 3.26 KB
Newer Older
haoyanbin's avatar
1  
haoyanbin committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
package mobile

import (
	"gin-vue-admin/global"
	"gin-vue-admin/model"
	"gin-vue-admin/model/request"
	"gin-vue-admin/model/response"
	"gin-vue-admin/service"
	"gin-vue-admin/utils"
	"github.com/gin-gonic/gin"
	"go.uber.org/zap"
	"time"
)

func PointsAddByMobile(c *gin.Context) {
	var req request.PointsLogInsertReq
	_ = c.ShouldBindJSON(&req)

	var err error
	cTime := time.Now()

	if req.Phone == "" {
		response.ApiFailWithMessage(2002, "医生手机号不得为空", c)
		return
	}

	if service.IsPointsLog(req.OtherNo) > 0 {
		response.ApiFailWithMessage(2001, "数据重复", c)
		return
	}

	userData := service.FindUserByMobile(req.Phone)

	pointsNum := new(request.PointsNumByMobileReply)
	pointsNum.HospitalNum, pointsNum.DoctorNum = service.GetPointsLogNum(req.HospitalCode, int(userData.ID))

	if pointsNum.HospitalNum > 1 {

	}

	if pointsNum.DoctorNum > 1 {

	}

	//积分流水
	reqPointsLog := model.PointsLog{}
	reqPointsLog.HospitalCode = req.HospitalCode
	reqPointsLog.UserId = int(userData.ID)
	reqPointsLog.ChangeType = 2
	reqPointsLog.ChangeTime = cTime
	reqPointsLog.ChangeNum = 100
	reqPointsLog.NowPointsNum = userData.PointsNum + reqPointsLog.ChangeNum
	reqPointsLog.Remark = "提交金像奖病历"
	reqPointsLog.OtherNo = req.OtherNo
	reqPointsLog.CreateTime = cTime
	if req.Source < 2 {
		reqPointsLog.Source = 1
	}

	err = service.CreatePointsLog(reqPointsLog)
	if err != nil {
		global.GVA_LOG.Error("赠送失败!", zap.Any("err", err))
		response.FailWithMessage("赠送失败", c)
		return
	}

	//修改积分
	err = service.UpdateUserPoints(int(userData.ID), 1, reqPointsLog.ChangeNum)

	//用户操作日志
	apiLog := model.ApiLog{
		UserId: userData.ID,
		Api:    "/points/addByMobile",
		Req:    string(utils.SerializeJson(req)),
		Reply:  "",
	}
	service.CreateApiLog(apiLog)
	//fmt.Println(reply)
	response.ApiOk(c)
	return
}

func PointsNumByMobile(c *gin.Context) {
	var req request.PointsLogInsertReq
	_ = c.ShouldBindJSON(&req)

	if req.Phone == "" {
		response.ApiFailWithMessage(2002, "医生手机号不得为空", c)
		return
	}

	userData := service.FindUserByMobile(req.Phone)

	reply := new(request.PointsNumByMobileReply)
	reply.HospitalNum, reply.DoctorNum = service.GetPointsLogNum(req.HospitalCode, int(userData.ID))

	//用户操作日志
	apiLog := model.ApiLog{
		UserId: userData.ID,
		Api:    "/points/pointsDataByMobile",
		Req:    string(utils.SerializeJson(req)),
		Reply:  string(utils.SerializeJson(reply)),
	}
	service.CreateApiLog(apiLog)
	//fmt.Println(reply)
	response.ApiOkWithData(reply, c)
	return
}

func GetPointsList(c *gin.Context) {
	var req request.GetPointsLogListReq
	_ = c.ShouldBindJSON(&req)

	userId := getUserID(c)
	req.UserId = int(userId)
	err, list, total := service.GetPointsLogList(req)

	_, userData := service.GetUserInfo(userId)

	pointsData := request.PointsData{}
	pointsData.PointsTotal = userData.PointsNum
	pointsData.PointsIncomeTotal = service.GetPointsData(int(userId), 2)
	pointsData.PointsExpendTotal = service.GetPointsData(int(userId), 3)

	reply := request.GetPointsLogListReply{}
	reply.List = list
	reply.Total = total
	reply.PointsData = pointsData

	if err != nil {
		global.GVA_LOG.Error("查询失败!", zap.Any("err", err))
		response.FailWithMessage("查询失败", c)
	} else {
		response.OkWithData(reply, c)
	}
	return
}