package com.cyksj.service.market;


import com.cyksj.model.entity.LuckyDraw;
import com.cyksj.model.entity.SignUser;
import com.cyksj.model.manage.views.GroupsRelationView;
import com.cyksj.model.request.LuckyDrawReq;
import com.cyksj.model.request.TaskFollowReq;
import com.cyksj.model.views.LuckyDrawView;
import com.cyksj.model.views.TaskFrontView;

import java.util.Date;
import java.util.List;

public interface MarketFrontService {
	SignUser signByUserId(Long userId);

	SignUser getUserSignDetail(Long userId);

	LuckyDrawView lottery(Long userId, LuckyDraw.DrawType drawType) throws Exception;

	void receivedLuckyDraw(Long userId, LuckyDrawReq luckyDrawReq);

	void updateTaskStatus(TaskFrontView data, Long userId);

	void receivedTaskPoints(Long userId, Long taskId);

	void toCompleteFollowTask(TaskFollowReq taskFollowReq);

	void updateFailFollowTask(TaskFollowReq taskFollowReq);

	Integer getSpecificChanceNum(Long userId);

	List<GroupsRelationView> getSpecificTickets(Long userId) throws Exception;

	void addSpecificChanceNum(Long userId, Long orderId, Long goodsId, Long skuId) throws Exception;

	void addSpecificChanceNumNoWxCorp(Long userId, Long orderId, Long goodsId, Long skuId) throws Exception;

	void subSpecificChanceNum(Long userId, Long orderId, Long goodsId, Date refundTime) throws Exception;
}
